naftiko: 1.0.0-alpha2 info: label: Airflow API — Pool description: 'Airflow API — Pool. 6 operations. Lead operation: Airflow Get Pools. Self-contained Naftiko capability covering one Airflow business surface.' tags: - Airflow - Pool created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: AIRFLOW_API_KEY: AIRFLOW_API_KEY capability: consumes: - type: http namespace: airflow-pool baseUri: '' description: Airflow API — Pool business capability. Self-contained, no shared references. resources: - name: api-v2-pools path: /api/v2/pools operations: - name: getpools method: GET description: Airflow Get Pools outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: integer - name: offset in: query type: integer - name: order_by in: query type: array 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 type: string description: 'SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic (e.g. `dag1 | dag2`). Regular expressions are **not** ' - name: postpool method: POST description: Airflow Post Pool outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: bulkpools method: PATCH description: Airflow Bulk Pools outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-pools-pool_name path: /api/v2/pools/{pool_name} operations: - name: deletepool method: DELETE description: Airflow Delete Pool outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: pool_name in: path type: string required: true - name: getpool method: GET description: Airflow Get Pool outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: pool_name in: path type: string required: true - name: patchpool method: PATCH description: Airflow Patch Pool outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: pool_name in: path type: string required: true - name: update_mask in: query type: string - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.AIRFLOW_API_KEY}}' exposes: - type: rest namespace: airflow-pool-rest port: 8080 description: REST adapter for Airflow API — Pool. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v2/pools name: api-v2-pools description: REST surface for api-v2-pools. operations: - method: GET name: getpools description: Airflow Get Pools call: airflow-pool.getpools with: limit: rest.limit offset: rest.offset order_by: rest.order_by pool_name_pattern: rest.pool_name_pattern outputParameters: - type: object mapping: $. - method: POST name: postpool description: Airflow Post Pool call: airflow-pool.postpool with: body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: bulkpools description: Airflow Bulk Pools call: airflow-pool.bulkpools with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/pools/{pool-name} name: api-v2-pools-pool-name description: REST surface for api-v2-pools-pool_name. operations: - method: DELETE name: deletepool description: Airflow Delete Pool call: airflow-pool.deletepool with: pool_name: rest.pool_name outputParameters: - type: object mapping: $. - method: GET name: getpool description: Airflow Get Pool call: airflow-pool.getpool with: pool_name: rest.pool_name outputParameters: - type: object mapping: $. - method: PATCH name: patchpool description: Airflow Patch Pool call: airflow-pool.patchpool with: pool_name: rest.pool_name update_mask: rest.update_mask body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: airflow-pool-mcp port: 9090 transport: http description: MCP adapter for Airflow API — Pool. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: airflow-get-pools description: Airflow Get Pools hints: readOnly: true destructive: false idempotent: true call: airflow-pool.getpools with: limit: tools.limit offset: tools.offset order_by: tools.order_by pool_name_pattern: tools.pool_name_pattern outputParameters: - type: object mapping: $. - name: airflow-post-pool description: Airflow Post Pool hints: readOnly: false destructive: false idempotent: false call: airflow-pool.postpool with: body: tools.body outputParameters: - type: object mapping: $. - name: airflow-bulk-pools description: Airflow Bulk Pools hints: readOnly: false destructive: false idempotent: true call: airflow-pool.bulkpools with: body: tools.body outputParameters: - type: object mapping: $. - name: airflow-delete-pool description: Airflow Delete Pool hints: readOnly: false destructive: true idempotent: true call: airflow-pool.deletepool with: pool_name: tools.pool_name outputParameters: - type: object mapping: $. - name: airflow-get-pool description: Airflow Get Pool hints: readOnly: true destructive: false idempotent: true call: airflow-pool.getpool with: pool_name: tools.pool_name outputParameters: - type: object mapping: $. - name: airflow-patch-pool description: Airflow Patch Pool hints: readOnly: false destructive: false idempotent: true call: airflow-pool.patchpool with: pool_name: tools.pool_name update_mask: tools.update_mask body: tools.body outputParameters: - type: object mapping: $.