components: schemas: Alert: properties: createdAt: description: The time when the alert was created in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`. example: "2022-11-22T04:37:12Z" format: date-time type: string createdBy: $ref: '#/components/schemas/BasicSubjectProfile' deploymentId: description: The ID of the deployment the alert is associated with. type: string entityId: description: The ID of the entity the alert is associated with. type: string entityName: description: The name of the entity the alert is associated with. type: string entityType: description: The type of entity the alert is associated with. enum: - DEPLOYMENT type: string id: description: The alert's ID. type: string name: description: The alert's name. type: string notificationChannels: description: The notification channels to send alerts to. items: $ref: '#/components/schemas/AlertNotificationChannel' type: array organizationId: description: The ID of the organization the alert is associated with. type: string rules: $ref: '#/components/schemas/AlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string updatedAt: description: The time when the alert was last updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`. example: "2022-11-22T04:37:12Z" format: date-time type: string updatedBy: $ref: '#/components/schemas/BasicSubjectProfile' workspaceId: description: The ID of the workspace the alert is associated with. type: string required: - createdAt - createdBy - entityId - entityType - id - name - organizationId - rules - severity - type - updatedAt - updatedBy type: object AlertNotificationChannel: properties: createdAt: description: The time when the notification channel was created in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`. example: "2022-11-22T04:37:12Z" format: date-time type: string definition: description: The definition of the notification. deploymentId: description: The ID of the deployment the notification channel is associated with. type: string entityId: description: The ID of the entity the notification channel is associated with. type: string entityType: description: The type of entity the notification channel is associated with. enum: - ORGANIZATION - WORKSPACE - DEPLOYMENT type: string id: description: The ID of the notification channel. type: string name: description: The name of the notification channel. type: string organizationId: description: The ID of the organization the notification channel is associated with. type: string type: description: The type of the notification channel. enum: - SLACK - EMAIL - PAGERDUTY - DAG_TRIGGER - OPSGENIE type: string updatedAt: description: The time when the notification channel was last updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`. example: "2022-11-22T04:37:12Z" format: date-time type: string workspaceId: description: The ID of the workspace the notification channel is associated with. type: string required: - createdAt - definition - entityId - entityType - id - name - organizationId - type - updatedAt type: object AlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatch' type: array properties: description: The alert's properties used to define the alert. required: - properties type: object AlertsList: properties: alerts: description: The alerts that were created or updated. items: $ref: '#/components/schemas/Alert' type: array required: - alerts type: object AllowedIpAddressRange: properties: createdAt: description: The time the range was created in UTC. example: "2022-11-22T04:37:12Z" format: date-time type: string createdBy: $ref: '#/components/schemas/BasicSubjectProfile' id: description: The allowed IP address range's ID. type: string ipAddressRange: description: The CIDR range. type: string organizationId: description: The ID of the organization the range belongs to. type: string updatedAt: description: The time the range was last updated in UTC. example: "2022-11-22T04:37:12Z" format: date-time type: string updatedBy: $ref: '#/components/schemas/BasicSubjectProfile' required: - createdAt - id - ipAddressRange - organizationId - updatedAt type: object AllowedIpAddressRangesList: properties: allowedIpAddressRanges: description: The ranges that were created. items: $ref: '#/components/schemas/AllowedIpAddressRange' type: array required: - allowedIpAddressRanges type: object BasicSubjectProfile: properties: apiTokenName: description: The API token's name. Returned only when `SubjectType` is `SERVICEKEY`. example: my-token type: string avatarUrl: description: The URL for the user's profile image. Returned only when `SubjectType` is `USER`. example: https://avatar.url type: string fullName: description: The subject's full name. Returned only when `SubjectType` is `USER`. example: Jane Doe type: string id: description: The subject's ID. example: clm8qv74h000008mlf08scq7k type: string subjectType: description: The subject type. enum: - USER - SERVICEKEY example: USER type: string username: description: The subject's username. Returned only when `SubjectType` is `USER`. example: user1@company.com type: string required: - id type: object BulkCreateAllowedIpAddressRangesRequest: properties: allowedIpAddressRanges: description: The CIDR ranges to create. At most 1000 per request. items: type: string maxItems: 1000 minItems: 1 type: array required: - allowedIpAddressRanges type: object BulkCreateNotificationChannelsRequest: properties: notificationChannels: description: The notification channels to create. At most 30 per request. items: $ref: '#/components/schemas/CreateNotificationChannelRequest' maxItems: 30 minItems: 1 type: array required: - notificationChannels type: object BulkDeleteAllowedIpAddressRangesRequest: properties: allowedIpAddressRangeIds: description: The IDs of the ranges to delete. At most 1000 per request. items: type: string maxItems: 1000 minItems: 1 type: array required: - allowedIpAddressRangeIds type: object BulkDeleteNotificationChannelsRequest: properties: notificationChannelIds: description: The IDs of the notification channels to delete. At most 30 per request. items: type: string maxItems: 30 minItems: 1 type: array uniqueItems: true required: - notificationChannelIds type: object CreateAlertRequest: discriminator: mapping: DAG_DURATION: '#/components/schemas/CreateDagDurationAlertRequest' DAG_FAILURE: '#/components/schemas/CreateDagFailureAlertRequest' DAG_SUCCESS: '#/components/schemas/CreateDagSuccessAlertRequest' DAG_TIMELINESS: '#/components/schemas/CreateDagTimelinessAlertRequest' TASK_DURATION: '#/components/schemas/CreateTaskDurationAlertRequest' TASK_FAILURE: '#/components/schemas/CreateTaskFailureAlertRequest' propertyName: type oneOf: - $ref: '#/components/schemas/CreateDagDurationAlertRequest' - $ref: '#/components/schemas/CreateDagFailureAlertRequest' - $ref: '#/components/schemas/CreateDagSuccessAlertRequest' - $ref: '#/components/schemas/CreateDagTimelinessAlertRequest' - $ref: '#/components/schemas/CreateTaskDurationAlertRequest' - $ref: '#/components/schemas/CreateTaskFailureAlertRequest' type: object CreateAlertsRequest: properties: alerts: description: The alerts to create. At most 30 per request. items: $ref: '#/components/schemas/CreateAlertRequest' maxItems: 30 minItems: 1 type: array required: - alerts type: object CreateDagDurationAlertProperties: properties: dagDurationSeconds: description: The duration of the Dag in seconds. Min 60 (1 minute), max 604800 (7 days). maximum: 604800 minimum: 60 type: integer deploymentId: description: The ID of the deployment to which the alert is scoped. type: string required: - dagDurationSeconds - deploymentId type: object CreateDagDurationAlertRequest: properties: entityId: description: The entity ID the alert is associated with. type: string entityType: description: The type of entity the alert is scoped to. enum: - DEPLOYMENT type: string name: description: The alert's name. maxLength: 500 minLength: 1 type: string notificationChannelIds: description: The notification channels to send alerts to. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true rules: $ref: '#/components/schemas/CreateDagDurationAlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string required: - entityId - entityType - name - notificationChannelIds - rules - severity - type type: object CreateDagDurationAlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatchRequest' maxItems: 50 minItems: 1 type: array properties: $ref: '#/components/schemas/CreateDagDurationAlertProperties' required: - patternMatches - properties type: object CreateDagFailureAlertProperties: properties: deploymentId: description: The ID of the deployment to which the alert is scoped. type: string required: - deploymentId type: object CreateDagFailureAlertRequest: properties: entityId: description: The entity ID the alert is associated with. type: string entityType: description: The type of entity the alert is scoped to. enum: - DEPLOYMENT type: string name: description: The alert's name. maxLength: 500 minLength: 1 type: string notificationChannelIds: description: The notification channels to send alerts to. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true rules: $ref: '#/components/schemas/CreateDagFailureAlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string required: - entityId - entityType - name - notificationChannelIds - rules - severity - type type: object CreateDagFailureAlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatchRequest' maxItems: 50 minItems: 1 type: array properties: $ref: '#/components/schemas/CreateDagFailureAlertProperties' required: - patternMatches - properties type: object CreateDagSuccessAlertProperties: properties: deploymentId: description: The ID of the deployment to which the alert is scoped. type: string required: - deploymentId type: object CreateDagSuccessAlertRequest: properties: entityId: description: The entity ID the alert is associated with. type: string entityType: description: The type of entity the alert is scoped to. enum: - DEPLOYMENT type: string name: description: The alert's name. maxLength: 500 minLength: 1 type: string notificationChannelIds: description: The notification channels to send alerts to. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true rules: $ref: '#/components/schemas/CreateDagSuccessAlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string required: - entityId - entityType - name - notificationChannelIds - rules - severity - type type: object CreateDagSuccessAlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatchRequest' maxItems: 50 minItems: 1 type: array properties: $ref: '#/components/schemas/CreateDagSuccessAlertProperties' required: - patternMatches - properties type: object CreateDagTimelinessAlertProperties: properties: dagDeadline: description: The deadline for the Dag in HH:MM 24-hour format, in UTC time. type: string daysOfWeek: description: The days of the week for the alert. items: type: string maxItems: 7 minItems: 1 type: array uniqueItems: true deploymentId: description: The ID of the deployment to which the alert is scoped. type: string lookBackPeriodSeconds: description: The look-back period in seconds. maximum: 86400 minimum: 60 type: integer required: - dagDeadline - daysOfWeek - deploymentId - lookBackPeriodSeconds type: object CreateDagTimelinessAlertRequest: properties: entityId: description: The entity ID the alert is associated with. type: string entityType: description: The type of entity the alert is scoped to. enum: - DEPLOYMENT type: string name: description: The alert's name. maxLength: 500 minLength: 1 type: string notificationChannelIds: description: The notification channels to send alerts to. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true rules: $ref: '#/components/schemas/CreateDagTimelinessAlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string required: - entityId - entityType - name - notificationChannelIds - rules - severity - type type: object CreateDagTimelinessAlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatchRequest' maxItems: 50 minItems: 1 type: array properties: $ref: '#/components/schemas/CreateDagTimelinessAlertProperties' required: - patternMatches - properties type: object CreateDagTriggerNotificationChannelRequest: properties: definition: $ref: '#/components/schemas/DagTriggerNotificationChannelDefinition' entityId: description: The entity ID the notification channel is scoped to. type: string entityType: description: The type of entity the notification channel is scoped to. enum: - ORGANIZATION - WORKSPACE - DEPLOYMENT type: string isShared: description: When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel. type: boolean name: description: The notification channel's name. maxLength: 50 minLength: 1 type: string type: description: The notification channel's type. enum: - SLACK - EMAIL - PAGERDUTY - DAG_TRIGGER - OPSGENIE type: string required: - definition - entityId - entityType - name - type type: object CreateEmailNotificationChannelRequest: properties: definition: $ref: '#/components/schemas/EmailNotificationChannelDefinition' entityId: description: The entity ID the notification channel is scoped to. type: string entityType: description: The type of entity the notification channel is scoped to. enum: - ORGANIZATION - WORKSPACE - DEPLOYMENT type: string isShared: description: When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel. type: boolean name: description: The notification channel's name. maxLength: 50 minLength: 1 type: string type: description: The notification channel's type. enum: - SLACK - EMAIL - PAGERDUTY - DAG_TRIGGER - OPSGENIE type: string required: - definition - entityId - entityType - name - type type: object CreateNotificationChannelRequest: discriminator: mapping: DAG_TRIGGER: '#/components/schemas/CreateDagTriggerNotificationChannelRequest' EMAIL: '#/components/schemas/CreateEmailNotificationChannelRequest' OPSGENIE: '#/components/schemas/CreateOpsgenieNotificationChannelRequest' PAGERDUTY: '#/components/schemas/CreatePagerDutyNotificationChannelRequest' SLACK: '#/components/schemas/CreateSlackNotificationChannelRequest' propertyName: type oneOf: - $ref: '#/components/schemas/CreateDagTriggerNotificationChannelRequest' - $ref: '#/components/schemas/CreateEmailNotificationChannelRequest' - $ref: '#/components/schemas/CreateOpsgenieNotificationChannelRequest' - $ref: '#/components/schemas/CreatePagerDutyNotificationChannelRequest' - $ref: '#/components/schemas/CreateSlackNotificationChannelRequest' type: object CreateOpsgenieNotificationChannelRequest: properties: definition: $ref: '#/components/schemas/OpsgenieNotificationChannelDefinition' entityId: description: The entity ID the notification channel is scoped to. type: string entityType: description: The type of entity the notification channel is scoped to. enum: - ORGANIZATION - WORKSPACE - DEPLOYMENT type: string isShared: description: When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel. type: boolean name: description: The notification channel's name. maxLength: 50 minLength: 1 type: string type: description: The notification channel's type. enum: - SLACK - EMAIL - PAGERDUTY - DAG_TRIGGER - OPSGENIE type: string required: - definition - entityId - entityType - name - type type: object CreatePagerDutyNotificationChannelRequest: properties: definition: $ref: '#/components/schemas/PagerDutyNotificationChannelDefinition' entityId: description: The entity ID the notification channel is scoped to. type: string entityType: description: The type of entity the notification channel is scoped to. enum: - ORGANIZATION - WORKSPACE - DEPLOYMENT type: string isShared: description: When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel. type: boolean name: description: The notification channel's name. maxLength: 50 minLength: 1 type: string type: description: The notification channel's type. enum: - SLACK - EMAIL - PAGERDUTY - DAG_TRIGGER - OPSGENIE type: string required: - definition - entityId - entityType - name - type type: object CreateSlackNotificationChannelRequest: properties: definition: $ref: '#/components/schemas/SlackNotificationChannelDefinition' entityId: description: The entity ID the notification channel is scoped to. type: string entityType: description: The type of entity the notification channel is scoped to. enum: - ORGANIZATION - WORKSPACE - DEPLOYMENT type: string isShared: description: When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel. type: boolean name: description: The notification channel's name. maxLength: 50 minLength: 1 type: string type: description: The notification channel's type. enum: - SLACK - EMAIL - PAGERDUTY - DAG_TRIGGER - OPSGENIE type: string required: - definition - entityId - entityType - name - type type: object CreateTaskDurationAlertProperties: properties: deploymentId: description: The ID of the deployment to which the alert is scoped. type: string taskDurationSeconds: description: The duration of the Task in seconds. maximum: 86400 minimum: 60 type: integer required: - deploymentId - taskDurationSeconds type: object CreateTaskDurationAlertRequest: properties: entityId: description: The entity ID the alert is associated with. type: string entityType: description: The type of entity the alert is scoped to. enum: - DEPLOYMENT type: string name: description: The alert's name. maxLength: 500 minLength: 1 type: string notificationChannelIds: description: The notification channels to send alerts to. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true rules: $ref: '#/components/schemas/CreateTaskDurationAlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string required: - entityId - entityType - name - notificationChannelIds - rules - severity - type type: object CreateTaskDurationAlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatchRequest' maxItems: 50 minItems: 1 type: array properties: $ref: '#/components/schemas/CreateTaskDurationAlertProperties' required: - patternMatches - properties type: object CreateTaskFailureAlertProperties: properties: deploymentId: description: The ID of the deployment to which the alert is scoped. type: string required: - deploymentId type: object CreateTaskFailureAlertRequest: properties: entityId: description: The entity ID the alert is associated with. type: string entityType: description: The type of entity the alert is scoped to. enum: - DEPLOYMENT type: string name: description: The alert's name. maxLength: 500 minLength: 1 type: string notificationChannelIds: description: The notification channels to send alerts to. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true rules: $ref: '#/components/schemas/CreateTaskFailureAlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string required: - entityId - entityType - name - notificationChannelIds - rules - severity - type type: object CreateTaskFailureAlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatchRequest' maxItems: 50 minItems: 1 type: array properties: $ref: '#/components/schemas/CreateTaskFailureAlertProperties' required: - patternMatches - properties type: object DagFailureDiagnosisRun: properties: createdAt: description: The RFC3339 timestamp when the run was created. example: "2026-05-14T12:34:56Z" type: string runId: description: The unique identifier of the diagnosis run. Use this to poll status and stream events. example: 7f3b6f5d-2c4e-4f2b-9c1d-1a2b3c4d5e6f type: string status: description: The current status of the diagnosis run. enum: - pending - running - completed - failed - timed_out example: pending type: string required: - createdAt - runId - status type: object DagFailureDiagnosisRunStatus: properties: createdAt: description: The RFC3339 timestamp when the run was created. example: "2026-05-14T12:34:56Z" type: string runId: description: The unique identifier of the diagnosis run. example: 7f3b6f5d-2c4e-4f2b-9c1d-1a2b3c4d5e6f type: string status: description: The current status of the diagnosis run. enum: - pending - running - completed - failed - timed_out example: running type: string updatedAt: description: The RFC3339 timestamp when the run was last updated. example: "2026-05-14T12:35:10Z" type: string required: - createdAt - runId - status - updatedAt type: object DagTriggerNotificationChannelDefinition: properties: dagId: description: The Dag ID. maxLength: 250 minLength: 1 type: string deploymentApiToken: description: The Deployment API token. type: string deploymentId: description: The Dag's deployment ID. type: string required: - dagId - deploymentApiToken - deploymentId type: object DailyUsage: properties: clusterId: description: The ID of the cluster the Deployment runs on. example: clpirf9ep03c701omoxq4gjkd type: string clusterName: description: The name of the cluster the Deployment runs on. example: AWS us-east-1 type: string computeType: description: The compute instance type backing this resource, if applicable. example: m5.xlarge type: string cost: description: The cost incurred, in USD. example: 0.35 type: number date: description: The day this cost row covers, in UTC. example: "2026-06-05" type: string deploymentDescription: description: The description of the Deployment the cost was incurred by. type: string deploymentId: description: The ID of the Deployment the cost was incurred by. example: cmoln7wql2ktt01kxjpznlek2 type: string deploymentName: description: The name of the Deployment the cost was incurred by. example: timo-re-dnd type: string isHostedDedicated: description: Whether the Deployment runs on Hosted Dedicated infrastructure. example: true type: boolean organizationId: description: The ID of the Organization the cost was incurred by. example: cl17wsdpe084o0rw3e46g3smn type: string organizationName: description: The name of the Organization the cost was incurred by. example: Cosmic Energy type: string qty: description: The quantity of the resource consumed. example: 3600 type: number resource: description: The billed resource (e.g. scheduler size, worker size). example: Small Scheduler type: string unit: description: The unit the quantity is measured in. example: runtime seconds type: string workerQueueName: description: The name of the worker queue this cost is attributed to, if applicable. example: default type: string workspaceDescription: description: The description of the Workspace the cost was incurred by. type: string workspaceId: description: The ID of the Workspace the cost was incurred by. example: cm7f419mg0no001jhunzjeer1 type: string workspaceName: description: The name of the Workspace the cost was incurred by. example: Sandbox type: string yearMonth: description: The calendar month this cost row falls in, in UTC. example: 2026-06 type: string required: - cost - date - deploymentId - organizationId - qty - resource - unit - workspaceId - yearMonth type: object DailyUsageVariants: discriminator: mapping: astronomer: '#/components/schemas/DailyUsagesPaginated' focus: '#/components/schemas/FocusDailyUsagesPaginated' propertyName: format oneOf: - $ref: '#/components/schemas/DailyUsagesPaginated' - $ref: '#/components/schemas/FocusDailyUsagesPaginated' type: object DailyUsagesPaginated: properties: format: description: Discriminates this response from the FOCUS-format variant when multiple are valid oneOf choices (e.g. an empty items page). enum: - astronomer - focus example: astronomer type: string items: description: The list of deployment resource costs in the current page. items: $ref: '#/components/schemas/DailyUsage' type: array limit: description: The maximum number of results in one page. example: 20 type: integer nextPageToken: description: Cursor mode (AIP-158) fields. NextPageToken is empty string on the last page (per spec — do not use omitempty). PageSize echoes the effective page size when the caller opted into cursor mode. type: string offset: description: The offset of the current page of results. example: 0 type: integer pageSize: type: integer previousPageToken: type: string totalCount: description: The total number of deployment resource cost rows matching the query. example: 15196 type: integer required: - format - items - limit - nextPageToken - offset - pageSize - previousPageToken - totalCount type: object DeleteAlertsRequest: properties: alertIds: description: The IDs of the alerts to delete. At most 20 per request. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true required: - alertIds type: object DeploymentUsage: properties: accountId: description: The Salesforce account ID. type: string accountName: description: The Salesforce account name. type: string date: description: The period start date (YYYY-MM-DD). type: string daysInPeriod: description: The number of days included in the period. type: integer deploymentDescription: description: The deployment's description. type: string deploymentId: description: The ID of the deployment. type: string deploymentName: description: The display name of the deployment. type: string deploymentSlug: description: The deployment's slug. type: string distinctDagCount: description: Number of unique Dags executed in the period. type: integer distinctOperatorCount: description: Number of unique Airflow operators used in the period. type: integer distinctOperatorList: description: The distinct Airflow operator names used in the period. items: type: string type: array isCurrentPeriod: description: Whether this row belongs to the current period. type: boolean isLastPeriod: description: Whether this row belongs to the previous period. type: boolean organizationId: description: The ID of the organization. type: string organizationName: description: The display name of the organization. type: string periodsAgo: description: Number of periods prior to the current one. type: integer taskFailureCount: description: Count of failed task attempts in the period. type: integer taskSuccessCount: description: Count of successfully completed tasks in the period. type: integer taskTotalCount: description: Sum of all task attempts in the period. type: integer timeGrain: description: 'The granularity of the period: day, week, or month.' type: string workspaceDescription: description: The workspace's description. type: string workspaceId: description: The ID of the workspace. type: string workspaceName: description: The display name of the workspace. type: string required: - date - daysInPeriod - deploymentId - distinctDagCount - distinctOperatorCount - isCurrentPeriod - isLastPeriod - organizationId - periodsAgo - taskFailureCount - taskSuccessCount - taskTotalCount - timeGrain - workspaceId type: object DeploymentUsagesPaginated: properties: items: description: The list of deployment usage rows in the current page. items: $ref: '#/components/schemas/DeploymentUsage' type: array limit: description: The maximum number of results in one page. example: 20 type: integer nextPageToken: description: Cursor mode (AIP-158) fields. NextPageToken is empty string on the last page (per spec — do not use omitempty). PageSize echoes the effective page size when the caller opted into cursor mode. type: string offset: description: The offset of the current page of results. example: 0 type: integer pageSize: type: integer previousPageToken: type: string totalCount: description: The total number of deployment usage rows matching the query. example: 17677 type: integer required: - items - limit - nextPageToken - offset - pageSize - previousPageToken - totalCount type: object EmailNotificationChannelDefinition: properties: recipients: description: The email addresses of the recipients. At most 100 per channel. items: type: string maxItems: 100 minItems: 1 type: array required: - recipients type: object Error: properties: fieldErrors: description: FieldErrors carries one entry per failed request-validation constraint. Only present on 400 responses caused by request binding/validation. items: $ref: '#/components/schemas/FieldValidationError' type: array message: type: string requestId: type: string statusCode: maximum: 600 minimum: 400 type: integer required: - message - requestId - statusCode type: object Example: properties: createdAt: description: The time the response was generated, in UTC. format: date-time type: string id: description: The Example's ID; echoed back from the request path. example: clmaxoarx000008l2c5ayb9pt type: string proofOfConcept: description: The Example's name. Renamed to "name" for v1.0 clients via the epoch migration. example: Hello Labs type: string required: - createdAt - id - proofOfConcept type: object FieldValidationError: properties: code: type: string field: type: string message: type: string required: - code - field - message type: object FocusDailyUsage: properties: billingAccountId: description: The ID of the Organization being billed. example: cl17wsdpe084o0rw3e46g3smn type: string billingAccountName: description: The name of the Organization being billed. example: Cosmic Energy type: string billingCurrency: description: The currency the charge is billed in. example: USD type: string chargeCategory: description: The FOCUS charge category. example: Usage type: string chargeFrequency: description: The FOCUS charge frequency. example: Usage-Based type: string chargePeriodEnd: description: End of the charge period (exclusive), in UTC. format: date-time type: string chargePeriodStart: description: Start of the charge period, in UTC. format: date-time type: string consumedQuantity: description: The quantity of the resource consumed. example: 3600 type: number consumedUnit: description: The unit the consumed quantity is measured in. example: runtime seconds type: string invoiceIssuerName: description: The entity that issues the invoice for the charge. example: Astronomer type: string listCost: description: The list cost incurred, in USD. example: 0.35 type: number providerName: description: The cloud/software provider billing the charge. example: Astronomer type: string publisherName: description: The publisher of the billed service. example: Astronomer type: string resourceId: description: Comma-separated cluster ID and Deployment ID the charge was incurred by. example: clpirf9ep03c701omoxq4gjkd,cmoln7wql2ktt01kxjpznlek2 type: string resourceName: description: Comma-separated cluster name and Deployment name the charge was incurred by. example: AWS us-east-1,timo-re-dnd type: string resourceType: description: The FOCUS resource types the charge spans. example: Cluster,Deployment type: string serviceCategory: description: The FOCUS service category. example: Compute type: string serviceName: description: The name of the billed service. example: Astro type: string serviceSubCategory: description: The FOCUS service sub-category. example: Data Orchestration type: string skuId: description: A slugified identifier for the billed resource. example: small-scheduler type: string subAccountId: description: The ID of the Workspace the charge was incurred by. example: cm7f419mg0no001jhunzjeer1 type: string subAccountName: description: The name of the Workspace the charge was incurred by. example: Sandbox type: string x_ComputeType: description: 'FOCUS provider-defined column: the compute instance type backing this resource, if applicable.' example: m5.xlarge type: string x_WorkerQueueName: description: 'FOCUS provider-defined column: the name of the worker queue this cost is attributed to, if applicable.' example: default type: string required: - billingAccountId - billingCurrency - chargeCategory - chargeFrequency - chargePeriodEnd - chargePeriodStart - consumedQuantity - consumedUnit - invoiceIssuerName - listCost - providerName - publisherName - resourceId - resourceType - serviceCategory - serviceName - serviceSubCategory - skuId - subAccountId type: object FocusDailyUsagesPaginated: properties: format: description: Discriminates this response from the astronomer-format variant when multiple are valid oneOf choices (e.g. an empty items page). enum: - astronomer - focus example: focus type: string items: description: The list of deployment resource costs in the current page, in FOCUS format. items: $ref: '#/components/schemas/FocusDailyUsage' type: array limit: description: The maximum number of results in one page. example: 20 type: integer nextPageToken: description: Cursor mode (AIP-158) fields. NextPageToken is empty string on the last page (per spec — do not use omitempty). PageSize echoes the effective page size when the caller opted into cursor mode. type: string offset: description: The offset of the current page of results. example: 0 type: integer pageSize: type: integer previousPageToken: type: string totalCount: description: The total number of deployment resource cost rows matching the query. example: 15196 type: integer required: - format - items - limit - nextPageToken - offset - pageSize - previousPageToken - totalCount type: object NotificationChannel: properties: createdAt: description: The time the notification channel was created in UTC. example: "2022-11-22T04:37:12Z" format: date-time type: string createdBy: $ref: '#/components/schemas/BasicSubjectProfile' definition: description: The notification channel's definition. deploymentId: description: The ID of the deployment the notification channel is scoped to. type: string entityId: description: The entity ID the notification channel is scoped to. type: string entityType: description: The type of entity the notification channel is scoped to. enum: - ORGANIZATION - WORKSPACE - DEPLOYMENT type: string id: description: The notification channel's ID. type: string isShared: description: When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel. type: boolean name: description: The notification channel's name. type: string organizationId: description: The ID of the organization the notification channel belongs to. type: string type: description: The notification channel's type. enum: - SLACK - EMAIL - PAGERDUTY - DAG_TRIGGER - OPSGENIE type: string updatedAt: description: The time the notification channel was last updated in UTC. example: "2022-11-22T04:37:12Z" format: date-time type: string updatedBy: $ref: '#/components/schemas/BasicSubjectProfile' workspaceId: description: The ID of the workspace the notification channel is scoped to. type: string required: - createdAt - definition - entityId - entityType - id - isShared - name - organizationId - type - updatedAt type: object NotificationChannelsList: properties: notificationChannels: description: The notification channels that were created. items: $ref: '#/components/schemas/NotificationChannel' type: array required: - notificationChannels type: object OpsgenieNotificationChannelDefinition: properties: apiKey: description: The Opsgenie API key. maxLength: 256 minLength: 1 type: string required: - apiKey type: object PagerDutyNotificationChannelDefinition: properties: integrationKey: description: The Pager Duty integration key. maxLength: 128 type: string required: - integrationKey type: object PatternMatch: properties: entityType: description: The type of entity to match against. enum: - DAG_ID TASK_ID type: string operatorType: description: The type of operator to use for the pattern match. enum: - IS IS_NOT INCLUDES EXCLUDES type: string values: description: The values to match against. items: type: string type: array required: - entityType - operatorType - values type: object PatternMatchRequest: properties: entityType: description: The type of entity to match against. enum: - TASK_ID - DAG_ID type: string operatorType: description: The type of operator to use for the pattern match. enum: - IS - IS_NOT - INCLUDES - EXCLUDES type: string values: description: The values to match against. items: type: string maxItems: 100 minItems: 1 type: array required: - entityType - operatorType - values type: object RcaBlastRadius: properties: affected_dags: items: type: string type: array affected_runs: type: integer affected_tasks: type: integer downstream_consumers: items: type: string type: array scope: type: string type: object RcaCascadeLink: properties: description: type: string failure_type: type: string task_id: type: string required: - task_id type: object RcaChangeSignal: properties: correlation_to_failure_onset: type: string description: type: string signal_type: type: string timestamp: type: string type: object RcaCheck: properties: check: type: string detail: type: string passed: type: boolean required: - check type: object RcaChildDagFinding: properties: dag_id: type: string finding: type: string required: - dag_id type: object RcaCofailurePair: properties: cofailure_window_minutes: type: integer correlation_score: type: number dag_a: type: string dag_b: type: string shared_resource: type: string shared_resource_type: type: string required: - dag_a - dag_b type: object RcaDurationPercentiles: properties: p50: type: number p90: type: number p95: type: number p99: type: number type: object RcaEvidenceGap: properties: detail: type: string field_name: type: string why_missing: enum: - attempted_no_data - not_attempted - not_applicable type: string required: - field_name type: object RcaPreventionMeasure: properties: category: type: string priority: type: string recommendation: type: string type: object RcaRetryAttempt: properties: duration_sec: type: number error: type: string timestamp: type: string try_number: type: integer worker: type: string type: object RcaSessionDiagnosis: properties: affected_dags: description: Affected Dags & child findings items: type: string type: array amplifier_description: type: string blast_radius: $ref: '#/components/schemas/RcaBlastRadius' cascade_chain: description: Cascade topology items: $ref: '#/components/schemas/RcaCascadeLink' type: array cascade_depth: type: integer change_point_date: type: string change_signals: items: $ref: '#/components/schemas/RcaChangeSignal' type: array child_dag_findings: items: $ref: '#/components/schemas/RcaChildDagFinding' type: array cofailure_pairs: description: Cofailure analysis items: $ref: '#/components/schemas/RcaCofailurePair' type: array confidence: type: number confidence_justification: type: string contributing_factors: items: type: string type: array coverage_quality: description: Coverage quality type: string dag_level_checks: description: Diagnostic checks items: $ref: '#/components/schemas/RcaCheck' type: array duration_percentiles: $ref: '#/components/schemas/RcaDurationPercentiles' effective_availability: description: Availability type: number evidence: description: Evidence items: type: string type: array evidence_gaps: items: $ref: '#/components/schemas/RcaEvidenceGap' type: array evidence_status: enum: - confirmed - hypothesis - insufficient_evidence type: string exception_class: type: string exception_message: type: string failure_onset_date: description: Temporal context type: string fleet_health_score: type: number from_dag_run_id: description: 'Provenance fields layered on by core / polaris-agent after the LLM emits: - FromDagRunId: original dag_run_id when this diagnosis was replayed from the polaris-agent dedup cache (absent on fresh diagnoses). - SessionId: durable id of the RCA session row this diagnosis was emitted from.' type: string health_gap: type: string is_cascade_amplifier: type: boolean last_success_date: type: string log_classification: type: string log_signals: items: type: string type: array log_snippet: description: Log analysis type: string match_count: type: integer prevention_measures: items: $ref: '#/components/schemas/RcaPreventionMeasure' type: array priority: type: string remediation: type: string rendered_conn_ids: description: Connection context items: type: string type: array reported_success_rate: type: number root_cause: description: Root cause type: string root_cause_task: type: string root_cause_type: type: string seasonality_signal: type: string session_id: type: string severity: description: Severity & confidence type: string suggested_fix: description: Remediation & recommendations type: string summary: type: string symptoms: items: type: string type: array tasks: items: $ref: '#/components/schemas/RcaTaskDiagnosis' type: array timeline_events: description: Timeline & change signals items: $ref: '#/components/schemas/RcaTimelineEvent' type: array title: description: Core identification type: string transience: type: string trend_direction: type: string vendor_dashboard_url: type: string vendor_destination: type: string vendor_name: description: Vendor context type: string vendor_remediation: type: string required: - summary - title type: object RcaTaskDiagnosis: properties: checks: items: $ref: '#/components/schemas/RcaCheck' type: array first_attempt_error: type: string retry_attempts: items: $ref: '#/components/schemas/RcaRetryAttempt' type: array task_id: type: string task_ran: type: boolean required: - task_id type: object RcaTimelineEvent: properties: event: type: string event_type: type: string timestamp: type: string type: object SlackNotificationChannelDefinition: properties: webhookUrl: description: The Slack webhook URL. type: string required: - webhookUrl type: object StartDagFailureDiagnosisRequest: properties: dagId: description: The ID of the Dag that failed. example: my_dag type: string runId: description: The ID of the Dag run that failed. example: scheduled__2026-05-13T00:00:00+00:00 type: string skipCacheRead: description: If true, bypass any previously cached diagnosis for this Dag/run/task and force a fresh run. type: boolean taskId: description: The ID of the task that failed. Optional; if omitted, the agent diagnoses the run as a whole. example: my_task type: string tryNumbers: description: The specific task try numbers to diagnose. Optional. example: - 1 - 2 items: type: integer type: array required: - dagId - runId type: object UpdateAlertRequest: discriminator: mapping: DAG_DURATION: '#/components/schemas/UpdateDagDurationAlertRequest' DAG_FAILURE: '#/components/schemas/UpdateDagFailureAlertRequest' DAG_SUCCESS: '#/components/schemas/UpdateDagSuccessAlertRequest' DAG_TIMELINESS: '#/components/schemas/UpdateDagTimelinessAlertRequest' TASK_DURATION: '#/components/schemas/UpdateTaskDurationAlertRequest' TASK_FAILURE: '#/components/schemas/UpdateTaskFailureAlertRequest' propertyName: type oneOf: - $ref: '#/components/schemas/UpdateDagDurationAlertRequest' - $ref: '#/components/schemas/UpdateDagFailureAlertRequest' - $ref: '#/components/schemas/UpdateDagSuccessAlertRequest' - $ref: '#/components/schemas/UpdateDagTimelinessAlertRequest' - $ref: '#/components/schemas/UpdateTaskDurationAlertRequest' - $ref: '#/components/schemas/UpdateTaskFailureAlertRequest' type: object UpdateAlertsRequest: properties: alerts: description: The alerts to update. At most 30 per request. items: $ref: '#/components/schemas/UpdateAlertRequest' maxItems: 30 minItems: 1 type: array required: - alerts type: object UpdateDagDurationAlertProperties: properties: dagDurationSeconds: description: The duration of the Dag in seconds. Min 60 (1 minute), max 604800 (7 days). maximum: 604800 minimum: 60 type: integer type: object UpdateDagDurationAlertRequest: properties: id: description: The alert's ID. Required when updating alerts in bulk. type: string name: description: The alert's name. maxLength: 500 minLength: 1 type: string notificationChannelIds: description: The notification channels to send alerts to. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true rules: $ref: '#/components/schemas/UpdateDagDurationAlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string type: object UpdateDagDurationAlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatchRequest' maxItems: 50 minItems: 1 type: array properties: $ref: '#/components/schemas/UpdateDagDurationAlertProperties' type: object UpdateDagFailureAlertRequest: properties: id: description: The alert's ID. Required when updating alerts in bulk. type: string name: description: The alert's name. maxLength: 500 minLength: 1 type: string notificationChannelIds: description: The notification channels to send alerts to. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true rules: $ref: '#/components/schemas/UpdateDagFailureAlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string type: object UpdateDagFailureAlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatchRequest' maxItems: 50 minItems: 1 type: array type: object UpdateDagSuccessAlertRequest: properties: id: description: The alert's ID. Required when updating alerts in bulk. type: string name: description: The alert's name. maxLength: 500 minLength: 1 type: string notificationChannelIds: description: The notification channels to send alerts to. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true rules: $ref: '#/components/schemas/UpdateDagSuccessAlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string type: object UpdateDagSuccessAlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatchRequest' maxItems: 50 minItems: 1 type: array type: object UpdateDagTimelinessAlertProperties: properties: dagDeadline: description: The deadline for the Dag in HH:MM 24-hour format, in UTC time. type: string daysOfWeek: description: The days of the week for the alert. items: type: string maxItems: 7 minItems: 1 type: array uniqueItems: true lookBackPeriodSeconds: description: The look-back period in seconds. maximum: 86400 minimum: 60 type: integer type: object UpdateDagTimelinessAlertRequest: properties: id: description: The alert's ID. Required when updating alerts in bulk. type: string name: description: The alert's name. maxLength: 500 minLength: 1 type: string notificationChannelIds: description: The notification channels to send alerts to. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true rules: $ref: '#/components/schemas/UpdateDagTimelinessAlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string type: object UpdateDagTimelinessAlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatchRequest' maxItems: 50 minItems: 1 type: array properties: $ref: '#/components/schemas/UpdateDagTimelinessAlertProperties' type: object UpdateTaskDurationAlertProperties: properties: taskDurationSeconds: description: The duration of the Task in seconds. maximum: 86400 minimum: 60 type: integer type: object UpdateTaskDurationAlertRequest: properties: id: description: The alert's ID. Required when updating alerts in bulk. type: string name: description: The alert's name. maxLength: 500 minLength: 1 type: string notificationChannelIds: description: The notification channels to send alerts to. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true rules: $ref: '#/components/schemas/UpdateTaskDurationAlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string type: object UpdateTaskDurationAlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatchRequest' maxItems: 50 minItems: 1 type: array properties: $ref: '#/components/schemas/UpdateTaskDurationAlertProperties' type: object UpdateTaskFailureAlertRequest: properties: id: description: The alert's ID. Required when updating alerts in bulk. type: string name: description: The alert's name. maxLength: 500 minLength: 1 type: string notificationChannelIds: description: The notification channels to send alerts to. items: type: string maxItems: 20 minItems: 1 type: array uniqueItems: true rules: $ref: '#/components/schemas/UpdateTaskFailureAlertRules' severity: description: The alert's severity. enum: - INFO - WARNING - CRITICAL type: string type: description: The alert's type. enum: - DAG_SUCCESS - DAG_FAILURE - DAG_DURATION - DAG_TIMELINESS - TASK_DURATION - TASK_FAILURE type: string type: object UpdateTaskFailureAlertRules: properties: patternMatches: description: The alert's pattern matches to match against. items: $ref: '#/components/schemas/PatternMatchRequest' maxItems: 50 minItems: 1 type: array type: object WorkspaceUsage: properties: accountId: description: The Salesforce account ID. type: string accountName: description: The Salesforce account name. type: string dagOnlyDeployCount: description: Count of Dag-only style deployments in the workspace. type: integer date: description: The period start date (YYYY-MM-DD). type: string daysInPeriod: description: The number of days included in the period. type: integer deploymentCount: description: Total number of deployments in the workspace. type: integer distinctDagCount: description: Number of unique Dags executed in the period. type: integer distinctOperatorCount: description: Number of unique Airflow operators used in the period. type: integer distinctOperatorList: description: The distinct Airflow operator names used in the period. items: type: string type: array isCurrentPeriod: description: Whether this row belongs to the current period. type: boolean isLastPeriod: description: Whether this row belongs to the previous period. type: boolean organizationId: description: The ID of the organization. type: string organizationName: description: The display name of the organization. type: string periodsAgo: description: Number of periods prior to the current one. type: integer taskFailureCount: description: Count of failed task attempts in the period. type: integer taskSuccessCount: description: Count of successfully completed tasks in the period. type: integer taskTotalCount: description: Sum of all task attempts in the period. type: integer timeGrain: description: 'The granularity of the period: day, week, or month.' type: string workspaceDescription: description: The workspace's description. type: string workspaceId: description: The ID of the workspace. type: string workspaceName: description: The display name of the workspace. type: string required: - dagOnlyDeployCount - date - daysInPeriod - deploymentCount - distinctDagCount - distinctOperatorCount - isCurrentPeriod - isLastPeriod - organizationId - periodsAgo - taskFailureCount - taskSuccessCount - taskTotalCount - timeGrain - workspaceId type: object WorkspaceUsagesPaginated: properties: items: description: The list of workspace usage rows in the current page. items: $ref: '#/components/schemas/WorkspaceUsage' type: array limit: description: The maximum number of results in one page. example: 20 type: integer nextPageToken: description: Cursor mode (AIP-158) fields. NextPageToken is empty string on the last page (per spec — do not use omitempty). PageSize echoes the effective page size when the caller opted into cursor mode. type: string offset: description: The offset of the current page of results. example: 0 type: integer pageSize: type: integer previousPageToken: type: string totalCount: description: The total number of workspace usage rows matching the query. example: 5139 type: integer required: - items - limit - nextPageToken - offset - pageSize - previousPageToken - totalCount type: object securitySchemes: JWT: scheme: bearer type: http info: contact: {} description: Astro Labs API - Experimental endpoints for preview features title: Astro Labs API version: v1 openapi: 3.0.3 paths: /examples/{exampleId}: get: description: Returns a canned Example response. Exists only to exercise the labs epoch versioning surface (v1.0 to v1.1 field-rename migration); not backed by any real entity. operationId: LabsGetExample parameters: - description: The Example's ID. Any non-empty string is accepted; echoed back in the response. in: path name: exampleId required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/Example' description: OK "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized security: - JWT: [] summary: Get an Example tags: - Example /organizations/{organizationId}/alerts: get: description: List alerts, including their notification channels. Supports filtering by alert and deployment IDs. operationId: LabsListAlerts parameters: - description: The ID of the Organization to which the alerts belong to. in: path name: organizationId required: true schema: type: string - description: A list of IDs for specific alerts to list. The API returns details for all alerts which have been specified in this list. At most 1000. in: query name: alertIds schema: items: type: string type: array - description: A list of deployment IDs the alerts belong to. The API returns details for all alerts belonging only to the specified Deployments. At most 1000. in: query name: deploymentIds schema: items: type: string type: array - description: The number of results to skip before returning values. in: query name: offset schema: default: 0 minimum: 0 type: integer - description: The maximum number of results to return. in: query name: limit schema: default: 20 maximum: 1000 minimum: 0 type: integer responses: "200": content: application/json: schema: $ref: '#/components/schemas/AlertsList' description: OK "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Not Found "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: List alerts tags: - Alerts x-permission: - action: organization.alerts.access /organizations/{organizationId}/allowed-ip-address-ranges: delete: description: Delete up to 1000 allowed IP address ranges for the organization in one request. The whole batch is deleted atomically. Unknown or duplicate IDs are accepted and ignored; matching rows for this organization are deleted. The IDs are supplied in the request body. operationId: LabsDeleteAllowedIpAddressRanges parameters: - description: The ID of the Organization the ranges belong to. in: path name: organizationId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkDeleteAllowedIpAddressRangesRequest' description: The request body containing the list of allowed IP address range IDs to delete. required: true x-originalParamName: body responses: "204": description: "" "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Bulk delete allowed IP address ranges tags: - AllowedIpAddressRange x-permission: - action: organization.allowedIpAddressRanges.delete post: description: 'Create up to 1000 allowed IP address ranges for the organization in one request. The whole batch is created atomically — if any item fails validation or conflicts with an existing range, no rows are inserted. This endpoint is NOT idempotent: a retry after an unacknowledged 2xx response may return 409. Clients should list the ranges to verify state before retrying.' operationId: LabsCreateAllowedIpAddressRanges parameters: - description: The ID of the Organization the ranges will belong to. in: path name: organizationId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkCreateAllowedIpAddressRangesRequest' description: The request body containing the list of CIDR ranges to create. required: true x-originalParamName: body responses: "200": content: application/json: schema: $ref: '#/components/schemas/AllowedIpAddressRangesList' description: OK "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Not Found "409": content: application/json: schema: $ref: '#/components/schemas/Error' description: Conflict "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Bulk create allowed IP address ranges tags: - AllowedIpAddressRange x-permission: - action: organization.allowedIpAddressRanges.create /organizations/{organizationId}/audit-logs: get: description: Retrieve logs across a specified time period for an Organization. operationId: LabsGetOrganizationAuditLogs parameters: - description: The ID of the Organization to retrieve audit logs for. in: path name: organizationId required: true schema: type: string - description: The start date of the logs. in: query name: startDate schema: format: date-time type: string - description: The end date of the logs. in: query name: endDate schema: format: date-time type: string responses: "200": content: application/octet-stream: schema: items: type: integer type: array description: OK "400": content: application/octet-stream: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/octet-stream: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/octet-stream: schema: $ref: '#/components/schemas/Error' description: Forbidden "500": content: application/octet-stream: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Get Organization audit logs tags: - Organization x-permission: - action: organization.auditLogs.get /organizations/{organizationId}/billing/daily-usage: get: description: List daily deployment resource cost data. Enterprise+ tier only. operationId: LabsListDailyUsage parameters: - description: The ID of the Organization to retrieve cost data for. in: path name: organizationId required: true schema: type: string - description: Start of the date range (YYYY-MM-DD). in: query name: startDate required: true schema: type: string - description: End of the date range (YYYY-MM-DD). Range must not exceed 12 months. in: query name: endDate required: true schema: type: string - description: Filter by workspace ID. At most 1000. in: query name: workspaceId schema: items: type: string type: array - description: Filter by deployment ID. At most 1000. in: query name: deploymentId schema: items: type: string type: array - description: Response shape. in: query name: format schema: default: astronomer enum: - astronomer - focus type: string - description: The number of results to skip before returning values (offset mode; ignored when pageToken/pageSize is set). in: query name: offset schema: default: 0 minimum: 0 type: integer - description: 'The maximum number of results to return (offset mode). Maximum: 1000.' in: query name: limit schema: default: 20 maximum: 1000 minimum: 1 type: integer - description: Fields to sort by, formatted as `:asc` or `:desc`. Applies to offset and cursor mode. in: query name: sorts schema: items: enum: - id:asc - id:desc - date:asc - date:desc - organizationId:asc - organizationId:desc - workspaceId:asc - workspaceId:desc - deploymentId:asc - deploymentId:desc - resource:asc - resource:desc - cost:asc - cost:desc - qty:asc - qty:desc - unit:asc - unit:desc type: string type: array - description: Cursor page size. in: query name: pageSize schema: maximum: 1000 minimum: 1 type: integer - description: Opaque cursor page token. in: query name: pageToken schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/DailyUsageVariants' description: OK "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: List daily usage tags: - Billing x-permission: - action: organization.usages.get /organizations/{organizationId}/create-alerts: post: description: Create up to 30 alerts in a single request. operationId: LabsCreateAlerts parameters: - description: The ID of the Organization to which the alerts will belong to. in: path name: organizationId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateAlertsRequest' description: The request body for creating multiple alerts. required: true x-originalParamName: body responses: "200": content: application/json: schema: $ref: '#/components/schemas/AlertsList' description: OK "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Not Found "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Bulk create alerts tags: - Alerts x-permission: - action: organization.alerts.access /organizations/{organizationId}/delete-alerts: post: description: Delete up to 20 alerts in a single request. operationId: LabsDeleteAlerts parameters: - description: The ID of the Organization the alerts belong to. in: path name: organizationId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteAlertsRequest' description: The request body for deleting multiple alerts. required: true x-originalParamName: body responses: "204": description: "" "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Not Found "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Bulk delete alerts tags: - Alerts x-permission: - action: organization.alerts.access /organizations/{organizationId}/notification-channels: delete: description: Delete up to 30 notification channels for the organization in one request. The whole batch is deleted atomically — if any channel is not found, is still used by an alert or a monitor, or the caller cannot delete it, no channel is deleted. The IDs are supplied in the request body. operationId: LabsDeleteNotificationChannels parameters: - description: The ID of the Organization the notification channels belong to. in: path name: organizationId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkDeleteNotificationChannelsRequest' description: The request body containing the list of notification channel IDs to delete. required: true x-originalParamName: body responses: "204": description: "" "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Not Found "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Bulk delete notification channels tags: - NotificationChannels x-permission: - action: organization.notificationChannels.access post: description: 'Create up to 30 notification channels for the organization in one request. The whole batch is created atomically — if any channel fails validation or authorization, no channel is created. This endpoint is NOT idempotent: a retry after an unacknowledged 2xx response creates the channels a second time. Clients should list the channels to verify state before retrying.' operationId: LabsCreateNotificationChannels parameters: - description: The ID of the Organization the notification channels will belong to. in: path name: organizationId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkCreateNotificationChannelsRequest' description: The request body containing the notification channels to create. required: true x-originalParamName: body responses: "200": content: application/json: schema: $ref: '#/components/schemas/NotificationChannelsList' description: OK "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Not Found "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Bulk create notification channels tags: - NotificationChannels x-permission: - action: organization.notificationChannels.access /organizations/{organizationId}/observability/deployments/{deploymentId}/dag-failure-diagnosis/runs: post: description: Starts an asynchronous AI-powered diagnosis run for a failed Dag run (or specific task within it) and returns a run ID. Use the run ID to poll status and stream events. operationId: LabsStartDagFailureDiagnosis parameters: - description: The ID of the Organization to which the Deployment belongs. in: path name: organizationId required: true schema: type: string - description: The Deployment's ID. in: path name: deploymentId required: true schema: type: string - description: Skip DB session dedup + Redis cache and force a fresh diagnosis run in: query name: force schema: default: false type: boolean requestBody: content: application/json: schema: $ref: '#/components/schemas/StartDagFailureDiagnosisRequest' description: The request body for starting a Dag-failure diagnosis run. required: true x-originalParamName: body responses: "200": content: application/json: schema: $ref: '#/components/schemas/DagFailureDiagnosisRun' description: OK "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden "429": content: application/json: schema: $ref: '#/components/schemas/Error' description: Too Many Requests "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Start a Dag-failure diagnosis run tags: - Observability x-permission: - action: organization.deployments.get /organizations/{organizationId}/observability/deployments/{deploymentId}/dag-failure-diagnosis/runs/{diagnosisRunId}/events: get: description: Returns a Server-Sent Events stream of diagnosis events. Supports reconnection via the lastEventId query parameter. operationId: LabsGetDagFailureDiagnosisEvents parameters: - description: The ID of the Organization to which the Deployment belongs. in: path name: organizationId required: true schema: type: string - description: The Deployment's ID. in: path name: deploymentId required: true schema: type: string - description: The diagnosis run ID. in: path name: diagnosisRunId required: true schema: type: string - description: The last event ID received, used for reconnection. in: query name: lastEventId schema: type: string responses: "200": content: text/event-stream: schema: $ref: '#/components/schemas/RcaSessionDiagnosis' description: OK "401": content: text/event-stream: schema: $ref: '#/components/schemas/Error' description: Unauthorized "404": content: text/event-stream: schema: $ref: '#/components/schemas/Error' description: Not Found "500": content: text/event-stream: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Stream events from a Dag-failure diagnosis run tags: - Observability x-permission: - action: organization.deployments.get /organizations/{organizationId}/observability/deployments/{deploymentId}/dag-failure-diagnosis/runs/{diagnosisRunId}/status: get: description: Returns the current status of a Dag-failure diagnosis run. operationId: LabsGetDagFailureDiagnosisStatus parameters: - description: The ID of the Organization to which the Deployment belongs. in: path name: organizationId required: true schema: type: string - description: The Deployment's ID. in: path name: deploymentId required: true schema: type: string - description: The diagnosis run ID. in: path name: diagnosisRunId required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/DagFailureDiagnosisRunStatus' description: OK "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Not Found "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Get the status of a Dag-failure diagnosis run tags: - Observability x-permission: - action: organization.deployments.get /organizations/{organizationId}/update-alerts: post: description: Update up to 30 alerts in a single request. operationId: LabsUpdateAlerts parameters: - description: The ID of the Organization to which the alerts belong to. in: path name: organizationId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateAlertsRequest' description: The request body for updating multiple alerts. required: true x-originalParamName: body responses: "200": content: application/json: schema: $ref: '#/components/schemas/AlertsList' description: OK "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Not Found "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: Bulk update alerts tags: - Alerts x-permission: - action: organization.alerts.access /organizations/{organizationId}/usages/aggregate/deployment-usage: get: description: List deployment task, Dag, and operator activity metrics, aggregated by day, week, or month. Enterprise+ tier only. operationId: LabsListDeploymentUsage parameters: - description: The ID of the Organization to retrieve usage data for. in: path name: organizationId required: true schema: type: string - description: Start of the date range (YYYY-MM-DD). in: query name: startDate required: true schema: type: string - description: End of the date range (YYYY-MM-DD). Range must not exceed 12 months. in: query name: endDate required: true schema: type: string - description: The granularity to aggregate by. in: query name: timeGrain schema: default: day enum: - day - week - month type: string - description: Filter by workspace ID. At most 1000. in: query name: workspaceId schema: items: type: string type: array - description: Filter by deployment ID. At most 1000. in: query name: deploymentId schema: items: type: string type: array - description: The number of results to skip before returning values (offset mode; ignored when pageToken/pageSize is set). in: query name: offset schema: default: 0 minimum: 0 type: integer - description: 'The maximum number of results to return (offset mode). Maximum: 1000.' in: query name: limit schema: default: 20 maximum: 1000 minimum: 1 type: integer - description: Fields to sort by, formatted as `:asc` or `:desc`. Applies to offset and cursor mode. in: query name: sorts schema: items: enum: - id:asc - id:desc - date:asc - date:desc - timeGrain:asc - timeGrain:desc - organizationId:asc - organizationId:desc - workspaceId:asc - workspaceId:desc - deploymentId:asc - deploymentId:desc - taskSuccessCount:asc - taskSuccessCount:desc - taskFailureCount:asc - taskFailureCount:desc - taskTotalCount:asc - taskTotalCount:desc - distinctDagCount:asc - distinctDagCount:desc - distinctOperatorCount:asc - distinctOperatorCount:desc type: string type: array - description: Cursor page size. in: query name: pageSize schema: maximum: 1000 minimum: 1 type: integer - description: Opaque cursor page token. in: query name: pageToken schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/DeploymentUsagesPaginated' description: OK "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: List deployment usage tags: - Usages x-permission: - action: organization.usages.get /organizations/{organizationId}/usages/aggregate/workspace-usage: get: description: List workspace task, Dag, and operator activity metrics, aggregated by day, week, or month. Enterprise+ tier only. operationId: LabsListWorkspaceUsage parameters: - description: The ID of the Organization to retrieve usage data for. in: path name: organizationId required: true schema: type: string - description: Start of the date range (YYYY-MM-DD). in: query name: startDate required: true schema: type: string - description: End of the date range (YYYY-MM-DD). Range must not exceed 12 months. in: query name: endDate required: true schema: type: string - description: The granularity to aggregate by. in: query name: timeGrain schema: default: day enum: - day - week - month type: string - description: Filter by workspace ID. At most 1000. in: query name: workspaceId schema: items: type: string type: array - description: The number of results to skip before returning values (offset mode; ignored when pageToken/pageSize is set). in: query name: offset schema: default: 0 minimum: 0 type: integer - description: 'The maximum number of results to return (offset mode). Maximum: 1000.' in: query name: limit schema: default: 20 maximum: 1000 minimum: 1 type: integer - description: Fields to sort by, formatted as `:asc` or `:desc`. Applies to offset and cursor mode. in: query name: sorts schema: items: enum: - id:asc - id:desc - date:asc - date:desc - timeGrain:asc - timeGrain:desc - organizationId:asc - organizationId:desc - workspaceId:asc - workspaceId:desc - taskSuccessCount:asc - taskSuccessCount:desc - taskFailureCount:asc - taskFailureCount:desc - taskTotalCount:asc - taskTotalCount:desc - distinctDagCount:asc - distinctDagCount:desc - distinctOperatorCount:asc - distinctOperatorCount:desc - deploymentCount:asc - deploymentCount:desc type: string type: array - description: Cursor page size. in: query name: pageSize schema: maximum: 1000 minimum: 1 type: integer - description: Opaque cursor page token. in: query name: pageToken schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/WorkspaceUsagesPaginated' description: OK "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden "429": content: application/json: schema: $ref: '#/components/schemas/Error' description: Too Many Requests "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal Server Error security: - JWT: [] summary: List workspace usage tags: - Usages x-permission: - action: organization.usages.get security: - JWT: [] servers: - url: https://api.astronomer.io/labs/v1 tags: - description: Canned-data placeholder used to exercise the labs epoch versioning surface. Real labs endpoints register their own tags. name: Example