naftiko: 1.0.0-alpha2 info: label: Amazon S3 Tables API — Tables description: 'Amazon S3 Tables API — Tables. 7 operations. Lead operation: Amazon S3 List Tables. Self-contained Naftiko capability covering one Amazon S3 business surface.' tags: - Amazon S3 - Tables created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: AMAZON_S3_API_KEY: AMAZON_S3_API_KEY capability: consumes: - type: http namespace: tables-tables baseUri: https://s3tables.{region}.amazonaws.com description: Amazon S3 Tables API — Tables business capability. Self-contained, no shared references. resources: - name: tables-tableBucketARN-namespace path: /tables/{tableBucketARN}/{namespace} operations: - name: listtables method: GET description: Amazon S3 List Tables outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: prefix in: query type: string description: The prefix of the table names. - name: continuationToken in: query type: string description: A continuation token for pagination. - name: maxTables in: query type: integer description: The maximum number of tables to return. - name: createtable method: PUT description: Amazon S3 Create Table outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: tables-tableBucketARN-namespace-name path: /tables/{tableBucketARN}/{namespace}/{name} operations: - name: gettable method: GET description: Amazon S3 Get Table outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: The name of the table. required: true - name: deletetable method: DELETE description: Amazon S3 Delete Table outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: The name of the table to delete. required: true - name: versionToken in: query type: string description: The version token of the table. - name: renametable method: POST description: Amazon S3 Rename Table outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: The current name of the table. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: tables-tableBucketARN-namespace-name-metadata-location path: /tables/{tableBucketARN}/{namespace}/{name}/metadata-location operations: - name: gettablemetadatalocation method: GET description: Amazon S3 Get Table Metadata Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: The name of the table. required: true - name: updatetablemetadatalocation method: PUT description: Amazon S3 Update Table Metadata Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: The name of the table. required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: Authorization value: '{{env.AMAZON_S3_API_KEY}}' placement: header exposes: - type: rest namespace: tables-tables-rest port: 8080 description: REST adapter for Amazon S3 Tables API — Tables. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/tables/{tablebucketarn}/{namespace} name: tables-tablebucketarn-namespace description: REST surface for tables-tableBucketARN-namespace. operations: - method: GET name: listtables description: Amazon S3 List Tables call: tables-tables.listtables with: prefix: rest.prefix continuationToken: rest.continuationToken maxTables: rest.maxTables outputParameters: - type: object mapping: $. - method: PUT name: createtable description: Amazon S3 Create Table call: tables-tables.createtable with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tables/{tablebucketarn}/{namespace}/{name} name: tables-tablebucketarn-namespace-name description: REST surface for tables-tableBucketARN-namespace-name. operations: - method: GET name: gettable description: Amazon S3 Get Table call: tables-tables.gettable with: name: rest.name outputParameters: - type: object mapping: $. - method: DELETE name: deletetable description: Amazon S3 Delete Table call: tables-tables.deletetable with: name: rest.name versionToken: rest.versionToken outputParameters: - type: object mapping: $. - method: POST name: renametable description: Amazon S3 Rename Table call: tables-tables.renametable with: name: rest.name body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tables/{tablebucketarn}/{namespace}/{name}/metadata-location name: tables-tablebucketarn-namespace-name-metadata-location description: REST surface for tables-tableBucketARN-namespace-name-metadata-location. operations: - method: GET name: gettablemetadatalocation description: Amazon S3 Get Table Metadata Location call: tables-tables.gettablemetadatalocation with: name: rest.name outputParameters: - type: object mapping: $. - method: PUT name: updatetablemetadatalocation description: Amazon S3 Update Table Metadata Location call: tables-tables.updatetablemetadatalocation with: name: rest.name body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: tables-tables-mcp port: 9090 transport: http description: MCP adapter for Amazon S3 Tables API — Tables. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: amazon-s3-list-tables description: Amazon S3 List Tables hints: readOnly: true destructive: false idempotent: true call: tables-tables.listtables with: prefix: tools.prefix continuationToken: tools.continuationToken maxTables: tools.maxTables outputParameters: - type: object mapping: $. - name: amazon-s3-create-table description: Amazon S3 Create Table hints: readOnly: false destructive: false idempotent: true call: tables-tables.createtable with: body: tools.body outputParameters: - type: object mapping: $. - name: amazon-s3-get-table description: Amazon S3 Get Table hints: readOnly: true destructive: false idempotent: true call: tables-tables.gettable with: name: tools.name outputParameters: - type: object mapping: $. - name: amazon-s3-delete-table description: Amazon S3 Delete Table hints: readOnly: false destructive: true idempotent: true call: tables-tables.deletetable with: name: tools.name versionToken: tools.versionToken outputParameters: - type: object mapping: $. - name: amazon-s3-rename-table description: Amazon S3 Rename Table hints: readOnly: false destructive: false idempotent: false call: tables-tables.renametable with: name: tools.name body: tools.body outputParameters: - type: object mapping: $. - name: amazon-s3-get-table-metadata description: Amazon S3 Get Table Metadata Location hints: readOnly: true destructive: false idempotent: true call: tables-tables.gettablemetadatalocation with: name: tools.name outputParameters: - type: object mapping: $. - name: amazon-s3-update-table-metadata description: Amazon S3 Update Table Metadata Location hints: readOnly: false destructive: false idempotent: true call: tables-tables.updatetablemetadatalocation with: name: tools.name body: tools.body outputParameters: - type: object mapping: $.