naftiko: 1.0.0-alpha2 info: label: Snowflake Dynamic Table API — dynamic-table description: 'Snowflake Dynamic Table API — dynamic-table. 12 operations. Lead operation: List Dynamic Tables. Self-contained Naftiko capability covering one Snowflake business surface.' tags: - Snowflake - dynamic-table created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SNOWFLAKE_API_KEY: SNOWFLAKE_API_KEY capability: consumes: - type: http namespace: dynamic-table-dynamic-table baseUri: https://org-account.snowflakecomputing.com description: Snowflake Dynamic Table API — dynamic-table business capability. Self-contained, no shared references. resources: - name: api-v2-databases-database-schemas-schema-dynamic-tables path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables operations: - name: listdynamictables method: GET description: List Dynamic Tables outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: deep in: query type: boolean description: Optionally includes dependency information of the dynamic table. - name: createdynamictable method: POST description: Create a Dynamic Table 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-dynamic-tables-name path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name} operations: - name: fetchdynamictable method: GET description: Fetch a Dynamic Table. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deletedynamictable method: DELETE description: Delete a Dynamic Table outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:clone path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:clone operations: - name: clonedynamictable method: POST description: Clone Dynamic Table outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: targetDatabase in: query type: string description: Database of the newly created dynamic table. Defaults to the source table's database. - name: targetSchema in: query type: string description: Schema of the newly created dynamic 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-dynamic-tables-name}:refresh path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:refresh operations: - name: refreshdynamictable method: POST description: Refresh the Dynamic Table outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:resume path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:resume operations: - name: resumedynamictable method: POST description: Resume Refreshes on the Dynamic Table outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:resume-recluster path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:resume-recluster operations: - name: resumereclusterdynamictable method: POST description: Resume Recluster of a Dynamic Table outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:suspend path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:suspend operations: - name: suspenddynamictable method: POST description: Suspend Refreshes on the Dynamic Table outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:suspend-recluster path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:suspend-recluster operations: - name: suspendreclusterdynamictable method: POST description: Suspend Recluster of a Dynamic Table outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:swap-with path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:swap-with operations: - name: swapwithdynamictable method: POST description: Swap With Another Dynamic Table outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: targetName in: query type: string description: The name of the target dynamic table to be swapped with. required: true - name: targetDatabase in: query type: string description: Database of the target dynamic table. Defaults to the source table's database. - name: targetSchema in: query type: string description: Schema of the target dynamic table. Defaults to the source table's schema. - name: api-v2-databases-database-schemas-schema-dynamic-tables-name}:undrop path: /api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name}:undrop operations: - name: undropdynamictable method: POST description: Undrop a Dynamic Table outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: dynamic-table-dynamic-table-rest port: 8080 description: REST adapter for Snowflake Dynamic Table API — dynamic-table. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables name: api-v2-databases-database-schemas-schema-dynamic-tables description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables. operations: - method: GET name: listdynamictables description: List Dynamic Tables call: dynamic-table-dynamic-table.listdynamictables with: deep: rest.deep outputParameters: - type: object mapping: $. - method: POST name: createdynamictable description: Create a Dynamic Table call: dynamic-table-dynamic-table.createdynamictable with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/{name} name: api-v2-databases-database-schemas-schema-dynamic-tables-name description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name. operations: - method: GET name: fetchdynamictable description: Fetch a Dynamic Table. call: dynamic-table-dynamic-table.fetchdynamictable outputParameters: - type: object mapping: $. - method: DELETE name: deletedynamictable description: Delete a Dynamic Table call: dynamic-table-dynamic-table.deletedynamictable outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-clone name: api-v2-databases-database-schemas-schema-dynamic-tables-name-clone description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:clone. operations: - method: POST name: clonedynamictable description: Clone Dynamic Table call: dynamic-table-dynamic-table.clonedynamictable with: targetDatabase: rest.targetDatabase targetSchema: rest.targetSchema body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-refresh name: api-v2-databases-database-schemas-schema-dynamic-tables-name-refresh description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:refresh. operations: - method: POST name: refreshdynamictable description: Refresh the Dynamic Table call: dynamic-table-dynamic-table.refreshdynamictable outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-resume name: api-v2-databases-database-schemas-schema-dynamic-tables-name-resume description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:resume. operations: - method: POST name: resumedynamictable description: Resume Refreshes on the Dynamic Table call: dynamic-table-dynamic-table.resumedynamictable outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-resume-recluster name: api-v2-databases-database-schemas-schema-dynamic-tables-name-resume-recluster description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:resume-recluster. operations: - method: POST name: resumereclusterdynamictable description: Resume Recluster of a Dynamic Table call: dynamic-table-dynamic-table.resumereclusterdynamictable outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-suspend name: api-v2-databases-database-schemas-schema-dynamic-tables-name-suspend description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:suspend. operations: - method: POST name: suspenddynamictable description: Suspend Refreshes on the Dynamic Table call: dynamic-table-dynamic-table.suspenddynamictable outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-suspend-recluster name: api-v2-databases-database-schemas-schema-dynamic-tables-name-suspend-recluster description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:suspend-recluster. operations: - method: POST name: suspendreclusterdynamictable description: Suspend Recluster of a Dynamic Table call: dynamic-table-dynamic-table.suspendreclusterdynamictable outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-swap-with name: api-v2-databases-database-schemas-schema-dynamic-tables-name-swap-with description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:swap-with. operations: - method: POST name: swapwithdynamictable description: Swap With Another Dynamic Table call: dynamic-table-dynamic-table.swapwithdynamictable with: targetName: rest.targetName targetDatabase: rest.targetDatabase targetSchema: rest.targetSchema outputParameters: - type: object mapping: $. - path: /v1/api/v2/databases/{database}/schemas/{schema}/dynamic-tables/name-undrop name: api-v2-databases-database-schemas-schema-dynamic-tables-name-undrop description: REST surface for api-v2-databases-database-schemas-schema-dynamic-tables-name}:undrop. operations: - method: POST name: undropdynamictable description: Undrop a Dynamic Table call: dynamic-table-dynamic-table.undropdynamictable outputParameters: - type: object mapping: $. - type: mcp namespace: dynamic-table-dynamic-table-mcp port: 9090 transport: http description: MCP adapter for Snowflake Dynamic Table API — dynamic-table. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-dynamic-tables description: List Dynamic Tables hints: readOnly: true destructive: false idempotent: true call: dynamic-table-dynamic-table.listdynamictables with: deep: tools.deep outputParameters: - type: object mapping: $. - name: create-dynamic-table description: Create a Dynamic Table hints: readOnly: false destructive: false idempotent: false call: dynamic-table-dynamic-table.createdynamictable with: body: tools.body outputParameters: - type: object mapping: $. - name: fetch-dynamic-table description: Fetch a Dynamic Table. hints: readOnly: true destructive: false idempotent: true call: dynamic-table-dynamic-table.fetchdynamictable outputParameters: - type: object mapping: $. - name: delete-dynamic-table description: Delete a Dynamic Table hints: readOnly: false destructive: true idempotent: true call: dynamic-table-dynamic-table.deletedynamictable outputParameters: - type: object mapping: $. - name: clone-dynamic-table description: Clone Dynamic Table hints: readOnly: false destructive: false idempotent: false call: dynamic-table-dynamic-table.clonedynamictable with: targetDatabase: tools.targetDatabase targetSchema: tools.targetSchema body: tools.body outputParameters: - type: object mapping: $. - name: refresh-dynamic-table description: Refresh the Dynamic Table hints: readOnly: false destructive: false idempotent: false call: dynamic-table-dynamic-table.refreshdynamictable outputParameters: - type: object mapping: $. - name: resume-refreshes-dynamic-table description: Resume Refreshes on the Dynamic Table hints: readOnly: false destructive: false idempotent: false call: dynamic-table-dynamic-table.resumedynamictable outputParameters: - type: object mapping: $. - name: resume-recluster-dynamic-table description: Resume Recluster of a Dynamic Table hints: readOnly: false destructive: false idempotent: false call: dynamic-table-dynamic-table.resumereclusterdynamictable outputParameters: - type: object mapping: $. - name: suspend-refreshes-dynamic-table description: Suspend Refreshes on the Dynamic Table hints: readOnly: false destructive: false idempotent: false call: dynamic-table-dynamic-table.suspenddynamictable outputParameters: - type: object mapping: $. - name: suspend-recluster-dynamic-table description: Suspend Recluster of a Dynamic Table hints: readOnly: false destructive: false idempotent: false call: dynamic-table-dynamic-table.suspendreclusterdynamictable outputParameters: - type: object mapping: $. - name: swap-another-dynamic-table description: Swap With Another Dynamic Table hints: readOnly: false destructive: false idempotent: false call: dynamic-table-dynamic-table.swapwithdynamictable with: targetName: tools.targetName targetDatabase: tools.targetDatabase targetSchema: tools.targetSchema outputParameters: - type: object mapping: $. - name: undrop-dynamic-table description: Undrop a Dynamic Table hints: readOnly: false destructive: false idempotent: false call: dynamic-table-dynamic-table.undropdynamictable outputParameters: - type: object mapping: $.