openapi: 3.1.0 info: title: Airflow Asset Pool API description: Airflow API. All endpoints located under ``/api/v2`` can be used safely, are stable and backward compatible. Endpoints located under ``/ui`` are dedicated to the UI and are subject to breaking change depending on the need of the frontend. Users should not rely on those but use the public ones instead. version: '2' tags: - name: Pool paths: /api/v2/pools/{pool_name}: delete: tags: - Pool summary: Airflow Delete Pool description: Delete a pool entry. operationId: delete_pool security: - OAuth2PasswordBearer: [] - HTTPBearer: [] parameters: - name: pool_name in: path required: true schema: type: string title: Pool Name responses: '204': description: Successful Response '401': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Forbidden '400': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Not Found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-microcks-operation: delay: 0 dispatcher: FALLBACK get: tags: - Pool summary: Airflow Get Pool description: Get a pool. operationId: get_pool security: - OAuth2PasswordBearer: [] - HTTPBearer: [] parameters: - name: pool_name in: path required: true schema: type: string title: Pool Name responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PoolResponse' '401': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Not Found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: tags: - Pool summary: Airflow Patch Pool description: Update a Pool. operationId: patch_pool security: - OAuth2PasswordBearer: [] - HTTPBearer: [] parameters: - name: pool_name in: path required: true schema: type: string title: Pool Name - name: update_mask in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' title: Update Mask requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PoolPatchBody' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PoolResponse' '401': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Forbidden '400': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Not Found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/pools: get: tags: - Pool summary: Airflow Get Pools description: Get all pools entries. operationId: get_pools security: - OAuth2PasswordBearer: [] - HTTPBearer: [] parameters: - name: limit in: query required: false schema: type: integer minimum: 0 default: 50 title: Limit - name: offset in: query required: false schema: type: integer minimum: 0 default: 0 title: Offset - name: order_by in: query required: false schema: type: array items: type: string description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported attributes: `id, pool, name`' default: - id title: Order By description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported attributes: `id, pool, name`' - name: pool_name_pattern in: query required: false schema: anyOf: - type: string - type: 'null' description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic (e.g. `dag1 | dag2`). Regular expressions are **not** supported. title: Pool Name Pattern description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic (e.g. `dag1 | dag2`). Regular expressions are **not** supported. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PoolCollectionResponse' '401': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Not Found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: tags: - Pool summary: Airflow Post Pool description: Create a Pool. operationId: post_pool security: - OAuth2PasswordBearer: [] - HTTPBearer: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PoolBody' responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PoolResponse' '401': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Forbidden '409': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Conflict '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: tags: - Pool summary: Airflow Bulk Pools description: Bulk create, update, and delete pools. operationId: bulk_pools security: - OAuth2PasswordBearer: [] - HTTPBearer: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BulkBody_PoolBody_' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/BulkResponse' '401': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/HTTPExceptionResponse' description: Forbidden '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: BulkResponse: properties: create: anyOf: - $ref: '#/components/schemas/BulkActionResponse' - type: 'null' description: Details of the bulk create operation, including successful keys and errors. update: anyOf: - $ref: '#/components/schemas/BulkActionResponse' - type: 'null' description: Details of the bulk update operation, including successful keys and errors. delete: anyOf: - $ref: '#/components/schemas/BulkActionResponse' - type: 'null' description: Details of the bulk delete operation, including successful keys and errors. type: object title: BulkResponse description: 'Serializer for responses to bulk entity operations. This represents the results of create, update, and delete actions performed on entity in bulk. Each action (if requested) is represented as a field containing details about successful keys and any encountered errors. Fields are populated in the response only if the respective action was part of the request, else are set None.' BulkActionNotOnExistence: type: string enum: - fail - skip title: BulkActionNotOnExistence description: Bulk Action to be taken if the entity does not exist. HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError BulkBody_PoolBody_: properties: actions: items: oneOf: - $ref: '#/components/schemas/BulkCreateAction_PoolBody_' - $ref: '#/components/schemas/BulkUpdateAction_PoolBody_' - $ref: '#/components/schemas/BulkDeleteAction_PoolBody_' type: array title: Actions additionalProperties: false type: object required: - actions title: BulkBody[PoolBody] PoolCollectionResponse: properties: pools: items: $ref: '#/components/schemas/PoolResponse' type: array title: Pools total_entries: type: integer title: Total Entries type: object required: - pools - total_entries title: PoolCollectionResponse description: Pool Collection serializer for responses. PoolBody: properties: name: type: string maxLength: 256 title: Name slots: type: integer minimum: -1.0 title: Slots description: Number of slots. Use -1 for unlimited. description: anyOf: - type: string - type: 'null' title: Description include_deferred: type: boolean title: Include Deferred default: false team_name: anyOf: - type: string maxLength: 50 - type: 'null' title: Team Name additionalProperties: false type: object required: - name - slots title: PoolBody description: Pool serializer for post bodies. ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError PoolPatchBody: properties: pool: anyOf: - type: string - type: 'null' title: Pool slots: anyOf: - type: integer minimum: -1.0 description: Number of slots. Use -1 for unlimited. - type: 'null' title: Slots description: anyOf: - type: string - type: 'null' title: Description include_deferred: anyOf: - type: boolean - type: 'null' title: Include Deferred team_name: anyOf: - type: string maxLength: 50 - type: 'null' title: Team Name additionalProperties: false type: object title: PoolPatchBody description: Pool serializer for patch bodies. BulkUpdateAction_PoolBody_: properties: action: type: string const: update title: Action description: The action to be performed on the entities. entities: items: $ref: '#/components/schemas/PoolBody' type: array title: Entities description: A list of entities to be updated. update_mask: anyOf: - items: type: string type: array - type: 'null' title: Update Mask description: A list of field names to update for each entity.Only these fields will be applied from the request body to the database model.Any extra fields provided will be ignored. action_on_non_existence: $ref: '#/components/schemas/BulkActionNotOnExistence' default: fail additionalProperties: false type: object required: - action - entities title: BulkUpdateAction[PoolBody] BulkCreateAction_PoolBody_: properties: action: type: string const: create title: Action description: The action to be performed on the entities. entities: items: $ref: '#/components/schemas/PoolBody' type: array title: Entities description: A list of entities to be created. action_on_existence: $ref: '#/components/schemas/BulkActionOnExistence' default: fail additionalProperties: false type: object required: - action - entities title: BulkCreateAction[PoolBody] BulkActionResponse: properties: success: items: type: string type: array title: Success description: A list of unique id/key representing successful operations. default: [] errors: items: additionalProperties: true type: object type: array title: Errors description: A list of errors encountered during the operation, each containing details about the issue. default: [] type: object title: BulkActionResponse description: 'Serializer for individual bulk action responses. Represents the outcome of a single bulk operation (create, update, or delete). The response includes a list of successful keys and any errors encountered during the operation. This structure helps users understand which key actions succeeded and which failed.' BulkActionOnExistence: type: string enum: - fail - skip - overwrite title: BulkActionOnExistence description: Bulk Action to be taken if the entity already exists or not. HTTPExceptionResponse: properties: detail: anyOf: - type: string - additionalProperties: true type: object title: Detail type: object required: - detail title: HTTPExceptionResponse description: HTTPException Model used for error response. BulkDeleteAction_PoolBody_: properties: action: type: string const: delete title: Action description: The action to be performed on the entities. entities: items: anyOf: - type: string - $ref: '#/components/schemas/PoolBody' type: array title: Entities description: A list of entity id/key or entity objects to be deleted. action_on_non_existence: $ref: '#/components/schemas/BulkActionNotOnExistence' default: fail additionalProperties: false type: object required: - action - entities title: BulkDeleteAction[PoolBody] PoolResponse: properties: name: type: string title: Name slots: type: integer minimum: -1.0 title: Slots description: Number of slots. Use -1 for unlimited. description: anyOf: - type: string - type: 'null' title: Description include_deferred: type: boolean title: Include Deferred occupied_slots: type: integer title: Occupied Slots running_slots: type: integer title: Running Slots queued_slots: type: integer title: Queued Slots scheduled_slots: type: integer title: Scheduled Slots open_slots: type: integer title: Open Slots deferred_slots: type: integer title: Deferred Slots team_name: anyOf: - type: string - type: 'null' title: Team Name type: object required: - name - slots - include_deferred - occupied_slots - running_slots - queued_slots - scheduled_slots - open_slots - deferred_slots - team_name title: PoolResponse description: Pool serializer for responses. securitySchemes: OAuth2PasswordBearer: type: oauth2 description: To authenticate Airflow API requests, clients must include a JWT (JSON Web Token) in the Authorization header of each request. This token is used to verify the identity of the client and ensure that they have the appropriate permissions to access the requested resources. You can use the endpoint ``POST /auth/token`` in order to generate a JWT token. Upon successful authentication, the server will issue a JWT token that contains the necessary information (such as user identity and scope) to authenticate subsequent requests. To learn more about Airflow public API authentication, please read https://airflow.apache.org/docs/apache-airflow/stable/security/api.html. flows: password: scopes: {} tokenUrl: /auth/token HTTPBearer: type: http scheme: bearer