1. Registry
  2. Packages
  3. Snowflake Provider
  4. API Docs
  5. PostgresMirror
Viewing docs for Snowflake v2.23.0
published on Friday, Nov 6, 2026 by Pulumi
snowflake logo
Viewing docs for Snowflake v2.23.0
published on Friday, Nov 6, 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 Before you create a mirror, grant the SNOWFLAKE.POSTGRES_MIRROR_ADMIN application role to the role that manages it, and grant USAGE on the Postgres instance to the SNOWFLAKE application. If the mirror uses a warehouse or an externalVolume, the SNOWFLAKE application needs USAGE on it too. The provider has no resource for granting privileges to an application yet, so the example uses snowflake.Execute for those grants. Do not revoke these grants from the SNOWFLAKE application while mirrors use them, because that breaks the mirrors. For details, see Create a mirror.

    Note pulumi up returns once the mirror is created, before the initial copy of the tables finishes. To follow the initial copy, call SNOWFLAKE.POSTGRES.LIST_MIRRORED_TABLES('<mirror_name>'): tables show SNAPSHOTTING during the initial copy and REPLICATING once they caught up.

    Note Changes to postgresTables, postgresSchemas, refreshInterval, and warehouse are applied in place with ALTER_MIRROR, without copying the existing tables again. Changes to name, postgresInstance, postgresDatabase, targetDatabase, targetTableType, and externalVolume recreate the mirror, which copies all tables again.

    Note If you manage a mirror today with snowflake.Execute calling CREATE_MIRROR, remove that resource from the state with terraform state rm (destroying it would run its revert statement), remove its block from the configuration, and import the mirror by name into snowflake.PostgresMirror.

    Note Snowflake reports targetTableType = SNOWFLAKE when the configuration omits it. The attribute forces a new resource, so importing in enforcing mode plans a replacement. Permissive mode leaves the attribute unset, and a configuration that omits it does not replace the mirror. See Importing resources for how the two modes work.

    Known limitation Data mirroring is available only on AWS and Azure, and not on the BURSTABLE instance tier. When the source Postgres instance cannot be reached, DESCRIBE_MIRROR returns no tables or schemas. The provider then keeps the whole previous state, including describeOutput, and reports a warning. Changes made outside of Terraform are not detected until the tables and schemas can be read again, and import fails until then.

    Resource used to manage Postgres data mirrors, which replicate Postgres tables into a Snowflake database. For more information, check data mirroring documentation.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as snowflake from "@pulumi/snowflake";
    
    //# Prerequisites
    // The role that manages the mirror needs the postgres_mirror_admin application role,
    // and the SNOWFLAKE application needs USAGE on the Postgres instance.
    const mirrorAdmin = new snowflake.GrantApplicationRole("mirror_admin", {
        applicationRoleName: "\"SNOWFLAKE\".\"POSTGRES_MIRROR_ADMIN\"",
        parentAccountRoleName: "my_role",
    });
    const instanceUsage = new snowflake.Execute("instance_usage", {
        execute: "GRANT USAGE ON POSTGRES INSTANCE \"my_instance\" TO APPLICATION SNOWFLAKE",
        revert: "SELECT 1",
    });
    // Only when the mirror uses a warehouse.
    const warehouseUsage = new snowflake.Execute("warehouse_usage", {
        execute: "GRANT USAGE ON WAREHOUSE \"MY_WAREHOUSE\" TO APPLICATION SNOWFLAKE",
        revert: "SELECT 1",
    });
    // Only when the mirror writes Iceberg tables to an external volume.
    const externalVolumeUsage = new snowflake.Execute("external_volume_usage", {
        execute: "GRANT USAGE ON EXTERNAL VOLUME \"MY_EXTERNAL_VOLUME\" TO APPLICATION SNOWFLAKE",
        revert: "SELECT 1",
    });
    //# Minimal
    const basic = new snowflake.PostgresMirror("basic", {
        name: "my_mirror",
        postgresInstance: "my_instance",
        postgresDatabase: "postgres",
        targetDatabase: "MY_MIRROR_DB",
        postgresTables: [
            "public.orders",
            "public.customers",
        ],
    }, {
        dependsOn: [
            mirrorAdmin,
            instanceUsage,
        ],
    });
    //# Complete
    const complete = new snowflake.PostgresMirror("complete", {
        name: "my_complete_mirror",
        postgresInstance: "my_instance",
        postgresDatabase: "postgres",
        targetDatabase: "MY_COMPLETE_MIRROR_DB",
        postgresTables: ["public.orders"],
        postgresSchemas: ["sales"],
        refreshInterval: {
            minutes: 1,
        },
        warehouse: "MY_WAREHOUSE",
        dropTargetDatabaseOnDestroy: true,
    }, {
        dependsOn: [
            mirrorAdmin,
            instanceUsage,
            warehouseUsage,
        ],
    });
    //# Iceberg tables on an external volume
    const iceberg = new snowflake.PostgresMirror("iceberg", {
        name: "my_iceberg_mirror",
        postgresInstance: "my_instance",
        postgresDatabase: "postgres",
        targetDatabase: "MY_ICEBERG_MIRROR_DB",
        postgresTables: ["public.orders"],
        targetTableType: "ICEBERG",
        externalVolume: "MY_EXTERNAL_VOLUME",
    }, {
        dependsOn: [
            mirrorAdmin,
            instanceUsage,
            externalVolumeUsage,
        ],
    });
    
    import pulumi
    import pulumi_snowflake as snowflake
    
    ## Prerequisites
    # The role that manages the mirror needs the postgres_mirror_admin application role,
    # and the SNOWFLAKE application needs USAGE on the Postgres instance.
    mirror_admin = snowflake.GrantApplicationRole("mirror_admin",
        application_role_name="\"SNOWFLAKE\".\"POSTGRES_MIRROR_ADMIN\"",
        parent_account_role_name="my_role")
    instance_usage = snowflake.Execute("instance_usage",
        execute="GRANT USAGE ON POSTGRES INSTANCE \"my_instance\" TO APPLICATION SNOWFLAKE",
        revert="SELECT 1")
    # Only when the mirror uses a warehouse.
    warehouse_usage = snowflake.Execute("warehouse_usage",
        execute="GRANT USAGE ON WAREHOUSE \"MY_WAREHOUSE\" TO APPLICATION SNOWFLAKE",
        revert="SELECT 1")
    # Only when the mirror writes Iceberg tables to an external volume.
    external_volume_usage = snowflake.Execute("external_volume_usage",
        execute="GRANT USAGE ON EXTERNAL VOLUME \"MY_EXTERNAL_VOLUME\" TO APPLICATION SNOWFLAKE",
        revert="SELECT 1")
    ## Minimal
    basic = snowflake.PostgresMirror("basic",
        name="my_mirror",
        postgres_instance="my_instance",
        postgres_database="postgres",
        target_database="MY_MIRROR_DB",
        postgres_tables=[
            "public.orders",
            "public.customers",
        ],
        opts = pulumi.ResourceOptions(depends_on=[
                mirror_admin,
                instance_usage,
            ]))
    ## Complete
    complete = snowflake.PostgresMirror("complete",
        name="my_complete_mirror",
        postgres_instance="my_instance",
        postgres_database="postgres",
        target_database="MY_COMPLETE_MIRROR_DB",
        postgres_tables=["public.orders"],
        postgres_schemas=["sales"],
        refresh_interval={
            "minutes": 1,
        },
        warehouse="MY_WAREHOUSE",
        drop_target_database_on_destroy=True,
        opts = pulumi.ResourceOptions(depends_on=[
                mirror_admin,
                instance_usage,
                warehouse_usage,
            ]))
    ## Iceberg tables on an external volume
    iceberg = snowflake.PostgresMirror("iceberg",
        name="my_iceberg_mirror",
        postgres_instance="my_instance",
        postgres_database="postgres",
        target_database="MY_ICEBERG_MIRROR_DB",
        postgres_tables=["public.orders"],
        target_table_type="ICEBERG",
        external_volume="MY_EXTERNAL_VOLUME",
        opts = pulumi.ResourceOptions(depends_on=[
                mirror_admin,
                instance_usage,
                external_volume_usage,
            ]))
    
    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 {
    		//# Prerequisites
    		// The role that manages the mirror needs the postgres_mirror_admin application role,
    		// and the SNOWFLAKE application needs USAGE on the Postgres instance.
    		mirrorAdmin, err := snowflake.NewGrantApplicationRole(ctx, "mirror_admin", &snowflake.GrantApplicationRoleArgs{
    			ApplicationRoleName:   pulumi.String("\"SNOWFLAKE\".\"POSTGRES_MIRROR_ADMIN\""),
    			ParentAccountRoleName: pulumi.String("my_role"),
    		})
    		if err != nil {
    			return err
    		}
    		instanceUsage, err := snowflake.NewExecute(ctx, "instance_usage", &snowflake.ExecuteArgs{
    			Execute: pulumi.String("GRANT USAGE ON POSTGRES INSTANCE \"my_instance\" TO APPLICATION SNOWFLAKE"),
    			Revert:  pulumi.String("SELECT 1"),
    		})
    		if err != nil {
    			return err
    		}
    		// Only when the mirror uses a warehouse.
    		warehouseUsage, err := snowflake.NewExecute(ctx, "warehouse_usage", &snowflake.ExecuteArgs{
    			Execute: pulumi.String("GRANT USAGE ON WAREHOUSE \"MY_WAREHOUSE\" TO APPLICATION SNOWFLAKE"),
    			Revert:  pulumi.String("SELECT 1"),
    		})
    		if err != nil {
    			return err
    		}
    		// Only when the mirror writes Iceberg tables to an external volume.
    		externalVolumeUsage, err := snowflake.NewExecute(ctx, "external_volume_usage", &snowflake.ExecuteArgs{
    			Execute: pulumi.String("GRANT USAGE ON EXTERNAL VOLUME \"MY_EXTERNAL_VOLUME\" TO APPLICATION SNOWFLAKE"),
    			Revert:  pulumi.String("SELECT 1"),
    		})
    		if err != nil {
    			return err
    		}
    		//# Minimal
    		_, err = snowflake.NewPostgresMirror(ctx, "basic", &snowflake.PostgresMirrorArgs{
    			Name:             pulumi.String("my_mirror"),
    			PostgresInstance: pulumi.String("my_instance"),
    			PostgresDatabase: pulumi.String("postgres"),
    			TargetDatabase:   pulumi.String("MY_MIRROR_DB"),
    			PostgresTables: pulumi.StringArray{
    				pulumi.String("public.orders"),
    				pulumi.String("public.customers"),
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			mirrorAdmin,
    			instanceUsage,
    		}))
    		if err != nil {
    			return err
    		}
    		//# Complete
    		_, err = snowflake.NewPostgresMirror(ctx, "complete", &snowflake.PostgresMirrorArgs{
    			Name:             pulumi.String("my_complete_mirror"),
    			PostgresInstance: pulumi.String("my_instance"),
    			PostgresDatabase: pulumi.String("postgres"),
    			TargetDatabase:   pulumi.String("MY_COMPLETE_MIRROR_DB"),
    			PostgresTables: pulumi.StringArray{
    				pulumi.String("public.orders"),
    			},
    			PostgresSchemas: pulumi.StringArray{
    				pulumi.String("sales"),
    			},
    			RefreshInterval: &snowflake.PostgresMirrorRefreshIntervalArgs{
    				Minutes: pulumi.Int(1),
    			},
    			Warehouse:                   pulumi.String("MY_WAREHOUSE"),
    			DropTargetDatabaseOnDestroy: pulumi.Bool(true),
    		}, pulumi.DependsOn([]pulumi.Resource{
    			mirrorAdmin,
    			instanceUsage,
    			warehouseUsage,
    		}))
    		if err != nil {
    			return err
    		}
    		//# Iceberg tables on an external volume
    		_, err = snowflake.NewPostgresMirror(ctx, "iceberg", &snowflake.PostgresMirrorArgs{
    			Name:             pulumi.String("my_iceberg_mirror"),
    			PostgresInstance: pulumi.String("my_instance"),
    			PostgresDatabase: pulumi.String("postgres"),
    			TargetDatabase:   pulumi.String("MY_ICEBERG_MIRROR_DB"),
    			PostgresTables: pulumi.StringArray{
    				pulumi.String("public.orders"),
    			},
    			TargetTableType: pulumi.String("ICEBERG"),
    			ExternalVolume:  pulumi.String("MY_EXTERNAL_VOLUME"),
    		}, pulumi.DependsOn([]pulumi.Resource{
    			mirrorAdmin,
    			instanceUsage,
    			externalVolumeUsage,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Snowflake = Pulumi.Snowflake;
    
    return await Deployment.RunAsync(() => 
    {
        //# Prerequisites
        // The role that manages the mirror needs the postgres_mirror_admin application role,
        // and the SNOWFLAKE application needs USAGE on the Postgres instance.
        var mirrorAdmin = new Snowflake.GrantApplicationRole("mirror_admin", new()
        {
            ApplicationRoleName = "\"SNOWFLAKE\".\"POSTGRES_MIRROR_ADMIN\"",
            ParentAccountRoleName = "my_role",
        });
    
        var instanceUsage = new Snowflake.Execute("instance_usage", new()
        {
            ExecuteSQL = "GRANT USAGE ON POSTGRES INSTANCE \"my_instance\" TO APPLICATION SNOWFLAKE",
            Revert = "SELECT 1",
        });
    
        // Only when the mirror uses a warehouse.
        var warehouseUsage = new Snowflake.Execute("warehouse_usage", new()
        {
            ExecuteSQL = "GRANT USAGE ON WAREHOUSE \"MY_WAREHOUSE\" TO APPLICATION SNOWFLAKE",
            Revert = "SELECT 1",
        });
    
        // Only when the mirror writes Iceberg tables to an external volume.
        var externalVolumeUsage = new Snowflake.Execute("external_volume_usage", new()
        {
            ExecuteSQL = "GRANT USAGE ON EXTERNAL VOLUME \"MY_EXTERNAL_VOLUME\" TO APPLICATION SNOWFLAKE",
            Revert = "SELECT 1",
        });
    
        //# Minimal
        var basic = new Snowflake.PostgresMirror("basic", new()
        {
            Name = "my_mirror",
            PostgresInstance = "my_instance",
            PostgresDatabase = "postgres",
            TargetDatabase = "MY_MIRROR_DB",
            PostgresTables = new[]
            {
                "public.orders",
                "public.customers",
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                mirrorAdmin,
                instanceUsage,
            },
        });
    
        //# Complete
        var complete = new Snowflake.PostgresMirror("complete", new()
        {
            Name = "my_complete_mirror",
            PostgresInstance = "my_instance",
            PostgresDatabase = "postgres",
            TargetDatabase = "MY_COMPLETE_MIRROR_DB",
            PostgresTables = new[]
            {
                "public.orders",
            },
            PostgresSchemas = new[]
            {
                "sales",
            },
            RefreshInterval = new Snowflake.Inputs.PostgresMirrorRefreshIntervalArgs
            {
                Minutes = 1,
            },
            Warehouse = "MY_WAREHOUSE",
            DropTargetDatabaseOnDestroy = true,
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                mirrorAdmin,
                instanceUsage,
                warehouseUsage,
            },
        });
    
        //# Iceberg tables on an external volume
        var iceberg = new Snowflake.PostgresMirror("iceberg", new()
        {
            Name = "my_iceberg_mirror",
            PostgresInstance = "my_instance",
            PostgresDatabase = "postgres",
            TargetDatabase = "MY_ICEBERG_MIRROR_DB",
            PostgresTables = new[]
            {
                "public.orders",
            },
            TargetTableType = "ICEBERG",
            ExternalVolume = "MY_EXTERNAL_VOLUME",
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                mirrorAdmin,
                instanceUsage,
                externalVolumeUsage,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.snowflake.GrantApplicationRole;
    import com.pulumi.snowflake.GrantApplicationRoleArgs;
    import com.pulumi.snowflake.Execute;
    import com.pulumi.snowflake.ExecuteArgs;
    import com.pulumi.snowflake.PostgresMirror;
    import com.pulumi.snowflake.PostgresMirrorArgs;
    import com.pulumi.snowflake.inputs.PostgresMirrorRefreshIntervalArgs;
    import com.pulumi.resources.CustomResourceOptions;
    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) {
            //# Prerequisites
            // The role that manages the mirror needs the postgres_mirror_admin application role,
            // and the SNOWFLAKE application needs USAGE on the Postgres instance.
            var mirrorAdmin = new GrantApplicationRole("mirrorAdmin", GrantApplicationRoleArgs.builder()
                .applicationRoleName("\"SNOWFLAKE\".\"POSTGRES_MIRROR_ADMIN\"")
                .parentAccountRoleName("my_role")
                .build());
    
            var instanceUsage = new Execute("instanceUsage", ExecuteArgs.builder()
                .execute("GRANT USAGE ON POSTGRES INSTANCE \"my_instance\" TO APPLICATION SNOWFLAKE")
                .revert("SELECT 1")
                .build());
    
            // Only when the mirror uses a warehouse.
            var warehouseUsage = new Execute("warehouseUsage", ExecuteArgs.builder()
                .execute("GRANT USAGE ON WAREHOUSE \"MY_WAREHOUSE\" TO APPLICATION SNOWFLAKE")
                .revert("SELECT 1")
                .build());
    
            // Only when the mirror writes Iceberg tables to an external volume.
            var externalVolumeUsage = new Execute("externalVolumeUsage", ExecuteArgs.builder()
                .execute("GRANT USAGE ON EXTERNAL VOLUME \"MY_EXTERNAL_VOLUME\" TO APPLICATION SNOWFLAKE")
                .revert("SELECT 1")
                .build());
    
            //# Minimal
            var basic = new PostgresMirror("basic", PostgresMirrorArgs.builder()
                .name("my_mirror")
                .postgresInstance("my_instance")
                .postgresDatabase("postgres")
                .targetDatabase("MY_MIRROR_DB")
                .postgresTables(            
                    "public.orders",
                    "public.customers")
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        mirrorAdmin,
                        instanceUsage)
                    .build());
    
            //# Complete
            var complete = new PostgresMirror("complete", PostgresMirrorArgs.builder()
                .name("my_complete_mirror")
                .postgresInstance("my_instance")
                .postgresDatabase("postgres")
                .targetDatabase("MY_COMPLETE_MIRROR_DB")
                .postgresTables("public.orders")
                .postgresSchemas("sales")
                .refreshInterval(PostgresMirrorRefreshIntervalArgs.builder()
                    .minutes(1)
                    .build())
                .warehouse("MY_WAREHOUSE")
                .dropTargetDatabaseOnDestroy(true)
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        mirrorAdmin,
                        instanceUsage,
                        warehouseUsage)
                    .build());
    
            //# Iceberg tables on an external volume
            var iceberg = new PostgresMirror("iceberg", PostgresMirrorArgs.builder()
                .name("my_iceberg_mirror")
                .postgresInstance("my_instance")
                .postgresDatabase("postgres")
                .targetDatabase("MY_ICEBERG_MIRROR_DB")
                .postgresTables("public.orders")
                .targetTableType("ICEBERG")
                .externalVolume("MY_EXTERNAL_VOLUME")
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        mirrorAdmin,
                        instanceUsage,
                        externalVolumeUsage)
                    .build());
    
        }
    }
    
    resources:
      ## Prerequisites
      # The role that manages the mirror needs the postgres_mirror_admin application role,
      # and the SNOWFLAKE application needs USAGE on the Postgres instance.
      mirrorAdmin:
        type: snowflake:GrantApplicationRole
        name: mirror_admin
        properties:
          applicationRoleName: '"SNOWFLAKE"."POSTGRES_MIRROR_ADMIN"'
          parentAccountRoleName: my_role
      instanceUsage:
        type: snowflake:Execute
        name: instance_usage
        properties:
          execute: GRANT USAGE ON POSTGRES INSTANCE "my_instance" TO APPLICATION SNOWFLAKE
          revert: SELECT 1
      # Only when the mirror uses a warehouse.
      warehouseUsage:
        type: snowflake:Execute
        name: warehouse_usage
        properties:
          execute: GRANT USAGE ON WAREHOUSE "MY_WAREHOUSE" TO APPLICATION SNOWFLAKE
          revert: SELECT 1
      # Only when the mirror writes Iceberg tables to an external volume.
      externalVolumeUsage:
        type: snowflake:Execute
        name: external_volume_usage
        properties:
          execute: GRANT USAGE ON EXTERNAL VOLUME "MY_EXTERNAL_VOLUME" TO APPLICATION SNOWFLAKE
          revert: SELECT 1
      ## Minimal
      basic:
        type: snowflake:PostgresMirror
        properties:
          name: my_mirror
          postgresInstance: my_instance
          postgresDatabase: postgres
          targetDatabase: MY_MIRROR_DB
          postgresTables:
            - public.orders
            - public.customers
        options:
          dependsOn:
            - ${mirrorAdmin}
            - ${instanceUsage}
      ## Complete
      complete:
        type: snowflake:PostgresMirror
        properties:
          name: my_complete_mirror
          postgresInstance: my_instance
          postgresDatabase: postgres
          targetDatabase: MY_COMPLETE_MIRROR_DB
          postgresTables:
            - public.orders
          postgresSchemas:
            - sales
          refreshInterval:
            minutes: 1
          warehouse: MY_WAREHOUSE
          dropTargetDatabaseOnDestroy: true
        options:
          dependsOn:
            - ${mirrorAdmin}
            - ${instanceUsage}
            - ${warehouseUsage}
      ## Iceberg tables on an external volume
      iceberg:
        type: snowflake:PostgresMirror
        properties:
          name: my_iceberg_mirror
          postgresInstance: my_instance
          postgresDatabase: postgres
          targetDatabase: MY_ICEBERG_MIRROR_DB
          postgresTables:
            - public.orders
          targetTableType: ICEBERG
          externalVolume: MY_EXTERNAL_VOLUME
        options:
          dependsOn:
            - ${mirrorAdmin}
            - ${instanceUsage}
            - ${externalVolumeUsage}
    
    terraform {
      required_providers {
        snowflake = {
          source = "pulumi/snowflake"
        }
      }
    }
    
    ## Prerequisites
    # The role that manages the mirror needs the postgres_mirror_admin application role,
    # and the SNOWFLAKE application needs USAGE on the Postgres instance.
    resource "snowflake_grant_application_role" "mirror_admin" {
      lifecycle {
        create_before_destroy = true
      }
      application_role_name    = "\"SNOWFLAKE\".\"POSTGRES_MIRROR_ADMIN\""
      parent_account_role_name = "my_role"
    }
    resource "snowflake_execute" "instance_usage" {
      lifecycle {
        create_before_destroy = true
      }
      execute = "GRANT USAGE ON POSTGRES INSTANCE \"my_instance\" TO APPLICATION SNOWFLAKE"
      revert  = "SELECT 1"
    }
    # Only when the mirror uses a warehouse.
    resource "snowflake_execute" "warehouse_usage" {
      lifecycle {
        create_before_destroy = true
      }
      execute = "GRANT USAGE ON WAREHOUSE \"MY_WAREHOUSE\" TO APPLICATION SNOWFLAKE"
      revert  = "SELECT 1"
    }
    # Only when the mirror writes Iceberg tables to an external volume.
    resource "snowflake_execute" "external_volume_usage" {
      lifecycle {
        create_before_destroy = true
      }
      execute = "GRANT USAGE ON EXTERNAL VOLUME \"MY_EXTERNAL_VOLUME\" TO APPLICATION SNOWFLAKE"
      revert  = "SELECT 1"
    }
    ## Minimal
    resource "snowflake_postgres_mirror" "basic" {
      depends_on = [snowflake_grant_application_role.mirror_admin, snowflake_execute.instance_usage]
      lifecycle {
        create_before_destroy = true
      }
      name              = "my_mirror"
      postgres_instance = "my_instance"
      postgres_database = "postgres"
      target_database   = "MY_MIRROR_DB"
      postgres_tables   = ["public.orders", "public.customers"]
    }
    ## Complete
    resource "snowflake_postgres_mirror" "complete" {
      depends_on = [snowflake_grant_application_role.mirror_admin, snowflake_execute.instance_usage, snowflake_execute.warehouse_usage]
      lifecycle {
        create_before_destroy = true
      }
      name              = "my_complete_mirror"
      postgres_instance = "my_instance"
      postgres_database = "postgres"
      target_database   = "MY_COMPLETE_MIRROR_DB"
      postgres_tables   = ["public.orders"]
      postgres_schemas  = ["sales"]
      refresh_interval {
        minutes = 1
      }
      warehouse                       = "MY_WAREHOUSE"
      drop_target_database_on_destroy = true
    }
    ## Iceberg tables on an external volume
    resource "snowflake_postgres_mirror" "iceberg" {
      depends_on = [snowflake_grant_application_role.mirror_admin, snowflake_execute.instance_usage, snowflake_execute.external_volume_usage]
      lifecycle {
        create_before_destroy = true
      }
      name              = "my_iceberg_mirror"
      postgres_instance = "my_instance"
      postgres_database = "postgres"
      target_database   = "MY_ICEBERG_MIRROR_DB"
      postgres_tables   = ["public.orders"]
      target_table_type = "ICEBERG"
      external_volume   = "MY_EXTERNAL_VOLUME"
    }
    

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

    Create PostgresMirror Resource

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

    Constructor syntax

    new PostgresMirror(name: string, args: PostgresMirrorArgs, opts?: CustomResourceOptions);
    @overload
    def PostgresMirror(resource_name: str,
                       args: PostgresMirrorArgs,
                       opts: Optional[ResourceOptions] = None)
    
    @overload
    def PostgresMirror(resource_name: str,
                       opts: Optional[ResourceOptions] = None,
                       postgres_database: Optional[str] = None,
                       postgres_instance: Optional[str] = None,
                       target_database: Optional[str] = None,
                       drop_target_database_on_destroy: Optional[bool] = None,
                       external_volume: Optional[str] = None,
                       name: Optional[str] = None,
                       postgres_schemas: Optional[Sequence[str]] = None,
                       postgres_tables: Optional[Sequence[str]] = None,
                       refresh_interval: Optional[PostgresMirrorRefreshIntervalArgs] = None,
                       target_table_type: Optional[str] = None,
                       warehouse: Optional[str] = None)
    func NewPostgresMirror(ctx *Context, name string, args PostgresMirrorArgs, opts ...ResourceOption) (*PostgresMirror, error)
    public PostgresMirror(string name, PostgresMirrorArgs args, CustomResourceOptions? opts = null)
    public PostgresMirror(String name, PostgresMirrorArgs args)
    public PostgresMirror(String name, PostgresMirrorArgs args, CustomResourceOptions options)
    
    type: snowflake:PostgresMirror
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "snowflake_postgres_mirror" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args PostgresMirrorArgs
    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 PostgresMirrorArgs
    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 PostgresMirrorArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args PostgresMirrorArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args PostgresMirrorArgs
    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 postgresMirrorResource = new Snowflake.PostgresMirror("postgresMirrorResource", new()
    {
        PostgresDatabase = "string",
        PostgresInstance = "string",
        TargetDatabase = "string",
        DropTargetDatabaseOnDestroy = false,
        ExternalVolume = "string",
        Name = "string",
        PostgresSchemas = new[]
        {
            "string",
        },
        PostgresTables = new[]
        {
            "string",
        },
        RefreshInterval = new Snowflake.Inputs.PostgresMirrorRefreshIntervalArgs
        {
            Hours = 0,
            Minutes = 0,
            Seconds = 0,
        },
        TargetTableType = "string",
        Warehouse = "string",
    });
    
    example, err := snowflake.NewPostgresMirror(ctx, "postgresMirrorResource", &snowflake.PostgresMirrorArgs{
    	PostgresDatabase:            pulumi.String("string"),
    	PostgresInstance:            pulumi.String("string"),
    	TargetDatabase:              pulumi.String("string"),
    	DropTargetDatabaseOnDestroy: pulumi.Bool(false),
    	ExternalVolume:              pulumi.String("string"),
    	Name:                        pulumi.String("string"),
    	PostgresSchemas: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	PostgresTables: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	RefreshInterval: &snowflake.PostgresMirrorRefreshIntervalArgs{
    		Hours:   pulumi.Int(0),
    		Minutes: pulumi.Int(0),
    		Seconds: pulumi.Int(0),
    	},
    	TargetTableType: pulumi.String("string"),
    	Warehouse:       pulumi.String("string"),
    })
    
    resource "snowflake_postgres_mirror" "postgresMirrorResource" {
      lifecycle {
        create_before_destroy = true
      }
      postgres_database               = "string"
      postgres_instance               = "string"
      target_database                 = "string"
      drop_target_database_on_destroy = false
      external_volume                 = "string"
      name                            = "string"
      postgres_schemas                = ["string"]
      postgres_tables                 = ["string"]
      refresh_interval = {
        hours   = 0
        minutes = 0
        seconds = 0
      }
      target_table_type = "string"
      warehouse         = "string"
    }
    
    var postgresMirrorResource = new PostgresMirror("postgresMirrorResource", PostgresMirrorArgs.builder()
        .postgresDatabase("string")
        .postgresInstance("string")
        .targetDatabase("string")
        .dropTargetDatabaseOnDestroy(false)
        .externalVolume("string")
        .name("string")
        .postgresSchemas("string")
        .postgresTables("string")
        .refreshInterval(PostgresMirrorRefreshIntervalArgs.builder()
            .hours(0)
            .minutes(0)
            .seconds(0)
            .build())
        .targetTableType("string")
        .warehouse("string")
        .build());
    
    postgres_mirror_resource = snowflake.PostgresMirror("postgresMirrorResource",
        postgres_database="string",
        postgres_instance="string",
        target_database="string",
        drop_target_database_on_destroy=False,
        external_volume="string",
        name="string",
        postgres_schemas=["string"],
        postgres_tables=["string"],
        refresh_interval={
            "hours": 0,
            "minutes": 0,
            "seconds": 0,
        },
        target_table_type="string",
        warehouse="string")
    
    const postgresMirrorResource = new snowflake.PostgresMirror("postgresMirrorResource", {
        postgresDatabase: "string",
        postgresInstance: "string",
        targetDatabase: "string",
        dropTargetDatabaseOnDestroy: false,
        externalVolume: "string",
        name: "string",
        postgresSchemas: ["string"],
        postgresTables: ["string"],
        refreshInterval: {
            hours: 0,
            minutes: 0,
            seconds: 0,
        },
        targetTableType: "string",
        warehouse: "string",
    });
    
    type: snowflake:PostgresMirror
    properties:
        dropTargetDatabaseOnDestroy: false
        externalVolume: string
        name: string
        postgresDatabase: string
        postgresInstance: string
        postgresSchemas:
            - string
        postgresTables:
            - string
        refreshInterval:
            hours: 0
            minutes: 0
            seconds: 0
        targetDatabase: string
        targetTableType: string
        warehouse: string
    

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

    PostgresDatabase string
    Specifies the source database on the Postgres instance.
    PostgresInstance string
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    TargetDatabase string
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    DropTargetDatabaseOnDestroy bool
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    ExternalVolume string
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    Name string
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    PostgresSchemas List<string>
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    PostgresTables List<string>
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    RefreshInterval PostgresMirrorRefreshInterval
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    TargetTableType string
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    Warehouse string
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.
    PostgresDatabase string
    Specifies the source database on the Postgres instance.
    PostgresInstance string
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    TargetDatabase string
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    DropTargetDatabaseOnDestroy bool
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    ExternalVolume string
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    Name string
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    PostgresSchemas []string
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    PostgresTables []string
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    RefreshInterval PostgresMirrorRefreshIntervalArgs
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    TargetTableType string
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    Warehouse string
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.
    postgres_database string
    Specifies the source database on the Postgres instance.
    postgres_instance string
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    target_database string
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    drop_target_database_on_destroy bool
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    external_volume string
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    name string
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    postgres_schemas list(string)
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    postgres_tables list(string)
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    refresh_interval object
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    target_table_type string
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    warehouse string
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.
    postgresDatabase String
    Specifies the source database on the Postgres instance.
    postgresInstance String
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    targetDatabase String
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    dropTargetDatabaseOnDestroy Boolean
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    externalVolume String
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    name String
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    postgresSchemas List<String>
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    postgresTables List<String>
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    refreshInterval PostgresMirrorRefreshInterval
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    targetTableType String
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    warehouse String
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.
    postgresDatabase string
    Specifies the source database on the Postgres instance.
    postgresInstance string
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    targetDatabase string
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    dropTargetDatabaseOnDestroy boolean
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    externalVolume string
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    name string
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    postgresSchemas string[]
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    postgresTables string[]
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    refreshInterval PostgresMirrorRefreshInterval
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    targetTableType string
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    warehouse string
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.
    postgres_database str
    Specifies the source database on the Postgres instance.
    postgres_instance str
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    target_database str
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    drop_target_database_on_destroy bool
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    external_volume str
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    name str
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    postgres_schemas Sequence[str]
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    postgres_tables Sequence[str]
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    refresh_interval PostgresMirrorRefreshIntervalArgs
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    target_table_type str
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    warehouse str
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.
    postgresDatabase String
    Specifies the source database on the Postgres instance.
    postgresInstance String
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    targetDatabase String
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    dropTargetDatabaseOnDestroy Boolean
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    externalVolume String
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    name String
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    postgresSchemas List<String>
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    postgresTables List<String>
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    refreshInterval Property Map
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    targetTableType String
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    warehouse String
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.

    Outputs

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

    DescribeOutputs List<PostgresMirrorDescribeOutput>
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    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.
    DescribeOutputs []PostgresMirrorDescribeOutput
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    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.
    describe_outputs list(object)
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    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.
    describeOutputs List<PostgresMirrorDescribeOutput>
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    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.
    describeOutputs PostgresMirrorDescribeOutput[]
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    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.
    describe_outputs Sequence[PostgresMirrorDescribeOutput]
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    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.
    describeOutputs List<Property Map>
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    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.

    Look up Existing PostgresMirror Resource

    Get an existing PostgresMirror 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?: PostgresMirrorState, opts?: CustomResourceOptions): PostgresMirror
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            describe_outputs: Optional[Sequence[PostgresMirrorDescribeOutputArgs]] = None,
            drop_target_database_on_destroy: Optional[bool] = None,
            external_volume: Optional[str] = None,
            fully_qualified_name: Optional[str] = None,
            name: Optional[str] = None,
            postgres_database: Optional[str] = None,
            postgres_instance: Optional[str] = None,
            postgres_schemas: Optional[Sequence[str]] = None,
            postgres_tables: Optional[Sequence[str]] = None,
            refresh_interval: Optional[PostgresMirrorRefreshIntervalArgs] = None,
            target_database: Optional[str] = None,
            target_table_type: Optional[str] = None,
            warehouse: Optional[str] = None) -> PostgresMirror
    func GetPostgresMirror(ctx *Context, name string, id IDInput, state *PostgresMirrorState, opts ...ResourceOption) (*PostgresMirror, error)
    public static PostgresMirror Get(string name, Input<string> id, PostgresMirrorState? state, CustomResourceOptions? opts = null)
    public static PostgresMirror get(String name, Output<String> id, PostgresMirrorState state, CustomResourceOptions options)
    resources:  _:    type: snowflake:PostgresMirror    get:      id: ${id}
    import {
      to = snowflake_postgres_mirror.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:
    DescribeOutputs List<PostgresMirrorDescribeOutput>
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    DropTargetDatabaseOnDestroy bool
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    ExternalVolume string
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    FullyQualifiedName string
    Fully qualified name of the resource. For more information, see object name resolution.
    Name string
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    PostgresDatabase string
    Specifies the source database on the Postgres instance.
    PostgresInstance string
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    PostgresSchemas List<string>
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    PostgresTables List<string>
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    RefreshInterval PostgresMirrorRefreshInterval
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    TargetDatabase string
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    TargetTableType string
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    Warehouse string
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.
    DescribeOutputs []PostgresMirrorDescribeOutputArgs
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    DropTargetDatabaseOnDestroy bool
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    ExternalVolume string
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    FullyQualifiedName string
    Fully qualified name of the resource. For more information, see object name resolution.
    Name string
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    PostgresDatabase string
    Specifies the source database on the Postgres instance.
    PostgresInstance string
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    PostgresSchemas []string
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    PostgresTables []string
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    RefreshInterval PostgresMirrorRefreshIntervalArgs
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    TargetDatabase string
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    TargetTableType string
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    Warehouse string
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.
    describe_outputs list(object)
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    drop_target_database_on_destroy bool
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    external_volume string
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    fully_qualified_name string
    Fully qualified name of the resource. For more information, see object name resolution.
    name string
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    postgres_database string
    Specifies the source database on the Postgres instance.
    postgres_instance string
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    postgres_schemas list(string)
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    postgres_tables list(string)
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    refresh_interval object
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    target_database string
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    target_table_type string
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    warehouse string
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.
    describeOutputs List<PostgresMirrorDescribeOutput>
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    dropTargetDatabaseOnDestroy Boolean
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    externalVolume String
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    fullyQualifiedName String
    Fully qualified name of the resource. For more information, see object name resolution.
    name String
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    postgresDatabase String
    Specifies the source database on the Postgres instance.
    postgresInstance String
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    postgresSchemas List<String>
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    postgresTables List<String>
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    refreshInterval PostgresMirrorRefreshInterval
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    targetDatabase String
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    targetTableType String
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    warehouse String
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.
    describeOutputs PostgresMirrorDescribeOutput[]
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    dropTargetDatabaseOnDestroy boolean
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    externalVolume string
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    fullyQualifiedName string
    Fully qualified name of the resource. For more information, see object name resolution.
    name string
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    postgresDatabase string
    Specifies the source database on the Postgres instance.
    postgresInstance string
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    postgresSchemas string[]
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    postgresTables string[]
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    refreshInterval PostgresMirrorRefreshInterval
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    targetDatabase string
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    targetTableType string
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    warehouse string
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.
    describe_outputs Sequence[PostgresMirrorDescribeOutputArgs]
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    drop_target_database_on_destroy bool
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    external_volume str
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    fully_qualified_name str
    Fully qualified name of the resource. For more information, see object name resolution.
    name str
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    postgres_database str
    Specifies the source database on the Postgres instance.
    postgres_instance str
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    postgres_schemas Sequence[str]
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    postgres_tables Sequence[str]
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    refresh_interval PostgresMirrorRefreshIntervalArgs
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    target_database str
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    target_table_type str
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    warehouse str
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.
    describeOutputs List<Property Map>
    Outputs the result of DESCRIBE_MIRROR for the given Postgres mirror.
    dropTargetDatabaseOnDestroy Boolean
    (Default: true) Specifies whether destroying the mirror also drops its target database. A kept target database can never be the target of a mirror again, so with false, a replacement that keeps the same targetDatabase fails. A kept target database stays owned by the SNOWFLAKE application. To manage or drop it, first transfer its ownership with GRANT OWNERSHIP ON DATABASE, which needs the MANAGE GRANTS privilege.
    externalVolume String
    Specifies the external volume for Iceberg target tables. Valid only with targetTableType = "ICEBERG". When not set, the tables use Snowflake-managed storage. Grant USAGE on the volume to APPLICATION SNOWFLAKE first.
    fullyQualifiedName String
    Fully qualified name of the resource. For more information, see object name resolution.
    name String
    Specifies the name of the mirror. It must be unique across all Postgres instances in the account. Snowflake stores the name lowercased, and the lowercased name is the resource ID.
    postgresDatabase String
    Specifies the source database on the Postgres instance.
    postgresInstance String
    Specifies the source Postgres instance (case-sensitive). The role used by the provider must own the instance.
    postgresSchemas List<String>
    Specifies the source schemas to mirror. Every current and future table in them is included. Schema names are literal and case-sensitive, written without Postgres quoting, such as MixedCase rather than "MixedCase". Schemas are added and removed in place.
    postgresTables List<String>
    Specifies the source tables to mirror, as schema-qualified names (schema.table) written the way DESCRIBE_MIRROR returns them: unquoted and lowercase, except for parts Postgres requires to be quoted, such as public."MixedCase". Other spellings of the same table show as a change on every plan. Tables are added and removed in place, without copying the other tables again.
    refreshInterval Property Map
    Specifies how often changes are merged into the target tables. Set exactly one of hours, minutes, or seconds. When not set, Snowflake uses its default interval. Removing the block keeps the current interval, because ALTER_MIRROR cannot reset it.
    targetDatabase String
    Specifies the Snowflake database the mirror creates and keeps up to date. The database must not exist yet, and Snowflake uppercases its name. The mirror protects the database, so do not manage it with snowflake.Database.
    targetTableType String
    Specifies the format of the target tables. When not set, Snowflake uses SNOWFLAKE. Valid values are (case-insensitive): SNOWFLAKE | ICEBERG.
    warehouse String
    Specifies the warehouse the mirror's apply task runs on. When not set, the task runs on serverless compute. Snowflake uppercases the name, so the warehouse itself must have an uppercase name; the case used in the configuration does not matter. Grant USAGE on the warehouse to APPLICATION SNOWFLAKE first.

    Supporting Types

    PostgresMirrorDescribeOutput, PostgresMirrorDescribeOutputArgs

    PostgresMirrorRefreshInterval, PostgresMirrorRefreshIntervalArgs

    Hours int
    Specifies the refresh interval in hours. (conflicts with minutes and seconds)
    Minutes int
    Specifies the refresh interval in minutes. (conflicts with hours and seconds)
    Seconds int
    Specifies the refresh interval in seconds. (conflicts with hours and minutes)
    Hours int
    Specifies the refresh interval in hours. (conflicts with minutes and seconds)
    Minutes int
    Specifies the refresh interval in minutes. (conflicts with hours and seconds)
    Seconds int
    Specifies the refresh interval in seconds. (conflicts with hours and minutes)
    hours number
    Specifies the refresh interval in hours. (conflicts with minutes and seconds)
    minutes number
    Specifies the refresh interval in minutes. (conflicts with hours and seconds)
    seconds number
    Specifies the refresh interval in seconds. (conflicts with hours and minutes)
    hours Integer
    Specifies the refresh interval in hours. (conflicts with minutes and seconds)
    minutes Integer
    Specifies the refresh interval in minutes. (conflicts with hours and seconds)
    seconds Integer
    Specifies the refresh interval in seconds. (conflicts with hours and minutes)
    hours number
    Specifies the refresh interval in hours. (conflicts with minutes and seconds)
    minutes number
    Specifies the refresh interval in minutes. (conflicts with hours and seconds)
    seconds number
    Specifies the refresh interval in seconds. (conflicts with hours and minutes)
    hours int
    Specifies the refresh interval in hours. (conflicts with minutes and seconds)
    minutes int
    Specifies the refresh interval in minutes. (conflicts with hours and seconds)
    seconds int
    Specifies the refresh interval in seconds. (conflicts with hours and minutes)
    hours Number
    Specifies the refresh interval in hours. (conflicts with minutes and seconds)
    minutes Number
    Specifies the refresh interval in minutes. (conflicts with hours and seconds)
    seconds Number
    Specifies the refresh interval in seconds. (conflicts with hours and minutes)

    Import

    $ pulumi import snowflake:index/postgresMirror:PostgresMirror example '<mirror_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.23.0
    published on Friday, Nov 6, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial