github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/s3/bucketObjectv2.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 s3
     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  // Provides an S3 object resource.
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Uploading a file to a bucket
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
    28  //	"github.com/pulumi/pulumi-std/sdk/go/std"
    29  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    30  //
    31  // )
    32  //
    33  //	func main() {
    34  //		pulumi.Run(func(ctx *pulumi.Context) error {
    35  //			invokeFilemd5, err := std.Filemd5(ctx, &std.Filemd5Args{
    36  //				Input: "path/to/file",
    37  //			}, nil)
    38  //			if err != nil {
    39  //				return err
    40  //			}
    41  //			_, err = s3.NewBucketObjectv2(ctx, "object", &s3.BucketObjectv2Args{
    42  //				Bucket: pulumi.Any("your_bucket_name"),
    43  //				Key:    pulumi.String("new_object_key"),
    44  //				Source: pulumi.NewFileAsset("path/to/file"),
    45  //				Etag:   invokeFilemd5.Result,
    46  //			})
    47  //			if err != nil {
    48  //				return err
    49  //			}
    50  //			return nil
    51  //		})
    52  //	}
    53  //
    54  // ```
    55  // <!--End PulumiCodeChooser -->
    56  //
    57  // ### Encrypting with KMS Key
    58  //
    59  // <!--Start PulumiCodeChooser -->
    60  // ```go
    61  // package main
    62  //
    63  // import (
    64  //
    65  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms"
    66  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
    67  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    68  //
    69  // )
    70  //
    71  //	func main() {
    72  //		pulumi.Run(func(ctx *pulumi.Context) error {
    73  //			examplekms, err := kms.NewKey(ctx, "examplekms", &kms.KeyArgs{
    74  //				Description:          pulumi.String("KMS key 1"),
    75  //				DeletionWindowInDays: pulumi.Int(7),
    76  //			})
    77  //			if err != nil {
    78  //				return err
    79  //			}
    80  //			examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", &s3.BucketV2Args{
    81  //				Bucket: pulumi.String("examplebuckettftest"),
    82  //			})
    83  //			if err != nil {
    84  //				return err
    85  //			}
    86  //			_, err = s3.NewBucketAclV2(ctx, "example", &s3.BucketAclV2Args{
    87  //				Bucket: examplebucket.ID(),
    88  //				Acl:    pulumi.String("private"),
    89  //			})
    90  //			if err != nil {
    91  //				return err
    92  //			}
    93  //			_, err = s3.NewBucketObjectv2(ctx, "example", &s3.BucketObjectv2Args{
    94  //				Key:      pulumi.String("someobject"),
    95  //				Bucket:   examplebucket.ID(),
    96  //				Source:   pulumi.NewFileAsset("index.html"),
    97  //				KmsKeyId: examplekms.Arn,
    98  //			})
    99  //			if err != nil {
   100  //				return err
   101  //			}
   102  //			return nil
   103  //		})
   104  //	}
   105  //
   106  // ```
   107  // <!--End PulumiCodeChooser -->
   108  //
   109  // ### Server Side Encryption with S3 Default Master Key
   110  //
   111  // <!--Start PulumiCodeChooser -->
   112  // ```go
   113  // package main
   114  //
   115  // import (
   116  //
   117  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
   118  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   119  //
   120  // )
   121  //
   122  //	func main() {
   123  //		pulumi.Run(func(ctx *pulumi.Context) error {
   124  //			examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", &s3.BucketV2Args{
   125  //				Bucket: pulumi.String("examplebuckettftest"),
   126  //			})
   127  //			if err != nil {
   128  //				return err
   129  //			}
   130  //			_, err = s3.NewBucketAclV2(ctx, "example", &s3.BucketAclV2Args{
   131  //				Bucket: examplebucket.ID(),
   132  //				Acl:    pulumi.String("private"),
   133  //			})
   134  //			if err != nil {
   135  //				return err
   136  //			}
   137  //			_, err = s3.NewBucketObjectv2(ctx, "example", &s3.BucketObjectv2Args{
   138  //				Key:                  pulumi.String("someobject"),
   139  //				Bucket:               examplebucket.ID(),
   140  //				Source:               pulumi.NewFileAsset("index.html"),
   141  //				ServerSideEncryption: pulumi.String("aws:kms"),
   142  //			})
   143  //			if err != nil {
   144  //				return err
   145  //			}
   146  //			return nil
   147  //		})
   148  //	}
   149  //
   150  // ```
   151  // <!--End PulumiCodeChooser -->
   152  //
   153  // ### Server Side Encryption with AWS-Managed Key
   154  //
   155  // <!--Start PulumiCodeChooser -->
   156  // ```go
   157  // package main
   158  //
   159  // import (
   160  //
   161  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
   162  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   163  //
   164  // )
   165  //
   166  //	func main() {
   167  //		pulumi.Run(func(ctx *pulumi.Context) error {
   168  //			examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", &s3.BucketV2Args{
   169  //				Bucket: pulumi.String("examplebuckettftest"),
   170  //			})
   171  //			if err != nil {
   172  //				return err
   173  //			}
   174  //			_, err = s3.NewBucketAclV2(ctx, "example", &s3.BucketAclV2Args{
   175  //				Bucket: examplebucket.ID(),
   176  //				Acl:    pulumi.String("private"),
   177  //			})
   178  //			if err != nil {
   179  //				return err
   180  //			}
   181  //			_, err = s3.NewBucketObjectv2(ctx, "example", &s3.BucketObjectv2Args{
   182  //				Key:                  pulumi.String("someobject"),
   183  //				Bucket:               examplebucket.ID(),
   184  //				Source:               pulumi.NewFileAsset("index.html"),
   185  //				ServerSideEncryption: pulumi.String("AES256"),
   186  //			})
   187  //			if err != nil {
   188  //				return err
   189  //			}
   190  //			return nil
   191  //		})
   192  //	}
   193  //
   194  // ```
   195  // <!--End PulumiCodeChooser -->
   196  //
   197  // ### S3 Object Lock
   198  //
   199  // <!--Start PulumiCodeChooser -->
   200  // ```go
   201  // package main
   202  //
   203  // import (
   204  //
   205  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
   206  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   207  //
   208  // )
   209  //
   210  //	func main() {
   211  //		pulumi.Run(func(ctx *pulumi.Context) error {
   212  //			examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", &s3.BucketV2Args{
   213  //				Bucket:            pulumi.String("examplebuckettftest"),
   214  //				ObjectLockEnabled: pulumi.Bool(true),
   215  //			})
   216  //			if err != nil {
   217  //				return err
   218  //			}
   219  //			_, err = s3.NewBucketAclV2(ctx, "example", &s3.BucketAclV2Args{
   220  //				Bucket: examplebucket.ID(),
   221  //				Acl:    pulumi.String("private"),
   222  //			})
   223  //			if err != nil {
   224  //				return err
   225  //			}
   226  //			exampleBucketVersioningV2, err := s3.NewBucketVersioningV2(ctx, "example", &s3.BucketVersioningV2Args{
   227  //				Bucket: examplebucket.ID(),
   228  //				VersioningConfiguration: &s3.BucketVersioningV2VersioningConfigurationArgs{
   229  //					Status: pulumi.String("Enabled"),
   230  //				},
   231  //			})
   232  //			if err != nil {
   233  //				return err
   234  //			}
   235  //			_, err = s3.NewBucketObjectv2(ctx, "examplebucket_object", &s3.BucketObjectv2Args{
   236  //				Key:                       pulumi.String("someobject"),
   237  //				Bucket:                    examplebucket.ID(),
   238  //				Source:                    pulumi.NewFileAsset("important.txt"),
   239  //				ObjectLockLegalHoldStatus: pulumi.String("ON"),
   240  //				ObjectLockMode:            pulumi.String("GOVERNANCE"),
   241  //				ObjectLockRetainUntilDate: pulumi.String("2021-12-31T23:59:60Z"),
   242  //				ForceDestroy:              pulumi.Bool(true),
   243  //			}, pulumi.DependsOn([]pulumi.Resource{
   244  //				exampleBucketVersioningV2,
   245  //			}))
   246  //			if err != nil {
   247  //				return err
   248  //			}
   249  //			return nil
   250  //		})
   251  //	}
   252  //
   253  // ```
   254  // <!--End PulumiCodeChooser -->
   255  //
   256  // ### Ignoring Provider `defaultTags`
   257  //
   258  // S3 objects support a [maximum of 10 tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html).
   259  // If the resource's own `tags` and the provider-level `defaultTags` would together lead to more than 10 tags on an S3 object, use the `overrideProvider` configuration block to suppress any provider-level `defaultTags`.
   260  //
   261  // > S3 objects stored in Amazon S3 Express directory buckets do not support tags, so any provider-level `defaultTags` must be suppressed.
   262  //
   263  // <!--Start PulumiCodeChooser -->
   264  // ```go
   265  // package main
   266  //
   267  // import (
   268  //
   269  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
   270  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   271  //
   272  // )
   273  //
   274  //	func main() {
   275  //		pulumi.Run(func(ctx *pulumi.Context) error {
   276  //			examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", &s3.BucketV2Args{
   277  //				Bucket: pulumi.String("examplebuckettftest"),
   278  //			})
   279  //			if err != nil {
   280  //				return err
   281  //			}
   282  //			_, err = s3.NewBucketObjectv2(ctx, "examplebucket_object", &s3.BucketObjectv2Args{
   283  //				Key:    pulumi.String("someobject"),
   284  //				Bucket: examplebucket.ID(),
   285  //				Source: pulumi.NewFileAsset("important.txt"),
   286  //				Tags: pulumi.StringMap{
   287  //					"Env": pulumi.String("test"),
   288  //				},
   289  //				OverrideProvider: &s3.BucketObjectv2OverrideProviderArgs{
   290  //					DefaultTags: &s3.BucketObjectv2OverrideProviderDefaultTagsArgs{
   291  //						Tags: nil,
   292  //					},
   293  //				},
   294  //			})
   295  //			if err != nil {
   296  //				return err
   297  //			}
   298  //			return nil
   299  //		})
   300  //	}
   301  //
   302  // ```
   303  // <!--End PulumiCodeChooser -->
   304  //
   305  // ## Import
   306  //
   307  // Import using S3 URL syntax:
   308  //
   309  // __Using `pulumi import` to import__ objects using the `id` or S3 URL. For example:
   310  //
   311  // Import using the `id`, which is the bucket name and the key together:
   312  //
   313  // ```sh
   314  // $ pulumi import aws:s3/bucketObjectv2:BucketObjectv2 example some-bucket-name/some/key.txt
   315  // ```
   316  // Import using S3 URL syntax:
   317  //
   318  // ```sh
   319  // $ pulumi import aws:s3/bucketObjectv2:BucketObjectv2 example s3://some-bucket-name/some/key.txt
   320  // ```
   321  type BucketObjectv2 struct {
   322  	pulumi.CustomResourceState
   323  
   324  	// [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`.
   325  	Acl pulumi.StringOutput `pulumi:"acl"`
   326  	// ARN of the object.
   327  	Arn pulumi.StringOutput `pulumi:"arn"`
   328  	// Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified.
   329  	Bucket pulumi.StringOutput `pulumi:"bucket"`
   330  	// Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS.
   331  	BucketKeyEnabled pulumi.BoolOutput `pulumi:"bucketKeyEnabled"`
   332  	// Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.
   333  	CacheControl pulumi.StringPtrOutput `pulumi:"cacheControl"`
   334  	// Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`.
   335  	ChecksumAlgorithm pulumi.StringPtrOutput `pulumi:"checksumAlgorithm"`
   336  	// The base64-encoded, 32-bit CRC32 checksum of the object.
   337  	ChecksumCrc32 pulumi.StringOutput `pulumi:"checksumCrc32"`
   338  	// The base64-encoded, 32-bit CRC32C checksum of the object.
   339  	ChecksumCrc32c pulumi.StringOutput `pulumi:"checksumCrc32c"`
   340  	// The base64-encoded, 160-bit SHA-1 digest of the object.
   341  	ChecksumSha1 pulumi.StringOutput `pulumi:"checksumSha1"`
   342  	// The base64-encoded, 256-bit SHA-256 digest of the object.
   343  	ChecksumSha256 pulumi.StringOutput `pulumi:"checksumSha256"`
   344  	// Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text.
   345  	Content pulumi.StringPtrOutput `pulumi:"content"`
   346  	// Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file.
   347  	ContentBase64 pulumi.StringPtrOutput `pulumi:"contentBase64"`
   348  	// Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.
   349  	ContentDisposition pulumi.StringPtrOutput `pulumi:"contentDisposition"`
   350  	// Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information.
   351  	ContentEncoding pulumi.StringPtrOutput `pulumi:"contentEncoding"`
   352  	// Language the content is in e.g., en-US or en-GB.
   353  	ContentLanguage pulumi.StringPtrOutput `pulumi:"contentLanguage"`
   354  	// Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input.
   355  	ContentType pulumi.StringOutput `pulumi:"contentType"`
   356  	// Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"`, also if an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest (see `sourceHash` instead).
   357  	Etag pulumi.StringOutput `pulumi:"etag"`
   358  	// Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled.
   359  	ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"`
   360  	// Name of the object once it is in the bucket.
   361  	//
   362  	// The following arguments are optional:
   363  	Key pulumi.StringOutput `pulumi:"key"`
   364  	// ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided.
   365  	KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"`
   366  	// Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API).
   367  	Metadata pulumi.StringMapOutput `pulumi:"metadata"`
   368  	// [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`.
   369  	ObjectLockLegalHoldStatus pulumi.StringPtrOutput `pulumi:"objectLockLegalHoldStatus"`
   370  	// Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`.
   371  	ObjectLockMode pulumi.StringPtrOutput `pulumi:"objectLockMode"`
   372  	// Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods).
   373  	ObjectLockRetainUntilDate pulumi.StringPtrOutput `pulumi:"objectLockRetainUntilDate"`
   374  	// Override provider-level configuration options. See Override Provider below for more details.
   375  	OverrideProvider BucketObjectv2OverrideProviderPtrOutput `pulumi:"overrideProvider"`
   376  	// Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`".
   377  	ServerSideEncryption pulumi.StringOutput `pulumi:"serverSideEncryption"`
   378  	// Path to a file that will be read and uploaded as raw bytes for the object content.
   379  	Source pulumi.AssetOrArchiveOutput `pulumi:"source"`
   380  	// Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.)
   381  	SourceHash pulumi.StringPtrOutput `pulumi:"sourceHash"`
   382  	// [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`".
   383  	StorageClass pulumi.StringOutput `pulumi:"storageClass"`
   384  	// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   385  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   386  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   387  	//
   388  	// Deprecated: Please use `tags` instead.
   389  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   390  	// Unique version ID value for the object, if bucket versioning is enabled.
   391  	VersionId pulumi.StringOutput `pulumi:"versionId"`
   392  	// Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html).
   393  	//
   394  	// If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty.
   395  	//
   396  	// > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`.
   397  	WebsiteRedirect pulumi.StringPtrOutput `pulumi:"websiteRedirect"`
   398  }
   399  
   400  // NewBucketObjectv2 registers a new resource with the given unique name, arguments, and options.
   401  func NewBucketObjectv2(ctx *pulumi.Context,
   402  	name string, args *BucketObjectv2Args, opts ...pulumi.ResourceOption) (*BucketObjectv2, error) {
   403  	if args == nil {
   404  		return nil, errors.New("missing one or more required arguments")
   405  	}
   406  
   407  	if args.Bucket == nil {
   408  		return nil, errors.New("invalid value for required argument 'Bucket'")
   409  	}
   410  	aliases := pulumi.Aliases([]pulumi.Alias{
   411  		{
   412  			Type: pulumi.String("aws:s3/BucketObject:BucketObject"),
   413  		},
   414  	})
   415  	opts = append(opts, aliases)
   416  	opts = internal.PkgResourceDefaultOpts(opts)
   417  	var resource BucketObjectv2
   418  	err := ctx.RegisterResource("aws:s3/bucketObjectv2:BucketObjectv2", name, args, &resource, opts...)
   419  	if err != nil {
   420  		return nil, err
   421  	}
   422  	return &resource, nil
   423  }
   424  
   425  // GetBucketObjectv2 gets an existing BucketObjectv2 resource's state with the given name, ID, and optional
   426  // state properties that are used to uniquely qualify the lookup (nil if not required).
   427  func GetBucketObjectv2(ctx *pulumi.Context,
   428  	name string, id pulumi.IDInput, state *BucketObjectv2State, opts ...pulumi.ResourceOption) (*BucketObjectv2, error) {
   429  	var resource BucketObjectv2
   430  	err := ctx.ReadResource("aws:s3/bucketObjectv2:BucketObjectv2", name, id, state, &resource, opts...)
   431  	if err != nil {
   432  		return nil, err
   433  	}
   434  	return &resource, nil
   435  }
   436  
   437  // Input properties used for looking up and filtering BucketObjectv2 resources.
   438  type bucketObjectv2State struct {
   439  	// [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`.
   440  	Acl *string `pulumi:"acl"`
   441  	// ARN of the object.
   442  	Arn *string `pulumi:"arn"`
   443  	// Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified.
   444  	Bucket interface{} `pulumi:"bucket"`
   445  	// Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS.
   446  	BucketKeyEnabled *bool `pulumi:"bucketKeyEnabled"`
   447  	// Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.
   448  	CacheControl *string `pulumi:"cacheControl"`
   449  	// Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`.
   450  	ChecksumAlgorithm *string `pulumi:"checksumAlgorithm"`
   451  	// The base64-encoded, 32-bit CRC32 checksum of the object.
   452  	ChecksumCrc32 *string `pulumi:"checksumCrc32"`
   453  	// The base64-encoded, 32-bit CRC32C checksum of the object.
   454  	ChecksumCrc32c *string `pulumi:"checksumCrc32c"`
   455  	// The base64-encoded, 160-bit SHA-1 digest of the object.
   456  	ChecksumSha1 *string `pulumi:"checksumSha1"`
   457  	// The base64-encoded, 256-bit SHA-256 digest of the object.
   458  	ChecksumSha256 *string `pulumi:"checksumSha256"`
   459  	// Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text.
   460  	Content *string `pulumi:"content"`
   461  	// Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file.
   462  	ContentBase64 *string `pulumi:"contentBase64"`
   463  	// Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.
   464  	ContentDisposition *string `pulumi:"contentDisposition"`
   465  	// Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information.
   466  	ContentEncoding *string `pulumi:"contentEncoding"`
   467  	// Language the content is in e.g., en-US or en-GB.
   468  	ContentLanguage *string `pulumi:"contentLanguage"`
   469  	// Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input.
   470  	ContentType *string `pulumi:"contentType"`
   471  	// Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"`, also if an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest (see `sourceHash` instead).
   472  	Etag *string `pulumi:"etag"`
   473  	// Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled.
   474  	ForceDestroy *bool `pulumi:"forceDestroy"`
   475  	// Name of the object once it is in the bucket.
   476  	//
   477  	// The following arguments are optional:
   478  	Key *string `pulumi:"key"`
   479  	// ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided.
   480  	KmsKeyId *string `pulumi:"kmsKeyId"`
   481  	// Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API).
   482  	Metadata map[string]string `pulumi:"metadata"`
   483  	// [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`.
   484  	ObjectLockLegalHoldStatus *string `pulumi:"objectLockLegalHoldStatus"`
   485  	// Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`.
   486  	ObjectLockMode *string `pulumi:"objectLockMode"`
   487  	// Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods).
   488  	ObjectLockRetainUntilDate *string `pulumi:"objectLockRetainUntilDate"`
   489  	// Override provider-level configuration options. See Override Provider below for more details.
   490  	OverrideProvider *BucketObjectv2OverrideProvider `pulumi:"overrideProvider"`
   491  	// Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`".
   492  	ServerSideEncryption *string `pulumi:"serverSideEncryption"`
   493  	// Path to a file that will be read and uploaded as raw bytes for the object content.
   494  	Source pulumi.AssetOrArchive `pulumi:"source"`
   495  	// Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.)
   496  	SourceHash *string `pulumi:"sourceHash"`
   497  	// [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`".
   498  	StorageClass *string `pulumi:"storageClass"`
   499  	// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   500  	Tags map[string]string `pulumi:"tags"`
   501  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   502  	//
   503  	// Deprecated: Please use `tags` instead.
   504  	TagsAll map[string]string `pulumi:"tagsAll"`
   505  	// Unique version ID value for the object, if bucket versioning is enabled.
   506  	VersionId *string `pulumi:"versionId"`
   507  	// Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html).
   508  	//
   509  	// If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty.
   510  	//
   511  	// > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`.
   512  	WebsiteRedirect *string `pulumi:"websiteRedirect"`
   513  }
   514  
   515  type BucketObjectv2State struct {
   516  	// [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`.
   517  	Acl pulumi.StringPtrInput
   518  	// ARN of the object.
   519  	Arn pulumi.StringPtrInput
   520  	// Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified.
   521  	Bucket pulumi.Input
   522  	// Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS.
   523  	BucketKeyEnabled pulumi.BoolPtrInput
   524  	// Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.
   525  	CacheControl pulumi.StringPtrInput
   526  	// Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`.
   527  	ChecksumAlgorithm pulumi.StringPtrInput
   528  	// The base64-encoded, 32-bit CRC32 checksum of the object.
   529  	ChecksumCrc32 pulumi.StringPtrInput
   530  	// The base64-encoded, 32-bit CRC32C checksum of the object.
   531  	ChecksumCrc32c pulumi.StringPtrInput
   532  	// The base64-encoded, 160-bit SHA-1 digest of the object.
   533  	ChecksumSha1 pulumi.StringPtrInput
   534  	// The base64-encoded, 256-bit SHA-256 digest of the object.
   535  	ChecksumSha256 pulumi.StringPtrInput
   536  	// Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text.
   537  	Content pulumi.StringPtrInput
   538  	// Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file.
   539  	ContentBase64 pulumi.StringPtrInput
   540  	// Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.
   541  	ContentDisposition pulumi.StringPtrInput
   542  	// Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information.
   543  	ContentEncoding pulumi.StringPtrInput
   544  	// Language the content is in e.g., en-US or en-GB.
   545  	ContentLanguage pulumi.StringPtrInput
   546  	// Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input.
   547  	ContentType pulumi.StringPtrInput
   548  	// Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"`, also if an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest (see `sourceHash` instead).
   549  	Etag pulumi.StringPtrInput
   550  	// Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled.
   551  	ForceDestroy pulumi.BoolPtrInput
   552  	// Name of the object once it is in the bucket.
   553  	//
   554  	// The following arguments are optional:
   555  	Key pulumi.StringPtrInput
   556  	// ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided.
   557  	KmsKeyId pulumi.StringPtrInput
   558  	// Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API).
   559  	Metadata pulumi.StringMapInput
   560  	// [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`.
   561  	ObjectLockLegalHoldStatus pulumi.StringPtrInput
   562  	// Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`.
   563  	ObjectLockMode pulumi.StringPtrInput
   564  	// Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods).
   565  	ObjectLockRetainUntilDate pulumi.StringPtrInput
   566  	// Override provider-level configuration options. See Override Provider below for more details.
   567  	OverrideProvider BucketObjectv2OverrideProviderPtrInput
   568  	// Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`".
   569  	ServerSideEncryption pulumi.StringPtrInput
   570  	// Path to a file that will be read and uploaded as raw bytes for the object content.
   571  	Source pulumi.AssetOrArchiveInput
   572  	// Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.)
   573  	SourceHash pulumi.StringPtrInput
   574  	// [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`".
   575  	StorageClass pulumi.StringPtrInput
   576  	// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   577  	Tags pulumi.StringMapInput
   578  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   579  	//
   580  	// Deprecated: Please use `tags` instead.
   581  	TagsAll pulumi.StringMapInput
   582  	// Unique version ID value for the object, if bucket versioning is enabled.
   583  	VersionId pulumi.StringPtrInput
   584  	// Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html).
   585  	//
   586  	// If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty.
   587  	//
   588  	// > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`.
   589  	WebsiteRedirect pulumi.StringPtrInput
   590  }
   591  
   592  func (BucketObjectv2State) ElementType() reflect.Type {
   593  	return reflect.TypeOf((*bucketObjectv2State)(nil)).Elem()
   594  }
   595  
   596  type bucketObjectv2Args struct {
   597  	// [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`.
   598  	Acl *string `pulumi:"acl"`
   599  	// Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified.
   600  	Bucket interface{} `pulumi:"bucket"`
   601  	// Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS.
   602  	BucketKeyEnabled *bool `pulumi:"bucketKeyEnabled"`
   603  	// Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.
   604  	CacheControl *string `pulumi:"cacheControl"`
   605  	// Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`.
   606  	ChecksumAlgorithm *string `pulumi:"checksumAlgorithm"`
   607  	// Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text.
   608  	Content *string `pulumi:"content"`
   609  	// Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file.
   610  	ContentBase64 *string `pulumi:"contentBase64"`
   611  	// Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.
   612  	ContentDisposition *string `pulumi:"contentDisposition"`
   613  	// Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information.
   614  	ContentEncoding *string `pulumi:"contentEncoding"`
   615  	// Language the content is in e.g., en-US or en-GB.
   616  	ContentLanguage *string `pulumi:"contentLanguage"`
   617  	// Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input.
   618  	ContentType *string `pulumi:"contentType"`
   619  	// Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"`, also if an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest (see `sourceHash` instead).
   620  	Etag *string `pulumi:"etag"`
   621  	// Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled.
   622  	ForceDestroy *bool `pulumi:"forceDestroy"`
   623  	// Name of the object once it is in the bucket.
   624  	//
   625  	// The following arguments are optional:
   626  	Key *string `pulumi:"key"`
   627  	// ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided.
   628  	KmsKeyId *string `pulumi:"kmsKeyId"`
   629  	// Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API).
   630  	Metadata map[string]string `pulumi:"metadata"`
   631  	// [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`.
   632  	ObjectLockLegalHoldStatus *string `pulumi:"objectLockLegalHoldStatus"`
   633  	// Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`.
   634  	ObjectLockMode *string `pulumi:"objectLockMode"`
   635  	// Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods).
   636  	ObjectLockRetainUntilDate *string `pulumi:"objectLockRetainUntilDate"`
   637  	// Override provider-level configuration options. See Override Provider below for more details.
   638  	OverrideProvider *BucketObjectv2OverrideProvider `pulumi:"overrideProvider"`
   639  	// Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`".
   640  	ServerSideEncryption *string `pulumi:"serverSideEncryption"`
   641  	// Path to a file that will be read and uploaded as raw bytes for the object content.
   642  	Source pulumi.AssetOrArchive `pulumi:"source"`
   643  	// Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.)
   644  	SourceHash *string `pulumi:"sourceHash"`
   645  	// [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`".
   646  	StorageClass *string `pulumi:"storageClass"`
   647  	// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   648  	Tags map[string]string `pulumi:"tags"`
   649  	// Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html).
   650  	//
   651  	// If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty.
   652  	//
   653  	// > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`.
   654  	WebsiteRedirect *string `pulumi:"websiteRedirect"`
   655  }
   656  
   657  // The set of arguments for constructing a BucketObjectv2 resource.
   658  type BucketObjectv2Args struct {
   659  	// [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`.
   660  	Acl pulumi.StringPtrInput
   661  	// Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified.
   662  	Bucket pulumi.Input
   663  	// Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS.
   664  	BucketKeyEnabled pulumi.BoolPtrInput
   665  	// Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.
   666  	CacheControl pulumi.StringPtrInput
   667  	// Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`.
   668  	ChecksumAlgorithm pulumi.StringPtrInput
   669  	// Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text.
   670  	Content pulumi.StringPtrInput
   671  	// Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file.
   672  	ContentBase64 pulumi.StringPtrInput
   673  	// Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.
   674  	ContentDisposition pulumi.StringPtrInput
   675  	// Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information.
   676  	ContentEncoding pulumi.StringPtrInput
   677  	// Language the content is in e.g., en-US or en-GB.
   678  	ContentLanguage pulumi.StringPtrInput
   679  	// Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input.
   680  	ContentType pulumi.StringPtrInput
   681  	// Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"`, also if an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest (see `sourceHash` instead).
   682  	Etag pulumi.StringPtrInput
   683  	// Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled.
   684  	ForceDestroy pulumi.BoolPtrInput
   685  	// Name of the object once it is in the bucket.
   686  	//
   687  	// The following arguments are optional:
   688  	Key pulumi.StringPtrInput
   689  	// ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided.
   690  	KmsKeyId pulumi.StringPtrInput
   691  	// Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API).
   692  	Metadata pulumi.StringMapInput
   693  	// [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`.
   694  	ObjectLockLegalHoldStatus pulumi.StringPtrInput
   695  	// Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`.
   696  	ObjectLockMode pulumi.StringPtrInput
   697  	// Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods).
   698  	ObjectLockRetainUntilDate pulumi.StringPtrInput
   699  	// Override provider-level configuration options. See Override Provider below for more details.
   700  	OverrideProvider BucketObjectv2OverrideProviderPtrInput
   701  	// Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`".
   702  	ServerSideEncryption pulumi.StringPtrInput
   703  	// Path to a file that will be read and uploaded as raw bytes for the object content.
   704  	Source pulumi.AssetOrArchiveInput
   705  	// Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.)
   706  	SourceHash pulumi.StringPtrInput
   707  	// [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`".
   708  	StorageClass pulumi.StringPtrInput
   709  	// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   710  	Tags pulumi.StringMapInput
   711  	// Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html).
   712  	//
   713  	// If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty.
   714  	//
   715  	// > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`.
   716  	WebsiteRedirect pulumi.StringPtrInput
   717  }
   718  
   719  func (BucketObjectv2Args) ElementType() reflect.Type {
   720  	return reflect.TypeOf((*bucketObjectv2Args)(nil)).Elem()
   721  }
   722  
   723  type BucketObjectv2Input interface {
   724  	pulumi.Input
   725  
   726  	ToBucketObjectv2Output() BucketObjectv2Output
   727  	ToBucketObjectv2OutputWithContext(ctx context.Context) BucketObjectv2Output
   728  }
   729  
   730  func (*BucketObjectv2) ElementType() reflect.Type {
   731  	return reflect.TypeOf((**BucketObjectv2)(nil)).Elem()
   732  }
   733  
   734  func (i *BucketObjectv2) ToBucketObjectv2Output() BucketObjectv2Output {
   735  	return i.ToBucketObjectv2OutputWithContext(context.Background())
   736  }
   737  
   738  func (i *BucketObjectv2) ToBucketObjectv2OutputWithContext(ctx context.Context) BucketObjectv2Output {
   739  	return pulumi.ToOutputWithContext(ctx, i).(BucketObjectv2Output)
   740  }
   741  
   742  // BucketObjectv2ArrayInput is an input type that accepts BucketObjectv2Array and BucketObjectv2ArrayOutput values.
   743  // You can construct a concrete instance of `BucketObjectv2ArrayInput` via:
   744  //
   745  //	BucketObjectv2Array{ BucketObjectv2Args{...} }
   746  type BucketObjectv2ArrayInput interface {
   747  	pulumi.Input
   748  
   749  	ToBucketObjectv2ArrayOutput() BucketObjectv2ArrayOutput
   750  	ToBucketObjectv2ArrayOutputWithContext(context.Context) BucketObjectv2ArrayOutput
   751  }
   752  
   753  type BucketObjectv2Array []BucketObjectv2Input
   754  
   755  func (BucketObjectv2Array) ElementType() reflect.Type {
   756  	return reflect.TypeOf((*[]*BucketObjectv2)(nil)).Elem()
   757  }
   758  
   759  func (i BucketObjectv2Array) ToBucketObjectv2ArrayOutput() BucketObjectv2ArrayOutput {
   760  	return i.ToBucketObjectv2ArrayOutputWithContext(context.Background())
   761  }
   762  
   763  func (i BucketObjectv2Array) ToBucketObjectv2ArrayOutputWithContext(ctx context.Context) BucketObjectv2ArrayOutput {
   764  	return pulumi.ToOutputWithContext(ctx, i).(BucketObjectv2ArrayOutput)
   765  }
   766  
   767  // BucketObjectv2MapInput is an input type that accepts BucketObjectv2Map and BucketObjectv2MapOutput values.
   768  // You can construct a concrete instance of `BucketObjectv2MapInput` via:
   769  //
   770  //	BucketObjectv2Map{ "key": BucketObjectv2Args{...} }
   771  type BucketObjectv2MapInput interface {
   772  	pulumi.Input
   773  
   774  	ToBucketObjectv2MapOutput() BucketObjectv2MapOutput
   775  	ToBucketObjectv2MapOutputWithContext(context.Context) BucketObjectv2MapOutput
   776  }
   777  
   778  type BucketObjectv2Map map[string]BucketObjectv2Input
   779  
   780  func (BucketObjectv2Map) ElementType() reflect.Type {
   781  	return reflect.TypeOf((*map[string]*BucketObjectv2)(nil)).Elem()
   782  }
   783  
   784  func (i BucketObjectv2Map) ToBucketObjectv2MapOutput() BucketObjectv2MapOutput {
   785  	return i.ToBucketObjectv2MapOutputWithContext(context.Background())
   786  }
   787  
   788  func (i BucketObjectv2Map) ToBucketObjectv2MapOutputWithContext(ctx context.Context) BucketObjectv2MapOutput {
   789  	return pulumi.ToOutputWithContext(ctx, i).(BucketObjectv2MapOutput)
   790  }
   791  
   792  type BucketObjectv2Output struct{ *pulumi.OutputState }
   793  
   794  func (BucketObjectv2Output) ElementType() reflect.Type {
   795  	return reflect.TypeOf((**BucketObjectv2)(nil)).Elem()
   796  }
   797  
   798  func (o BucketObjectv2Output) ToBucketObjectv2Output() BucketObjectv2Output {
   799  	return o
   800  }
   801  
   802  func (o BucketObjectv2Output) ToBucketObjectv2OutputWithContext(ctx context.Context) BucketObjectv2Output {
   803  	return o
   804  }
   805  
   806  // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`.
   807  func (o BucketObjectv2Output) Acl() pulumi.StringOutput {
   808  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.Acl }).(pulumi.StringOutput)
   809  }
   810  
   811  // ARN of the object.
   812  func (o BucketObjectv2Output) Arn() pulumi.StringOutput {
   813  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   814  }
   815  
   816  // Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified.
   817  func (o BucketObjectv2Output) Bucket() pulumi.StringOutput {
   818  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput)
   819  }
   820  
   821  // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS.
   822  func (o BucketObjectv2Output) BucketKeyEnabled() pulumi.BoolOutput {
   823  	return o.ApplyT(func(v *BucketObjectv2) pulumi.BoolOutput { return v.BucketKeyEnabled }).(pulumi.BoolOutput)
   824  }
   825  
   826  // Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.
   827  func (o BucketObjectv2Output) CacheControl() pulumi.StringPtrOutput {
   828  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.CacheControl }).(pulumi.StringPtrOutput)
   829  }
   830  
   831  // Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`.
   832  func (o BucketObjectv2Output) ChecksumAlgorithm() pulumi.StringPtrOutput {
   833  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ChecksumAlgorithm }).(pulumi.StringPtrOutput)
   834  }
   835  
   836  // The base64-encoded, 32-bit CRC32 checksum of the object.
   837  func (o BucketObjectv2Output) ChecksumCrc32() pulumi.StringOutput {
   838  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.ChecksumCrc32 }).(pulumi.StringOutput)
   839  }
   840  
   841  // The base64-encoded, 32-bit CRC32C checksum of the object.
   842  func (o BucketObjectv2Output) ChecksumCrc32c() pulumi.StringOutput {
   843  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.ChecksumCrc32c }).(pulumi.StringOutput)
   844  }
   845  
   846  // The base64-encoded, 160-bit SHA-1 digest of the object.
   847  func (o BucketObjectv2Output) ChecksumSha1() pulumi.StringOutput {
   848  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.ChecksumSha1 }).(pulumi.StringOutput)
   849  }
   850  
   851  // The base64-encoded, 256-bit SHA-256 digest of the object.
   852  func (o BucketObjectv2Output) ChecksumSha256() pulumi.StringOutput {
   853  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.ChecksumSha256 }).(pulumi.StringOutput)
   854  }
   855  
   856  // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text.
   857  func (o BucketObjectv2Output) Content() pulumi.StringPtrOutput {
   858  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.Content }).(pulumi.StringPtrOutput)
   859  }
   860  
   861  // Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file.
   862  func (o BucketObjectv2Output) ContentBase64() pulumi.StringPtrOutput {
   863  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ContentBase64 }).(pulumi.StringPtrOutput)
   864  }
   865  
   866  // Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.
   867  func (o BucketObjectv2Output) ContentDisposition() pulumi.StringPtrOutput {
   868  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ContentDisposition }).(pulumi.StringPtrOutput)
   869  }
   870  
   871  // Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information.
   872  func (o BucketObjectv2Output) ContentEncoding() pulumi.StringPtrOutput {
   873  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ContentEncoding }).(pulumi.StringPtrOutput)
   874  }
   875  
   876  // Language the content is in e.g., en-US or en-GB.
   877  func (o BucketObjectv2Output) ContentLanguage() pulumi.StringPtrOutput {
   878  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ContentLanguage }).(pulumi.StringPtrOutput)
   879  }
   880  
   881  // Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input.
   882  func (o BucketObjectv2Output) ContentType() pulumi.StringOutput {
   883  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.ContentType }).(pulumi.StringOutput)
   884  }
   885  
   886  // Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"`, also if an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest (see `sourceHash` instead).
   887  func (o BucketObjectv2Output) Etag() pulumi.StringOutput {
   888  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput)
   889  }
   890  
   891  // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled.
   892  func (o BucketObjectv2Output) ForceDestroy() pulumi.BoolPtrOutput {
   893  	return o.ApplyT(func(v *BucketObjectv2) pulumi.BoolPtrOutput { return v.ForceDestroy }).(pulumi.BoolPtrOutput)
   894  }
   895  
   896  // Name of the object once it is in the bucket.
   897  //
   898  // The following arguments are optional:
   899  func (o BucketObjectv2Output) Key() pulumi.StringOutput {
   900  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.Key }).(pulumi.StringOutput)
   901  }
   902  
   903  // ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided.
   904  func (o BucketObjectv2Output) KmsKeyId() pulumi.StringOutput {
   905  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput)
   906  }
   907  
   908  // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API).
   909  func (o BucketObjectv2Output) Metadata() pulumi.StringMapOutput {
   910  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringMapOutput { return v.Metadata }).(pulumi.StringMapOutput)
   911  }
   912  
   913  // [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`.
   914  func (o BucketObjectv2Output) ObjectLockLegalHoldStatus() pulumi.StringPtrOutput {
   915  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ObjectLockLegalHoldStatus }).(pulumi.StringPtrOutput)
   916  }
   917  
   918  // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`.
   919  func (o BucketObjectv2Output) ObjectLockMode() pulumi.StringPtrOutput {
   920  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ObjectLockMode }).(pulumi.StringPtrOutput)
   921  }
   922  
   923  // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods).
   924  func (o BucketObjectv2Output) ObjectLockRetainUntilDate() pulumi.StringPtrOutput {
   925  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ObjectLockRetainUntilDate }).(pulumi.StringPtrOutput)
   926  }
   927  
   928  // Override provider-level configuration options. See Override Provider below for more details.
   929  func (o BucketObjectv2Output) OverrideProvider() BucketObjectv2OverrideProviderPtrOutput {
   930  	return o.ApplyT(func(v *BucketObjectv2) BucketObjectv2OverrideProviderPtrOutput { return v.OverrideProvider }).(BucketObjectv2OverrideProviderPtrOutput)
   931  }
   932  
   933  // Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`".
   934  func (o BucketObjectv2Output) ServerSideEncryption() pulumi.StringOutput {
   935  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.ServerSideEncryption }).(pulumi.StringOutput)
   936  }
   937  
   938  // Path to a file that will be read and uploaded as raw bytes for the object content.
   939  func (o BucketObjectv2Output) Source() pulumi.AssetOrArchiveOutput {
   940  	return o.ApplyT(func(v *BucketObjectv2) pulumi.AssetOrArchiveOutput { return v.Source }).(pulumi.AssetOrArchiveOutput)
   941  }
   942  
   943  // Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.)
   944  func (o BucketObjectv2Output) SourceHash() pulumi.StringPtrOutput {
   945  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.SourceHash }).(pulumi.StringPtrOutput)
   946  }
   947  
   948  // [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`".
   949  func (o BucketObjectv2Output) StorageClass() pulumi.StringOutput {
   950  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.StorageClass }).(pulumi.StringOutput)
   951  }
   952  
   953  // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   954  func (o BucketObjectv2Output) Tags() pulumi.StringMapOutput {
   955  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   956  }
   957  
   958  // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   959  //
   960  // Deprecated: Please use `tags` instead.
   961  func (o BucketObjectv2Output) TagsAll() pulumi.StringMapOutput {
   962  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   963  }
   964  
   965  // Unique version ID value for the object, if bucket versioning is enabled.
   966  func (o BucketObjectv2Output) VersionId() pulumi.StringOutput {
   967  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.VersionId }).(pulumi.StringOutput)
   968  }
   969  
   970  // Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html).
   971  //
   972  // If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty.
   973  //
   974  // > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`.
   975  func (o BucketObjectv2Output) WebsiteRedirect() pulumi.StringPtrOutput {
   976  	return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.WebsiteRedirect }).(pulumi.StringPtrOutput)
   977  }
   978  
   979  type BucketObjectv2ArrayOutput struct{ *pulumi.OutputState }
   980  
   981  func (BucketObjectv2ArrayOutput) ElementType() reflect.Type {
   982  	return reflect.TypeOf((*[]*BucketObjectv2)(nil)).Elem()
   983  }
   984  
   985  func (o BucketObjectv2ArrayOutput) ToBucketObjectv2ArrayOutput() BucketObjectv2ArrayOutput {
   986  	return o
   987  }
   988  
   989  func (o BucketObjectv2ArrayOutput) ToBucketObjectv2ArrayOutputWithContext(ctx context.Context) BucketObjectv2ArrayOutput {
   990  	return o
   991  }
   992  
   993  func (o BucketObjectv2ArrayOutput) Index(i pulumi.IntInput) BucketObjectv2Output {
   994  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketObjectv2 {
   995  		return vs[0].([]*BucketObjectv2)[vs[1].(int)]
   996  	}).(BucketObjectv2Output)
   997  }
   998  
   999  type BucketObjectv2MapOutput struct{ *pulumi.OutputState }
  1000  
  1001  func (BucketObjectv2MapOutput) ElementType() reflect.Type {
  1002  	return reflect.TypeOf((*map[string]*BucketObjectv2)(nil)).Elem()
  1003  }
  1004  
  1005  func (o BucketObjectv2MapOutput) ToBucketObjectv2MapOutput() BucketObjectv2MapOutput {
  1006  	return o
  1007  }
  1008  
  1009  func (o BucketObjectv2MapOutput) ToBucketObjectv2MapOutputWithContext(ctx context.Context) BucketObjectv2MapOutput {
  1010  	return o
  1011  }
  1012  
  1013  func (o BucketObjectv2MapOutput) MapIndex(k pulumi.StringInput) BucketObjectv2Output {
  1014  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketObjectv2 {
  1015  		return vs[0].(map[string]*BucketObjectv2)[vs[1].(string)]
  1016  	}).(BucketObjectv2Output)
  1017  }
  1018  
  1019  func init() {
  1020  	pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectv2Input)(nil)).Elem(), &BucketObjectv2{})
  1021  	pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectv2ArrayInput)(nil)).Elem(), BucketObjectv2Array{})
  1022  	pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectv2MapInput)(nil)).Elem(), BucketObjectv2Map{})
  1023  	pulumi.RegisterOutputType(BucketObjectv2Output{})
  1024  	pulumi.RegisterOutputType(BucketObjectv2ArrayOutput{})
  1025  	pulumi.RegisterOutputType(BucketObjectv2MapOutput{})
  1026  }