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 }