Class CloudtrailFunctions


  • public final class CloudtrailFunctions
    extends java.lang.Object
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount()
      Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3.
      static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount​(GetServiceAccountArgs args)
      Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3.
      static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount​(GetServiceAccountArgs args, com.pulumi.deployment.InvokeOptions options)
      Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3.
      static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount​(GetServiceAccountArgs args, com.pulumi.deployment.InvokeOutputOptions options)
      Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3.
      static java.util.concurrent.CompletableFuture<GetServiceAccountResult> getServiceAccountPlain()
      Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3.
      static java.util.concurrent.CompletableFuture<GetServiceAccountResult> getServiceAccountPlain​(GetServiceAccountPlainArgs args)
      Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3.
      static java.util.concurrent.CompletableFuture<GetServiceAccountResult> getServiceAccountPlain​(GetServiceAccountPlainArgs args, com.pulumi.deployment.InvokeOptions options)
      Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3.
      • Methods inherited from class java.lang.Object

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

      • CloudtrailFunctions

        public CloudtrailFunctions()
    • Method Detail

      • getServiceAccount

        public static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount()
        Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3. > **Warning:** This data source is deprecated. The AWS documentation [states that](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-s3-bucket-policy-for-cloudtrail.html#troubleshooting-s3-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.cloudtrail.CloudtrailFunctions;
         import com.pulumi.aws.cloudtrail.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.Bucket;
         import com.pulumi.aws.s3.BucketArgs;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         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) {
                 final var main = CloudtrailFunctions.getServiceAccount(GetServiceAccountArgs.builder()
                     .build());
         
                 var bucket = new Bucket("bucket", BucketArgs.builder()
                     .bucket("tf-cloudtrail-logging-test-bucket")
                     .forceDestroy(true)
                     .build());
         
                 final var allowCloudtrailLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(            
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Put bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:PutObject")
                             .resources(bucket.arn().applyValue(_arn -> String.format("%s/*", _arn)))
                             .build(),
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Get bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:GetBucketAcl")
                             .resources(bucket.arn())
                             .build())
                     .build());
         
                 var allowCloudtrailLoggingBucketPolicy = new BucketPolicy("allowCloudtrailLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(bucket.id())
                     .policy(allowCloudtrailLogging.applyValue(_allowCloudtrailLogging -> _allowCloudtrailLogging.json()))
                     .build());
         
             }
         }
         
         
      • getServiceAccountPlain

        public static java.util.concurrent.CompletableFuture<GetServiceAccountResult> getServiceAccountPlain()
        Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3. > **Warning:** This data source is deprecated. The AWS documentation [states that](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-s3-bucket-policy-for-cloudtrail.html#troubleshooting-s3-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.cloudtrail.CloudtrailFunctions;
         import com.pulumi.aws.cloudtrail.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.Bucket;
         import com.pulumi.aws.s3.BucketArgs;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         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) {
                 final var main = CloudtrailFunctions.getServiceAccount(GetServiceAccountArgs.builder()
                     .build());
         
                 var bucket = new Bucket("bucket", BucketArgs.builder()
                     .bucket("tf-cloudtrail-logging-test-bucket")
                     .forceDestroy(true)
                     .build());
         
                 final var allowCloudtrailLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(            
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Put bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:PutObject")
                             .resources(bucket.arn().applyValue(_arn -> String.format("%s/*", _arn)))
                             .build(),
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Get bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:GetBucketAcl")
                             .resources(bucket.arn())
                             .build())
                     .build());
         
                 var allowCloudtrailLoggingBucketPolicy = new BucketPolicy("allowCloudtrailLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(bucket.id())
                     .policy(allowCloudtrailLogging.applyValue(_allowCloudtrailLogging -> _allowCloudtrailLogging.json()))
                     .build());
         
             }
         }
         
         
      • getServiceAccount

        public static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount​(GetServiceAccountArgs args)
        Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3. > **Warning:** This data source is deprecated. The AWS documentation [states that](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-s3-bucket-policy-for-cloudtrail.html#troubleshooting-s3-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.cloudtrail.CloudtrailFunctions;
         import com.pulumi.aws.cloudtrail.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.Bucket;
         import com.pulumi.aws.s3.BucketArgs;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         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) {
                 final var main = CloudtrailFunctions.getServiceAccount(GetServiceAccountArgs.builder()
                     .build());
         
                 var bucket = new Bucket("bucket", BucketArgs.builder()
                     .bucket("tf-cloudtrail-logging-test-bucket")
                     .forceDestroy(true)
                     .build());
         
                 final var allowCloudtrailLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(            
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Put bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:PutObject")
                             .resources(bucket.arn().applyValue(_arn -> String.format("%s/*", _arn)))
                             .build(),
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Get bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:GetBucketAcl")
                             .resources(bucket.arn())
                             .build())
                     .build());
         
                 var allowCloudtrailLoggingBucketPolicy = new BucketPolicy("allowCloudtrailLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(bucket.id())
                     .policy(allowCloudtrailLogging.applyValue(_allowCloudtrailLogging -> _allowCloudtrailLogging.json()))
                     .build());
         
             }
         }
         
         
      • getServiceAccountPlain

        public static java.util.concurrent.CompletableFuture<GetServiceAccountResult> getServiceAccountPlain​(GetServiceAccountPlainArgs args)
        Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3. > **Warning:** This data source is deprecated. The AWS documentation [states that](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-s3-bucket-policy-for-cloudtrail.html#troubleshooting-s3-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.cloudtrail.CloudtrailFunctions;
         import com.pulumi.aws.cloudtrail.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.Bucket;
         import com.pulumi.aws.s3.BucketArgs;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         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) {
                 final var main = CloudtrailFunctions.getServiceAccount(GetServiceAccountArgs.builder()
                     .build());
         
                 var bucket = new Bucket("bucket", BucketArgs.builder()
                     .bucket("tf-cloudtrail-logging-test-bucket")
                     .forceDestroy(true)
                     .build());
         
                 final var allowCloudtrailLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(            
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Put bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:PutObject")
                             .resources(bucket.arn().applyValue(_arn -> String.format("%s/*", _arn)))
                             .build(),
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Get bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:GetBucketAcl")
                             .resources(bucket.arn())
                             .build())
                     .build());
         
                 var allowCloudtrailLoggingBucketPolicy = new BucketPolicy("allowCloudtrailLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(bucket.id())
                     .policy(allowCloudtrailLogging.applyValue(_allowCloudtrailLogging -> _allowCloudtrailLogging.json()))
                     .build());
         
             }
         }
         
         
      • getServiceAccount

        public static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount​(GetServiceAccountArgs args,
                                                                                        com.pulumi.deployment.InvokeOptions options)
        Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3. > **Warning:** This data source is deprecated. The AWS documentation [states that](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-s3-bucket-policy-for-cloudtrail.html#troubleshooting-s3-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.cloudtrail.CloudtrailFunctions;
         import com.pulumi.aws.cloudtrail.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.Bucket;
         import com.pulumi.aws.s3.BucketArgs;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         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) {
                 final var main = CloudtrailFunctions.getServiceAccount(GetServiceAccountArgs.builder()
                     .build());
         
                 var bucket = new Bucket("bucket", BucketArgs.builder()
                     .bucket("tf-cloudtrail-logging-test-bucket")
                     .forceDestroy(true)
                     .build());
         
                 final var allowCloudtrailLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(            
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Put bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:PutObject")
                             .resources(bucket.arn().applyValue(_arn -> String.format("%s/*", _arn)))
                             .build(),
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Get bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:GetBucketAcl")
                             .resources(bucket.arn())
                             .build())
                     .build());
         
                 var allowCloudtrailLoggingBucketPolicy = new BucketPolicy("allowCloudtrailLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(bucket.id())
                     .policy(allowCloudtrailLogging.applyValue(_allowCloudtrailLogging -> _allowCloudtrailLogging.json()))
                     .build());
         
             }
         }
         
         
      • getServiceAccount

        public static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount​(GetServiceAccountArgs args,
                                                                                        com.pulumi.deployment.InvokeOutputOptions options)
        Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3. > **Warning:** This data source is deprecated. The AWS documentation [states that](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-s3-bucket-policy-for-cloudtrail.html#troubleshooting-s3-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.cloudtrail.CloudtrailFunctions;
         import com.pulumi.aws.cloudtrail.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.Bucket;
         import com.pulumi.aws.s3.BucketArgs;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         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) {
                 final var main = CloudtrailFunctions.getServiceAccount(GetServiceAccountArgs.builder()
                     .build());
         
                 var bucket = new Bucket("bucket", BucketArgs.builder()
                     .bucket("tf-cloudtrail-logging-test-bucket")
                     .forceDestroy(true)
                     .build());
         
                 final var allowCloudtrailLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(            
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Put bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:PutObject")
                             .resources(bucket.arn().applyValue(_arn -> String.format("%s/*", _arn)))
                             .build(),
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Get bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:GetBucketAcl")
                             .resources(bucket.arn())
                             .build())
                     .build());
         
                 var allowCloudtrailLoggingBucketPolicy = new BucketPolicy("allowCloudtrailLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(bucket.id())
                     .policy(allowCloudtrailLogging.applyValue(_allowCloudtrailLogging -> _allowCloudtrailLogging.json()))
                     .build());
         
             }
         }
         
         
      • getServiceAccountPlain

        public static java.util.concurrent.CompletableFuture<GetServiceAccountResult> getServiceAccountPlain​(GetServiceAccountPlainArgs args,
                                                                                                             com.pulumi.deployment.InvokeOptions options)
        Use this data source to get the Account ID of the [AWS CloudTrail Service Account](http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-regions.html) in a given region for the purpose of allowing CloudTrail to store trail data in S3. > **Warning:** This data source is deprecated. The AWS documentation [states that](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-s3-bucket-policy-for-cloudtrail.html#troubleshooting-s3-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.cloudtrail.CloudtrailFunctions;
         import com.pulumi.aws.cloudtrail.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.Bucket;
         import com.pulumi.aws.s3.BucketArgs;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         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) {
                 final var main = CloudtrailFunctions.getServiceAccount(GetServiceAccountArgs.builder()
                     .build());
         
                 var bucket = new Bucket("bucket", BucketArgs.builder()
                     .bucket("tf-cloudtrail-logging-test-bucket")
                     .forceDestroy(true)
                     .build());
         
                 final var allowCloudtrailLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(            
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Put bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:PutObject")
                             .resources(bucket.arn().applyValue(_arn -> String.format("%s/*", _arn)))
                             .build(),
                         GetPolicyDocumentStatementArgs.builder()
                             .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                                 .type("AWS")
                                 .identifiers(main.arn())
                                 .build())
                             .sid("Get bucket policy needed for trails")
                             .effect("Allow")
                             .actions("s3:GetBucketAcl")
                             .resources(bucket.arn())
                             .build())
                     .build());
         
                 var allowCloudtrailLoggingBucketPolicy = new BucketPolicy("allowCloudtrailLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(bucket.id())
                     .policy(allowCloudtrailLogging.applyValue(_allowCloudtrailLogging -> _allowCloudtrailLogging.json()))
                     .build());
         
             }
         }