published on Saturday, May 9, 2026 by Pulumi
published on Saturday, May 9, 2026 by Pulumi
!> Caution: Preview Feature This feature is considered a preview feature in the provider, regardless of the state of the resource in Snowflake. We do not guarantee its stability. It will be reworked and marked as a stable feature in future releases. Breaking changes are expected, even without bumping the major version. To use this feature, add the relevant feature name to previewFeaturesEnabled field in the provider configuration. Please always refer to the Getting Help section in our Github repo to best determine how to get help for your questions.
!> Note According to Snowflake docs, the ALTER EXTERNAL VOLUME statement fails if you attempt to remove the active storage location used by Iceberg tables in your account. This means that Terraform may produce an error during apply. Ensure the active storage location is not being removed, or manually adjust the external volume in Snowflake before applying.
Resource used to manage external volume objects. For more information, check external volume documentation.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as snowflake from "@pulumi/snowflake";
// Basic - S3 storage location with required fields only
const s3Basic = new snowflake.ExternalVolume("s3_basic", {
name: "my_external_volume",
storageLocations: [{
storageLocationName: "my-s3-location",
storageProvider: "S3",
storageBaseUrl: "s3://mybucket/",
storageAwsRoleArn: "arn:aws:iam::123456789012:role/myrole",
}],
});
// Complete - S3 with all optional fields
const s3Complete = new snowflake.ExternalVolume("s3_complete", {
name: "my_external_volume_complete",
comment: "my external volume",
allowWrites: "true",
storageLocations: [{
storageLocationName: "my-s3-location",
storageProvider: "S3",
storageBaseUrl: "s3://mybucket/",
storageAwsRoleArn: "arn:aws:iam::123456789012:role/myrole",
storageAwsAccessPointArn: "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point",
usePrivatelinkEndpoint: "true",
encryptionType: "AWS_SSE_KMS",
encryptionKmsKeyId: "1234abcd-12ab-34cd-56ef-1234567890ab",
}],
});
// Basic - GCS storage location with required fields only
const gcsBasic = new snowflake.ExternalVolume("gcs_basic", {
name: "my_gcs_external_volume",
storageLocations: [{
storageLocationName: "my-gcs-location",
storageProvider: "GCS",
storageBaseUrl: "gcs://mybucket/",
}],
});
// Complete - GCS with all optional fields
const gcsComplete = new snowflake.ExternalVolume("gcs_complete", {
name: "my_gcs_external_volume_complete",
storageLocations: [{
storageLocationName: "my-gcs-location",
storageProvider: "GCS",
storageBaseUrl: "gcs://mybucket/",
encryptionType: "GCS_SSE_KMS",
encryptionKmsKeyId: "1234abcd-12ab-34cd-56ef-1234567890ab",
}],
});
// Basic - Azure storage location with required fields only
const azureBasic = new snowflake.ExternalVolume("azure_basic", {
name: "my_azure_external_volume",
storageLocations: [{
storageLocationName: "my-azure-location",
storageProvider: "AZURE",
storageBaseUrl: "azure://myaccount.blob.core.windows.net/mycontainer/",
azureTenantId: "123e4567-e89b-12d3-a456-426614174000",
}],
});
// Complete - Azure with all optional fields
const azureComplete = new snowflake.ExternalVolume("azure_complete", {
name: "my_azure_external_volume_complete",
comment: "my azure external volume",
allowWrites: "true",
storageLocations: [{
storageLocationName: "my-azure-location",
storageProvider: "AZURE",
storageBaseUrl: "azure://myaccount.blob.core.windows.net/mycontainer/",
azureTenantId: "123e4567-e89b-12d3-a456-426614174000",
usePrivatelinkEndpoint: "true",
}],
});
// S3-compatible storage location
const s3compat = new snowflake.ExternalVolume("s3compat", {
name: "my_s3compat_external_volume",
storageLocations: [{
storageLocationName: "my-s3compat-location",
storageProvider: "S3COMPAT",
storageBaseUrl: "s3compat://mybucket/",
storageEndpoint: "https://s3-compatible.example.com",
storageAwsKeyId: awsKeyId,
storageAwsSecretKey: awsSecretKey,
}],
});
import pulumi
import pulumi_snowflake as snowflake
# Basic - S3 storage location with required fields only
s3_basic = snowflake.ExternalVolume("s3_basic",
name="my_external_volume",
storage_locations=[{
"storage_location_name": "my-s3-location",
"storage_provider": "S3",
"storage_base_url": "s3://mybucket/",
"storage_aws_role_arn": "arn:aws:iam::123456789012:role/myrole",
}])
# Complete - S3 with all optional fields
s3_complete = snowflake.ExternalVolume("s3_complete",
name="my_external_volume_complete",
comment="my external volume",
allow_writes="true",
storage_locations=[{
"storage_location_name": "my-s3-location",
"storage_provider": "S3",
"storage_base_url": "s3://mybucket/",
"storage_aws_role_arn": "arn:aws:iam::123456789012:role/myrole",
"storage_aws_access_point_arn": "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point",
"use_privatelink_endpoint": "true",
"encryption_type": "AWS_SSE_KMS",
"encryption_kms_key_id": "1234abcd-12ab-34cd-56ef-1234567890ab",
}])
# Basic - GCS storage location with required fields only
gcs_basic = snowflake.ExternalVolume("gcs_basic",
name="my_gcs_external_volume",
storage_locations=[{
"storage_location_name": "my-gcs-location",
"storage_provider": "GCS",
"storage_base_url": "gcs://mybucket/",
}])
# Complete - GCS with all optional fields
gcs_complete = snowflake.ExternalVolume("gcs_complete",
name="my_gcs_external_volume_complete",
storage_locations=[{
"storage_location_name": "my-gcs-location",
"storage_provider": "GCS",
"storage_base_url": "gcs://mybucket/",
"encryption_type": "GCS_SSE_KMS",
"encryption_kms_key_id": "1234abcd-12ab-34cd-56ef-1234567890ab",
}])
# Basic - Azure storage location with required fields only
azure_basic = snowflake.ExternalVolume("azure_basic",
name="my_azure_external_volume",
storage_locations=[{
"storage_location_name": "my-azure-location",
"storage_provider": "AZURE",
"storage_base_url": "azure://myaccount.blob.core.windows.net/mycontainer/",
"azure_tenant_id": "123e4567-e89b-12d3-a456-426614174000",
}])
# Complete - Azure with all optional fields
azure_complete = snowflake.ExternalVolume("azure_complete",
name="my_azure_external_volume_complete",
comment="my azure external volume",
allow_writes="true",
storage_locations=[{
"storage_location_name": "my-azure-location",
"storage_provider": "AZURE",
"storage_base_url": "azure://myaccount.blob.core.windows.net/mycontainer/",
"azure_tenant_id": "123e4567-e89b-12d3-a456-426614174000",
"use_privatelink_endpoint": "true",
}])
# S3-compatible storage location
s3compat = snowflake.ExternalVolume("s3compat",
name="my_s3compat_external_volume",
storage_locations=[{
"storage_location_name": "my-s3compat-location",
"storage_provider": "S3COMPAT",
"storage_base_url": "s3compat://mybucket/",
"storage_endpoint": "https://s3-compatible.example.com",
"storage_aws_key_id": aws_key_id,
"storage_aws_secret_key": aws_secret_key,
}])
package main
import (
"github.com/pulumi/pulumi-snowflake/sdk/v2/go/snowflake"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Basic - S3 storage location with required fields only
_, err := snowflake.NewExternalVolume(ctx, "s3_basic", &snowflake.ExternalVolumeArgs{
Name: pulumi.String("my_external_volume"),
StorageLocations: snowflake.ExternalVolumeStorageLocationArray{
&snowflake.ExternalVolumeStorageLocationArgs{
StorageLocationName: pulumi.String("my-s3-location"),
StorageProvider: pulumi.String("S3"),
StorageBaseUrl: pulumi.String("s3://mybucket/"),
StorageAwsRoleArn: pulumi.String("arn:aws:iam::123456789012:role/myrole"),
},
},
})
if err != nil {
return err
}
// Complete - S3 with all optional fields
_, err = snowflake.NewExternalVolume(ctx, "s3_complete", &snowflake.ExternalVolumeArgs{
Name: pulumi.String("my_external_volume_complete"),
Comment: pulumi.String("my external volume"),
AllowWrites: pulumi.String("true"),
StorageLocations: snowflake.ExternalVolumeStorageLocationArray{
&snowflake.ExternalVolumeStorageLocationArgs{
StorageLocationName: pulumi.String("my-s3-location"),
StorageProvider: pulumi.String("S3"),
StorageBaseUrl: pulumi.String("s3://mybucket/"),
StorageAwsRoleArn: pulumi.String("arn:aws:iam::123456789012:role/myrole"),
StorageAwsAccessPointArn: pulumi.String("arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point"),
UsePrivatelinkEndpoint: pulumi.String("true"),
EncryptionType: pulumi.String("AWS_SSE_KMS"),
EncryptionKmsKeyId: pulumi.String("1234abcd-12ab-34cd-56ef-1234567890ab"),
},
},
})
if err != nil {
return err
}
// Basic - GCS storage location with required fields only
_, err = snowflake.NewExternalVolume(ctx, "gcs_basic", &snowflake.ExternalVolumeArgs{
Name: pulumi.String("my_gcs_external_volume"),
StorageLocations: snowflake.ExternalVolumeStorageLocationArray{
&snowflake.ExternalVolumeStorageLocationArgs{
StorageLocationName: pulumi.String("my-gcs-location"),
StorageProvider: pulumi.String("GCS"),
StorageBaseUrl: pulumi.String("gcs://mybucket/"),
},
},
})
if err != nil {
return err
}
// Complete - GCS with all optional fields
_, err = snowflake.NewExternalVolume(ctx, "gcs_complete", &snowflake.ExternalVolumeArgs{
Name: pulumi.String("my_gcs_external_volume_complete"),
StorageLocations: snowflake.ExternalVolumeStorageLocationArray{
&snowflake.ExternalVolumeStorageLocationArgs{
StorageLocationName: pulumi.String("my-gcs-location"),
StorageProvider: pulumi.String("GCS"),
StorageBaseUrl: pulumi.String("gcs://mybucket/"),
EncryptionType: pulumi.String("GCS_SSE_KMS"),
EncryptionKmsKeyId: pulumi.String("1234abcd-12ab-34cd-56ef-1234567890ab"),
},
},
})
if err != nil {
return err
}
// Basic - Azure storage location with required fields only
_, err = snowflake.NewExternalVolume(ctx, "azure_basic", &snowflake.ExternalVolumeArgs{
Name: pulumi.String("my_azure_external_volume"),
StorageLocations: snowflake.ExternalVolumeStorageLocationArray{
&snowflake.ExternalVolumeStorageLocationArgs{
StorageLocationName: pulumi.String("my-azure-location"),
StorageProvider: pulumi.String("AZURE"),
StorageBaseUrl: pulumi.String("azure://myaccount.blob.core.windows.net/mycontainer/"),
AzureTenantId: pulumi.String("123e4567-e89b-12d3-a456-426614174000"),
},
},
})
if err != nil {
return err
}
// Complete - Azure with all optional fields
_, err = snowflake.NewExternalVolume(ctx, "azure_complete", &snowflake.ExternalVolumeArgs{
Name: pulumi.String("my_azure_external_volume_complete"),
Comment: pulumi.String("my azure external volume"),
AllowWrites: pulumi.String("true"),
StorageLocations: snowflake.ExternalVolumeStorageLocationArray{
&snowflake.ExternalVolumeStorageLocationArgs{
StorageLocationName: pulumi.String("my-azure-location"),
StorageProvider: pulumi.String("AZURE"),
StorageBaseUrl: pulumi.String("azure://myaccount.blob.core.windows.net/mycontainer/"),
AzureTenantId: pulumi.String("123e4567-e89b-12d3-a456-426614174000"),
UsePrivatelinkEndpoint: pulumi.String("true"),
},
},
})
if err != nil {
return err
}
// S3-compatible storage location
_, err = snowflake.NewExternalVolume(ctx, "s3compat", &snowflake.ExternalVolumeArgs{
Name: pulumi.String("my_s3compat_external_volume"),
StorageLocations: snowflake.ExternalVolumeStorageLocationArray{
&snowflake.ExternalVolumeStorageLocationArgs{
StorageLocationName: pulumi.String("my-s3compat-location"),
StorageProvider: pulumi.String("S3COMPAT"),
StorageBaseUrl: pulumi.String("s3compat://mybucket/"),
StorageEndpoint: pulumi.String("https://s3-compatible.example.com"),
StorageAwsKeyId: pulumi.Any(awsKeyId),
StorageAwsSecretKey: pulumi.Any(awsSecretKey),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Snowflake = Pulumi.Snowflake;
return await Deployment.RunAsync(() =>
{
// Basic - S3 storage location with required fields only
var s3Basic = new Snowflake.ExternalVolume("s3_basic", new()
{
Name = "my_external_volume",
StorageLocations = new[]
{
new Snowflake.Inputs.ExternalVolumeStorageLocationArgs
{
StorageLocationName = "my-s3-location",
StorageProvider = "S3",
StorageBaseUrl = "s3://mybucket/",
StorageAwsRoleArn = "arn:aws:iam::123456789012:role/myrole",
},
},
});
// Complete - S3 with all optional fields
var s3Complete = new Snowflake.ExternalVolume("s3_complete", new()
{
Name = "my_external_volume_complete",
Comment = "my external volume",
AllowWrites = "true",
StorageLocations = new[]
{
new Snowflake.Inputs.ExternalVolumeStorageLocationArgs
{
StorageLocationName = "my-s3-location",
StorageProvider = "S3",
StorageBaseUrl = "s3://mybucket/",
StorageAwsRoleArn = "arn:aws:iam::123456789012:role/myrole",
StorageAwsAccessPointArn = "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point",
UsePrivatelinkEndpoint = "true",
EncryptionType = "AWS_SSE_KMS",
EncryptionKmsKeyId = "1234abcd-12ab-34cd-56ef-1234567890ab",
},
},
});
// Basic - GCS storage location with required fields only
var gcsBasic = new Snowflake.ExternalVolume("gcs_basic", new()
{
Name = "my_gcs_external_volume",
StorageLocations = new[]
{
new Snowflake.Inputs.ExternalVolumeStorageLocationArgs
{
StorageLocationName = "my-gcs-location",
StorageProvider = "GCS",
StorageBaseUrl = "gcs://mybucket/",
},
},
});
// Complete - GCS with all optional fields
var gcsComplete = new Snowflake.ExternalVolume("gcs_complete", new()
{
Name = "my_gcs_external_volume_complete",
StorageLocations = new[]
{
new Snowflake.Inputs.ExternalVolumeStorageLocationArgs
{
StorageLocationName = "my-gcs-location",
StorageProvider = "GCS",
StorageBaseUrl = "gcs://mybucket/",
EncryptionType = "GCS_SSE_KMS",
EncryptionKmsKeyId = "1234abcd-12ab-34cd-56ef-1234567890ab",
},
},
});
// Basic - Azure storage location with required fields only
var azureBasic = new Snowflake.ExternalVolume("azure_basic", new()
{
Name = "my_azure_external_volume",
StorageLocations = new[]
{
new Snowflake.Inputs.ExternalVolumeStorageLocationArgs
{
StorageLocationName = "my-azure-location",
StorageProvider = "AZURE",
StorageBaseUrl = "azure://myaccount.blob.core.windows.net/mycontainer/",
AzureTenantId = "123e4567-e89b-12d3-a456-426614174000",
},
},
});
// Complete - Azure with all optional fields
var azureComplete = new Snowflake.ExternalVolume("azure_complete", new()
{
Name = "my_azure_external_volume_complete",
Comment = "my azure external volume",
AllowWrites = "true",
StorageLocations = new[]
{
new Snowflake.Inputs.ExternalVolumeStorageLocationArgs
{
StorageLocationName = "my-azure-location",
StorageProvider = "AZURE",
StorageBaseUrl = "azure://myaccount.blob.core.windows.net/mycontainer/",
AzureTenantId = "123e4567-e89b-12d3-a456-426614174000",
UsePrivatelinkEndpoint = "true",
},
},
});
// S3-compatible storage location
var s3compat = new Snowflake.ExternalVolume("s3compat", new()
{
Name = "my_s3compat_external_volume",
StorageLocations = new[]
{
new Snowflake.Inputs.ExternalVolumeStorageLocationArgs
{
StorageLocationName = "my-s3compat-location",
StorageProvider = "S3COMPAT",
StorageBaseUrl = "s3compat://mybucket/",
StorageEndpoint = "https://s3-compatible.example.com",
StorageAwsKeyId = awsKeyId,
StorageAwsSecretKey = awsSecretKey,
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.snowflake.ExternalVolume;
import com.pulumi.snowflake.ExternalVolumeArgs;
import com.pulumi.snowflake.inputs.ExternalVolumeStorageLocationArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Basic - S3 storage location with required fields only
var s3Basic = new ExternalVolume("s3Basic", ExternalVolumeArgs.builder()
.name("my_external_volume")
.storageLocations(ExternalVolumeStorageLocationArgs.builder()
.storageLocationName("my-s3-location")
.storageProvider("S3")
.storageBaseUrl("s3://mybucket/")
.storageAwsRoleArn("arn:aws:iam::123456789012:role/myrole")
.build())
.build());
// Complete - S3 with all optional fields
var s3Complete = new ExternalVolume("s3Complete", ExternalVolumeArgs.builder()
.name("my_external_volume_complete")
.comment("my external volume")
.allowWrites("true")
.storageLocations(ExternalVolumeStorageLocationArgs.builder()
.storageLocationName("my-s3-location")
.storageProvider("S3")
.storageBaseUrl("s3://mybucket/")
.storageAwsRoleArn("arn:aws:iam::123456789012:role/myrole")
.storageAwsAccessPointArn("arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point")
.usePrivatelinkEndpoint("true")
.encryptionType("AWS_SSE_KMS")
.encryptionKmsKeyId("1234abcd-12ab-34cd-56ef-1234567890ab")
.build())
.build());
// Basic - GCS storage location with required fields only
var gcsBasic = new ExternalVolume("gcsBasic", ExternalVolumeArgs.builder()
.name("my_gcs_external_volume")
.storageLocations(ExternalVolumeStorageLocationArgs.builder()
.storageLocationName("my-gcs-location")
.storageProvider("GCS")
.storageBaseUrl("gcs://mybucket/")
.build())
.build());
// Complete - GCS with all optional fields
var gcsComplete = new ExternalVolume("gcsComplete", ExternalVolumeArgs.builder()
.name("my_gcs_external_volume_complete")
.storageLocations(ExternalVolumeStorageLocationArgs.builder()
.storageLocationName("my-gcs-location")
.storageProvider("GCS")
.storageBaseUrl("gcs://mybucket/")
.encryptionType("GCS_SSE_KMS")
.encryptionKmsKeyId("1234abcd-12ab-34cd-56ef-1234567890ab")
.build())
.build());
// Basic - Azure storage location with required fields only
var azureBasic = new ExternalVolume("azureBasic", ExternalVolumeArgs.builder()
.name("my_azure_external_volume")
.storageLocations(ExternalVolumeStorageLocationArgs.builder()
.storageLocationName("my-azure-location")
.storageProvider("AZURE")
.storageBaseUrl("azure://myaccount.blob.core.windows.net/mycontainer/")
.azureTenantId("123e4567-e89b-12d3-a456-426614174000")
.build())
.build());
// Complete - Azure with all optional fields
var azureComplete = new ExternalVolume("azureComplete", ExternalVolumeArgs.builder()
.name("my_azure_external_volume_complete")
.comment("my azure external volume")
.allowWrites("true")
.storageLocations(ExternalVolumeStorageLocationArgs.builder()
.storageLocationName("my-azure-location")
.storageProvider("AZURE")
.storageBaseUrl("azure://myaccount.blob.core.windows.net/mycontainer/")
.azureTenantId("123e4567-e89b-12d3-a456-426614174000")
.usePrivatelinkEndpoint("true")
.build())
.build());
// S3-compatible storage location
var s3compat = new ExternalVolume("s3compat", ExternalVolumeArgs.builder()
.name("my_s3compat_external_volume")
.storageLocations(ExternalVolumeStorageLocationArgs.builder()
.storageLocationName("my-s3compat-location")
.storageProvider("S3COMPAT")
.storageBaseUrl("s3compat://mybucket/")
.storageEndpoint("https://s3-compatible.example.com")
.storageAwsKeyId(awsKeyId)
.storageAwsSecretKey(awsSecretKey)
.build())
.build());
}
}
resources:
# Basic - S3 storage location with required fields only
s3Basic:
type: snowflake:ExternalVolume
name: s3_basic
properties:
name: my_external_volume
storageLocations:
- storageLocationName: my-s3-location
storageProvider: S3
storageBaseUrl: s3://mybucket/
storageAwsRoleArn: arn:aws:iam::123456789012:role/myrole
# Complete - S3 with all optional fields
s3Complete:
type: snowflake:ExternalVolume
name: s3_complete
properties:
name: my_external_volume_complete
comment: my external volume
allowWrites: 'true'
storageLocations:
- storageLocationName: my-s3-location
storageProvider: S3
storageBaseUrl: s3://mybucket/
storageAwsRoleArn: arn:aws:iam::123456789012:role/myrole
storageAwsAccessPointArn: arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point
usePrivatelinkEndpoint: 'true'
encryptionType: AWS_SSE_KMS
encryptionKmsKeyId: 1234abcd-12ab-34cd-56ef-1234567890ab
# Basic - GCS storage location with required fields only
gcsBasic:
type: snowflake:ExternalVolume
name: gcs_basic
properties:
name: my_gcs_external_volume
storageLocations:
- storageLocationName: my-gcs-location
storageProvider: GCS
storageBaseUrl: gcs://mybucket/
# Complete - GCS with all optional fields
gcsComplete:
type: snowflake:ExternalVolume
name: gcs_complete
properties:
name: my_gcs_external_volume_complete
storageLocations:
- storageLocationName: my-gcs-location
storageProvider: GCS
storageBaseUrl: gcs://mybucket/
encryptionType: GCS_SSE_KMS
encryptionKmsKeyId: 1234abcd-12ab-34cd-56ef-1234567890ab
# Basic - Azure storage location with required fields only
azureBasic:
type: snowflake:ExternalVolume
name: azure_basic
properties:
name: my_azure_external_volume
storageLocations:
- storageLocationName: my-azure-location
storageProvider: AZURE
storageBaseUrl: azure://myaccount.blob.core.windows.net/mycontainer/
azureTenantId: 123e4567-e89b-12d3-a456-426614174000
# Complete - Azure with all optional fields
azureComplete:
type: snowflake:ExternalVolume
name: azure_complete
properties:
name: my_azure_external_volume_complete
comment: my azure external volume
allowWrites: 'true'
storageLocations:
- storageLocationName: my-azure-location
storageProvider: AZURE
storageBaseUrl: azure://myaccount.blob.core.windows.net/mycontainer/
azureTenantId: 123e4567-e89b-12d3-a456-426614174000
usePrivatelinkEndpoint: 'true'
# S3-compatible storage location
s3compat:
type: snowflake:ExternalVolume
properties:
name: my_s3compat_external_volume
storageLocations:
- storageLocationName: my-s3compat-location
storageProvider: S3COMPAT
storageBaseUrl: s3compat://mybucket/
storageEndpoint: https://s3-compatible.example.com
storageAwsKeyId: ${awsKeyId}
storageAwsSecretKey: ${awsSecretKey}
Example coming soon!
Note If a field has a default value, it is shown next to the type in the schema.
Create ExternalVolume Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new ExternalVolume(name: string, args: ExternalVolumeArgs, opts?: CustomResourceOptions);@overload
def ExternalVolume(resource_name: str,
args: ExternalVolumeArgs,
opts: Optional[ResourceOptions] = None)
@overload
def ExternalVolume(resource_name: str,
opts: Optional[ResourceOptions] = None,
storage_locations: Optional[Sequence[ExternalVolumeStorageLocationArgs]] = None,
allow_writes: Optional[str] = None,
comment: Optional[str] = None,
name: Optional[str] = None)func NewExternalVolume(ctx *Context, name string, args ExternalVolumeArgs, opts ...ResourceOption) (*ExternalVolume, error)public ExternalVolume(string name, ExternalVolumeArgs args, CustomResourceOptions? opts = null)
public ExternalVolume(String name, ExternalVolumeArgs args)
public ExternalVolume(String name, ExternalVolumeArgs args, CustomResourceOptions options)
type: snowflake:ExternalVolume
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "snowflake_externalvolume" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args ExternalVolumeArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args ExternalVolumeArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args ExternalVolumeArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ExternalVolumeArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ExternalVolumeArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var externalVolumeResource = new Snowflake.ExternalVolume("externalVolumeResource", new()
{
StorageLocations = new[]
{
new Snowflake.Inputs.ExternalVolumeStorageLocationArgs
{
StorageBaseUrl = "string",
StorageProvider = "string",
StorageLocationName = "string",
StorageAwsRoleArn = "string",
StorageAwsExternalId = "string",
StorageAwsKeyId = "string",
AzureTenantId = "string",
StorageAwsSecretKey = "string",
StorageAwsAccessPointArn = "string",
StorageEndpoint = "string",
EncryptionType = "string",
EncryptionKmsKeyId = "string",
UsePrivatelinkEndpoint = "string",
},
},
AllowWrites = "string",
Comment = "string",
Name = "string",
});
example, err := snowflake.NewExternalVolume(ctx, "externalVolumeResource", &snowflake.ExternalVolumeArgs{
StorageLocations: snowflake.ExternalVolumeStorageLocationArray{
&snowflake.ExternalVolumeStorageLocationArgs{
StorageBaseUrl: pulumi.String("string"),
StorageProvider: pulumi.String("string"),
StorageLocationName: pulumi.String("string"),
StorageAwsRoleArn: pulumi.String("string"),
StorageAwsExternalId: pulumi.String("string"),
StorageAwsKeyId: pulumi.String("string"),
AzureTenantId: pulumi.String("string"),
StorageAwsSecretKey: pulumi.String("string"),
StorageAwsAccessPointArn: pulumi.String("string"),
StorageEndpoint: pulumi.String("string"),
EncryptionType: pulumi.String("string"),
EncryptionKmsKeyId: pulumi.String("string"),
UsePrivatelinkEndpoint: pulumi.String("string"),
},
},
AllowWrites: pulumi.String("string"),
Comment: pulumi.String("string"),
Name: pulumi.String("string"),
})
resource "snowflake_externalvolume" "externalVolumeResource" {
storage_locations {
storage_base_url = "string"
storage_provider = "string"
storage_location_name = "string"
storage_aws_role_arn = "string"
storage_aws_external_id = "string"
storage_aws_key_id = "string"
azure_tenant_id = "string"
storage_aws_secret_key = "string"
storage_aws_access_point_arn = "string"
storage_endpoint = "string"
encryption_type = "string"
encryption_kms_key_id = "string"
use_privatelink_endpoint = "string"
}
allow_writes = "string"
comment = "string"
name = "string"
}
var externalVolumeResource = new ExternalVolume("externalVolumeResource", ExternalVolumeArgs.builder()
.storageLocations(ExternalVolumeStorageLocationArgs.builder()
.storageBaseUrl("string")
.storageProvider("string")
.storageLocationName("string")
.storageAwsRoleArn("string")
.storageAwsExternalId("string")
.storageAwsKeyId("string")
.azureTenantId("string")
.storageAwsSecretKey("string")
.storageAwsAccessPointArn("string")
.storageEndpoint("string")
.encryptionType("string")
.encryptionKmsKeyId("string")
.usePrivatelinkEndpoint("string")
.build())
.allowWrites("string")
.comment("string")
.name("string")
.build());
external_volume_resource = snowflake.ExternalVolume("externalVolumeResource",
storage_locations=[{
"storage_base_url": "string",
"storage_provider": "string",
"storage_location_name": "string",
"storage_aws_role_arn": "string",
"storage_aws_external_id": "string",
"storage_aws_key_id": "string",
"azure_tenant_id": "string",
"storage_aws_secret_key": "string",
"storage_aws_access_point_arn": "string",
"storage_endpoint": "string",
"encryption_type": "string",
"encryption_kms_key_id": "string",
"use_privatelink_endpoint": "string",
}],
allow_writes="string",
comment="string",
name="string")
const externalVolumeResource = new snowflake.ExternalVolume("externalVolumeResource", {
storageLocations: [{
storageBaseUrl: "string",
storageProvider: "string",
storageLocationName: "string",
storageAwsRoleArn: "string",
storageAwsExternalId: "string",
storageAwsKeyId: "string",
azureTenantId: "string",
storageAwsSecretKey: "string",
storageAwsAccessPointArn: "string",
storageEndpoint: "string",
encryptionType: "string",
encryptionKmsKeyId: "string",
usePrivatelinkEndpoint: "string",
}],
allowWrites: "string",
comment: "string",
name: "string",
});
type: snowflake:ExternalVolume
properties:
allowWrites: string
comment: string
name: string
storageLocations:
- azureTenantId: string
encryptionKmsKeyId: string
encryptionType: string
storageAwsAccessPointArn: string
storageAwsExternalId: string
storageAwsKeyId: string
storageAwsRoleArn: string
storageAwsSecretKey: string
storageBaseUrl: string
storageEndpoint: string
storageLocationName: string
storageProvider: string
usePrivatelinkEndpoint: string
ExternalVolume Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The ExternalVolume resource accepts the following input properties:
- Storage
Locations List<ExternalVolume Storage Location> - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- Allow
Writes string - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - Comment string
- Specifies a comment for the external volume.
- Name string
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,".
- Storage
Locations []ExternalVolume Storage Location Args - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- Allow
Writes string - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - Comment string
- Specifies a comment for the external volume.
- Name string
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,".
- storage_
locations list(object) - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- allow_
writes string - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - comment string
- Specifies a comment for the external volume.
- name string
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,".
- storage
Locations List<ExternalVolume Storage Location> - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- allow
Writes String - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - comment String
- Specifies a comment for the external volume.
- name String
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,".
- storage
Locations ExternalVolume Storage Location[] - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- allow
Writes string - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - comment string
- Specifies a comment for the external volume.
- name string
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,".
- storage_
locations Sequence[ExternalVolume Storage Location Args] - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- allow_
writes str - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - comment str
- Specifies a comment for the external volume.
- name str
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,".
- storage
Locations List<Property Map> - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- allow
Writes String - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - comment String
- Specifies a comment for the external volume.
- name String
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,".
Outputs
All input properties are implicitly available as output properties. Additionally, the ExternalVolume resource produces the following output properties:
- Describe
Outputs List<ExternalVolume Describe Output> - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - Fully
Qualified stringName - Fully qualified name of the resource. For more information, see object name resolution.
- Id string
- The provider-assigned unique ID for this managed resource.
- Show
Outputs List<ExternalVolume Show Output> - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume.
- Describe
Outputs []ExternalVolume Describe Output - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - Fully
Qualified stringName - Fully qualified name of the resource. For more information, see object name resolution.
- Id string
- The provider-assigned unique ID for this managed resource.
- Show
Outputs []ExternalVolume Show Output - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume.
- describe_
outputs list(object) - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - fully_
qualified_ stringname - Fully qualified name of the resource. For more information, see object name resolution.
- id string
- The provider-assigned unique ID for this managed resource.
- show_
outputs list(object) - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume.
- describe
Outputs List<ExternalVolume Describe Output> - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - fully
Qualified StringName - Fully qualified name of the resource. For more information, see object name resolution.
- id String
- The provider-assigned unique ID for this managed resource.
- show
Outputs List<ExternalVolume Show Output> - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume.
- describe
Outputs ExternalVolume Describe Output[] - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - fully
Qualified stringName - Fully qualified name of the resource. For more information, see object name resolution.
- id string
- The provider-assigned unique ID for this managed resource.
- show
Outputs ExternalVolume Show Output[] - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume.
- describe_
outputs Sequence[ExternalVolume Describe Output] - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - fully_
qualified_ strname - Fully qualified name of the resource. For more information, see object name resolution.
- id str
- The provider-assigned unique ID for this managed resource.
- show_
outputs Sequence[ExternalVolume Show Output] - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume.
- describe
Outputs List<Property Map> - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - fully
Qualified StringName - Fully qualified name of the resource. For more information, see object name resolution.
- id String
- The provider-assigned unique ID for this managed resource.
- show
Outputs List<Property Map> - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume.
Look up Existing ExternalVolume Resource
Get an existing ExternalVolume resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: ExternalVolumeState, opts?: CustomResourceOptions): ExternalVolume@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
allow_writes: Optional[str] = None,
comment: Optional[str] = None,
describe_outputs: Optional[Sequence[ExternalVolumeDescribeOutputArgs]] = None,
fully_qualified_name: Optional[str] = None,
name: Optional[str] = None,
show_outputs: Optional[Sequence[ExternalVolumeShowOutputArgs]] = None,
storage_locations: Optional[Sequence[ExternalVolumeStorageLocationArgs]] = None) -> ExternalVolumefunc GetExternalVolume(ctx *Context, name string, id IDInput, state *ExternalVolumeState, opts ...ResourceOption) (*ExternalVolume, error)public static ExternalVolume Get(string name, Input<string> id, ExternalVolumeState? state, CustomResourceOptions? opts = null)public static ExternalVolume get(String name, Output<String> id, ExternalVolumeState state, CustomResourceOptions options)resources: _: type: snowflake:ExternalVolume get: id: ${id}import {
to = snowflake_externalvolume.example
id = "${id}"
}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Allow
Writes string - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - Comment string
- Specifies a comment for the external volume.
- Describe
Outputs List<ExternalVolume Describe Output> - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - Fully
Qualified stringName - Fully qualified name of the resource. For more information, see object name resolution.
- Name string
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,". - Show
Outputs List<ExternalVolume Show Output> - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume. - Storage
Locations List<ExternalVolume Storage Location> - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- Allow
Writes string - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - Comment string
- Specifies a comment for the external volume.
- Describe
Outputs []ExternalVolume Describe Output Args - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - Fully
Qualified stringName - Fully qualified name of the resource. For more information, see object name resolution.
- Name string
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,". - Show
Outputs []ExternalVolume Show Output Args - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume. - Storage
Locations []ExternalVolume Storage Location Args - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- allow_
writes string - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - comment string
- Specifies a comment for the external volume.
- describe_
outputs list(object) - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - fully_
qualified_ stringname - Fully qualified name of the resource. For more information, see object name resolution.
- name string
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,". - show_
outputs list(object) - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume. - storage_
locations list(object) - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- allow
Writes String - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - comment String
- Specifies a comment for the external volume.
- describe
Outputs List<ExternalVolume Describe Output> - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - fully
Qualified StringName - Fully qualified name of the resource. For more information, see object name resolution.
- name String
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,". - show
Outputs List<ExternalVolume Show Output> - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume. - storage
Locations List<ExternalVolume Storage Location> - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- allow
Writes string - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - comment string
- Specifies a comment for the external volume.
- describe
Outputs ExternalVolume Describe Output[] - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - fully
Qualified stringName - Fully qualified name of the resource. For more information, see object name resolution.
- name string
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,". - show
Outputs ExternalVolume Show Output[] - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume. - storage
Locations ExternalVolume Storage Location[] - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- allow_
writes str - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - comment str
- Specifies a comment for the external volume.
- describe_
outputs Sequence[ExternalVolume Describe Output Args] - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - fully_
qualified_ strname - Fully qualified name of the resource. For more information, see object name resolution.
- name str
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,". - show_
outputs Sequence[ExternalVolume Show Output Args] - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume. - storage_
locations Sequence[ExternalVolume Storage Location Args] - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
- allow
Writes String - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether write operations are allowed for the external volume; must be set to TRUE for Iceberg tables that use Snowflake as the catalog. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value. - comment String
- Specifies a comment for the external volume.
- describe
Outputs List<Property Map> - Outputs the result of
DESCRIBE EXTERNAL VOLUMEfor the given external volume. Because of Terraform limitations, the changes on storage*location field do not mark this field as computed. - fully
Qualified StringName - Fully qualified name of the resource. For more information, see object name resolution.
- name String
- Identifier for the external volume; must be unique for your account. Due to technical limitations (read more here), avoid using the following characters:
|,.,". - show
Outputs List<Property Map> - Outputs the result of
SHOW EXTERNAL VOLUMESfor the given external volume. - storage
Locations List<Property Map> - List of named cloud storage locations in different regions and, optionally, cloud platforms. Minimum 1 required. The order of the list is important as it impacts the active storage location, and updates will be triggered if it changes. Note that not all parameter combinations are valid as they depend on the given storage*provider. Consult the docs for more details on this.
Supporting Types
ExternalVolumeDescribeOutput, ExternalVolumeDescribeOutputArgs
- Active string
- Allow
Writes string - Comment string
- Storage
Locations []ExternalVolume Describe Output Storage Location
- active string
- allow_
writes string - comment string
- storage_
locations list(object)
- active string
- allow
Writes string - comment string
- storage
Locations ExternalVolume Describe Output Storage Location[]
- active String
- allow
Writes String - comment String
- storage
Locations List<Property Map>
ExternalVolumeDescribeOutputStorageLocation, ExternalVolumeDescribeOutputStorageLocationArgs
- Azure
Storage List<ExternalLocations Volume Describe Output Storage Location Azure Storage Location> - Encryption
Type string - Gcs
Storage List<ExternalLocations Volume Describe Output Storage Location Gcs Storage Location> - Name string
- S3Compat
Storage List<ExternalLocations Volume Describe Output Storage Location S3Compat Storage Location> - S3Storage
Locations List<ExternalVolume Describe Output Storage Location S3Storage Location> - Storage
Allowed List<string>Locations - Storage
Base stringUrl - Storage
Provider string
- Azure
Storage []ExternalLocations Volume Describe Output Storage Location Azure Storage Location - Encryption
Type string - Gcs
Storage []ExternalLocations Volume Describe Output Storage Location Gcs Storage Location - Name string
- S3Compat
Storage []ExternalLocations Volume Describe Output Storage Location S3Compat Storage Location - S3Storage
Locations []ExternalVolume Describe Output Storage Location S3Storage Location - Storage
Allowed []stringLocations - Storage
Base stringUrl - Storage
Provider string
- azure
Storage List<ExternalLocations Volume Describe Output Storage Location Azure Storage Location> - encryption
Type String - gcs
Storage List<ExternalLocations Volume Describe Output Storage Location Gcs Storage Location> - name String
- s3Compat
Storage List<ExternalLocations Volume Describe Output Storage Location S3Compat Storage Location> - s3Storage
Locations List<ExternalVolume Describe Output Storage Location S3Storage Location> - storage
Allowed List<String>Locations - storage
Base StringUrl - storage
Provider String
- azure
Storage ExternalLocations Volume Describe Output Storage Location Azure Storage Location[] - encryption
Type string - gcs
Storage ExternalLocations Volume Describe Output Storage Location Gcs Storage Location[] - name string
- s3Compat
Storage ExternalLocations Volume Describe Output Storage Location S3Compat Storage Location[] - s3Storage
Locations ExternalVolume Describe Output Storage Location S3Storage Location[] - storage
Allowed string[]Locations - storage
Base stringUrl - storage
Provider string
- azure_
storage_ Sequence[Externallocations Volume Describe Output Storage Location Azure Storage Location] - encryption_
type str - gcs_
storage_ Sequence[Externallocations Volume Describe Output Storage Location Gcs Storage Location] - name str
- s3_
compat_ Sequence[Externalstorage_ locations Volume Describe Output Storage Location S3Compat Storage Location] - s3_
storage_ Sequence[Externallocations Volume Describe Output Storage Location S3Storage Location] - storage_
allowed_ Sequence[str]locations - storage_
base_ strurl - storage_
provider str
ExternalVolumeDescribeOutputStorageLocationAzureStorageLocation, ExternalVolumeDescribeOutputStorageLocationAzureStorageLocationArgs
- Azure
Consent stringUrl - Azure
Multi stringTenant App Name - Azure
Tenant stringId
- Azure
Consent stringUrl - Azure
Multi stringTenant App Name - Azure
Tenant stringId
- azure_
consent_ stringurl - azure_
multi_ stringtenant_ app_ name - azure_
tenant_ stringid
- azure
Consent StringUrl - azure
Multi StringTenant App Name - azure
Tenant StringId
- azure
Consent stringUrl - azure
Multi stringTenant App Name - azure
Tenant stringId
- azure
Consent StringUrl - azure
Multi StringTenant App Name - azure
Tenant StringId
ExternalVolumeDescribeOutputStorageLocationGcsStorageLocation, ExternalVolumeDescribeOutputStorageLocationGcsStorageLocationArgs
- Encryption
Kms stringKey Id - Storage
Gcp stringService Account
- Encryption
Kms stringKey Id - Storage
Gcp stringService Account
- encryption_
kms_ stringkey_ id - storage_
gcp_ stringservice_ account
- encryption
Kms StringKey Id - storage
Gcp StringService Account
- encryption
Kms stringKey Id - storage
Gcp stringService Account
- encryption
Kms StringKey Id - storage
Gcp StringService Account
ExternalVolumeDescribeOutputStorageLocationS3CompatStorageLocation, ExternalVolumeDescribeOutputStorageLocationS3CompatStorageLocationArgs
- Aws
Access stringKey Id - Encryption
Kms stringKey Id - Endpoint string
- Aws
Access stringKey Id - Encryption
Kms stringKey Id - Endpoint string
- aws_
access_ stringkey_ id - encryption_
kms_ stringkey_ id - endpoint string
- aws
Access StringKey Id - encryption
Kms StringKey Id - endpoint String
- aws
Access stringKey Id - encryption
Kms stringKey Id - endpoint string
- aws_
access_ strkey_ id - encryption_
kms_ strkey_ id - endpoint str
- aws
Access StringKey Id - encryption
Kms StringKey Id - endpoint String
ExternalVolumeDescribeOutputStorageLocationS3StorageLocation, ExternalVolumeDescribeOutputStorageLocationS3StorageLocationArgs
- Encryption
Kms stringKey Id - Storage
Aws stringAccess Point Arn - Storage
Aws stringExternal Id - Storage
Aws stringIam User Arn - Storage
Aws stringRole Arn - Use
Privatelink stringEndpoint
- Encryption
Kms stringKey Id - Storage
Aws stringAccess Point Arn - Storage
Aws stringExternal Id - Storage
Aws stringIam User Arn - Storage
Aws stringRole Arn - Use
Privatelink stringEndpoint
- encryption_
kms_ stringkey_ id - storage_
aws_ stringaccess_ point_ arn - storage_
aws_ stringexternal_ id - storage_
aws_ stringiam_ user_ arn - storage_
aws_ stringrole_ arn - use_
privatelink_ stringendpoint
- encryption
Kms StringKey Id - storage
Aws StringAccess Point Arn - storage
Aws StringExternal Id - storage
Aws StringIam User Arn - storage
Aws StringRole Arn - use
Privatelink StringEndpoint
- encryption
Kms stringKey Id - storage
Aws stringAccess Point Arn - storage
Aws stringExternal Id - storage
Aws stringIam User Arn - storage
Aws stringRole Arn - use
Privatelink stringEndpoint
- encryption
Kms StringKey Id - storage
Aws StringAccess Point Arn - storage
Aws StringExternal Id - storage
Aws StringIam User Arn - storage
Aws StringRole Arn - use
Privatelink StringEndpoint
ExternalVolumeShowOutput, ExternalVolumeShowOutputArgs
- Allow
Writes bool - Comment string
- Name string
- Allow
Writes bool - Comment string
- Name string
- allow_
writes bool - comment string
- name string
- allow
Writes Boolean - comment String
- name String
- allow
Writes boolean - comment string
- name string
- allow_
writes bool - comment str
- name str
- allow
Writes Boolean - comment String
- name String
ExternalVolumeStorageLocation, ExternalVolumeStorageLocationArgs
- Storage
Base stringUrl - Specifies the base URL for your cloud storage location.
- Storage
Location stringName - Name of the storage location. Must be unique for the external volume. Do not use the name
terraformProviderSentinelStorageLocation- this is reserved for the provider for performing update operations. Due to technical limitations (read more here), avoid using the following characters:|,.,". - Storage
Provider string - Specifies the cloud storage provider that stores your data files. Valid values are (case-insensitive):
GCS|AZURE|S3|S3GOV|S3COMPAT. - Azure
Tenant stringId - Specifies the ID for your Office 365 tenant that the allowed and blocked storage accounts belong to.
- Encryption
Kms stringKey Id - Specifies the ID for the KMS-managed key used to encrypt files.
- Encryption
Type string - Specifies the encryption type used.
- Storage
Aws stringAccess Point Arn - Specifies the access point ARN for the S3 bucket containing your data files. Only applicable for S3 and S3GOV storage providers.
- Storage
Aws stringExternal Id - External ID that Snowflake uses to establish a trust relationship with AWS.
- Storage
Aws stringKey Id - Specifies the AWS key ID for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- Storage
Aws stringRole Arn - 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.
- Storage
Aws stringSecret Key - Specifies the AWS secret key for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- Storage
Endpoint string - Specifies the endpoint for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- Use
Privatelink stringEndpoint - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether to use a privatelink endpoint for the storage location. Only applicable for S3, S3GOV, and AZURE storage providers. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
- Storage
Base stringUrl - Specifies the base URL for your cloud storage location.
- Storage
Location stringName - Name of the storage location. Must be unique for the external volume. Do not use the name
terraformProviderSentinelStorageLocation- this is reserved for the provider for performing update operations. Due to technical limitations (read more here), avoid using the following characters:|,.,". - Storage
Provider string - Specifies the cloud storage provider that stores your data files. Valid values are (case-insensitive):
GCS|AZURE|S3|S3GOV|S3COMPAT. - Azure
Tenant stringId - Specifies the ID for your Office 365 tenant that the allowed and blocked storage accounts belong to.
- Encryption
Kms stringKey Id - Specifies the ID for the KMS-managed key used to encrypt files.
- Encryption
Type string - Specifies the encryption type used.
- Storage
Aws stringAccess Point Arn - Specifies the access point ARN for the S3 bucket containing your data files. Only applicable for S3 and S3GOV storage providers.
- Storage
Aws stringExternal Id - External ID that Snowflake uses to establish a trust relationship with AWS.
- Storage
Aws stringKey Id - Specifies the AWS key ID for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- Storage
Aws stringRole Arn - 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.
- Storage
Aws stringSecret Key - Specifies the AWS secret key for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- Storage
Endpoint string - Specifies the endpoint for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- Use
Privatelink stringEndpoint - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether to use a privatelink endpoint for the storage location. Only applicable for S3, S3GOV, and AZURE storage providers. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
- storage_
base_ stringurl - Specifies the base URL for your cloud storage location.
- storage_
location_ stringname - Name of the storage location. Must be unique for the external volume. Do not use the name
terraformProviderSentinelStorageLocation- this is reserved for the provider for performing update operations. Due to technical limitations (read more here), avoid using the following characters:|,.,". - storage_
provider string - Specifies the cloud storage provider that stores your data files. Valid values are (case-insensitive):
GCS|AZURE|S3|S3GOV|S3COMPAT. - azure_
tenant_ stringid - Specifies the ID for your Office 365 tenant that the allowed and blocked storage accounts belong to.
- encryption_
kms_ stringkey_ id - Specifies the ID for the KMS-managed key used to encrypt files.
- encryption_
type string - Specifies the encryption type used.
- storage_
aws_ stringaccess_ point_ arn - Specifies the access point ARN for the S3 bucket containing your data files. Only applicable for S3 and S3GOV storage providers.
- storage_
aws_ stringexternal_ id - External ID that Snowflake uses to establish a trust relationship with AWS.
- storage_
aws_ stringkey_ id - Specifies the AWS key ID for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- storage_
aws_ stringrole_ arn - 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.
- storage_
aws_ stringsecret_ key - Specifies the AWS secret key for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- storage_
endpoint string - Specifies the endpoint for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- use_
privatelink_ stringendpoint - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether to use a privatelink endpoint for the storage location. Only applicable for S3, S3GOV, and AZURE storage providers. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
- storage
Base StringUrl - Specifies the base URL for your cloud storage location.
- storage
Location StringName - Name of the storage location. Must be unique for the external volume. Do not use the name
terraformProviderSentinelStorageLocation- this is reserved for the provider for performing update operations. Due to technical limitations (read more here), avoid using the following characters:|,.,". - storage
Provider String - Specifies the cloud storage provider that stores your data files. Valid values are (case-insensitive):
GCS|AZURE|S3|S3GOV|S3COMPAT. - azure
Tenant StringId - Specifies the ID for your Office 365 tenant that the allowed and blocked storage accounts belong to.
- encryption
Kms StringKey Id - Specifies the ID for the KMS-managed key used to encrypt files.
- encryption
Type String - Specifies the encryption type used.
- storage
Aws StringAccess Point Arn - Specifies the access point ARN for the S3 bucket containing your data files. Only applicable for S3 and S3GOV storage providers.
- storage
Aws StringExternal Id - External ID that Snowflake uses to establish a trust relationship with AWS.
- storage
Aws StringKey Id - Specifies the AWS key ID for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- storage
Aws StringRole Arn - 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.
- storage
Aws StringSecret Key - Specifies the AWS secret key for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- storage
Endpoint String - Specifies the endpoint for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- use
Privatelink StringEndpoint - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether to use a privatelink endpoint for the storage location. Only applicable for S3, S3GOV, and AZURE storage providers. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
- storage
Base stringUrl - Specifies the base URL for your cloud storage location.
- storage
Location stringName - Name of the storage location. Must be unique for the external volume. Do not use the name
terraformProviderSentinelStorageLocation- this is reserved for the provider for performing update operations. Due to technical limitations (read more here), avoid using the following characters:|,.,". - storage
Provider string - Specifies the cloud storage provider that stores your data files. Valid values are (case-insensitive):
GCS|AZURE|S3|S3GOV|S3COMPAT. - azure
Tenant stringId - Specifies the ID for your Office 365 tenant that the allowed and blocked storage accounts belong to.
- encryption
Kms stringKey Id - Specifies the ID for the KMS-managed key used to encrypt files.
- encryption
Type string - Specifies the encryption type used.
- storage
Aws stringAccess Point Arn - Specifies the access point ARN for the S3 bucket containing your data files. Only applicable for S3 and S3GOV storage providers.
- storage
Aws stringExternal Id - External ID that Snowflake uses to establish a trust relationship with AWS.
- storage
Aws stringKey Id - Specifies the AWS key ID for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- storage
Aws stringRole Arn - 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.
- storage
Aws stringSecret Key - Specifies the AWS secret key for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- storage
Endpoint string - Specifies the endpoint for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- use
Privatelink stringEndpoint - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether to use a privatelink endpoint for the storage location. Only applicable for S3, S3GOV, and AZURE storage providers. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
- storage_
base_ strurl - Specifies the base URL for your cloud storage location.
- storage_
location_ strname - Name of the storage location. Must be unique for the external volume. Do not use the name
terraformProviderSentinelStorageLocation- this is reserved for the provider for performing update operations. Due to technical limitations (read more here), avoid using the following characters:|,.,". - storage_
provider str - Specifies the cloud storage provider that stores your data files. Valid values are (case-insensitive):
GCS|AZURE|S3|S3GOV|S3COMPAT. - azure_
tenant_ strid - Specifies the ID for your Office 365 tenant that the allowed and blocked storage accounts belong to.
- encryption_
kms_ strkey_ id - Specifies the ID for the KMS-managed key used to encrypt files.
- encryption_
type str - Specifies the encryption type used.
- storage_
aws_ straccess_ point_ arn - Specifies the access point ARN for the S3 bucket containing your data files. Only applicable for S3 and S3GOV storage providers.
- storage_
aws_ strexternal_ id - External ID that Snowflake uses to establish a trust relationship with AWS.
- storage_
aws_ strkey_ id - Specifies the AWS key ID for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- storage_
aws_ strrole_ arn - 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.
- storage_
aws_ strsecret_ key - Specifies the AWS secret key for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- storage_
endpoint str - Specifies the endpoint for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- use_
privatelink_ strendpoint - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether to use a privatelink endpoint for the storage location. Only applicable for S3, S3GOV, and AZURE storage providers. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
- storage
Base StringUrl - Specifies the base URL for your cloud storage location.
- storage
Location StringName - Name of the storage location. Must be unique for the external volume. Do not use the name
terraformProviderSentinelStorageLocation- this is reserved for the provider for performing update operations. Due to technical limitations (read more here), avoid using the following characters:|,.,". - storage
Provider String - Specifies the cloud storage provider that stores your data files. Valid values are (case-insensitive):
GCS|AZURE|S3|S3GOV|S3COMPAT. - azure
Tenant StringId - Specifies the ID for your Office 365 tenant that the allowed and blocked storage accounts belong to.
- encryption
Kms StringKey Id - Specifies the ID for the KMS-managed key used to encrypt files.
- encryption
Type String - Specifies the encryption type used.
- storage
Aws StringAccess Point Arn - Specifies the access point ARN for the S3 bucket containing your data files. Only applicable for S3 and S3GOV storage providers.
- storage
Aws StringExternal Id - External ID that Snowflake uses to establish a trust relationship with AWS.
- storage
Aws StringKey Id - Specifies the AWS key ID for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- storage
Aws StringRole Arn - 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.
- storage
Aws StringSecret Key - Specifies the AWS secret key for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- storage
Endpoint String - Specifies the endpoint for the S3-compatible storage location. Only applicable for S3COMPAT storage provider.
- use
Privatelink StringEndpoint - (Default: fallback to Snowflake default - uses special value that cannot be set in the configuration manually (
default)) Specifies whether to use a privatelink endpoint for the storage location. Only applicable for S3, S3GOV, and AZURE storage providers. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
Import
$ pulumi import snowflake:index/externalVolume:ExternalVolume example '"<external_volume_name>"'
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Snowflake pulumi/pulumi-snowflake
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
snowflakeTerraform Provider.
published on Saturday, May 9, 2026 by Pulumi
