import * as core from "@terrascript/core"; export interface VersioningConfigurationArgs extends core.SchemaArgs { mfaDelete?: string | core.StringOut; status: string | core.StringOut; } export class VersioningConfiguration extends core.Schema { @core.attr(String, { computed: true }) public mfaDelete?: string | core.StringOut; @core.attr(String) public status!: string | core.StringOut; } export interface BucketVersioningArgs extends core.ResourceArgs { /** * (Required, Forces new resource) The name of the S3 bucket. */ bucket: string | core.StringOut; /** * (Optional, Forces new resource) The account ID of the expected bucket owner. */ expectedBucketOwner?: string | core.StringOut; /** * (Optional, Required if `versioning_configuration` `mfa_delete` is enabled) The concatenation of the * authentication device's serial number, a space, and the value that is displayed on your authenticati * on device. */ mfa?: string | core.StringOut; /** * (Required) Configuration block for the versioning parameters [detailed below](#versioning_configurat * ion). */ versioningConfiguration: VersioningConfiguration; } export class BucketVersioning extends core.Resource { /** * (Required, Forces new resource) The name of the S3 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; /** * (Optional, Required if `versioning_configuration` `mfa_delete` is enabled) The concatenation of the * authentication device's serial number, a space, and the value that is displayed on your authenticati * on device. */ @core.attr(String) public mfa?: string | core.StringOut; /** * (Required) Configuration block for the versioning parameters [detailed below](#versioning_configurat * ion). */ @core.attr(VersioningConfiguration) public versioningConfiguration!: VersioningConfiguration; constructor(name: string, args?: BucketVersioningArgs) { super(name, "aws_s3_bucket_versioning", args); } public override getNamespace(): string { return "aws_s3"; } }