Class BucketObjectLockConfiguration


  • public class BucketObjectLockConfiguration
    extends com.pulumi.resources.CustomResource
    Provides an S3 bucket Object Lock configuration resource. For more information about Object Locking, go to [Using S3 Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) in the Amazon S3 User Guide. > This resource can be used enable Object Lock for **new** and **existing** buckets. > This resource cannot be used with S3 directory buckets. ## Example Usage ### Object Lock configuration for new or existing buckets
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.s3.Bucket;
     import com.pulumi.aws.s3.BucketArgs;
     import com.pulumi.aws.s3.BucketVersioning;
     import com.pulumi.aws.s3.BucketVersioningArgs;
     import com.pulumi.aws.s3.inputs.BucketVersioningVersioningConfigurationArgs;
     import com.pulumi.aws.s3.BucketObjectLockConfiguration;
     import com.pulumi.aws.s3.BucketObjectLockConfigurationArgs;
     import com.pulumi.aws.s3.inputs.BucketObjectLockConfigurationRuleArgs;
     import com.pulumi.aws.s3.inputs.BucketObjectLockConfigurationRuleDefaultRetentionArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new Bucket("example", BucketArgs.builder()
                 .bucket("mybucket")
                 .build());
     
             var exampleBucketVersioning = new BucketVersioning("exampleBucketVersioning", BucketVersioningArgs.builder()
                 .versioningConfiguration(BucketVersioningVersioningConfigurationArgs.builder()
                     .status("Enabled")
                     .build())
                 .bucket(example.id())
                 .build());
     
             var exampleBucketObjectLockConfiguration = new BucketObjectLockConfiguration("exampleBucketObjectLockConfiguration", BucketObjectLockConfigurationArgs.builder()
                 .rule(BucketObjectLockConfigurationRuleArgs.builder()
                     .defaultRetention(BucketObjectLockConfigurationRuleDefaultRetentionArgs.builder()
                         .mode("COMPLIANCE")
                         .days(5)
                         .build())
                     .build())
                 .bucket(example.id())
                 .build());
     
         }
     }
     
     
    ## Import If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner`, separated by a comma (`,`). For example: **Using `pulumi import`**, import an S3 bucket Object Lock Configuration using one of two forms. If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`. For example: ```sh $ pulumi import aws:s3/bucketObjectLockConfiguration:BucketObjectLockConfiguration example bucket-name ``` If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner`, separated by a comma (`,`). For example: ```sh $ pulumi import aws:s3/bucketObjectLockConfiguration:BucketObjectLockConfiguration example bucket-name,123456789012 ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.pulumi.core.Output<java.lang.String> bucket()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> expectedBucketOwner()  
      static BucketObjectLockConfiguration get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, BucketObjectLockConfigurationState 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.util.Optional<java.lang.String>> objectLockEnabled()  
      com.pulumi.core.Output<java.lang.String> region()  
      com.pulumi.core.Output<java.util.Optional<BucketObjectLockConfigurationRule>> rule()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> token()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BucketObjectLockConfiguration

        public BucketObjectLockConfiguration​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • BucketObjectLockConfiguration

        public BucketObjectLockConfiguration​(java.lang.String name,
                                             BucketObjectLockConfigurationArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • BucketObjectLockConfiguration

        public BucketObjectLockConfiguration​(java.lang.String name,
                                             BucketObjectLockConfigurationArgs 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

      • bucket

        public com.pulumi.core.Output<java.lang.String> bucket()
        Returns:
        Name of the bucket.
      • expectedBucketOwner

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> expectedBucketOwner()
        Returns:
        Account ID of the expected bucket owner.
      • objectLockEnabled

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> objectLockEnabled()
        Returns:
        Whether this bucket has an Object Lock configuration enabled. Defaults to `Enabled`. Valid values: `Enabled`.
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • rule

        public com.pulumi.core.Output<java.util.Optional<BucketObjectLockConfigurationRule>> rule()
        Returns:
        Configuration block for specifying the Object Lock rule for the specified object. See below.
      • token

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> token()
        Returns:
        Token to allow Object Lock to be enabled for an existing bucket. To enable Object Lock for an existing bucket, you must first enable versioning on the bucket and then enable Object Lock. For more details on versioning, see the `aws.s3.BucketVersioning` resource.
      • get

        public static BucketObjectLockConfiguration get​(java.lang.String name,
                                                        com.pulumi.core.Output<java.lang.String> id,
                                                        @Nullable
                                                        BucketObjectLockConfigurationState 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.