Package com.pulumi.aws.workspacesweb
Class SessionLogger
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.workspacesweb.SessionLogger
-
public class SessionLogger extends com.pulumi.resources.CustomResourceResource for managing an AWS WorkSpaces Web Session Logger. ## Example Usage ### Basic Usage
### Complete Configuration with KMS Encryptionpackage 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.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 com.pulumi.aws.workspacesweb.SessionLogger; import com.pulumi.aws.workspacesweb.SessionLoggerArgs; import com.pulumi.aws.workspacesweb.inputs.SessionLoggerEventFilterArgs; import com.pulumi.aws.workspacesweb.inputs.SessionLoggerEventFilterAllArgs; import com.pulumi.aws.workspacesweb.inputs.SessionLoggerLogConfigurationArgs; import com.pulumi.aws.workspacesweb.inputs.SessionLoggerLogConfigurationS3Args; 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("example-session-logs") .build()); final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("workspaces-web.amazonaws.com") .build()) .effect("Allow") .actions("s3:PutObject") .resources(exampleBucket.arn().applyValue(_arn -> String.format("%s/*", _arn))) .build()) .build()); var exampleBucketPolicy = new BucketPolicy("exampleBucketPolicy", BucketPolicyArgs.builder() .bucket(exampleBucket.id()) .policy(example.applyValue(_example -> _example.json())) .build()); var exampleSessionLogger = new SessionLogger("exampleSessionLogger", SessionLoggerArgs.builder() .eventFilter(SessionLoggerEventFilterArgs.builder() .all(SessionLoggerEventFilterAllArgs.builder() .build()) .build()) .logConfiguration(SessionLoggerLogConfigurationArgs.builder() .s3(SessionLoggerLogConfigurationS3Args.builder() .bucket(exampleBucket.id()) .folderStructure("Flat") .logFileFormat("Json") .build()) .build()) .displayName("example-session-logger") .build(), CustomResourceOptions.builder() .dependsOn(exampleBucketPolicy) .build()); } }
## Import Using `pulumi import`, import WorkSpaces Web Session Logger using the `sessionLoggerArn`. For example: ```sh $ pulumi import aws:workspacesweb/sessionLogger:SessionLogger example arn:aws:workspaces-web:us-west-2:123456789012:sessionLogger/session_logger-id-12345678 ```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.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 com.pulumi.aws.AwsFunctions; import com.pulumi.aws.inputs.GetPartitionArgs; import com.pulumi.aws.inputs.GetCallerIdentityArgs; import com.pulumi.aws.kms.Key; import com.pulumi.aws.kms.KeyArgs; import com.pulumi.aws.workspacesweb.SessionLogger; import com.pulumi.aws.workspacesweb.SessionLoggerArgs; import com.pulumi.aws.workspacesweb.inputs.SessionLoggerEventFilterArgs; import com.pulumi.aws.workspacesweb.inputs.SessionLoggerLogConfigurationArgs; import com.pulumi.aws.workspacesweb.inputs.SessionLoggerLogConfigurationS3Args; 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("example-session-logs") .forceDestroy(true) .build()); final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("workspaces-web.amazonaws.com") .build()) .effect("Allow") .actions("s3:PutObject") .resources( exampleBucket.arn(), exampleBucket.arn().applyValue(_arn -> String.format("%s/*", _arn))) .build()) .build()); var exampleBucketPolicy = new BucketPolicy("exampleBucketPolicy", BucketPolicyArgs.builder() .bucket(exampleBucket.id()) .policy(example.applyValue(_example -> _example.json())) .build()); final var current = AwsFunctions.getPartition(GetPartitionArgs.builder() .build()); final var currentGetCallerIdentity = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() .build()); final var kmsKeyPolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements( GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("AWS") .identifiers(String.format("arn:%s:iam::%s:root", current.partition(),currentGetCallerIdentity.accountId())) .build()) .actions("kms:*") .resources("*") .build(), GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("workspaces-web.amazonaws.com") .build()) .actions( "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*", "kms:Decrypt") .resources("*") .build()) .build()); var exampleKey = new Key("exampleKey", KeyArgs.builder() .description("KMS key for WorkSpaces Web Session Logger") .policy(kmsKeyPolicy.json()) .build()); var exampleSessionLogger = new SessionLogger("exampleSessionLogger", SessionLoggerArgs.builder() .eventFilter(SessionLoggerEventFilterArgs.builder() .includes( "SessionStart", "SessionEnd") .build()) .logConfiguration(SessionLoggerLogConfigurationArgs.builder() .s3(SessionLoggerLogConfigurationS3Args.builder() .bucket(exampleBucket.id()) .bucketOwner(currentGetCallerIdentity.accountId()) .folderStructure("NestedByDate") .keyPrefix("workspaces-web-logs/") .logFileFormat("JsonLines") .build()) .build()) .displayName("example-session-logger") .customerManagedKey(exampleKey.arn()) .additionalEncryptionContext(Map.ofEntries( Map.entry("Environment", "Production"), Map.entry("Application", "WorkSpacesWeb") )) .tags(Map.ofEntries( Map.entry("Name", "example-session-logger"), Map.entry("Environment", "Production") )) .build(), CustomResourceOptions.builder() .dependsOn( exampleBucketPolicy, exampleKey) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description SessionLogger(java.lang.String name)SessionLogger(java.lang.String name, SessionLoggerArgs args)SessionLogger(java.lang.String name, SessionLoggerArgs 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.Map<java.lang.String,java.lang.String>>>additionalEncryptionContext()com.pulumi.core.Output<java.util.List<java.lang.String>>associatedPortalArns()com.pulumi.core.Output<java.util.Optional<java.lang.String>>customerManagedKey()com.pulumi.core.Output<java.util.Optional<java.lang.String>>displayName()com.pulumi.core.Output<SessionLoggerEventFilter>eventFilter()static SessionLoggerget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, SessionLoggerState 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<SessionLoggerLogConfiguration>logConfiguration()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.lang.String>sessionLoggerArn()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()
-
-
-
Constructor Detail
-
SessionLogger
public SessionLogger(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
SessionLogger
public SessionLogger(java.lang.String name, SessionLoggerArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
SessionLogger
public SessionLogger(java.lang.String name, SessionLoggerArgs 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
-
additionalEncryptionContext
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> additionalEncryptionContext()
- Returns:
- Map of additional encryption context key-value pairs.
-
associatedPortalArns
public com.pulumi.core.Output<java.util.List<java.lang.String>> associatedPortalArns()
- Returns:
- List of ARNs of the web portals associated with the session logger.
-
customerManagedKey
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> customerManagedKey()
- Returns:
- ARN of the customer managed KMS key used to encrypt sensitive information.
-
displayName
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> displayName()
- Returns:
- Human-readable display name for the session logger resource. Forces replacement if changed.
-
eventFilter
public com.pulumi.core.Output<SessionLoggerEventFilter> eventFilter()
- Returns:
- Event filter that determines which events are logged. See Event Filter below.
-
logConfiguration
public com.pulumi.core.Output<SessionLoggerLogConfiguration> logConfiguration()
- Returns:
- Configuration block for specifying where logs are delivered. See Log Configuration below. The following arguments are optional:
-
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.
-
sessionLoggerArn
public com.pulumi.core.Output<java.lang.String> sessionLoggerArn()
- Returns:
- ARN of the session logger.
-
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 resource. 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 SessionLogger get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable SessionLoggerState 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.
-
-