github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ebs/snapshotCopy.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package ebs
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Creates a Snapshot of a snapshot.
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ebs"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			example, err := ebs.NewVolume(ctx, "example", &ebs.VolumeArgs{
    33  //				AvailabilityZone: pulumi.String("us-west-2a"),
    34  //				Size:             pulumi.Int(40),
    35  //				Tags: pulumi.StringMap{
    36  //					"Name": pulumi.String("HelloWorld"),
    37  //				},
    38  //			})
    39  //			if err != nil {
    40  //				return err
    41  //			}
    42  //			exampleSnapshot, err := ebs.NewSnapshot(ctx, "example_snapshot", &ebs.SnapshotArgs{
    43  //				VolumeId: example.ID(),
    44  //				Tags: pulumi.StringMap{
    45  //					"Name": pulumi.String("HelloWorld_snap"),
    46  //				},
    47  //			})
    48  //			if err != nil {
    49  //				return err
    50  //			}
    51  //			_, err = ebs.NewSnapshotCopy(ctx, "example_copy", &ebs.SnapshotCopyArgs{
    52  //				SourceSnapshotId: exampleSnapshot.ID(),
    53  //				SourceRegion:     pulumi.String("us-west-2"),
    54  //				Tags: pulumi.StringMap{
    55  //					"Name": pulumi.String("HelloWorld_copy_snap"),
    56  //				},
    57  //			})
    58  //			if err != nil {
    59  //				return err
    60  //			}
    61  //			return nil
    62  //		})
    63  //	}
    64  //
    65  // ```
    66  // <!--End PulumiCodeChooser -->
    67  type SnapshotCopy struct {
    68  	pulumi.CustomResourceState
    69  
    70  	// Amazon Resource Name (ARN) of the EBS Snapshot.
    71  	Arn pulumi.StringOutput `pulumi:"arn"`
    72  	// The data encryption key identifier for the snapshot.
    73  	DataEncryptionKeyId pulumi.StringOutput `pulumi:"dataEncryptionKeyId"`
    74  	// A description of what the snapshot is.
    75  	Description pulumi.StringPtrOutput `pulumi:"description"`
    76  	// Whether the snapshot is encrypted.
    77  	Encrypted pulumi.BoolPtrOutput `pulumi:"encrypted"`
    78  	// The ARN for the KMS encryption key.
    79  	KmsKeyId   pulumi.StringPtrOutput `pulumi:"kmsKeyId"`
    80  	OutpostArn pulumi.StringOutput    `pulumi:"outpostArn"`
    81  	// Value from an Amazon-maintained list (`amazon`, `aws-marketplace`, `microsoft`) of snapshot owners.
    82  	OwnerAlias pulumi.StringOutput `pulumi:"ownerAlias"`
    83  	// The AWS account ID of the snapshot owner.
    84  	OwnerId pulumi.StringOutput `pulumi:"ownerId"`
    85  	// Indicates whether to permanently restore an archived snapshot.
    86  	PermanentRestore pulumi.BoolPtrOutput `pulumi:"permanentRestore"`
    87  	// The region of the source snapshot.
    88  	SourceRegion pulumi.StringOutput `pulumi:"sourceRegion"`
    89  	// The ARN for the snapshot to be copied.
    90  	SourceSnapshotId pulumi.StringOutput `pulumi:"sourceSnapshotId"`
    91  	// The name of the storage tier. Valid values are `archive` and `standard`. Default value is `standard`.
    92  	StorageTier pulumi.StringOutput `pulumi:"storageTier"`
    93  	// A map of tags for the snapshot.
    94  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    95  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    96  	//
    97  	// Deprecated: Please use `tags` instead.
    98  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    99  	// Specifies the number of days for which to temporarily restore an archived snapshot. Required for temporary restores only. The snapshot will be automatically re-archived after this period.
   100  	TemporaryRestoreDays pulumi.IntPtrOutput `pulumi:"temporaryRestoreDays"`
   101  	VolumeId             pulumi.StringOutput `pulumi:"volumeId"`
   102  	// The size of the drive in GiBs.
   103  	VolumeSize pulumi.IntOutput `pulumi:"volumeSize"`
   104  }
   105  
   106  // NewSnapshotCopy registers a new resource with the given unique name, arguments, and options.
   107  func NewSnapshotCopy(ctx *pulumi.Context,
   108  	name string, args *SnapshotCopyArgs, opts ...pulumi.ResourceOption) (*SnapshotCopy, error) {
   109  	if args == nil {
   110  		return nil, errors.New("missing one or more required arguments")
   111  	}
   112  
   113  	if args.SourceRegion == nil {
   114  		return nil, errors.New("invalid value for required argument 'SourceRegion'")
   115  	}
   116  	if args.SourceSnapshotId == nil {
   117  		return nil, errors.New("invalid value for required argument 'SourceSnapshotId'")
   118  	}
   119  	opts = internal.PkgResourceDefaultOpts(opts)
   120  	var resource SnapshotCopy
   121  	err := ctx.RegisterResource("aws:ebs/snapshotCopy:SnapshotCopy", name, args, &resource, opts...)
   122  	if err != nil {
   123  		return nil, err
   124  	}
   125  	return &resource, nil
   126  }
   127  
   128  // GetSnapshotCopy gets an existing SnapshotCopy resource's state with the given name, ID, and optional
   129  // state properties that are used to uniquely qualify the lookup (nil if not required).
   130  func GetSnapshotCopy(ctx *pulumi.Context,
   131  	name string, id pulumi.IDInput, state *SnapshotCopyState, opts ...pulumi.ResourceOption) (*SnapshotCopy, error) {
   132  	var resource SnapshotCopy
   133  	err := ctx.ReadResource("aws:ebs/snapshotCopy:SnapshotCopy", name, id, state, &resource, opts...)
   134  	if err != nil {
   135  		return nil, err
   136  	}
   137  	return &resource, nil
   138  }
   139  
   140  // Input properties used for looking up and filtering SnapshotCopy resources.
   141  type snapshotCopyState struct {
   142  	// Amazon Resource Name (ARN) of the EBS Snapshot.
   143  	Arn *string `pulumi:"arn"`
   144  	// The data encryption key identifier for the snapshot.
   145  	DataEncryptionKeyId *string `pulumi:"dataEncryptionKeyId"`
   146  	// A description of what the snapshot is.
   147  	Description *string `pulumi:"description"`
   148  	// Whether the snapshot is encrypted.
   149  	Encrypted *bool `pulumi:"encrypted"`
   150  	// The ARN for the KMS encryption key.
   151  	KmsKeyId   *string `pulumi:"kmsKeyId"`
   152  	OutpostArn *string `pulumi:"outpostArn"`
   153  	// Value from an Amazon-maintained list (`amazon`, `aws-marketplace`, `microsoft`) of snapshot owners.
   154  	OwnerAlias *string `pulumi:"ownerAlias"`
   155  	// The AWS account ID of the snapshot owner.
   156  	OwnerId *string `pulumi:"ownerId"`
   157  	// Indicates whether to permanently restore an archived snapshot.
   158  	PermanentRestore *bool `pulumi:"permanentRestore"`
   159  	// The region of the source snapshot.
   160  	SourceRegion *string `pulumi:"sourceRegion"`
   161  	// The ARN for the snapshot to be copied.
   162  	SourceSnapshotId *string `pulumi:"sourceSnapshotId"`
   163  	// The name of the storage tier. Valid values are `archive` and `standard`. Default value is `standard`.
   164  	StorageTier *string `pulumi:"storageTier"`
   165  	// A map of tags for the snapshot.
   166  	Tags map[string]string `pulumi:"tags"`
   167  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   168  	//
   169  	// Deprecated: Please use `tags` instead.
   170  	TagsAll map[string]string `pulumi:"tagsAll"`
   171  	// Specifies the number of days for which to temporarily restore an archived snapshot. Required for temporary restores only. The snapshot will be automatically re-archived after this period.
   172  	TemporaryRestoreDays *int    `pulumi:"temporaryRestoreDays"`
   173  	VolumeId             *string `pulumi:"volumeId"`
   174  	// The size of the drive in GiBs.
   175  	VolumeSize *int `pulumi:"volumeSize"`
   176  }
   177  
   178  type SnapshotCopyState struct {
   179  	// Amazon Resource Name (ARN) of the EBS Snapshot.
   180  	Arn pulumi.StringPtrInput
   181  	// The data encryption key identifier for the snapshot.
   182  	DataEncryptionKeyId pulumi.StringPtrInput
   183  	// A description of what the snapshot is.
   184  	Description pulumi.StringPtrInput
   185  	// Whether the snapshot is encrypted.
   186  	Encrypted pulumi.BoolPtrInput
   187  	// The ARN for the KMS encryption key.
   188  	KmsKeyId   pulumi.StringPtrInput
   189  	OutpostArn pulumi.StringPtrInput
   190  	// Value from an Amazon-maintained list (`amazon`, `aws-marketplace`, `microsoft`) of snapshot owners.
   191  	OwnerAlias pulumi.StringPtrInput
   192  	// The AWS account ID of the snapshot owner.
   193  	OwnerId pulumi.StringPtrInput
   194  	// Indicates whether to permanently restore an archived snapshot.
   195  	PermanentRestore pulumi.BoolPtrInput
   196  	// The region of the source snapshot.
   197  	SourceRegion pulumi.StringPtrInput
   198  	// The ARN for the snapshot to be copied.
   199  	SourceSnapshotId pulumi.StringPtrInput
   200  	// The name of the storage tier. Valid values are `archive` and `standard`. Default value is `standard`.
   201  	StorageTier pulumi.StringPtrInput
   202  	// A map of tags for the snapshot.
   203  	Tags pulumi.StringMapInput
   204  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   205  	//
   206  	// Deprecated: Please use `tags` instead.
   207  	TagsAll pulumi.StringMapInput
   208  	// Specifies the number of days for which to temporarily restore an archived snapshot. Required for temporary restores only. The snapshot will be automatically re-archived after this period.
   209  	TemporaryRestoreDays pulumi.IntPtrInput
   210  	VolumeId             pulumi.StringPtrInput
   211  	// The size of the drive in GiBs.
   212  	VolumeSize pulumi.IntPtrInput
   213  }
   214  
   215  func (SnapshotCopyState) ElementType() reflect.Type {
   216  	return reflect.TypeOf((*snapshotCopyState)(nil)).Elem()
   217  }
   218  
   219  type snapshotCopyArgs struct {
   220  	// A description of what the snapshot is.
   221  	Description *string `pulumi:"description"`
   222  	// Whether the snapshot is encrypted.
   223  	Encrypted *bool `pulumi:"encrypted"`
   224  	// The ARN for the KMS encryption key.
   225  	KmsKeyId *string `pulumi:"kmsKeyId"`
   226  	// Indicates whether to permanently restore an archived snapshot.
   227  	PermanentRestore *bool `pulumi:"permanentRestore"`
   228  	// The region of the source snapshot.
   229  	SourceRegion string `pulumi:"sourceRegion"`
   230  	// The ARN for the snapshot to be copied.
   231  	SourceSnapshotId string `pulumi:"sourceSnapshotId"`
   232  	// The name of the storage tier. Valid values are `archive` and `standard`. Default value is `standard`.
   233  	StorageTier *string `pulumi:"storageTier"`
   234  	// A map of tags for the snapshot.
   235  	Tags map[string]string `pulumi:"tags"`
   236  	// Specifies the number of days for which to temporarily restore an archived snapshot. Required for temporary restores only. The snapshot will be automatically re-archived after this period.
   237  	TemporaryRestoreDays *int `pulumi:"temporaryRestoreDays"`
   238  }
   239  
   240  // The set of arguments for constructing a SnapshotCopy resource.
   241  type SnapshotCopyArgs struct {
   242  	// A description of what the snapshot is.
   243  	Description pulumi.StringPtrInput
   244  	// Whether the snapshot is encrypted.
   245  	Encrypted pulumi.BoolPtrInput
   246  	// The ARN for the KMS encryption key.
   247  	KmsKeyId pulumi.StringPtrInput
   248  	// Indicates whether to permanently restore an archived snapshot.
   249  	PermanentRestore pulumi.BoolPtrInput
   250  	// The region of the source snapshot.
   251  	SourceRegion pulumi.StringInput
   252  	// The ARN for the snapshot to be copied.
   253  	SourceSnapshotId pulumi.StringInput
   254  	// The name of the storage tier. Valid values are `archive` and `standard`. Default value is `standard`.
   255  	StorageTier pulumi.StringPtrInput
   256  	// A map of tags for the snapshot.
   257  	Tags pulumi.StringMapInput
   258  	// Specifies the number of days for which to temporarily restore an archived snapshot. Required for temporary restores only. The snapshot will be automatically re-archived after this period.
   259  	TemporaryRestoreDays pulumi.IntPtrInput
   260  }
   261  
   262  func (SnapshotCopyArgs) ElementType() reflect.Type {
   263  	return reflect.TypeOf((*snapshotCopyArgs)(nil)).Elem()
   264  }
   265  
   266  type SnapshotCopyInput interface {
   267  	pulumi.Input
   268  
   269  	ToSnapshotCopyOutput() SnapshotCopyOutput
   270  	ToSnapshotCopyOutputWithContext(ctx context.Context) SnapshotCopyOutput
   271  }
   272  
   273  func (*SnapshotCopy) ElementType() reflect.Type {
   274  	return reflect.TypeOf((**SnapshotCopy)(nil)).Elem()
   275  }
   276  
   277  func (i *SnapshotCopy) ToSnapshotCopyOutput() SnapshotCopyOutput {
   278  	return i.ToSnapshotCopyOutputWithContext(context.Background())
   279  }
   280  
   281  func (i *SnapshotCopy) ToSnapshotCopyOutputWithContext(ctx context.Context) SnapshotCopyOutput {
   282  	return pulumi.ToOutputWithContext(ctx, i).(SnapshotCopyOutput)
   283  }
   284  
   285  // SnapshotCopyArrayInput is an input type that accepts SnapshotCopyArray and SnapshotCopyArrayOutput values.
   286  // You can construct a concrete instance of `SnapshotCopyArrayInput` via:
   287  //
   288  //	SnapshotCopyArray{ SnapshotCopyArgs{...} }
   289  type SnapshotCopyArrayInput interface {
   290  	pulumi.Input
   291  
   292  	ToSnapshotCopyArrayOutput() SnapshotCopyArrayOutput
   293  	ToSnapshotCopyArrayOutputWithContext(context.Context) SnapshotCopyArrayOutput
   294  }
   295  
   296  type SnapshotCopyArray []SnapshotCopyInput
   297  
   298  func (SnapshotCopyArray) ElementType() reflect.Type {
   299  	return reflect.TypeOf((*[]*SnapshotCopy)(nil)).Elem()
   300  }
   301  
   302  func (i SnapshotCopyArray) ToSnapshotCopyArrayOutput() SnapshotCopyArrayOutput {
   303  	return i.ToSnapshotCopyArrayOutputWithContext(context.Background())
   304  }
   305  
   306  func (i SnapshotCopyArray) ToSnapshotCopyArrayOutputWithContext(ctx context.Context) SnapshotCopyArrayOutput {
   307  	return pulumi.ToOutputWithContext(ctx, i).(SnapshotCopyArrayOutput)
   308  }
   309  
   310  // SnapshotCopyMapInput is an input type that accepts SnapshotCopyMap and SnapshotCopyMapOutput values.
   311  // You can construct a concrete instance of `SnapshotCopyMapInput` via:
   312  //
   313  //	SnapshotCopyMap{ "key": SnapshotCopyArgs{...} }
   314  type SnapshotCopyMapInput interface {
   315  	pulumi.Input
   316  
   317  	ToSnapshotCopyMapOutput() SnapshotCopyMapOutput
   318  	ToSnapshotCopyMapOutputWithContext(context.Context) SnapshotCopyMapOutput
   319  }
   320  
   321  type SnapshotCopyMap map[string]SnapshotCopyInput
   322  
   323  func (SnapshotCopyMap) ElementType() reflect.Type {
   324  	return reflect.TypeOf((*map[string]*SnapshotCopy)(nil)).Elem()
   325  }
   326  
   327  func (i SnapshotCopyMap) ToSnapshotCopyMapOutput() SnapshotCopyMapOutput {
   328  	return i.ToSnapshotCopyMapOutputWithContext(context.Background())
   329  }
   330  
   331  func (i SnapshotCopyMap) ToSnapshotCopyMapOutputWithContext(ctx context.Context) SnapshotCopyMapOutput {
   332  	return pulumi.ToOutputWithContext(ctx, i).(SnapshotCopyMapOutput)
   333  }
   334  
   335  type SnapshotCopyOutput struct{ *pulumi.OutputState }
   336  
   337  func (SnapshotCopyOutput) ElementType() reflect.Type {
   338  	return reflect.TypeOf((**SnapshotCopy)(nil)).Elem()
   339  }
   340  
   341  func (o SnapshotCopyOutput) ToSnapshotCopyOutput() SnapshotCopyOutput {
   342  	return o
   343  }
   344  
   345  func (o SnapshotCopyOutput) ToSnapshotCopyOutputWithContext(ctx context.Context) SnapshotCopyOutput {
   346  	return o
   347  }
   348  
   349  // Amazon Resource Name (ARN) of the EBS Snapshot.
   350  func (o SnapshotCopyOutput) Arn() pulumi.StringOutput {
   351  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   352  }
   353  
   354  // The data encryption key identifier for the snapshot.
   355  func (o SnapshotCopyOutput) DataEncryptionKeyId() pulumi.StringOutput {
   356  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringOutput { return v.DataEncryptionKeyId }).(pulumi.StringOutput)
   357  }
   358  
   359  // A description of what the snapshot is.
   360  func (o SnapshotCopyOutput) Description() pulumi.StringPtrOutput {
   361  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   362  }
   363  
   364  // Whether the snapshot is encrypted.
   365  func (o SnapshotCopyOutput) Encrypted() pulumi.BoolPtrOutput {
   366  	return o.ApplyT(func(v *SnapshotCopy) pulumi.BoolPtrOutput { return v.Encrypted }).(pulumi.BoolPtrOutput)
   367  }
   368  
   369  // The ARN for the KMS encryption key.
   370  func (o SnapshotCopyOutput) KmsKeyId() pulumi.StringPtrOutput {
   371  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput)
   372  }
   373  
   374  func (o SnapshotCopyOutput) OutpostArn() pulumi.StringOutput {
   375  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringOutput { return v.OutpostArn }).(pulumi.StringOutput)
   376  }
   377  
   378  // Value from an Amazon-maintained list (`amazon`, `aws-marketplace`, `microsoft`) of snapshot owners.
   379  func (o SnapshotCopyOutput) OwnerAlias() pulumi.StringOutput {
   380  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringOutput { return v.OwnerAlias }).(pulumi.StringOutput)
   381  }
   382  
   383  // The AWS account ID of the snapshot owner.
   384  func (o SnapshotCopyOutput) OwnerId() pulumi.StringOutput {
   385  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput)
   386  }
   387  
   388  // Indicates whether to permanently restore an archived snapshot.
   389  func (o SnapshotCopyOutput) PermanentRestore() pulumi.BoolPtrOutput {
   390  	return o.ApplyT(func(v *SnapshotCopy) pulumi.BoolPtrOutput { return v.PermanentRestore }).(pulumi.BoolPtrOutput)
   391  }
   392  
   393  // The region of the source snapshot.
   394  func (o SnapshotCopyOutput) SourceRegion() pulumi.StringOutput {
   395  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringOutput { return v.SourceRegion }).(pulumi.StringOutput)
   396  }
   397  
   398  // The ARN for the snapshot to be copied.
   399  func (o SnapshotCopyOutput) SourceSnapshotId() pulumi.StringOutput {
   400  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringOutput { return v.SourceSnapshotId }).(pulumi.StringOutput)
   401  }
   402  
   403  // The name of the storage tier. Valid values are `archive` and `standard`. Default value is `standard`.
   404  func (o SnapshotCopyOutput) StorageTier() pulumi.StringOutput {
   405  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringOutput { return v.StorageTier }).(pulumi.StringOutput)
   406  }
   407  
   408  // A map of tags for the snapshot.
   409  func (o SnapshotCopyOutput) Tags() pulumi.StringMapOutput {
   410  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   411  }
   412  
   413  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   414  //
   415  // Deprecated: Please use `tags` instead.
   416  func (o SnapshotCopyOutput) TagsAll() pulumi.StringMapOutput {
   417  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   418  }
   419  
   420  // Specifies the number of days for which to temporarily restore an archived snapshot. Required for temporary restores only. The snapshot will be automatically re-archived after this period.
   421  func (o SnapshotCopyOutput) TemporaryRestoreDays() pulumi.IntPtrOutput {
   422  	return o.ApplyT(func(v *SnapshotCopy) pulumi.IntPtrOutput { return v.TemporaryRestoreDays }).(pulumi.IntPtrOutput)
   423  }
   424  
   425  func (o SnapshotCopyOutput) VolumeId() pulumi.StringOutput {
   426  	return o.ApplyT(func(v *SnapshotCopy) pulumi.StringOutput { return v.VolumeId }).(pulumi.StringOutput)
   427  }
   428  
   429  // The size of the drive in GiBs.
   430  func (o SnapshotCopyOutput) VolumeSize() pulumi.IntOutput {
   431  	return o.ApplyT(func(v *SnapshotCopy) pulumi.IntOutput { return v.VolumeSize }).(pulumi.IntOutput)
   432  }
   433  
   434  type SnapshotCopyArrayOutput struct{ *pulumi.OutputState }
   435  
   436  func (SnapshotCopyArrayOutput) ElementType() reflect.Type {
   437  	return reflect.TypeOf((*[]*SnapshotCopy)(nil)).Elem()
   438  }
   439  
   440  func (o SnapshotCopyArrayOutput) ToSnapshotCopyArrayOutput() SnapshotCopyArrayOutput {
   441  	return o
   442  }
   443  
   444  func (o SnapshotCopyArrayOutput) ToSnapshotCopyArrayOutputWithContext(ctx context.Context) SnapshotCopyArrayOutput {
   445  	return o
   446  }
   447  
   448  func (o SnapshotCopyArrayOutput) Index(i pulumi.IntInput) SnapshotCopyOutput {
   449  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SnapshotCopy {
   450  		return vs[0].([]*SnapshotCopy)[vs[1].(int)]
   451  	}).(SnapshotCopyOutput)
   452  }
   453  
   454  type SnapshotCopyMapOutput struct{ *pulumi.OutputState }
   455  
   456  func (SnapshotCopyMapOutput) ElementType() reflect.Type {
   457  	return reflect.TypeOf((*map[string]*SnapshotCopy)(nil)).Elem()
   458  }
   459  
   460  func (o SnapshotCopyMapOutput) ToSnapshotCopyMapOutput() SnapshotCopyMapOutput {
   461  	return o
   462  }
   463  
   464  func (o SnapshotCopyMapOutput) ToSnapshotCopyMapOutputWithContext(ctx context.Context) SnapshotCopyMapOutput {
   465  	return o
   466  }
   467  
   468  func (o SnapshotCopyMapOutput) MapIndex(k pulumi.StringInput) SnapshotCopyOutput {
   469  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SnapshotCopy {
   470  		return vs[0].(map[string]*SnapshotCopy)[vs[1].(string)]
   471  	}).(SnapshotCopyOutput)
   472  }
   473  
   474  func init() {
   475  	pulumi.RegisterInputType(reflect.TypeOf((*SnapshotCopyInput)(nil)).Elem(), &SnapshotCopy{})
   476  	pulumi.RegisterInputType(reflect.TypeOf((*SnapshotCopyArrayInput)(nil)).Elem(), SnapshotCopyArray{})
   477  	pulumi.RegisterInputType(reflect.TypeOf((*SnapshotCopyMapInput)(nil)).Elem(), SnapshotCopyMap{})
   478  	pulumi.RegisterOutputType(SnapshotCopyOutput{})
   479  	pulumi.RegisterOutputType(SnapshotCopyArrayOutput{})
   480  	pulumi.RegisterOutputType(SnapshotCopyMapOutput{})
   481  }