openapi: 3.0.0 servers: - description: Snowflake Schema API url: https://org-account.snowflakecomputing.com info: version: 0.0.1 title: Snowflake Schema API description: The Snowflake Schema API is a REST API that you can use to access, update, and perform certain actions on a Snowflake schema. contact: name: Snowflake, Inc. url: https://snowflake.com email: support@snowflake.com paths: /api/v2/databases/{database}/schemas: get: summary: List Schemas. tags: - schema description: Lists the accessible schemas. operationId: listSchemas parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/like - $ref: common.yaml#/components/parameters/startsWith - $ref: common.yaml#/components/parameters/showLimit - $ref: common.yaml#/components/parameters/fromName - name: history in: query description: 'Whether to include dropped schemas that have not yet been purged. Default: `false`.' schema: type: boolean default: false example: true responses: '200': description: Successful request. headers: X-Snowflake-Request-ID: $ref: common.yaml#/components/headers/X-Snowflake-Request-ID Link: $ref: common.yaml#/components/headers/Link content: application/json: schema: type: array items: $ref: '#/components/schemas/Schema' examples: Listschemas200Example: summary: Default listSchemas 200 response x-microcks-default: true value: - created_on: '2026-01-15T10:30:00Z' name: {} kind: PERMANENT is_default: true is_current: true database_name: example_value owner: example_value comment: example_value options: example_value managed_access: true retention_time: 10 dropped_on: '2026-01-15T10:30:00Z' owner_role_type: example_value budget: example_value data_retention_time_in_days: 10 default_ddl_collation: example_value log_level: example_value pipe_execution_paused: true max_data_extension_time_in_days: 10 suspend_task_after_num_failures: 10 trace_level: example_value user_task_managed_initial_warehouse_size: example_value user_task_timeout_ms: 10 serverless_task_min_statement_size: example_value serverless_task_max_statement_size: example_value '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK post: summary: Create a Schema. tags: - schema description: Creates a schema, with modifiers as query parameters. You must provide the full schema definition when creating a schema. operationId: createSchema parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/createMode - name: kind in: query description: Type of schema to create. Currently, Snowflake supports only `transient` and `permanent` (also represented by the empty string). schema: type: string default: '' deprecated: true example: example_value requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Schema' examples: CreateschemaRequestExample: summary: Default createSchema request x-microcks-default: true value: created_on: '2026-01-15T10:30:00Z' name: {} kind: PERMANENT is_default: true is_current: true database_name: example_value owner: example_value comment: example_value options: example_value managed_access: true retention_time: 10 dropped_on: '2026-01-15T10:30:00Z' owner_role_type: example_value budget: example_value data_retention_time_in_days: 10 default_ddl_collation: example_value log_level: example_value pipe_execution_paused: true max_data_extension_time_in_days: 10 suspend_task_after_num_failures: 10 trace_level: example_value user_task_managed_initial_warehouse_size: example_value user_task_timeout_ms: 10 serverless_task_min_statement_size: example_value serverless_task_max_statement_size: example_value responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/databases/{database}/schemas/{name}:clone: post: summary: Clone a Schema. tags: - schema description: Clones an existing schema, with modifiers as query parameters. You must provide the full schema definition when cloning an existing schema. operationId: cloneSchema parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/name - $ref: common.yaml#/components/parameters/createMode - name: kind in: query description: Type of schema to clone. Currently, Snowflake supports only `transient` and `permanent` (also represented by the empty string). schema: type: string default: '' deprecated: true example: example_value - name: targetDatabase in: query description: Database of the newly created schema. Defaults to the source schema's database. schema: $ref: ./common.yaml#/components/schemas/Identifier example: example_value requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SchemaClone' examples: CloneschemaRequestExample: summary: Default cloneSchema request x-microcks-default: true value: point_of_time: {} responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/databases/{database}/schemas/{name}:undrop: post: summary: Undrop a Schema. tags: - schema description: Undrops schema. operationId: undropSchema parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/name responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/databases/{database}/schemas/{name}: get: tags: - schema description: Fetches a schema. operationId: fetchSchema parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/name responses: '200': description: successful headers: X-Snowflake-Request-ID: $ref: common.yaml#/components/headers/X-Snowflake-Request-ID Link: $ref: common.yaml#/components/headers/Link content: application/json: schema: $ref: '#/components/schemas/Schema' examples: Fetchschema200Example: summary: Default fetchSchema 200 response x-microcks-default: true value: created_on: '2026-01-15T10:30:00Z' name: {} kind: PERMANENT is_default: true is_current: true database_name: example_value owner: example_value comment: example_value options: example_value managed_access: true retention_time: 10 dropped_on: '2026-01-15T10:30:00Z' owner_role_type: example_value budget: example_value data_retention_time_in_days: 10 default_ddl_collation: example_value log_level: example_value pipe_execution_paused: true max_data_extension_time_in_days: 10 suspend_task_after_num_failures: 10 trace_level: example_value user_task_managed_initial_warehouse_size: example_value user_task_timeout_ms: 10 serverless_task_min_statement_size: example_value serverless_task_max_statement_size: example_value '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK put: summary: Create a New, or Alters an Existing, Schema. tags: - schema description: Creates a new, or alters an existing, schema. You must provide the full schema definition even when altering an existing schema. operationId: createOrAlterSchema parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/name - name: kind in: query description: Type of schema to create. Currently, Snowflake supports only `transient` and `permanent` (also represented by the empty string). schema: type: string default: '' deprecated: true example: example_value requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Schema' examples: CreateoralterschemaRequestExample: summary: Default createOrAlterSchema request x-microcks-default: true value: created_on: '2026-01-15T10:30:00Z' name: {} kind: PERMANENT is_default: true is_current: true database_name: example_value owner: example_value comment: example_value options: example_value managed_access: true retention_time: 10 dropped_on: '2026-01-15T10:30:00Z' owner_role_type: example_value budget: example_value data_retention_time_in_days: 10 default_ddl_collation: example_value log_level: example_value pipe_execution_paused: true max_data_extension_time_in_days: 10 suspend_task_after_num_failures: 10 trace_level: example_value user_task_managed_initial_warehouse_size: example_value user_task_timeout_ms: 10 serverless_task_min_statement_size: example_value serverless_task_max_statement_size: example_value responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: summary: Delete a Schema. tags: - schema description: Deletes the specified schema. If you enable the `ifExists` parameter, the operation succeeds even if the schema does not exist. Otherwise, a 404 failure is returned if the schema does not exist. if the drop is unsuccessful. operationId: deleteSchema parameters: - $ref: common.yaml#/components/parameters/database - $ref: common.yaml#/components/parameters/name - $ref: common.yaml#/components/parameters/ifExists - name: restrict in: query description: 'Whether to drop the schema if foreign keys exist that reference any tables in the schema. - `true`: Return a warning about existing foreign key references and don''t drop the schema. - `false`: Drop the schema and all objects in the database, including tables with primary or unique keys that are referenced by foreign keys in other tables. Default: `false`.' schema: type: boolean default: false example: true responses: '200': $ref: common.yaml#/components/responses/200SuccessResponse '202': $ref: common.yaml#/components/responses/202SuccessAcceptedResponse '400': $ref: common.yaml#/components/responses/400BadRequest '401': $ref: common.yaml#/components/responses/401Unauthorized '403': $ref: common.yaml#/components/responses/403Forbidden '404': $ref: common.yaml#/components/responses/404NotFound '405': $ref: common.yaml#/components/responses/405MethodNotAllowed '408': $ref: common.yaml#/components/responses/408RequestTimeout '409': $ref: common.yaml#/components/responses/409Conflict '410': $ref: common.yaml#/components/responses/410Gone '429': $ref: common.yaml#/components/responses/429LimitExceeded '500': $ref: common.yaml#/components/responses/500InternalServerError '503': $ref: common.yaml#/components/responses/503ServiceUnavailable '504': $ref: common.yaml#/components/responses/504GatewayTimeout x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: Schema: type: object description: Snowflake schema definition. properties: created_on: type: string format: date-time readOnly: true description: Date and time the schema was created. example: '2026-01-15T10:30:00Z' name: $ref: ./common.yaml#/components/schemas/Identifier description: Name of the schema. kind: type: string enum: - PERMANENT - TRANSIENT default: PERMANENT description: Schema type, permanent (default) or transient. example: PERMANENT is_default: type: boolean readOnly: true description: Default schema for a user. example: true is_current: type: boolean readOnly: true description: Current schema for the session. example: true database_name: type: string readOnly: true description: Database that the schema belongs to example: example_value owner: type: string readOnly: true description: Name of the role that owns the schema. example: example_value comment: type: string description: Optional comment in which to store information related to the schema. example: example_value options: type: string readOnly: true example: example_value managed_access: type: boolean default: false description: Whether this schema is a managed access schema that centralizes privilege management with the schema owner. example: true retention_time: type: integer readOnly: true description: Number of days that historical data is retained for Time Travel. example: 10 dropped_on: type: string format: date-time readOnly: true nullable: true description: Date and time the schema was dropped. example: '2026-01-15T10:30:00Z' owner_role_type: type: string readOnly: true description: Type of role that owns the object, either `ROLE` or `DATABASE_ROLE`. example: example_value budget: type: string readOnly: true description: Budget that defines a monthly spending limit on the compute costs for a Snowflake account or a custom group of Snowflake objects. example: example_value data_retention_time_in_days: type: integer description: Number of days for which Time Travel actions (CLONE and UNDROP) can be performed on the schema, as well as specifying the default Time Travel retention time for all tables created in the schema example: 10 default_ddl_collation: type: string description: Specifies a default collation specification for all tables added to the schema. You an override the default at the schema and individual table levels. example: example_value log_level: type: string description: Severity level of messages that should be ingested and made available in the active event table. Currently, Snowflake supports only `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`, `FATAL` and `OFF`. example: example_value pipe_execution_paused: type: boolean description: Whether pipe execution is paused. example: true max_data_extension_time_in_days: type: integer description: Maximum number of days for which Snowflake can extend the data retention period for tables in the schema to prevent streams on the tables from becoming stale. example: 10 suspend_task_after_num_failures: type: integer description: Specifies the number of consecutive failed task runs after which the current task is suspended automatically. example: 10 trace_level: type: string description: How trace events are ingested into the event table. Currently, Snowflake supports only `ALWAYS`, `ON_EVENT`, and `OFF`. example: example_value user_task_managed_initial_warehouse_size: type: string description: Size of the compute resources to provision for the first run of the serverless task, before a task history is available for Snowflake to determine an ideal size. example: example_value user_task_timeout_ms: type: integer description: Time limit, in milliseconds, for a single run of the task before it times out. example: 10 serverless_task_min_statement_size: type: string description: Specifies the minimum allowed warehouse size for the serverless task. Minimum XSMALL, Maximum XXLARGE. example: example_value serverless_task_max_statement_size: type: string description: Specifies the maximum allowed warehouse size for the serverless task. Minimum XSMALL, Maximum XXLARGE. example: example_value required: - name SchemaClone: type: object description: Schema clone definition. allOf: - $ref: '#/components/schemas/Schema' properties: point_of_time: $ref: common.yaml#/components/schemas/PointOfTime securitySchemes: KeyPair: $ref: common.yaml#/components/securitySchemes/KeyPair ExternalOAuth: $ref: common.yaml#/components/securitySchemes/ExternalOAuth SnowflakeOAuth: $ref: common.yaml#/components/securitySchemes/SnowflakeOAuth security: - KeyPair: [] - ExternalOAuth: [] - SnowflakeOAuth: []