naftiko: 1.0.0-alpha2 info: label: FlashBlade REST API — Buckets description: 'FlashBlade REST API — Buckets. 23 operations. Lead operation: Pure Storage GET Bucket-audit-filter-actions. Self-contained Naftiko capability covering one Pure Storage business surface.' tags: - Pure Storage - Buckets created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PURE_STORAGE_API_KEY: PURE_STORAGE_API_KEY capability: consumes: - type: http namespace: flashblade-rest-buckets baseUri: http://[array] description: FlashBlade REST API — Buckets business capability. Self-contained, no shared references. resources: - name: api-2.26-bucket-audit-filter-actions path: /api/2.26/bucket-audit-filter-actions operations: - name: get method: GET description: Pure Storage GET Bucket-audit-filter-actions outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-2.26-buckets path: /api/2.26/buckets operations: - name: get method: GET description: Pure Storage GET Buckets outputRawFormat: json outputParameters: - name: result type: object value: $. - name: post method: POST description: Pure Storage POST Buckets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: delete method: DELETE description: Pure Storage DELETE Buckets outputRawFormat: json outputParameters: - name: result type: object value: $. - name: patch method: PATCH description: Pure Storage PATCH Buckets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-2.26-buckets-audit-filters path: /api/2.26/buckets/audit-filters operations: - name: get method: GET description: Pure Storage GET Buckets/audit-filters outputRawFormat: json outputParameters: - name: result type: object value: $. - name: post method: POST description: Pure Storage POST Buckets/audit-filters outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: delete method: DELETE description: Pure Storage DELETE Buckets/audit-filters outputRawFormat: json outputParameters: - name: result type: object value: $. - name: patch method: PATCH description: Pure Storage PATCH Buckets/audit-filters outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-2.26-buckets-bucket-access-policies path: /api/2.26/buckets/bucket-access-policies operations: - name: get method: GET description: Pure Storage GET Buckets/bucket-access-policies outputRawFormat: json outputParameters: - name: result type: object value: $. - name: post method: POST description: Pure Storage POST Buckets/bucket-access-policies outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: delete method: DELETE description: Pure Storage DELETE Buckets/bucket-access-policies outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-2.26-buckets-bucket-access-policies-rules path: /api/2.26/buckets/bucket-access-policies/rules operations: - name: get method: GET description: Pure Storage GET Buckets/bucket-access-policies/rules outputRawFormat: json outputParameters: - name: result type: object value: $. - name: post method: POST description: Pure Storage POST Buckets/bucket-access-policies/rules outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: delete method: DELETE description: Pure Storage DELETE Buckets/bucket-access-policies/rules outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-2.26-buckets-cross-origin-resource-sharing-policies path: /api/2.26/buckets/cross-origin-resource-sharing-policies operations: - name: get method: GET description: Pure Storage GET Buckets/cross-origin-resource-sharing-policies outputRawFormat: json outputParameters: - name: result type: object value: $. - name: post method: POST description: Pure Storage POST Buckets/cross-origin-resource-sharing-policies outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: delete method: DELETE description: Pure Storage DELETE Buckets/cross-origin-resource-sharing-policies outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-2.26-buckets-cross-origin-resource-sharing-policies-rules path: /api/2.26/buckets/cross-origin-resource-sharing-policies/rules operations: - name: get method: GET description: Pure Storage GET Buckets/cross-origin-resource-sharing-policies/rules outputRawFormat: json outputParameters: - name: result type: object value: $. - name: post method: POST description: Pure Storage POST Buckets/cross-origin-resource-sharing-policies/rules outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: delete method: DELETE description: Pure Storage DELETE Buckets/cross-origin-resource-sharing-policies/rules outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-2.26-buckets-performance path: /api/2.26/buckets/performance operations: - name: get method: GET description: Pure Storage GET Buckets/performance outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-2.26-buckets-s3-specific-performance path: /api/2.26/buckets/s3-specific-performance operations: - name: get method: GET description: Pure Storage GET Buckets/s3-specific-performance outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: apikey key: x-auth-token value: '{{env.PURE_STORAGE_API_KEY}}' placement: header exposes: - type: rest namespace: flashblade-rest-buckets-rest port: 8080 description: REST adapter for FlashBlade REST API — Buckets. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/2-26/bucket-audit-filter-actions name: api-2-26-bucket-audit-filter-actions description: REST surface for api-2.26-bucket-audit-filter-actions. operations: - method: GET name: get description: Pure Storage GET Bucket-audit-filter-actions call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - path: /v1/api/2-26/buckets name: api-2-26-buckets description: REST surface for api-2.26-buckets. operations: - method: GET name: get description: Pure Storage GET Buckets call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - method: POST name: post description: Pure Storage POST Buckets call: flashblade-rest-buckets.post with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: delete description: Pure Storage DELETE Buckets call: flashblade-rest-buckets.delete outputParameters: - type: object mapping: $. - method: PATCH name: patch description: Pure Storage PATCH Buckets call: flashblade-rest-buckets.patch with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/2-26/buckets/audit-filters name: api-2-26-buckets-audit-filters description: REST surface for api-2.26-buckets-audit-filters. operations: - method: GET name: get description: Pure Storage GET Buckets/audit-filters call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - method: POST name: post description: Pure Storage POST Buckets/audit-filters call: flashblade-rest-buckets.post with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: delete description: Pure Storage DELETE Buckets/audit-filters call: flashblade-rest-buckets.delete outputParameters: - type: object mapping: $. - method: PATCH name: patch description: Pure Storage PATCH Buckets/audit-filters call: flashblade-rest-buckets.patch with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/2-26/buckets/bucket-access-policies name: api-2-26-buckets-bucket-access-policies description: REST surface for api-2.26-buckets-bucket-access-policies. operations: - method: GET name: get description: Pure Storage GET Buckets/bucket-access-policies call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - method: POST name: post description: Pure Storage POST Buckets/bucket-access-policies call: flashblade-rest-buckets.post with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: delete description: Pure Storage DELETE Buckets/bucket-access-policies call: flashblade-rest-buckets.delete outputParameters: - type: object mapping: $. - path: /v1/api/2-26/buckets/bucket-access-policies/rules name: api-2-26-buckets-bucket-access-policies-rules description: REST surface for api-2.26-buckets-bucket-access-policies-rules. operations: - method: GET name: get description: Pure Storage GET Buckets/bucket-access-policies/rules call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - method: POST name: post description: Pure Storage POST Buckets/bucket-access-policies/rules call: flashblade-rest-buckets.post with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: delete description: Pure Storage DELETE Buckets/bucket-access-policies/rules call: flashblade-rest-buckets.delete outputParameters: - type: object mapping: $. - path: /v1/api/2-26/buckets/cross-origin-resource-sharing-policies name: api-2-26-buckets-cross-origin-resource-sharing-policies description: REST surface for api-2.26-buckets-cross-origin-resource-sharing-policies. operations: - method: GET name: get description: Pure Storage GET Buckets/cross-origin-resource-sharing-policies call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - method: POST name: post description: Pure Storage POST Buckets/cross-origin-resource-sharing-policies call: flashblade-rest-buckets.post with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: delete description: Pure Storage DELETE Buckets/cross-origin-resource-sharing-policies call: flashblade-rest-buckets.delete outputParameters: - type: object mapping: $. - path: /v1/api/2-26/buckets/cross-origin-resource-sharing-policies/rules name: api-2-26-buckets-cross-origin-resource-sharing-policies-rules description: REST surface for api-2.26-buckets-cross-origin-resource-sharing-policies-rules. operations: - method: GET name: get description: Pure Storage GET Buckets/cross-origin-resource-sharing-policies/rules call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - method: POST name: post description: Pure Storage POST Buckets/cross-origin-resource-sharing-policies/rules call: flashblade-rest-buckets.post with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: delete description: Pure Storage DELETE Buckets/cross-origin-resource-sharing-policies/rules call: flashblade-rest-buckets.delete outputParameters: - type: object mapping: $. - path: /v1/api/2-26/buckets/performance name: api-2-26-buckets-performance description: REST surface for api-2.26-buckets-performance. operations: - method: GET name: get description: Pure Storage GET Buckets/performance call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - path: /v1/api/2-26/buckets/s3-specific-performance name: api-2-26-buckets-s3-specific-performance description: REST surface for api-2.26-buckets-s3-specific-performance. operations: - method: GET name: get description: Pure Storage GET Buckets/s3-specific-performance call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - type: mcp namespace: flashblade-rest-buckets-mcp port: 9090 transport: http description: MCP adapter for FlashBlade REST API — Buckets. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: pure-storage-get-bucket-audit description: Pure Storage GET Bucket-audit-filter-actions hints: readOnly: true destructive: false idempotent: true call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - name: pure-storage-get-buckets description: Pure Storage GET Buckets hints: readOnly: true destructive: false idempotent: true call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - name: pure-storage-post-buckets description: Pure Storage POST Buckets hints: readOnly: false destructive: false idempotent: false call: flashblade-rest-buckets.post with: body: tools.body outputParameters: - type: object mapping: $. - name: pure-storage-delete-buckets description: Pure Storage DELETE Buckets hints: readOnly: false destructive: true idempotent: true call: flashblade-rest-buckets.delete outputParameters: - type: object mapping: $. - name: pure-storage-patch-buckets description: Pure Storage PATCH Buckets hints: readOnly: false destructive: false idempotent: true call: flashblade-rest-buckets.patch with: body: tools.body outputParameters: - type: object mapping: $. - name: pure-storage-get-buckets-audit description: Pure Storage GET Buckets/audit-filters hints: readOnly: true destructive: false idempotent: true call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - name: pure-storage-post-buckets-audit description: Pure Storage POST Buckets/audit-filters hints: readOnly: false destructive: false idempotent: false call: flashblade-rest-buckets.post with: body: tools.body outputParameters: - type: object mapping: $. - name: pure-storage-delete-buckets-audit description: Pure Storage DELETE Buckets/audit-filters hints: readOnly: false destructive: true idempotent: true call: flashblade-rest-buckets.delete outputParameters: - type: object mapping: $. - name: pure-storage-patch-buckets-audit description: Pure Storage PATCH Buckets/audit-filters hints: readOnly: false destructive: false idempotent: true call: flashblade-rest-buckets.patch with: body: tools.body outputParameters: - type: object mapping: $. - name: pure-storage-get-buckets-bucket description: Pure Storage GET Buckets/bucket-access-policies hints: readOnly: true destructive: false idempotent: true call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - name: pure-storage-post-buckets-bucket description: Pure Storage POST Buckets/bucket-access-policies hints: readOnly: false destructive: false idempotent: false call: flashblade-rest-buckets.post with: body: tools.body outputParameters: - type: object mapping: $. - name: pure-storage-delete-buckets-bucket description: Pure Storage DELETE Buckets/bucket-access-policies hints: readOnly: false destructive: true idempotent: true call: flashblade-rest-buckets.delete outputParameters: - type: object mapping: $. - name: pure-storage-get-buckets-bucket-2 description: Pure Storage GET Buckets/bucket-access-policies/rules hints: readOnly: true destructive: false idempotent: true call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - name: pure-storage-post-buckets-bucket-2 description: Pure Storage POST Buckets/bucket-access-policies/rules hints: readOnly: false destructive: false idempotent: false call: flashblade-rest-buckets.post with: body: tools.body outputParameters: - type: object mapping: $. - name: pure-storage-delete-buckets-bucket-2 description: Pure Storage DELETE Buckets/bucket-access-policies/rules hints: readOnly: false destructive: true idempotent: true call: flashblade-rest-buckets.delete outputParameters: - type: object mapping: $. - name: pure-storage-get-buckets-cross description: Pure Storage GET Buckets/cross-origin-resource-sharing-policies hints: readOnly: true destructive: false idempotent: true call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - name: pure-storage-post-buckets-cross description: Pure Storage POST Buckets/cross-origin-resource-sharing-policies hints: readOnly: false destructive: false idempotent: false call: flashblade-rest-buckets.post with: body: tools.body outputParameters: - type: object mapping: $. - name: pure-storage-delete-buckets-cross description: Pure Storage DELETE Buckets/cross-origin-resource-sharing-policies hints: readOnly: false destructive: true idempotent: true call: flashblade-rest-buckets.delete outputParameters: - type: object mapping: $. - name: pure-storage-get-buckets-cross-2 description: Pure Storage GET Buckets/cross-origin-resource-sharing-policies/rules hints: readOnly: true destructive: false idempotent: true call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - name: pure-storage-post-buckets-cross-2 description: Pure Storage POST Buckets/cross-origin-resource-sharing-policies/rules hints: readOnly: false destructive: false idempotent: false call: flashblade-rest-buckets.post with: body: tools.body outputParameters: - type: object mapping: $. - name: pure-storage-delete-buckets-cross-2 description: Pure Storage DELETE Buckets/cross-origin-resource-sharing-policies/rules hints: readOnly: false destructive: true idempotent: true call: flashblade-rest-buckets.delete outputParameters: - type: object mapping: $. - name: pure-storage-get-buckets-performance description: Pure Storage GET Buckets/performance hints: readOnly: true destructive: false idempotent: true call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $. - name: pure-storage-get-buckets-s3 description: Pure Storage GET Buckets/s3-specific-performance hints: readOnly: true destructive: false idempotent: true call: flashblade-rest-buckets.get outputParameters: - type: object mapping: $.