import * as core from "@terrascript/core"; export interface ApplyServerSideEncryptionByDefaultArgs extends core.SchemaArgs { kmsMasterKeyId?: string | core.StringOut; sseAlgorithm: string | core.StringOut; } export class ApplyServerSideEncryptionByDefault extends core.Schema { @core.attr(String) public kmsMasterKeyId?: string | core.StringOut; @core.attr(String) public sseAlgorithm!: string | core.StringOut; } export interface RuleArgs extends core.SchemaArgs { applyServerSideEncryptionByDefault?: ApplyServerSideEncryptionByDefault; bucketKeyEnabled?: boolean | core.BooleanOut; } export class Rule extends core.Schema { @core.attr(ApplyServerSideEncryptionByDefault) public applyServerSideEncryptionByDefault?: ApplyServerSideEncryptionByDefault; @core.attr(Boolean) public bucketKeyEnabled?: boolean | core.BooleanOut; } export interface BucketServerSideEncryptionConfigurationArgs extends core.ResourceArgs { /** * (Required, Forces new resource) The name of the bucket. */ bucket: string | core.StringOut; /** * (Optional, Forces new resource) The account ID of the expected bucket owner. */ expectedBucketOwner?: string | core.StringOut; /** * (Required) Set of server-side encryption configuration rules. [documented below](#rule). Currently, * only a single rule is supported. */ rule: core.Array | core.ArrayOut; } export class BucketServerSideEncryptionConfiguration extends core.Resource { /** * (Required, Forces new resource) The name of the bucket. */ @core.attr(String) public bucket!: string | core.StringOut; /** * (Optional, Forces new resource) The account ID of the expected bucket owner. */ @core.attr(String) public expectedBucketOwner?: string | core.StringOut; /** * The `bucket` or `bucket` and `expected_bucket_owner` separated by a comma (`,`) if the latter is pro * vided. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Set of server-side encryption configuration rules. [documented below](#rule). Currently, * only a single rule is supported. */ @core.attr(Rule, { kind: "array" }) public rule!: core.Array | core.ArrayOut; constructor( name: string, args?: BucketServerSideEncryptionConfigurationArgs ) { super(name, "aws_s3_bucket_server_side_encryption_configuration", args); } public override getNamespace(): string { return "aws_s3"; } }