openapi: 3.0.0 servers: - description: Snowflake REST Server url: https://org-account.snowflakecomputing.com info: version: 0.0.1 title: Snowflake External Volume API description: The Snowflake External Volume API is a REST API that you can use to access, update, and perform certain actions on External Volume resource in a Snowflake database. contact: name: Snowflake, Inc. url: https://snowflake.com email: support@snowflake.com paths: /api/v2/external-volumes: get: summary: List External Volumes tags: - external-volume description: List external volumes operationId: listExternalVolumes 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 Link: $ref: common.yaml#/components/headers/Link content: application/json: schema: type: array items: $ref: '#/components/schemas/ExternalVolume' examples: Listexternalvolumes200Example: summary: Default listExternalVolumes 200 response x-microcks-default: true value: - name: Example Title storage_locations: - {} allow_writes: true comment: example_value created_on: '2026-01-15T10:30:00Z' owner: example_value owner_role_type: 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 an External Volume tags: - external-volume description: Create an external volume operationId: createExternalVolume 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/ExternalVolume' examples: CreateexternalvolumeRequestExample: summary: Default createExternalVolume request x-microcks-default: true value: name: Example Title storage_locations: - name: Example Title storage_provider: S3 allow_writes: true comment: example_value created_on: '2026-01-15T10:30:00Z' owner: example_value owner_role_type: example_value x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v2/external-volumes/{name}: get: summary: Fetch an External Volume tags: - external-volume description: Fetch an external volume operationId: fetchExternalVolume 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 Link: $ref: common.yaml#/components/headers/Link content: application/json: schema: $ref: '#/components/schemas/ExternalVolume' examples: Fetchexternalvolume200Example: summary: Default fetchExternalVolume 200 response x-microcks-default: true value: name: Example Title storage_locations: - name: Example Title storage_provider: S3 allow_writes: true comment: example_value created_on: '2026-01-15T10:30:00Z' owner: example_value owner_role_type: 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 delete: summary: Delete an External Volume tags: - external-volume description: Delete an external volume operationId: deleteExternalVolume 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 /api/v2/external-volumes/{name}:undrop: post: summary: Undrop an External Volume tags: - external-volume description: Undrop an external volume operationId: undropExternalVolume parameters: - $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 components: schemas: ExternalVolume: type: object description: A Snowflake external volume properties: name: type: string pattern: ^"([^"]|"")+"|[a-zA-Z_][a-zA-Z0-9_$]*$ description: String that specifies the identifier (the name) for the external volume; must be unique in your account. example: Example Title storage_locations: type: array items: $ref: '#/components/schemas/StorageLocation' description: Set of named cloud storage locations in different regions and, optionally, cloud platforms. example: [] allow_writes: type: boolean description: Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. example: true comment: type: string description: String (literal) that specifies a comment for the external volume. example: example_value created_on: type: string format: date-time readOnly: true description: Date and time when the external volume was created. example: '2026-01-15T10:30:00Z' owner: type: string pattern: ^"([^"]|"")+"|[a-zA-Z_][a-zA-Z0-9_$]*$ readOnly: true description: Role that owns the external volume example: example_value owner_role_type: type: string pattern: ^"([^"]|"")+"|[a-zA-Z_][a-zA-Z0-9_$]*$ readOnly: true description: The type of role that owns the external volume example: example_value required: - name - storage_locations StorageLocation: type: object properties: name: type: string description: '' example: Example Title storage_provider: type: string enum: - S3 - S3GOV - GCS - AZURE description: Specifies the cloud storage provider that stores your data files. example: S3 required: - name - storage_provider discriminator: propertyName: storage_provider mapping: S3: StorageLocationS3 S3GOV: StorageLocationS3Gov GCS: StorageLocationGcs AZURE: StorageLocationAzure StorageLocationS3: allOf: - $ref: '#/components/schemas/StorageLocation' properties: storage_aws_role_arn: type: string description: Specifies the case-sensitive Amazon Resource Name (ARN) of the AWS identity and access management (IAM) role that grants privileges on the S3 bucket containing your data files. example: example_value storage_base_url: type: string description: Specifies the base URL for your cloud storage location. example: https://www.example.com storage_aws_external_id: type: string description: Optionally specifies an external ID that Snowflake uses to establish a trust relationship with AWS. example: '500123' encryption: $ref: '#/components/schemas/Encryption' description: Specifies the properties needed to encrypt data on the external volume. required: - storage_aws_role_arn - storage_base_url Encryption: type: object properties: type: type: string enum: - NONE - AWS_SSE_S3 - AWS_SSE_KMS - GCS_SSE_KMS description: Specifies the encryption type used. example: NONE kms_key_id: type: string description: Specifies the ID for the Cloud KMS-managed key used to encrypt files written to the bucket. example: '500123' required: - type StorageLocationS3Gov: allOf: - $ref: '#/components/schemas/StorageLocation' properties: storage_aws_role_arn: type: string description: Specifies the case-sensitive Amazon Resource Name (ARN) of the AWS identity and access management (IAM) role that grants privileges on the S3 bucket containing your data files. example: example_value storage_base_url: type: string description: Specifies the base URL for your cloud storage location. example: https://www.example.com storage_aws_external_id: type: string description: Optionally specifies an external ID that Snowflake uses to establish a trust relationship with AWS. example: '500123' encryption: $ref: '#/components/schemas/Encryption' description: Specifies the properties needed to encrypt data on the external volume. required: - storage_aws_role_arn - storage_base_url StorageLocationGcs: allOf: - $ref: '#/components/schemas/StorageLocation' properties: storage_base_url: type: string description: Specifies the base URL for your cloud storage location. example: https://www.example.com encryption: $ref: '#/components/schemas/Encryption' description: Specifies the properties needed to encrypt data on the external volume. required: - storage_base_url StorageLocationAzure: allOf: - $ref: '#/components/schemas/StorageLocation' properties: azure_tenant_id: type: string description: Specifies the ID for your Office 365 tenant that the allowed and blocked storage accounts belong to. example: '500123' storage_base_url: type: string description: Specifies the base URL for your cloud storage location. example: https://www.example.com required: - azure_tenant_id - storage_base_url 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: []