openapi: 3.0.0 servers: - description: Snowflake REST Server url: https://org-account.snowflakecomputing.com info: version: 0.0.1 title: Snowflake Catalog Integration API description: The Snowflake Catalog Integration API is a REST API that you can use to access, update, and perform certain actions on Catalog Integration resource in a Snowflake database. contact: name: Snowflake, Inc. url: https://snowflake.com email: support@snowflake.com paths: /api/v2/catalog-integrations: get: summary: List Catalog Integrations. tags: - catalog-integration description: List catalog integrations. operationId: listCatalogIntegrations parameters: - $ref: common.yaml#/components/parameters/like responses: '200': description: successful headers: X-Snowflake-Request-ID: $ref: common.yaml#/components/headers/X-Snowflake-Request-ID content: application/json: schema: type: array items: $ref: '#/components/schemas/CatalogIntegration' examples: Listcatalogintegrations200Example: summary: Default listCatalogIntegrations 200 response x-microcks-default: true value: - name: Example Title catalog: catalog_source: GLUE table_format: ICEBERG enabled: true comment: example_value type: example_value category: example_value created_on: '2026-01-15T10:30:00Z' '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 Catalog Integration. tags: - catalog-integration description: Create a catalog integration. operationId: createCatalogIntegration parameters: - $ref: common.yaml#/components/parameters/createMode 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 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CatalogIntegration' examples: CreatecatalogintegrationRequestExample: summary: Default createCatalogIntegration request x-microcks-default: true value: name: Example Title catalog: catalog_source: GLUE table_format: ICEBERG enabled: true comment: example_value type: example_value category: example_value created_on: '2026-01-15T10:30:00Z' x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/catalog-integrations/{name}: get: summary: Fetch a Catalog Integration. tags: - catalog-integration description: Fetch a catalog integration. operationId: fetchCatalogIntegration parameters: - $ref: common.yaml#/components/parameters/name responses: '200': description: successful headers: X-Snowflake-Request-ID: $ref: common.yaml#/components/headers/X-Snowflake-Request-ID content: application/json: schema: $ref: '#/components/schemas/CatalogIntegration' examples: Fetchcatalogintegration200Example: summary: Default fetchCatalogIntegration 200 response x-microcks-default: true value: name: Example Title catalog: catalog_source: GLUE table_format: ICEBERG enabled: true comment: example_value type: example_value category: example_value created_on: '2026-01-15T10:30:00Z' '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 Catalog Integration. tags: - catalog-integration description: Delete a catalog integration. operationId: deleteCatalogIntegration parameters: - $ref: common.yaml#/components/parameters/name - $ref: common.yaml#/components/parameters/ifExists 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: CatalogIntegration: type: object description: Catalog integration properties: name: type: string pattern: ^"([^"]|"")+"|[a-zA-Z_][a-zA-Z0-9_$]*$ description: Name of the catalog integration. example: Example Title catalog: $ref: '#/components/schemas/Catalog' description: Type of catalog and its parameters. table_format: type: string enum: - ICEBERG description: Table format of the catalog. example: ICEBERG enabled: type: boolean description: 'whether this catalog integration is available to use for Iceberg tables. ' example: true comment: type: string description: Comment. example: example_value type: type: string readOnly: true description: Type of the integration. Always CATALOG. example: example_value category: type: string readOnly: true description: Category of the integration. Always CATALOG. example: example_value created_on: type: string format: date-time readOnly: true description: Date and time when the catalog integration was created. example: '2026-01-15T10:30:00Z' required: - name - catalog - table_format - enabled Catalog: type: object properties: catalog_source: type: string enum: - GLUE - OBJECT_STORE - POLARIS description: Type of external catalog example: GLUE required: - catalog_source discriminator: propertyName: catalog_source mapping: GLUE: Glue OBJECT_STORE: ObjectStore POLARIS: Polaris Glue: type: object allOf: - $ref: '#/components/schemas/Catalog' properties: glue_aws_role_arn: type: string description: ARN for AWS role to assume example: example_value glue_catalog_id: type: string description: Glue catalog id example: '500123' glue_region: type: string description: AWS region of the Glue catalog. Must be specified if the Snowflake account is not hosted on AWS. example: example_value catalog_namespace: type: string description: default AWS Glue catalog namespace for all Iceberg table that use this catalog integration example: example_value required: - glue_aws_role_arn - glue_catalog_id - catalog_namespace ObjectStore: type: object allOf: - $ref: '#/components/schemas/Catalog' Polaris: type: object allOf: - $ref: '#/components/schemas/Catalog' properties: catalog_namespace: type: string description: Default Polaris namespace used by all Iceberg tables associated with this catalog integration example: example_value rest_config: $ref: '#/components/schemas/RestConfig' description: Information about the Polaris catalog account and catalog name. rest_authentication: $ref: '#/components/schemas/RestAuthentication' description: Authentication details that Snowflake uses to connect to the Polaris catalog. required: - catalog_namespace - rest_config - rest_authentication RestConfig: type: object properties: catalog_uri: type: string description: Customer's Polaris account locator URL example: example_value warehouse: type: string description: Name of the catalog to use in Polaris example: example_value required: - catalog_uri - warehouse RestAuthentication: type: object properties: type: type: string enum: - OAUTH description: Authentication type. example: OAUTH required: - type discriminator: propertyName: type mapping: OAUTH: OAuth OAuth: type: object allOf: - $ref: '#/components/schemas/RestAuthentication' properties: oauth_client_id: type: string description: The client ID of the OAuth2 credential associated with the Polaris service connection. example: '500123' oauth_client_secret: type: string description: The secret for the OAuth2 credential associated with the Polaris service connection. example: example_value oauth_allowed_scopes: type: array items: type: string description: The scope of the OAuth token. Only one scope is included in the Iceberg REST API specification, but catalogs can support more than one scope in their implementation. example: [] required: - oauth_client_id - oauth_client_secret - oauth_allowed_scopes