1. Registry
  2. Packages
  3. Snowflake Provider
  4. API Docs
  5. ExternalAccessIntegration
Viewing docs for Snowflake v2.20.0
published on Saturday, Aug 22, 2026 by Pulumi
snowflake logo
Viewing docs for Snowflake v2.20.0
published on Saturday, Aug 22, 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 on import behavior After import, the first pulumi preview may show an in-place update (not recreation) for allowedAuthenticationSecrets and allowedApiAuthenticationIntegrations. Run pulumi up once to sync these values into state.

    Resource used to manage external access integration objects. For more information, check external access integration documentation.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as snowflake from "@pulumi/snowflake";
    
    //# Minimal
    // The referenced network rule has to be created with mode = "EGRESS".
    const basic = new snowflake.ExternalAccessIntegration("basic", {
        name: "external_access_integration_name",
        enabled: true,
        allowedNetworkRules: [egress.fullyQualifiedName],
    });
    //# Complete (with every optional set)
    const complete = new snowflake.ExternalAccessIntegration("complete", {
        name: "external_access_integration_name",
        enabled: true,
        allowedNetworkRules: [
            egress.fullyQualifiedName,
            otherEgress.fullyQualifiedName,
        ],
        allowedApiAuthenticationIntegrations: {
            integrations: [example.name],
        },
        allowedAuthenticationSecrets: {
            secrets: [exampleSnowflakeSecretWithBasicAuthentication.fullyQualifiedName],
        },
        comment: "my external access integration",
    });
    //# Allowing every secret in the account
    const allSecrets = new snowflake.ExternalAccessIntegration("all_secrets", {
        name: "external_access_integration_name",
        enabled: true,
        allowedNetworkRules: [egress.fullyQualifiedName],
        allowedAuthenticationSecrets: {
            all: true,
        },
    });
    //# Explicitly allowing no secrets and no API authentication integrations
    const noneAllowed = new snowflake.ExternalAccessIntegration("none_allowed", {
        name: "external_access_integration_name",
        enabled: true,
        allowedNetworkRules: [egress.fullyQualifiedName],
        allowedAuthenticationSecrets: {
            none: true,
        },
        allowedApiAuthenticationIntegrations: {
            none: true,
        },
    });
    
    import pulumi
    import pulumi_snowflake as snowflake
    
    ## Minimal
    # The referenced network rule has to be created with mode = "EGRESS".
    basic = snowflake.ExternalAccessIntegration("basic",
        name="external_access_integration_name",
        enabled=True,
        allowed_network_rules=[egress["fullyQualifiedName"]])
    ## Complete (with every optional set)
    complete = snowflake.ExternalAccessIntegration("complete",
        name="external_access_integration_name",
        enabled=True,
        allowed_network_rules=[
            egress["fullyQualifiedName"],
            other_egress["fullyQualifiedName"],
        ],
        allowed_api_authentication_integrations={
            "integrations": [example["name"]],
        },
        allowed_authentication_secrets={
            "secrets": [example_snowflake_secret_with_basic_authentication["fullyQualifiedName"]],
        },
        comment="my external access integration")
    ## Allowing every secret in the account
    all_secrets = snowflake.ExternalAccessIntegration("all_secrets",
        name="external_access_integration_name",
        enabled=True,
        allowed_network_rules=[egress["fullyQualifiedName"]],
        allowed_authentication_secrets={
            "all": True,
        })
    ## Explicitly allowing no secrets and no API authentication integrations
    none_allowed = snowflake.ExternalAccessIntegration("none_allowed",
        name="external_access_integration_name",
        enabled=True,
        allowed_network_rules=[egress["fullyQualifiedName"]],
        allowed_authentication_secrets={
            "none": True,
        },
        allowed_api_authentication_integrations={
            "none": True,
        })
    
    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 {
    		// # Minimal
    		// The referenced network rule has to be created with mode = "EGRESS".
    		_, err := snowflake.NewExternalAccessIntegration(ctx, "basic", &snowflake.ExternalAccessIntegrationArgs{
    			Name:    pulumi.String("external_access_integration_name"),
    			Enabled: pulumi.Bool(true),
    			AllowedNetworkRules: pulumi.StringArray{
    				egress.FullyQualifiedName,
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// # Complete (with every optional set)
    		_, err = snowflake.NewExternalAccessIntegration(ctx, "complete", &snowflake.ExternalAccessIntegrationArgs{
    			Name:    pulumi.String("external_access_integration_name"),
    			Enabled: pulumi.Bool(true),
    			AllowedNetworkRules: pulumi.StringArray{
    				egress.FullyQualifiedName,
    				otherEgress.FullyQualifiedName,
    			},
    			AllowedApiAuthenticationIntegrations: &snowflake.ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs{
    				Integrations: pulumi.StringArray{
    					example.Name,
    				},
    			},
    			AllowedAuthenticationSecrets: &snowflake.ExternalAccessIntegrationAllowedAuthenticationSecretsArgs{
    				Secrets: pulumi.StringArray{
    					exampleSnowflakeSecretWithBasicAuthentication.FullyQualifiedName,
    				},
    			},
    			Comment: pulumi.String("my external access integration"),
    		})
    		if err != nil {
    			return err
    		}
    		// # Allowing every secret in the account
    		_, err = snowflake.NewExternalAccessIntegration(ctx, "all_secrets", &snowflake.ExternalAccessIntegrationArgs{
    			Name:    pulumi.String("external_access_integration_name"),
    			Enabled: pulumi.Bool(true),
    			AllowedNetworkRules: pulumi.StringArray{
    				egress.FullyQualifiedName,
    			},
    			AllowedAuthenticationSecrets: &snowflake.ExternalAccessIntegrationAllowedAuthenticationSecretsArgs{
    				All: pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// # Explicitly allowing no secrets and no API authentication integrations
    		_, err = snowflake.NewExternalAccessIntegration(ctx, "none_allowed", &snowflake.ExternalAccessIntegrationArgs{
    			Name:    pulumi.String("external_access_integration_name"),
    			Enabled: pulumi.Bool(true),
    			AllowedNetworkRules: pulumi.StringArray{
    				egress.FullyQualifiedName,
    			},
    			AllowedAuthenticationSecrets: &snowflake.ExternalAccessIntegrationAllowedAuthenticationSecretsArgs{
    				None: pulumi.Bool(true),
    			},
    			AllowedApiAuthenticationIntegrations: &snowflake.ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs{
    				None: pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Snowflake = Pulumi.Snowflake;
    
    return await Deployment.RunAsync(() => 
    {
        //# Minimal
        // The referenced network rule has to be created with mode = "EGRESS".
        var basic = new Snowflake.ExternalAccessIntegration("basic", new()
        {
            Name = "external_access_integration_name",
            Enabled = true,
            AllowedNetworkRules = new[]
            {
                egress.FullyQualifiedName,
            },
        });
    
        //# Complete (with every optional set)
        var complete = new Snowflake.ExternalAccessIntegration("complete", new()
        {
            Name = "external_access_integration_name",
            Enabled = true,
            AllowedNetworkRules = new[]
            {
                egress.FullyQualifiedName,
                otherEgress.FullyQualifiedName,
            },
            AllowedApiAuthenticationIntegrations = new Snowflake.Inputs.ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs
            {
                Integrations = new[]
                {
                    example.Name,
                },
            },
            AllowedAuthenticationSecrets = new Snowflake.Inputs.ExternalAccessIntegrationAllowedAuthenticationSecretsArgs
            {
                Secrets = new[]
                {
                    exampleSnowflakeSecretWithBasicAuthentication.FullyQualifiedName,
                },
            },
            Comment = "my external access integration",
        });
    
        //# Allowing every secret in the account
        var allSecrets = new Snowflake.ExternalAccessIntegration("all_secrets", new()
        {
            Name = "external_access_integration_name",
            Enabled = true,
            AllowedNetworkRules = new[]
            {
                egress.FullyQualifiedName,
            },
            AllowedAuthenticationSecrets = new Snowflake.Inputs.ExternalAccessIntegrationAllowedAuthenticationSecretsArgs
            {
                All = true,
            },
        });
    
        //# Explicitly allowing no secrets and no API authentication integrations
        var noneAllowed = new Snowflake.ExternalAccessIntegration("none_allowed", new()
        {
            Name = "external_access_integration_name",
            Enabled = true,
            AllowedNetworkRules = new[]
            {
                egress.FullyQualifiedName,
            },
            AllowedAuthenticationSecrets = new Snowflake.Inputs.ExternalAccessIntegrationAllowedAuthenticationSecretsArgs
            {
                None = true,
            },
            AllowedApiAuthenticationIntegrations = new Snowflake.Inputs.ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs
            {
                None = true,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.snowflake.ExternalAccessIntegration;
    import com.pulumi.snowflake.ExternalAccessIntegrationArgs;
    import com.pulumi.snowflake.inputs.ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs;
    import com.pulumi.snowflake.inputs.ExternalAccessIntegrationAllowedAuthenticationSecretsArgs;
    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) {
            //# Minimal
            // The referenced network rule has to be created with mode = "EGRESS".
            var basic = new ExternalAccessIntegration("basic", ExternalAccessIntegrationArgs.builder()
                .name("external_access_integration_name")
                .enabled(true)
                .allowedNetworkRules(egress.fullyQualifiedName())
                .build());
    
            //# Complete (with every optional set)
            var complete = new ExternalAccessIntegration("complete", ExternalAccessIntegrationArgs.builder()
                .name("external_access_integration_name")
                .enabled(true)
                .allowedNetworkRules(            
                    egress.fullyQualifiedName(),
                    otherEgress.fullyQualifiedName())
                .allowedApiAuthenticationIntegrations(ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs.builder()
                    .integrations(example.name())
                    .build())
                .allowedAuthenticationSecrets(ExternalAccessIntegrationAllowedAuthenticationSecretsArgs.builder()
                    .secrets(exampleSnowflakeSecretWithBasicAuthentication.fullyQualifiedName())
                    .build())
                .comment("my external access integration")
                .build());
    
            //# Allowing every secret in the account
            var allSecrets = new ExternalAccessIntegration("allSecrets", ExternalAccessIntegrationArgs.builder()
                .name("external_access_integration_name")
                .enabled(true)
                .allowedNetworkRules(egress.fullyQualifiedName())
                .allowedAuthenticationSecrets(ExternalAccessIntegrationAllowedAuthenticationSecretsArgs.builder()
                    .all(true)
                    .build())
                .build());
    
            //# Explicitly allowing no secrets and no API authentication integrations
            var noneAllowed = new ExternalAccessIntegration("noneAllowed", ExternalAccessIntegrationArgs.builder()
                .name("external_access_integration_name")
                .enabled(true)
                .allowedNetworkRules(egress.fullyQualifiedName())
                .allowedAuthenticationSecrets(ExternalAccessIntegrationAllowedAuthenticationSecretsArgs.builder()
                    .none(true)
                    .build())
                .allowedApiAuthenticationIntegrations(ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs.builder()
                    .none(true)
                    .build())
                .build());
    
        }
    }
    
    resources:
      ## Minimal
      # The referenced network rule has to be created with mode = "EGRESS".
      basic:
        type: snowflake:ExternalAccessIntegration
        properties:
          name: external_access_integration_name
          enabled: true
          allowedNetworkRules:
            - ${egress.fullyQualifiedName}
      ## Complete (with every optional set)
      complete:
        type: snowflake:ExternalAccessIntegration
        properties:
          name: external_access_integration_name
          enabled: true
          allowedNetworkRules:
            - ${egress.fullyQualifiedName}
            - ${otherEgress.fullyQualifiedName}
          allowedApiAuthenticationIntegrations:
            integrations:
              - ${example.name}
          allowedAuthenticationSecrets:
            secrets:
              - ${exampleSnowflakeSecretWithBasicAuthentication.fullyQualifiedName}
          comment: my external access integration
      ## Allowing every secret in the account
      allSecrets:
        type: snowflake:ExternalAccessIntegration
        name: all_secrets
        properties:
          name: external_access_integration_name
          enabled: true
          allowedNetworkRules:
            - ${egress.fullyQualifiedName}
          allowedAuthenticationSecrets:
            all: true
      ## Explicitly allowing no secrets and no API authentication integrations
      noneAllowed:
        type: snowflake:ExternalAccessIntegration
        name: none_allowed
        properties:
          name: external_access_integration_name
          enabled: true
          allowedNetworkRules:
            - ${egress.fullyQualifiedName}
          allowedAuthenticationSecrets:
            none: true
          allowedApiAuthenticationIntegrations:
            none: true
    
    pulumi {
      required_providers {
        snowflake = {
          source = "pulumi/snowflake"
        }
      }
    }
    
    ## Minimal
    # The referenced network rule has to be created with mode = "EGRESS".
    resource "snowflake_externalaccessintegration" "basic" {
      name                  = "external_access_integration_name"
      enabled               = true
      allowed_network_rules = [egress.fullyQualifiedName]
    }
    ## Complete (with every optional set)
    resource "snowflake_externalaccessintegration" "complete" {
      name                  = "external_access_integration_name"
      enabled               = true
      allowed_network_rules = [egress.fullyQualifiedName, otherEgress.fullyQualifiedName]
      allowed_api_authentication_integrations = {
        integrations = [example.name]
      }
      allowed_authentication_secrets = {
        secrets = [exampleSnowflakeSecretWithBasicAuthentication.fullyQualifiedName]
      }
      comment = "my external access integration"
    }
    ## Allowing every secret in the account
    resource "snowflake_externalaccessintegration" "all_secrets" {
      name                  = "external_access_integration_name"
      enabled               = true
      allowed_network_rules = [egress.fullyQualifiedName]
      allowed_authentication_secrets = {
        all = true
      }
    }
    ## Explicitly allowing no secrets and no API authentication integrations
    resource "snowflake_externalaccessintegration" "none_allowed" {
      name                  = "external_access_integration_name"
      enabled               = true
      allowed_network_rules = [egress.fullyQualifiedName]
      allowed_authentication_secrets = {
        none = true
      }
      allowed_api_authentication_integrations = {
        none = true
      }
    }
    

    Note Instead of using fully_qualified_name, you can reference objects managed outside Terraform by constructing a correct ID, consult identifiers guide.

    Note If a field has a default value, it is shown next to the type in the schema.

    Create ExternalAccessIntegration Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new ExternalAccessIntegration(name: string, args: ExternalAccessIntegrationArgs, opts?: CustomResourceOptions);
    @overload
    def ExternalAccessIntegration(resource_name: str,
                                  args: ExternalAccessIntegrationArgs,
                                  opts: Optional[ResourceOptions] = None)
    
    @overload
    def ExternalAccessIntegration(resource_name: str,
                                  opts: Optional[ResourceOptions] = None,
                                  allowed_network_rules: Optional[Sequence[str]] = None,
                                  enabled: Optional[bool] = None,
                                  allowed_api_authentication_integrations: Optional[ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs] = None,
                                  allowed_authentication_secrets: Optional[ExternalAccessIntegrationAllowedAuthenticationSecretsArgs] = None,
                                  comment: Optional[str] = None,
                                  name: Optional[str] = None)
    func NewExternalAccessIntegration(ctx *Context, name string, args ExternalAccessIntegrationArgs, opts ...ResourceOption) (*ExternalAccessIntegration, error)
    public ExternalAccessIntegration(string name, ExternalAccessIntegrationArgs args, CustomResourceOptions? opts = null)
    public ExternalAccessIntegration(String name, ExternalAccessIntegrationArgs args)
    public ExternalAccessIntegration(String name, ExternalAccessIntegrationArgs args, CustomResourceOptions options)
    
    type: snowflake:ExternalAccessIntegration
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "snowflake_external_access_integration" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args ExternalAccessIntegrationArgs
    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 ExternalAccessIntegrationArgs
    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 ExternalAccessIntegrationArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ExternalAccessIntegrationArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ExternalAccessIntegrationArgs
    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 externalAccessIntegrationResource = new Snowflake.ExternalAccessIntegration("externalAccessIntegrationResource", new()
    {
        AllowedNetworkRules = new[]
        {
            "string",
        },
        Enabled = false,
        AllowedApiAuthenticationIntegrations = new Snowflake.Inputs.ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs
        {
            Integrations = new[]
            {
                "string",
            },
            None = false,
        },
        AllowedAuthenticationSecrets = new Snowflake.Inputs.ExternalAccessIntegrationAllowedAuthenticationSecretsArgs
        {
            All = false,
            None = false,
            Secrets = new[]
            {
                "string",
            },
        },
        Comment = "string",
        Name = "string",
    });
    
    example, err := snowflake.NewExternalAccessIntegration(ctx, "externalAccessIntegrationResource", &snowflake.ExternalAccessIntegrationArgs{
    	AllowedNetworkRules: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Enabled: pulumi.Bool(false),
    	AllowedApiAuthenticationIntegrations: &snowflake.ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs{
    		Integrations: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		None: pulumi.Bool(false),
    	},
    	AllowedAuthenticationSecrets: &snowflake.ExternalAccessIntegrationAllowedAuthenticationSecretsArgs{
    		All:  pulumi.Bool(false),
    		None: pulumi.Bool(false),
    		Secrets: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    	},
    	Comment: pulumi.String("string"),
    	Name:    pulumi.String("string"),
    })
    
    resource "snowflake_external_access_integration" "externalAccessIntegrationResource" {
      lifecycle {
        create_before_destroy = true
      }
      allowed_network_rules = ["string"]
      enabled               = false
      allowed_api_authentication_integrations = {
        integrations = ["string"]
        none         = false
      }
      allowed_authentication_secrets = {
        all     = false
        none    = false
        secrets = ["string"]
      }
      comment = "string"
      name    = "string"
    }
    
    var externalAccessIntegrationResource = new ExternalAccessIntegration("externalAccessIntegrationResource", ExternalAccessIntegrationArgs.builder()
        .allowedNetworkRules("string")
        .enabled(false)
        .allowedApiAuthenticationIntegrations(ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs.builder()
            .integrations("string")
            .none(false)
            .build())
        .allowedAuthenticationSecrets(ExternalAccessIntegrationAllowedAuthenticationSecretsArgs.builder()
            .all(false)
            .none(false)
            .secrets("string")
            .build())
        .comment("string")
        .name("string")
        .build());
    
    external_access_integration_resource = snowflake.ExternalAccessIntegration("externalAccessIntegrationResource",
        allowed_network_rules=["string"],
        enabled=False,
        allowed_api_authentication_integrations={
            "integrations": ["string"],
            "none": False,
        },
        allowed_authentication_secrets={
            "all": False,
            "none": False,
            "secrets": ["string"],
        },
        comment="string",
        name="string")
    
    const externalAccessIntegrationResource = new snowflake.ExternalAccessIntegration("externalAccessIntegrationResource", {
        allowedNetworkRules: ["string"],
        enabled: false,
        allowedApiAuthenticationIntegrations: {
            integrations: ["string"],
            none: false,
        },
        allowedAuthenticationSecrets: {
            all: false,
            none: false,
            secrets: ["string"],
        },
        comment: "string",
        name: "string",
    });
    
    type: snowflake:ExternalAccessIntegration
    properties:
        allowedApiAuthenticationIntegrations:
            integrations:
                - string
            none: false
        allowedAuthenticationSecrets:
            all: false
            none: false
            secrets:
                - string
        allowedNetworkRules:
            - string
        comment: string
        enabled: false
        name: string
    

    ExternalAccessIntegration 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 ExternalAccessIntegration resource accepts the following input properties:

    AllowedNetworkRules List<string>
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    Enabled bool
    Specifies whether the integration is enabled.
    AllowedApiAuthenticationIntegrations ExternalAccessIntegrationAllowedApiAuthenticationIntegrations
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    AllowedAuthenticationSecrets ExternalAccessIntegrationAllowedAuthenticationSecrets
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    Comment string
    Specifies a comment for the external access integration.
    Name string
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    AllowedNetworkRules []string
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    Enabled bool
    Specifies whether the integration is enabled.
    AllowedApiAuthenticationIntegrations ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    AllowedAuthenticationSecrets ExternalAccessIntegrationAllowedAuthenticationSecretsArgs
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    Comment string
    Specifies a comment for the external access integration.
    Name string
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    allowed_network_rules list(string)
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    enabled bool
    Specifies whether the integration is enabled.
    allowed_api_authentication_integrations object
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    allowed_authentication_secrets object
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    comment string
    Specifies a comment for the external access integration.
    name string
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    allowedNetworkRules List<String>
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    enabled Boolean
    Specifies whether the integration is enabled.
    allowedApiAuthenticationIntegrations ExternalAccessIntegrationAllowedApiAuthenticationIntegrations
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    allowedAuthenticationSecrets ExternalAccessIntegrationAllowedAuthenticationSecrets
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    comment String
    Specifies a comment for the external access integration.
    name String
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    allowedNetworkRules string[]
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    enabled boolean
    Specifies whether the integration is enabled.
    allowedApiAuthenticationIntegrations ExternalAccessIntegrationAllowedApiAuthenticationIntegrations
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    allowedAuthenticationSecrets ExternalAccessIntegrationAllowedAuthenticationSecrets
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    comment string
    Specifies a comment for the external access integration.
    name string
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    allowed_network_rules Sequence[str]
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    enabled bool
    Specifies whether the integration is enabled.
    allowed_api_authentication_integrations ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    allowed_authentication_secrets ExternalAccessIntegrationAllowedAuthenticationSecretsArgs
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    comment str
    Specifies a comment for the external access integration.
    name str
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    allowedNetworkRules List<String>
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    enabled Boolean
    Specifies whether the integration is enabled.
    allowedApiAuthenticationIntegrations Property Map
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    allowedAuthenticationSecrets Property Map
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    comment String
    Specifies a comment for the external access integration.
    name String
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".

    Outputs

    All input properties are implicitly available as output properties. Additionally, the ExternalAccessIntegration resource produces the following output properties:

    DescribeOutputs List<ExternalAccessIntegrationDescribeOutput>
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    FullyQualifiedName string
    Fully qualified name of the resource. For more information, see object name resolution.
    Id string
    The provider-assigned unique ID for this managed resource.
    ShowOutputs List<ExternalAccessIntegrationShowOutput>
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.
    DescribeOutputs []ExternalAccessIntegrationDescribeOutput
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    FullyQualifiedName string
    Fully qualified name of the resource. For more information, see object name resolution.
    Id string
    The provider-assigned unique ID for this managed resource.
    ShowOutputs []ExternalAccessIntegrationShowOutput
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.
    describe_outputs list(object)
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    fully_qualified_name string
    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 ACCESS INTEGRATIONS for this integration.
    describeOutputs List<ExternalAccessIntegrationDescribeOutput>
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    fullyQualifiedName String
    Fully qualified name of the resource. For more information, see object name resolution.
    id String
    The provider-assigned unique ID for this managed resource.
    showOutputs List<ExternalAccessIntegrationShowOutput>
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.
    describeOutputs ExternalAccessIntegrationDescribeOutput[]
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    fullyQualifiedName string
    Fully qualified name of the resource. For more information, see object name resolution.
    id string
    The provider-assigned unique ID for this managed resource.
    showOutputs ExternalAccessIntegrationShowOutput[]
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.
    describe_outputs Sequence[ExternalAccessIntegrationDescribeOutput]
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    fully_qualified_name str
    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[ExternalAccessIntegrationShowOutput]
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.
    describeOutputs List<Property Map>
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    fullyQualifiedName String
    Fully qualified name of the resource. For more information, see object name resolution.
    id String
    The provider-assigned unique ID for this managed resource.
    showOutputs List<Property Map>
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.

    Look up Existing ExternalAccessIntegration Resource

    Get an existing ExternalAccessIntegration 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?: ExternalAccessIntegrationState, opts?: CustomResourceOptions): ExternalAccessIntegration
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            allowed_api_authentication_integrations: Optional[ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs] = None,
            allowed_authentication_secrets: Optional[ExternalAccessIntegrationAllowedAuthenticationSecretsArgs] = None,
            allowed_network_rules: Optional[Sequence[str]] = None,
            comment: Optional[str] = None,
            describe_outputs: Optional[Sequence[ExternalAccessIntegrationDescribeOutputArgs]] = None,
            enabled: Optional[bool] = None,
            fully_qualified_name: Optional[str] = None,
            name: Optional[str] = None,
            show_outputs: Optional[Sequence[ExternalAccessIntegrationShowOutputArgs]] = None) -> ExternalAccessIntegration
    func GetExternalAccessIntegration(ctx *Context, name string, id IDInput, state *ExternalAccessIntegrationState, opts ...ResourceOption) (*ExternalAccessIntegration, error)
    public static ExternalAccessIntegration Get(string name, Input<string> id, ExternalAccessIntegrationState? state, CustomResourceOptions? opts = null)
    public static ExternalAccessIntegration get(String name, Output<String> id, ExternalAccessIntegrationState state, CustomResourceOptions options)
    resources:  _:    type: snowflake:ExternalAccessIntegration    get:      id: ${id}
    import {
      to = snowflake_external_access_integration.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.
    The following state arguments are supported:
    AllowedApiAuthenticationIntegrations ExternalAccessIntegrationAllowedApiAuthenticationIntegrations
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    AllowedAuthenticationSecrets ExternalAccessIntegrationAllowedAuthenticationSecrets
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    AllowedNetworkRules List<string>
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    Comment string
    Specifies a comment for the external access integration.
    DescribeOutputs List<ExternalAccessIntegrationDescribeOutput>
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    Enabled bool
    Specifies whether the integration is enabled.
    FullyQualifiedName string
    Fully qualified name of the resource. For more information, see object name resolution.
    Name string
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    ShowOutputs List<ExternalAccessIntegrationShowOutput>
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.
    AllowedApiAuthenticationIntegrations ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    AllowedAuthenticationSecrets ExternalAccessIntegrationAllowedAuthenticationSecretsArgs
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    AllowedNetworkRules []string
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    Comment string
    Specifies a comment for the external access integration.
    DescribeOutputs []ExternalAccessIntegrationDescribeOutputArgs
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    Enabled bool
    Specifies whether the integration is enabled.
    FullyQualifiedName string
    Fully qualified name of the resource. For more information, see object name resolution.
    Name string
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    ShowOutputs []ExternalAccessIntegrationShowOutputArgs
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.
    allowed_api_authentication_integrations object
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    allowed_authentication_secrets object
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    allowed_network_rules list(string)
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    comment string
    Specifies a comment for the external access integration.
    describe_outputs list(object)
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    enabled bool
    Specifies whether the integration is enabled.
    fully_qualified_name string
    Fully qualified name of the resource. For more information, see object name resolution.
    name string
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    show_outputs list(object)
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.
    allowedApiAuthenticationIntegrations ExternalAccessIntegrationAllowedApiAuthenticationIntegrations
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    allowedAuthenticationSecrets ExternalAccessIntegrationAllowedAuthenticationSecrets
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    allowedNetworkRules List<String>
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    comment String
    Specifies a comment for the external access integration.
    describeOutputs List<ExternalAccessIntegrationDescribeOutput>
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    enabled Boolean
    Specifies whether the integration is enabled.
    fullyQualifiedName String
    Fully qualified name of the resource. For more information, see object name resolution.
    name String
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    showOutputs List<ExternalAccessIntegrationShowOutput>
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.
    allowedApiAuthenticationIntegrations ExternalAccessIntegrationAllowedApiAuthenticationIntegrations
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    allowedAuthenticationSecrets ExternalAccessIntegrationAllowedAuthenticationSecrets
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    allowedNetworkRules string[]
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    comment string
    Specifies a comment for the external access integration.
    describeOutputs ExternalAccessIntegrationDescribeOutput[]
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    enabled boolean
    Specifies whether the integration is enabled.
    fullyQualifiedName string
    Fully qualified name of the resource. For more information, see object name resolution.
    name string
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    showOutputs ExternalAccessIntegrationShowOutput[]
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.
    allowed_api_authentication_integrations ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    allowed_authentication_secrets ExternalAccessIntegrationAllowedAuthenticationSecretsArgs
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    allowed_network_rules Sequence[str]
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    comment str
    Specifies a comment for the external access integration.
    describe_outputs Sequence[ExternalAccessIntegrationDescribeOutputArgs]
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    enabled bool
    Specifies whether the integration is enabled.
    fully_qualified_name str
    Fully qualified name of the resource. For more information, see object name resolution.
    name str
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    show_outputs Sequence[ExternalAccessIntegrationShowOutputArgs]
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.
    allowedApiAuthenticationIntegrations Property Map
    Specifies allowed API authentication integrations for this integration. Exactly one of none or integrations must be set inside the block.
    allowedAuthenticationSecrets Property Map
    Specifies allowed authentication secrets for this integration. Exactly one of none, all, or secrets must be set inside the block.
    allowedNetworkRules List<String>
    Specifies the network rules for external locations reachable through this integration. At least one is required. Only egress network rules may be specified. For more information about this resource, see docs.
    comment String
    Specifies a comment for the external access integration.
    describeOutputs List<Property Map>
    Outputs the result of DESCRIBE EXTERNAL ACCESS INTEGRATION for this integration.
    enabled Boolean
    Specifies whether the integration is enabled.
    fullyQualifiedName String
    Fully qualified name of the resource. For more information, see object name resolution.
    name String
    Specifies the identifier for the external access integration. Changing this value recreates the integration. Due to technical limitations (read more here), avoid using the following characters: |, ., ".
    showOutputs List<Property Map>
    Outputs the result of SHOW EXTERNAL ACCESS INTEGRATIONS for this integration.

    Supporting Types

    ExternalAccessIntegrationAllowedApiAuthenticationIntegrations, ExternalAccessIntegrationAllowedApiAuthenticationIntegrationsArgs

    Integrations List<string>
    Specifies the API authentication integrations allowed for authenticating to external locations. Conflicts with none.
    None bool
    When true, no API authentication integrations are allowed. Conflicts with integrations.
    Integrations []string
    Specifies the API authentication integrations allowed for authenticating to external locations. Conflicts with none.
    None bool
    When true, no API authentication integrations are allowed. Conflicts with integrations.
    integrations list(string)
    Specifies the API authentication integrations allowed for authenticating to external locations. Conflicts with none.
    none bool
    When true, no API authentication integrations are allowed. Conflicts with integrations.
    integrations List<String>
    Specifies the API authentication integrations allowed for authenticating to external locations. Conflicts with none.
    none Boolean
    When true, no API authentication integrations are allowed. Conflicts with integrations.
    integrations string[]
    Specifies the API authentication integrations allowed for authenticating to external locations. Conflicts with none.
    none boolean
    When true, no API authentication integrations are allowed. Conflicts with integrations.
    integrations Sequence[str]
    Specifies the API authentication integrations allowed for authenticating to external locations. Conflicts with none.
    none bool
    When true, no API authentication integrations are allowed. Conflicts with integrations.
    integrations List<String>
    Specifies the API authentication integrations allowed for authenticating to external locations. Conflicts with none.
    none Boolean
    When true, no API authentication integrations are allowed. Conflicts with integrations.

    ExternalAccessIntegrationAllowedAuthenticationSecrets, ExternalAccessIntegrationAllowedAuthenticationSecretsArgs

    All bool
    When true, all secrets in the account are allowed for authentication. Conflicts with none and secrets.
    None bool
    When true, no secrets are allowed for authentication. Conflicts with all and secrets.
    Secrets List<string>
    Specifies the fully qualified identifiers of secrets allowed for authentication. Conflicts with none and all.
    All bool
    When true, all secrets in the account are allowed for authentication. Conflicts with none and secrets.
    None bool
    When true, no secrets are allowed for authentication. Conflicts with all and secrets.
    Secrets []string
    Specifies the fully qualified identifiers of secrets allowed for authentication. Conflicts with none and all.
    all bool
    When true, all secrets in the account are allowed for authentication. Conflicts with none and secrets.
    none bool
    When true, no secrets are allowed for authentication. Conflicts with all and secrets.
    secrets list(string)
    Specifies the fully qualified identifiers of secrets allowed for authentication. Conflicts with none and all.
    all Boolean
    When true, all secrets in the account are allowed for authentication. Conflicts with none and secrets.
    none Boolean
    When true, no secrets are allowed for authentication. Conflicts with all and secrets.
    secrets List<String>
    Specifies the fully qualified identifiers of secrets allowed for authentication. Conflicts with none and all.
    all boolean
    When true, all secrets in the account are allowed for authentication. Conflicts with none and secrets.
    none boolean
    When true, no secrets are allowed for authentication. Conflicts with all and secrets.
    secrets string[]
    Specifies the fully qualified identifiers of secrets allowed for authentication. Conflicts with none and all.
    all bool
    When true, all secrets in the account are allowed for authentication. Conflicts with none and secrets.
    none bool
    When true, no secrets are allowed for authentication. Conflicts with all and secrets.
    secrets Sequence[str]
    Specifies the fully qualified identifiers of secrets allowed for authentication. Conflicts with none and all.
    all Boolean
    When true, all secrets in the account are allowed for authentication. Conflicts with none and secrets.
    none Boolean
    When true, no secrets are allowed for authentication. Conflicts with all and secrets.
    secrets List<String>
    Specifies the fully qualified identifiers of secrets allowed for authentication. Conflicts with none and all.

    ExternalAccessIntegrationDescribeOutput, ExternalAccessIntegrationDescribeOutputArgs

    ExternalAccessIntegrationShowOutput, ExternalAccessIntegrationShowOutputArgs

    Category string
    Comment string
    CreatedOn string
    Enabled bool
    Name string
    Type string
    Category string
    Comment string
    CreatedOn string
    Enabled bool
    Name string
    Type string
    category string
    comment string
    created_on string
    enabled bool
    name string
    type string
    category String
    comment String
    createdOn String
    enabled Boolean
    name String
    type String
    category string
    comment string
    createdOn string
    enabled boolean
    name string
    type string
    category String
    comment String
    createdOn String
    enabled Boolean
    name String
    type String

    Import

    $ pulumi import snowflake:index/externalAccessIntegration:ExternalAccessIntegration example '"<external_access_integration_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 snowflake Terraform Provider.
    snowflake logo
    Viewing docs for Snowflake v2.20.0
    published on Saturday, Aug 22, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial