Class Trail


  • public class Trail
    extends com.pulumi.resources.CustomResource
    Provides a CloudTrail resource. > **Tip:** For a multi-region trail, this resource must be in the home region of the trail. > **Tip:** For an organization trail, this resource must be in the master account of the organization. ## Example Usage ### Basic Enable CloudTrail to capture all compatible management events in region. For capturing events from services like IAM, `includeGlobalServiceEvents` must be enabled.
     
     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.AwsFunctions;
     import com.pulumi.aws.inputs.GetCallerIdentityArgs;
     import com.pulumi.aws.inputs.GetPartitionArgs;
     import com.pulumi.aws.inputs.GetRegionArgs;
     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.GetPolicyDocumentStatementConditionArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
     import com.pulumi.aws.s3.BucketPolicy;
     import com.pulumi.aws.s3.BucketPolicyArgs;
     import com.pulumi.aws.cloudtrail.Trail;
     import com.pulumi.aws.cloudtrail.TrailArgs;
     import com.pulumi.resources.CustomResourceOptions;
     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 exampleBucket = new Bucket("exampleBucket", BucketArgs.builder()
                 .bucket("my-test-trail")
                 .forceDestroy(true)
                 .build());
     
             final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder()
                 .build());
     
             final var currentGetPartition = AwsFunctions.getPartition(GetPartitionArgs.builder()
                 .build());
     
             final var currentGetRegion = AwsFunctions.getRegion(GetRegionArgs.builder()
                 .build());
     
             final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(            
                     GetPolicyDocumentStatementArgs.builder()
                         .conditions(GetPolicyDocumentStatementConditionArgs.builder()
                             .test("StringEquals")
                             .variable("aws:SourceArn")
                             .values(String.format("arn:%s:cloudtrail:%s:%s:trail/example", currentGetPartition.partition(),currentGetRegion.region(),current.accountId()))
                             .build())
                         .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                             .type("Service")
                             .identifiers("cloudtrail.amazonaws.com")
                             .build())
                         .sid("AWSCloudTrailAclCheck")
                         .effect("Allow")
                         .actions("s3:GetBucketAcl")
                         .resources(exampleBucket.arn())
                         .build(),
                     GetPolicyDocumentStatementArgs.builder()
                         .conditions(                    
                             GetPolicyDocumentStatementConditionArgs.builder()
                                 .test("StringEquals")
                                 .variable("s3:x-amz-acl")
                                 .values("bucket-owner-full-control")
                                 .build(),
                             GetPolicyDocumentStatementConditionArgs.builder()
                                 .test("StringEquals")
                                 .variable("aws:SourceArn")
                                 .values(String.format("arn:%s:cloudtrail:%s:%s:trail/example", currentGetPartition.partition(),currentGetRegion.region(),current.accountId()))
                                 .build())
                         .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                             .type("Service")
                             .identifiers("cloudtrail.amazonaws.com")
                             .build())
                         .sid("AWSCloudTrailWrite")
                         .effect("Allow")
                         .actions("s3:PutObject")
                         .resources(exampleBucket.arn().applyValue(_arn -> String.format("%s/prefix/AWSLogs/%s/*", _arn,current.accountId())))
                         .build())
                 .build());
     
             var exampleBucketPolicy = new BucketPolicy("exampleBucketPolicy", BucketPolicyArgs.builder()
                 .bucket(exampleBucket.id())
                 .policy(example.applyValue(_example -> _example.json()))
                 .build());
     
             var exampleTrail = new Trail("exampleTrail", TrailArgs.builder()
                 .name("example")
                 .s3BucketName(exampleBucket.id())
                 .s3KeyPrefix("prefix")
                 .includeGlobalServiceEvents(false)
                 .build(), CustomResourceOptions.builder()
                     .dependsOn(exampleBucketPolicy)
                     .build());
     
         }
     }
     
     
    ### Data Event Logging CloudTrail can log [Data Events](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) for certain services such as S3 objects and Lambda function invocations. Additional information about data event configuration can be found in the following links: * [CloudTrail API DataResource documentation](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DataResource.html) (for basic event selector). * [CloudTrail API AdvancedFieldSelector documentation](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html) (for advanced event selector). ### Logging All Lambda Function Invocations By Using Basic Event Selectors
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.cloudtrail.Trail;
     import com.pulumi.aws.cloudtrail.TrailArgs;
     import com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorArgs;
     import com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorDataResourceArgs;
     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 Trail("example", TrailArgs.builder()
                 .eventSelectors(TrailEventSelectorArgs.builder()
                     .dataResources(TrailEventSelectorDataResourceArgs.builder()
                         .type("AWS::Lambda::Function")
                         .values("arn:aws:lambda")
                         .build())
                     .readWriteType("All")
                     .includeManagementEvents(true)
                     .build())
                 .build());
     
         }
     }
     
     
    ### Logging All S3 Object Events By Using Basic Event Selectors
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.cloudtrail.Trail;
     import com.pulumi.aws.cloudtrail.TrailArgs;
     import com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorArgs;
     import com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorDataResourceArgs;
     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 Trail("example", TrailArgs.builder()
                 .eventSelectors(TrailEventSelectorArgs.builder()
                     .dataResources(TrailEventSelectorDataResourceArgs.builder()
                         .type("AWS::S3::Object")
                         .values("arn:aws:s3")
                         .build())
                     .readWriteType("All")
                     .includeManagementEvents(true)
                     .build())
                 .build());
     
         }
     }
     
     
    ### Logging Individual S3 Bucket Events By Using Basic Event Selectors
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.s3.S3Functions;
     import com.pulumi.aws.s3.inputs.GetBucketArgs;
     import com.pulumi.aws.cloudtrail.Trail;
     import com.pulumi.aws.cloudtrail.TrailArgs;
     import com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorArgs;
     import com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorDataResourceArgs;
     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 important-bucket = S3Functions.getBucket(GetBucketArgs.builder()
                 .bucket("important-bucket")
                 .build());
     
             var example = new Trail("example", TrailArgs.builder()
                 .eventSelectors(TrailEventSelectorArgs.builder()
                     .dataResources(TrailEventSelectorDataResourceArgs.builder()
                         .type("AWS::S3::Object")
                         .values(String.format("%s/", important_bucket.arn()))
                         .build())
                     .readWriteType("All")
                     .includeManagementEvents(true)
                     .build())
                 .build());
     
         }
     }
     
     
    ### Logging All S3 Object Events Except For Two S3 Buckets By Using Advanced Event Selectors
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.s3.S3Functions;
     import com.pulumi.aws.s3.inputs.GetBucketArgs;
     import com.pulumi.aws.cloudtrail.Trail;
     import com.pulumi.aws.cloudtrail.TrailArgs;
     import com.pulumi.aws.cloudtrail.inputs.TrailAdvancedEventSelectorArgs;
     import com.pulumi.aws.cloudtrail.inputs.TrailAdvancedEventSelectorFieldSelectorArgs;
     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 not-important-bucket-1 = S3Functions.getBucket(GetBucketArgs.builder()
                 .bucket("not-important-bucket-1")
                 .build());
     
             final var not-important-bucket-2 = S3Functions.getBucket(GetBucketArgs.builder()
                 .bucket("not-important-bucket-2")
                 .build());
     
             var example = new Trail("example", TrailArgs.builder()
                 .advancedEventSelectors(            
                     TrailAdvancedEventSelectorArgs.builder()
                         .fieldSelectors(                    
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("eventCategory")
                                 .equals("Data")
                                 .build(),
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("resources.ARN")
                                 .notStartsWiths(                            
                                     String.format("%s/", not_important_bucket_1.arn()),
                                     String.format("%s/", not_important_bucket_2.arn()))
                                 .build(),
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("resources.type")
                                 .equals("AWS::S3::Object")
                                 .build())
                         .name("Log all S3 objects events except for two S3 buckets")
                         .build(),
                     TrailAdvancedEventSelectorArgs.builder()
                         .fieldSelectors(TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                             .field("eventCategory")
                             .equals("Management")
                             .build())
                         .name("Log readOnly and writeOnly management events")
                         .build())
                 .build());
     
         }
     }
     
     
    ### Logging Individual S3 Buckets And Specific Event Names By Using Advanced Event Selectors
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.s3.S3Functions;
     import com.pulumi.aws.s3.inputs.GetBucketArgs;
     import com.pulumi.aws.cloudtrail.Trail;
     import com.pulumi.aws.cloudtrail.TrailArgs;
     import com.pulumi.aws.cloudtrail.inputs.TrailAdvancedEventSelectorArgs;
     import com.pulumi.aws.cloudtrail.inputs.TrailAdvancedEventSelectorFieldSelectorArgs;
     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 important-bucket-1 = S3Functions.getBucket(GetBucketArgs.builder()
                 .bucket("important-bucket-1")
                 .build());
     
             final var important-bucket-2 = S3Functions.getBucket(GetBucketArgs.builder()
                 .bucket("important-bucket-2")
                 .build());
     
             final var important-bucket-3 = S3Functions.getBucket(GetBucketArgs.builder()
                 .bucket("important-bucket-3")
                 .build());
     
             var example = new Trail("example", TrailArgs.builder()
                 .advancedEventSelectors(            
                     TrailAdvancedEventSelectorArgs.builder()
                         .fieldSelectors(                    
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("eventCategory")
                                 .equals("Data")
                                 .build(),
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("eventName")
                                 .equals(                            
                                     "PutObject",
                                     "DeleteObject")
                                 .build(),
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("resources.ARN")
                                 .startsWiths(                            
                                     String.format("%s/", important_bucket_1.arn()),
                                     String.format("%s/", important_bucket_2.arn()))
                                 .build(),
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("readOnly")
                                 .equals("false")
                                 .build(),
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("resources.type")
                                 .equals("AWS::S3::Object")
                                 .build())
                         .name("Log PutObject and DeleteObject events for two S3 buckets")
                         .build(),
                     TrailAdvancedEventSelectorArgs.builder()
                         .fieldSelectors(                    
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("eventCategory")
                                 .equals("Data")
                                 .build(),
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("eventName")
                                 .startsWiths("Delete")
                                 .build(),
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("resources.ARN")
                                 .equals(String.format("%s/important-prefix", important_bucket_3.arn()))
                                 .build(),
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("readOnly")
                                 .equals("false")
                                 .build(),
                             TrailAdvancedEventSelectorFieldSelectorArgs.builder()
                                 .field("resources.type")
                                 .equals("AWS::S3::Object")
                                 .build())
                         .name("Log Delete* events for one S3 bucket")
                         .build())
                 .build());
     
         }
     }
     
     
    ### Sending Events to CloudWatch Logs
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.cloudwatch.LogGroup;
     import com.pulumi.aws.cloudwatch.LogGroupArgs;
     import com.pulumi.aws.cloudtrail.Trail;
     import com.pulumi.aws.cloudtrail.TrailArgs;
     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 LogGroup("example", LogGroupArgs.builder()
                 .name("Example")
                 .build());
     
             var exampleTrail = new Trail("exampleTrail", TrailArgs.builder()
                 .cloudWatchLogsGroupArn(example.arn().applyValue(_arn -> String.format("%s:*", _arn)))
                 .build());
     
         }
     }
     
     
    ## Import ### Identity Schema #### Required - `arn` (String) ARN of the CloudTrail trail. Using `pulumi import`, import Cloudtrails using the `arn`. For example: ```sh $ pulumi import aws:cloudtrail/trail:Trail sample arn:aws:cloudtrail:us-east-1:123456789012:trail/my-sample-trail ```
    • 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
    • Constructor Summary

      Constructors 
      Constructor Description
      Trail​(java.lang.String name)  
      Trail​(java.lang.String name, TrailArgs args)  
      Trail​(java.lang.String name, TrailArgs 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.util.Optional<java.util.List<TrailAdvancedEventSelector>>> advancedEventSelectors()  
      com.pulumi.core.Output<java.lang.String> arn()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> cloudWatchLogsGroupArn()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> cloudWatchLogsRoleArn()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enableLogFileValidation()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enableLogging()  
      com.pulumi.core.Output<java.util.Optional<java.util.List<TrailEventSelector>>> eventSelectors()  
      static Trail get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, TrailState 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> homeRegion()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> includeGlobalServiceEvents()  
      com.pulumi.core.Output<java.util.Optional<java.util.List<TrailInsightSelector>>> insightSelectors()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> isMultiRegionTrail()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> isOrganizationTrail()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> kmsKeyId()  
      com.pulumi.core.Output<java.lang.String> name()  
      com.pulumi.core.Output<java.lang.String> region()  
      com.pulumi.core.Output<java.lang.String> s3BucketName()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> s3KeyPrefix()  
      com.pulumi.core.Output<java.lang.String> snsTopicArn()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> snsTopicName()  
      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()  
      • 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

      • Trail

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

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

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

      • advancedEventSelectors

        public com.pulumi.core.Output<java.util.Optional<java.util.List<TrailAdvancedEventSelector>>> advancedEventSelectors()
        Returns:
        Specifies an advanced event selector for enabling data event logging. Fields documented below. Conflicts with `eventSelector`.
      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        ARN of the trail.
      • cloudWatchLogsGroupArn

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> cloudWatchLogsGroupArn()
        Returns:
        Log group name using an ARN that represents the log group to which CloudTrail logs will be delivered. Note that CloudTrail requires the Log Stream wildcard.
      • cloudWatchLogsRoleArn

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> cloudWatchLogsRoleArn()
        Returns:
        Role for the CloudWatch Logs endpoint to assume to write to a user’s log group.
      • enableLogFileValidation

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enableLogFileValidation()
        Returns:
        Whether log file integrity validation is enabled. Defaults to `false`.
      • enableLogging

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enableLogging()
        Returns:
        Enables logging for the trail. When set to `true`, logging is started by calling the [`StartLogging`](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StartLogging.html) API. When set to `false`, logging is stopped by calling the [`StopLogging`](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StopLogging.html) API. Defaults to `true`.
      • eventSelectors

        public com.pulumi.core.Output<java.util.Optional<java.util.List<TrailEventSelector>>> eventSelectors()
        Returns:
        Specifies an event selector for enabling data event logging. Fields documented below. Please note the [CloudTrail limits](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html) when configuring these. Conflicts with `advancedEventSelector`.
      • homeRegion

        public com.pulumi.core.Output<java.lang.String> homeRegion()
        Returns:
        Region in which the trail was created.
      • includeGlobalServiceEvents

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> includeGlobalServiceEvents()
        Returns:
        Whether the trail is publishing events from global services such as IAM to the log files. Defaults to `true`.
      • insightSelectors

        public com.pulumi.core.Output<java.util.Optional<java.util.List<TrailInsightSelector>>> insightSelectors()
        Returns:
        Configuration block for identifying unusual operational activity. See details below.
      • isMultiRegionTrail

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> isMultiRegionTrail()
        Returns:
        Whether the trail is created in the current region or in all regions. Defaults to `false`.
      • isOrganizationTrail

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> isOrganizationTrail()
        Returns:
        Whether the trail is an AWS Organizations trail. Organization trails log events for the master account and all member accounts. Can only be created in the organization master account. Defaults to `false`.
      • kmsKeyId

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> kmsKeyId()
        Returns:
        KMS key ARN to use to encrypt the logs delivered by CloudTrail.
      • name

        public com.pulumi.core.Output<java.lang.String> name()
        Returns:
        Name of the trail.
      • 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.
      • s3BucketName

        public com.pulumi.core.Output<java.lang.String> s3BucketName()
        Returns:
        Name of the S3 bucket designated for publishing log files. The following arguments are optional:
      • s3KeyPrefix

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> s3KeyPrefix()
        Returns:
        S3 key prefix that follows the name of the bucket you have designated for log file delivery.
      • snsTopicArn

        public com.pulumi.core.Output<java.lang.String> snsTopicArn()
        Returns:
        ARN of the Amazon SNS topic that CloudTrail uses to send notifications when log files are delivered.
      • snsTopicName

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> snsTopicName()
        Returns:
        Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region.
      • 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 trail. If configured with a provider `defaultTags` 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 `defaultTags` configuration block.
      • get

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