naftiko: 1.0.0-alpha2 info: label: Snowflake Table API — table description: 'Snowflake Table API — table. 19 operations. Lead operation: List Tables. Self-contained Naftiko capability covering one Snowflake business surface.' tags: - Snowflake - table created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SNOWFLAKE_API_KEY: SNOWFLAKE_API_KEY capability: consumes: - type: http namespace: table-table baseUri: https://org-account.snowflakecomputing.com description: Snowflake Table API — table business capability. Self-contained, no shared references. resources: - name: api-v2-databases-database-schemas-schema-tables path: /api/v2/databases/{database}/schemas/{schema}/tables operations: - name: listtables method: GET description: List Tables outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: history in: query type: boolean description: Optionally includes dropped tables that have not yet been purged. - name: deep in: query type: boolean description: Optionally includes dependency information of the table. - name: createtable method: POST description: Create a Table (clone and Undrop Are Separate Subresources) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-databases-database-schemas-schema-tables-name path: /api/v2/databases/{database}/schemas/{schema}/tables/{name} operations: - name: fetchtable method: GET description: Fetch a Table. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createoraltertable method: PUT description: Create a (or Alter an Existing) Table. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletetable method: DELETE description: Delete a Table outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-databases-database-schemas-schema-tables-name}:as_select path: /api/v2/databases/{database}/schemas/{schema}/tables/{name}:as_select operations: - name: createtableasselectdeprecated method: POST description: Create a Table Using the Result of the Specified Select Query outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: query in: query type: string description: The SQL select query to run to set up the table values (and possibly columns). required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-databases-database-schemas-schema-tables-name}:clone path: /api/v2/databases/{database}/schemas/{schema}/tables/{name}:clone operations: - name: clonetable method: POST description: Clone Table outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: targetDatabase in: query type: string description: Database of the newly created table. Defaults to the source table's database. - name: targetSchema in: query type: string description: Schema of the newly created table. Defaults to the source table's schema. - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-databases-database-schemas-schema-tables-name}:create-like path: /api/v2/databases/{database}/schemas/{schema}/tables/{name}:create-like operations: - name: createtablelike method: POST description: Create a Table Like This Existing One outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-databases-database-schemas-schema-tables-name}:create_like path: /api/v2/databases/{database}/schemas/{schema}/tables/{name}:create_like operations: - name: createtablelikedeprecated method: POST description: Create a Table Like This Existing One outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: newTableName in: query type: string description: The name of the table to be created. required: true - name: api-v2-databases-database-schemas-schema-tables-name}:resume-recluster path: /api/v2/databases/{database}/schemas/{schema}/tables/{name}:resume-recluster operations: - name: resumereclustertable method: POST description: Resume Recluster of a Table outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-databases-database-schemas-schema-tables-name}:resume_recluster path: /api/v2/databases/{database}/schemas/{schema}/tables/{name}:resume_recluster operations: - name: resumereclustertabledeprecated method: POST description: Resume Recluster of a Table outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-databases-database-schemas-schema-tables-name}:suspend-recluster path: /api/v2/databases/{database}/schemas/{schema}/tables/{name}:suspend-recluster operations: - name: suspendreclustertable method: POST description: Suspend Recluster of a Table outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-databases-database-schemas-schema-tables-name}:suspend_recluster path: /api/v2/databases/{database}/schemas/{schema}/tables/{name}:suspend_recluster operations: - name: suspendreclustertabledeprecated method: POST description: Suspend Recluster of a Table outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-databases-database-schemas-schema-tables-name}:swap-with path: /api/v2/databases/{database}/schemas/{schema}/tables/{name}:swap-with operations: - name: swapwithtable method: POST description: Swap With Another Table outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: targetName in: query type: string description: The name of the target table to be swapped with. required: true - name: targetDatabase in: query type: string description: Database of the target table. Defaults to the source table's database. - name: targetSchema in: query type: string description: Schema of the target table. Defaults to the source table's schema. - name: api-v2-databases-database-schemas-schema-tables-name}:swapwith path: /api/v2/databases/{database}/schemas/{schema}/tables/{name}:swapwith operations: - name: swapwithtabledeprecated method: POST description: Swap With Another Table outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: targetTableName in: query type: string description: The fully-specified name of the target table to be swapped with. required: true - name: api-v2-databases-database-schemas-schema-tables-name}:undrop path: /api/v2/databases/{database}/schemas/{schema}/tables/{name}:undrop operations: - name: undroptable method: POST description: Undrop a Table outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-databases-database-schemas-schema-tables-name}:using_template path: /api/v2/databases/{database}/schemas/{schema}/tables/{name}:using_template operations: - name: createtableusingtemplatedeprecated method: POST description: Create a Table Using the Templates Specified in Staged Files outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: query in: query type: string description: The SQL query that uses INFER_SCHEMA on staged files to set the column definitions for the new table. required: true - name: api-v2-databases-database-schemas-schema-tables:as-select path: /api/v2/databases/{database}/schemas/{schema}/tables:as-select operations: - name: createtableasselect method: POST description: Create a Table Using the Result of the Specified Select Query outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: query in: query type: string description: The SQL select query to run to set up the table values (and possibly columns). required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-databases-database-schemas-schema-tables:using-template path: /api/v2/databases/{database}/schemas/{schema}/tables:using-template operations: - name: createtableusingtemplate method: POST description: Create a Table Using the Templates Specified in Staged Files outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: query in: query type: string description: The SQL query that uses INFER_SCHEMA on staged files to set the column definitions for the new table. required: true - name: body in: body type: object description: Request body (JSON). required: false exposes: - type: rest namespace: table-table-rest port: 8080 description: REST adapter for Snowflake Table API — table. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables name: api-v2-databases-database-schemas-schema-tables description: REST surface for api-v2-databases-database-schemas-schema-tables. operations: - method: GET name: listtables description: List Tables call: table-table.listtables with: history: rest.history deep: rest.deep outputParameters: - type: object mapping: $. - method: POST name: createtable description: Create a Table (clone and Undrop Are Separate Subresources) call: table-table.createtable with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/{name} name: api-v2-databases-database-schemas-schema-tables-name description: REST surface for api-v2-databases-database-schemas-schema-tables-name. operations: - method: GET name: fetchtable description: Fetch a Table. call: table-table.fetchtable outputParameters: - type: object mapping: $. - method: PUT name: createoraltertable description: Create a (or Alter an Existing) Table. call: table-table.createoraltertable with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletetable description: Delete a Table call: table-table.deletetable outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/name-as-select name: api-v2-databases-database-schemas-schema-tables-name-as-select description: REST surface for api-v2-databases-database-schemas-schema-tables-name}:as_select. operations: - method: POST name: createtableasselectdeprecated description: Create a Table Using the Result of the Specified Select Query call: table-table.createtableasselectdeprecated with: query: rest.query body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/name-clone name: api-v2-databases-database-schemas-schema-tables-name-clone description: REST surface for api-v2-databases-database-schemas-schema-tables-name}:clone. operations: - method: POST name: clonetable description: Clone Table call: table-table.clonetable with: targetDatabase: rest.targetDatabase targetSchema: rest.targetSchema body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/name-create-like name: api-v2-databases-database-schemas-schema-tables-name-create-like description: REST surface for api-v2-databases-database-schemas-schema-tables-name}:create-like. operations: - method: POST name: createtablelike description: Create a Table Like This Existing One call: table-table.createtablelike with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/name-create-like name: api-v2-databases-database-schemas-schema-tables-name-create-like description: REST surface for api-v2-databases-database-schemas-schema-tables-name}:create_like. operations: - method: POST name: createtablelikedeprecated description: Create a Table Like This Existing One call: table-table.createtablelikedeprecated with: newTableName: rest.newTableName outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/name-resume-recluster name: api-v2-databases-database-schemas-schema-tables-name-resume-recluster description: REST surface for api-v2-databases-database-schemas-schema-tables-name}:resume-recluster. operations: - method: POST name: resumereclustertable description: Resume Recluster of a Table call: table-table.resumereclustertable outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/name-resume-recluster name: api-v2-databases-database-schemas-schema-tables-name-resume-recluster description: REST surface for api-v2-databases-database-schemas-schema-tables-name}:resume_recluster. operations: - method: POST name: resumereclustertabledeprecated description: Resume Recluster of a Table call: table-table.resumereclustertabledeprecated outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/name-suspend-recluster name: api-v2-databases-database-schemas-schema-tables-name-suspend-recluster description: REST surface for api-v2-databases-database-schemas-schema-tables-name}:suspend-recluster. operations: - method: POST name: suspendreclustertable description: Suspend Recluster of a Table call: table-table.suspendreclustertable outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/name-suspend-recluster name: api-v2-databases-database-schemas-schema-tables-name-suspend-recluster description: REST surface for api-v2-databases-database-schemas-schema-tables-name}:suspend_recluster. operations: - method: POST name: suspendreclustertabledeprecated description: Suspend Recluster of a Table call: table-table.suspendreclustertabledeprecated outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/name-swap-with name: api-v2-databases-database-schemas-schema-tables-name-swap-with description: REST surface for api-v2-databases-database-schemas-schema-tables-name}:swap-with. operations: - method: POST name: swapwithtable description: Swap With Another Table call: table-table.swapwithtable with: targetName: rest.targetName targetDatabase: rest.targetDatabase targetSchema: rest.targetSchema outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/name-swapwith name: api-v2-databases-database-schemas-schema-tables-name-swapwith description: REST surface for api-v2-databases-database-schemas-schema-tables-name}:swapwith. operations: - method: POST name: swapwithtabledeprecated description: Swap With Another Table call: table-table.swapwithtabledeprecated with: targetTableName: rest.targetTableName outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/name-undrop name: api-v2-databases-database-schemas-schema-tables-name-undrop description: REST surface for api-v2-databases-database-schemas-schema-tables-name}:undrop. operations: - method: POST name: undroptable description: Undrop a Table call: table-table.undroptable outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables/name-using-template name: api-v2-databases-database-schemas-schema-tables-name-using-template description: REST surface for api-v2-databases-database-schemas-schema-tables-name}:using_template. operations: - method: POST name: createtableusingtemplatedeprecated description: Create a Table Using the Templates Specified in Staged Files call: table-table.createtableusingtemplatedeprecated with: query: rest.query outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables-as-select name: api-v2-databases-database-schemas-schema-tables-as-select description: REST surface for api-v2-databases-database-schemas-schema-tables:as-select. operations: - method: POST name: createtableasselect description: Create a Table Using the Result of the Specified Select Query call: table-table.createtableasselect with: query: rest.query body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/tables-using-template name: api-v2-databases-database-schemas-schema-tables-using-template description: REST surface for api-v2-databases-database-schemas-schema-tables:using-template. operations: - method: POST name: createtableusingtemplate description: Create a Table Using the Templates Specified in Staged Files call: table-table.createtableusingtemplate with: query: rest.query body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: table-table-mcp port: 9090 transport: http description: MCP adapter for Snowflake Table API — table. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-tables description: List Tables hints: readOnly: true destructive: false idempotent: true call: table-table.listtables with: history: tools.history deep: tools.deep outputParameters: - type: object mapping: $. - name: create-table-clone-and-undrop description: Create a Table (clone and Undrop Are Separate Subresources) hints: readOnly: false destructive: false idempotent: false call: table-table.createtable with: body: tools.body outputParameters: - type: object mapping: $. - name: fetch-table description: Fetch a Table. hints: readOnly: true destructive: false idempotent: true call: table-table.fetchtable outputParameters: - type: object mapping: $. - name: create-alter-existing-table description: Create a (or Alter an Existing) Table. hints: readOnly: false destructive: false idempotent: true call: table-table.createoraltertable with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-table description: Delete a Table hints: readOnly: false destructive: true idempotent: true call: table-table.deletetable outputParameters: - type: object mapping: $. - name: create-table-using-result-specified description: Create a Table Using the Result of the Specified Select Query hints: readOnly: true destructive: false idempotent: false call: table-table.createtableasselectdeprecated with: query: tools.query body: tools.body outputParameters: - type: object mapping: $. - name: clone-table description: Clone Table hints: readOnly: false destructive: false idempotent: false call: table-table.clonetable with: targetDatabase: tools.targetDatabase targetSchema: tools.targetSchema body: tools.body outputParameters: - type: object mapping: $. - name: create-table-like-this-existing description: Create a Table Like This Existing One hints: readOnly: false destructive: false idempotent: false call: table-table.createtablelike with: body: tools.body outputParameters: - type: object mapping: $. - name: create-table-like-this-existing-2 description: Create a Table Like This Existing One hints: readOnly: false destructive: false idempotent: false call: table-table.createtablelikedeprecated with: newTableName: tools.newTableName outputParameters: - type: object mapping: $. - name: resume-recluster-table description: Resume Recluster of a Table hints: readOnly: false destructive: false idempotent: false call: table-table.resumereclustertable outputParameters: - type: object mapping: $. - name: resume-recluster-table-2 description: Resume Recluster of a Table hints: readOnly: false destructive: false idempotent: false call: table-table.resumereclustertabledeprecated outputParameters: - type: object mapping: $. - name: suspend-recluster-table description: Suspend Recluster of a Table hints: readOnly: false destructive: false idempotent: false call: table-table.suspendreclustertable outputParameters: - type: object mapping: $. - name: suspend-recluster-table-2 description: Suspend Recluster of a Table hints: readOnly: false destructive: false idempotent: false call: table-table.suspendreclustertabledeprecated outputParameters: - type: object mapping: $. - name: swap-another-table description: Swap With Another Table hints: readOnly: false destructive: false idempotent: false call: table-table.swapwithtable with: targetName: tools.targetName targetDatabase: tools.targetDatabase targetSchema: tools.targetSchema outputParameters: - type: object mapping: $. - name: swap-another-table-2 description: Swap With Another Table hints: readOnly: false destructive: false idempotent: false call: table-table.swapwithtabledeprecated with: targetTableName: tools.targetTableName outputParameters: - type: object mapping: $. - name: undrop-table description: Undrop a Table hints: readOnly: false destructive: false idempotent: false call: table-table.undroptable outputParameters: - type: object mapping: $. - name: create-table-using-templates-specified description: Create a Table Using the Templates Specified in Staged Files hints: readOnly: false destructive: false idempotent: false call: table-table.createtableusingtemplatedeprecated with: query: tools.query outputParameters: - type: object mapping: $. - name: create-table-using-result-specified-2 description: Create a Table Using the Result of the Specified Select Query hints: readOnly: true destructive: false idempotent: false call: table-table.createtableasselect with: query: tools.query body: tools.body outputParameters: - type: object mapping: $. - name: create-table-using-templates-specified-2 description: Create a Table Using the Templates Specified in Staged Files hints: readOnly: false destructive: false idempotent: false call: table-table.createtableusingtemplate with: query: tools.query body: tools.body outputParameters: - type: object mapping: $.