Package com.pulumi.aws.s3
Class BucketObjectv2
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.s3.BucketObjectv2
-
public class BucketObjectv2 extends com.pulumi.resources.CustomResource
Provides an S3 object resource. ## Example Usage ### Uploading a file to a bucket <!--Start PulumiCodeChooser -->package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.s3.BucketObjectv2; import com.pulumi.aws.s3.BucketObjectv2Args; import com.pulumi.asset.FileAsset; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var object = new BucketObjectv2("object", BucketObjectv2Args.builder() .bucket("your_bucket_name") .key("new_object_key") .source(new FileAsset("path/to/file")) .etag(StdFunctions.filemd5(Filemd5Args.builder() .input("path/to/file") .build()).result()) .build()); } }
package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.kms.Key; import com.pulumi.aws.kms.KeyArgs; import com.pulumi.aws.s3.BucketV2; import com.pulumi.aws.s3.BucketV2Args; import com.pulumi.aws.s3.BucketAclV2; import com.pulumi.aws.s3.BucketAclV2Args; import com.pulumi.aws.s3.BucketObjectv2; import com.pulumi.aws.s3.BucketObjectv2Args; import com.pulumi.asset.FileAsset; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var examplekms = new Key("examplekms", KeyArgs.builder() .description("KMS key 1") .deletionWindowInDays(7) .build()); var examplebucket = new BucketV2("examplebucket", BucketV2Args.builder() .bucket("examplebuckettftest") .build()); var example = new BucketAclV2("example", BucketAclV2Args.builder() .bucket(examplebucket.id()) .acl("private") .build()); var exampleBucketObjectv2 = new BucketObjectv2("exampleBucketObjectv2", BucketObjectv2Args.builder() .key("someobject") .bucket(examplebucket.id()) .source(new FileAsset("index.html")) .kmsKeyId(examplekms.arn()) .build()); } }
package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.s3.BucketV2; import com.pulumi.aws.s3.BucketV2Args; import com.pulumi.aws.s3.BucketAclV2; import com.pulumi.aws.s3.BucketAclV2Args; import com.pulumi.aws.s3.BucketObjectv2; import com.pulumi.aws.s3.BucketObjectv2Args; import com.pulumi.asset.FileAsset; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var examplebucket = new BucketV2("examplebucket", BucketV2Args.builder() .bucket("examplebuckettftest") .build()); var example = new BucketAclV2("example", BucketAclV2Args.builder() .bucket(examplebucket.id()) .acl("private") .build()); var exampleBucketObjectv2 = new BucketObjectv2("exampleBucketObjectv2", BucketObjectv2Args.builder() .key("someobject") .bucket(examplebucket.id()) .source(new FileAsset("index.html")) .serverSideEncryption("aws:kms") .build()); } }
package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.s3.BucketV2; import com.pulumi.aws.s3.BucketV2Args; import com.pulumi.aws.s3.BucketAclV2; import com.pulumi.aws.s3.BucketAclV2Args; import com.pulumi.aws.s3.BucketObjectv2; import com.pulumi.aws.s3.BucketObjectv2Args; import com.pulumi.asset.FileAsset; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var examplebucket = new BucketV2("examplebucket", BucketV2Args.builder() .bucket("examplebuckettftest") .build()); var example = new BucketAclV2("example", BucketAclV2Args.builder() .bucket(examplebucket.id()) .acl("private") .build()); var exampleBucketObjectv2 = new BucketObjectv2("exampleBucketObjectv2", BucketObjectv2Args.builder() .key("someobject") .bucket(examplebucket.id()) .source(new FileAsset("index.html")) .serverSideEncryption("AES256") .build()); } }
package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.s3.BucketV2; import com.pulumi.aws.s3.BucketV2Args; import com.pulumi.aws.s3.BucketAclV2; import com.pulumi.aws.s3.BucketAclV2Args; import com.pulumi.aws.s3.BucketVersioningV2; import com.pulumi.aws.s3.BucketVersioningV2Args; import com.pulumi.aws.s3.inputs.BucketVersioningV2VersioningConfigurationArgs; import com.pulumi.aws.s3.BucketObjectv2; import com.pulumi.aws.s3.BucketObjectv2Args; import com.pulumi.resources.CustomResourceOptions; import com.pulumi.asset.FileAsset; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var examplebucket = new BucketV2("examplebucket", BucketV2Args.builder() .bucket("examplebuckettftest") .objectLockEnabled(true) .build()); var example = new BucketAclV2("example", BucketAclV2Args.builder() .bucket(examplebucket.id()) .acl("private") .build()); var exampleBucketVersioningV2 = new BucketVersioningV2("exampleBucketVersioningV2", BucketVersioningV2Args.builder() .bucket(examplebucket.id()) .versioningConfiguration(BucketVersioningV2VersioningConfigurationArgs.builder() .status("Enabled") .build()) .build()); var examplebucketObject = new BucketObjectv2("examplebucketObject", BucketObjectv2Args.builder() .key("someobject") .bucket(examplebucket.id()) .source(new FileAsset("important.txt")) .objectLockLegalHoldStatus("ON") .objectLockMode("GOVERNANCE") .objectLockRetainUntilDate("2021-12-31T23:59:60Z") .forceDestroy(true) .build(), CustomResourceOptions.builder() .dependsOn(exampleBucketVersioningV2) .build()); } }
package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.s3.BucketV2; import com.pulumi.aws.s3.BucketV2Args; import com.pulumi.aws.s3.BucketObjectv2; import com.pulumi.aws.s3.BucketObjectv2Args; import com.pulumi.aws.s3.inputs.BucketObjectv2OverrideProviderArgs; import com.pulumi.aws.s3.inputs.BucketObjectv2OverrideProviderDefaultTagsArgs; import com.pulumi.asset.FileAsset; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var examplebucket = new BucketV2("examplebucket", BucketV2Args.builder() .bucket("examplebuckettftest") .build()); var examplebucketObject = new BucketObjectv2("examplebucketObject", BucketObjectv2Args.builder() .key("someobject") .bucket(examplebucket.id()) .source(new FileAsset("important.txt")) .tags(Map.of("Env", "test")) .overrideProvider(BucketObjectv2OverrideProviderArgs.builder() .defaultTags(BucketObjectv2OverrideProviderDefaultTagsArgs.builder() .tags() .build()) .build()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description BucketObjectv2(java.lang.String name)
BucketObjectv2(java.lang.String name, BucketObjectv2Args args)
BucketObjectv2(java.lang.String name, BucketObjectv2Args args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>
acl()
com.pulumi.core.Output<java.lang.String>
arn()
com.pulumi.core.Output<java.lang.String>
bucket()
com.pulumi.core.Output<java.lang.Boolean>
bucketKeyEnabled()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
cacheControl()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
checksumAlgorithm()
com.pulumi.core.Output<java.lang.String>
checksumCrc32()
com.pulumi.core.Output<java.lang.String>
checksumCrc32c()
com.pulumi.core.Output<java.lang.String>
checksumSha1()
com.pulumi.core.Output<java.lang.String>
checksumSha256()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
content()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
contentBase64()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
contentDisposition()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
contentEncoding()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
contentLanguage()
com.pulumi.core.Output<java.lang.String>
contentType()
com.pulumi.core.Output<java.lang.String>
etag()
com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>
forceDestroy()
static BucketObjectv2
get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, BucketObjectv2State state, com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>
key()
com.pulumi.core.Output<java.lang.String>
kmsKeyId()
com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>
metadata()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
objectLockLegalHoldStatus()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
objectLockMode()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
objectLockRetainUntilDate()
com.pulumi.core.Output<java.util.Optional<BucketObjectv2OverrideProvider>>
overrideProvider()
com.pulumi.core.Output<java.lang.String>
serverSideEncryption()
com.pulumi.core.Output<java.util.Optional<com.pulumi.asset.AssetOrArchive>>
source()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
sourceHash()
com.pulumi.core.Output<java.lang.String>
storageClass()
com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>
tags()
com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>
tagsAll()
com.pulumi.core.Output<java.lang.String>
versionId()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
websiteRedirect()
-
-
-
Constructor Detail
-
BucketObjectv2
public BucketObjectv2(java.lang.String name)
- Parameters:
name
- The _unique_ name of the resulting resource.
-
BucketObjectv2
public BucketObjectv2(java.lang.String name, BucketObjectv2Args args)
- Parameters:
name
- The _unique_ name of the resulting resource.args
- The arguments to use to populate this resource's properties.
-
BucketObjectv2
public BucketObjectv2(java.lang.String name, BucketObjectv2Args args, @Nullable com.pulumi.resources.CustomResourceOptions options)
- Parameters:
name
- The _unique_ name of the resulting resource.args
- The arguments to use to populate this resource's properties.options
- A bag of options that control this resource's behavior.
-
-
Method Detail
-
acl
public com.pulumi.core.Output<java.lang.String> acl()
- Returns:
- [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`.
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN of the object.
-
bucket
public com.pulumi.core.Output<java.lang.String> bucket()
- Returns:
- 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.
-
bucketKeyEnabled
public com.pulumi.core.Output<java.lang.Boolean> bucketKeyEnabled()
- Returns:
- Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS.
-
cacheControl
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> cacheControl()
- Returns:
- Caching behavior along the request/reply chain Read [w3c cache_control](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details.
-
checksumAlgorithm
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> checksumAlgorithm()
- Returns:
- 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`.
-
checksumCrc32
public com.pulumi.core.Output<java.lang.String> checksumCrc32()
- Returns:
- The base64-encoded, 32-bit CRC32 checksum of the object.
-
checksumCrc32c
public com.pulumi.core.Output<java.lang.String> checksumCrc32c()
- Returns:
- The base64-encoded, 32-bit CRC32C checksum of the object.
-
checksumSha1
public com.pulumi.core.Output<java.lang.String> checksumSha1()
- Returns:
- The base64-encoded, 160-bit SHA-1 digest of the object.
-
checksumSha256
public com.pulumi.core.Output<java.lang.String> checksumSha256()
- Returns:
- The base64-encoded, 256-bit SHA-256 digest of the object.
-
content
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> content()
- Returns:
- Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text.
-
contentBase64
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> contentBase64()
- Returns:
- 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.
-
contentDisposition
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> contentDisposition()
- Returns:
- Presentational information for the object. Read [w3c content_disposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information.
-
contentEncoding
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> contentEncoding()
- Returns:
- 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.
-
contentLanguage
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> contentLanguage()
- Returns:
- Language the content is in e.g., en-US or en-GB.
-
contentType
public com.pulumi.core.Output<java.lang.String> contentType()
- Returns:
- Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input.
-
etag
public com.pulumi.core.Output<java.lang.String> etag()
- Returns:
- Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kms_key_id` or `server_side_encryption = "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 `source_hash` instead).
-
forceDestroy
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> forceDestroy()
- Returns:
- 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.
-
key
public com.pulumi.core.Output<java.lang.String> key()
- Returns:
- Name of the object once it is in the bucket. The following arguments are optional:
-
kmsKeyId
public com.pulumi.core.Output<java.lang.String> kmsKeyId()
- Returns:
- 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 `aws.kms.Key` resource, use the `arn` attribute. If referencing the `aws.kms.Alias` data source or resource, use the `target_key_arn` attribute. The provider will only perform drift detection if a configuration value is provided.
-
metadata
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> metadata()
- Returns:
- 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).
-
objectLockLegalHoldStatus
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> objectLockLegalHoldStatus()
- Returns:
- [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`.
-
objectLockMode
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> objectLockMode()
- Returns:
- 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`.
-
objectLockRetainUntilDate
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> objectLockRetainUntilDate()
- Returns:
- 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).
-
overrideProvider
public com.pulumi.core.Output<java.util.Optional<BucketObjectv2OverrideProvider>> overrideProvider()
- Returns:
- Override provider-level configuration options. See Override Provider below for more details.
-
serverSideEncryption
public com.pulumi.core.Output<java.lang.String> serverSideEncryption()
- Returns:
- Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`".
-
source
public com.pulumi.core.Output<java.util.Optional<com.pulumi.asset.AssetOrArchive>> source()
- Returns:
- Path to a file that will be read and uploaded as raw bytes for the object content.
-
sourceHash
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> sourceHash()
- Returns:
- Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.)
-
storageClass
public com.pulumi.core.Output<java.lang.String> storageClass()
- Returns:
- [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`".
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- Map of tags to assign to the object. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
-
versionId
public com.pulumi.core.Output<java.lang.String> versionId()
- Returns:
- Unique version ID value for the object, if bucket versioning is enabled.
-
websiteRedirect
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> websiteRedirect()
- Returns:
- Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). If no content is provided through `source`, `content` or `content_base64`, then the object will be empty. > **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/`.
-
get
public static BucketObjectv2 get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable BucketObjectv2State state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name
- The _unique_ name of the resulting resource.id
- The _unique_ provider ID of the resource to lookup.state
-options
- Optional settings to control the behavior of the CustomResource.
-
-