import * as core from "@terrascript/core"; export interface DefaultRetentionArgs extends core.SchemaArgs { days?: number | core.NumberOut; mode: string | core.StringOut; years?: number | core.NumberOut; } export class DefaultRetention extends core.Schema { @core.attr(Number) public days?: number | core.NumberOut; @core.attr(String) public mode!: string | core.StringOut; @core.attr(Number) public years?: number | core.NumberOut; } export interface ObjectLockConfigurationRuleArgs extends core.SchemaArgs { defaultRetention: DefaultRetention; } export class ObjectLockConfigurationRule extends core.Schema { @core.attr(DefaultRetention) public defaultRetention!: DefaultRetention; } export interface ObjectLockConfigurationArgs extends core.SchemaArgs { objectLockEnabled?: string | core.StringOut; rule?: ObjectLockConfigurationRule; } export class ObjectLockConfiguration extends core.Schema { @core.attr(String) public objectLockEnabled?: string | core.StringOut; @core.attr(ObjectLockConfigurationRule) public rule?: ObjectLockConfigurationRule; } export interface AccessControlTranslationArgs extends core.SchemaArgs { owner: string | core.StringOut; } export class AccessControlTranslation extends core.Schema { @core.attr(String) public owner!: string | core.StringOut; } export interface ReplicationTimeArgs extends core.SchemaArgs { minutes?: number | core.NumberOut; status?: string | core.StringOut; } export class ReplicationTime extends core.Schema { @core.attr(Number) public minutes?: number | core.NumberOut; @core.attr(String) public status?: string | core.StringOut; } export interface MetricsArgs extends core.SchemaArgs { minutes?: number | core.NumberOut; status?: string | core.StringOut; } export class Metrics extends core.Schema { @core.attr(Number) public minutes?: number | core.NumberOut; @core.attr(String) public status?: string | core.StringOut; } export interface DestinationArgs extends core.SchemaArgs { accessControlTranslation?: AccessControlTranslation; accountId?: string | core.StringOut; bucket: string | core.StringOut; metrics?: Metrics; replicaKmsKeyId?: string | core.StringOut; replicationTime?: ReplicationTime; storageClass?: string | core.StringOut; } export class Destination extends core.Schema { @core.attr(AccessControlTranslation) public accessControlTranslation?: AccessControlTranslation; @core.attr(String) public accountId?: string | core.StringOut; @core.attr(String) public bucket!: string | core.StringOut; @core.attr(Metrics) public metrics?: Metrics; @core.attr(String) public replicaKmsKeyId?: string | core.StringOut; @core.attr(ReplicationTime) public replicationTime?: ReplicationTime; @core.attr(String) public storageClass?: string | core.StringOut; } export interface SseKmsEncryptedObjectsArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; } export class SseKmsEncryptedObjects extends core.Schema { @core.attr(Boolean) public enabled!: boolean | core.BooleanOut; } export interface SourceSelectionCriteriaArgs extends core.SchemaArgs { sseKmsEncryptedObjects?: SseKmsEncryptedObjects; } export class SourceSelectionCriteria extends core.Schema { @core.attr(SseKmsEncryptedObjects) public sseKmsEncryptedObjects?: SseKmsEncryptedObjects; } export interface FilterArgs extends core.SchemaArgs { prefix?: string | core.StringOut; tags?: core.Map | core.MapOut; } export class Filter extends core.Schema { @core.attr(String) public prefix?: string | core.StringOut; @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; } export interface RulesArgs extends core.SchemaArgs { deleteMarkerReplicationStatus?: string | core.StringOut; destination: Destination; filter?: Filter; id?: string | core.StringOut; prefix?: string | core.StringOut; priority?: number | core.NumberOut; sourceSelectionCriteria?: SourceSelectionCriteria; status: string | core.StringOut; } export class Rules extends core.Schema { @core.attr(String) public deleteMarkerReplicationStatus?: string | core.StringOut; @core.attr(Destination) public destination!: Destination; @core.attr(Filter) public filter?: Filter; @core.attr(String) public id?: string | core.StringOut; @core.attr(String) public prefix?: string | core.StringOut; @core.attr(Number) public priority?: number | core.NumberOut; @core.attr(SourceSelectionCriteria) public sourceSelectionCriteria?: SourceSelectionCriteria; @core.attr(String) public status!: string | core.StringOut; } export interface ReplicationConfigurationArgs extends core.SchemaArgs { role: string | core.StringOut; rules: core.Array | core.ArrayOut; } export class ReplicationConfiguration extends core.Schema { @core.attr(String) public role!: string | core.StringOut; @core.attr(Rules, { kind: "array" }) public rules!: core.Array | core.ArrayOut; } export interface VersioningArgs extends core.SchemaArgs { enabled?: boolean | core.BooleanOut; mfaDelete?: boolean | core.BooleanOut; } export class Versioning extends core.Schema { @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; @core.attr(Boolean) public mfaDelete?: boolean | core.BooleanOut; } 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 ServerSideEncryptionConfigurationRuleArgs extends core.SchemaArgs { applyServerSideEncryptionByDefault: ApplyServerSideEncryptionByDefault; bucketKeyEnabled?: boolean | core.BooleanOut; } export class ServerSideEncryptionConfigurationRule extends core.Schema { @core.attr(ApplyServerSideEncryptionByDefault) public applyServerSideEncryptionByDefault!: ApplyServerSideEncryptionByDefault; @core.attr(Boolean) public bucketKeyEnabled?: boolean | core.BooleanOut; } export interface ServerSideEncryptionConfigurationArgs extends core.SchemaArgs { rule: ServerSideEncryptionConfigurationRule; } export class ServerSideEncryptionConfiguration extends core.Schema { @core.attr(ServerSideEncryptionConfigurationRule) public rule!: ServerSideEncryptionConfigurationRule; } export interface CorsRuleArgs extends core.SchemaArgs { allowedHeaders?: core.Array | core.ArrayOut; allowedMethods: core.Array | core.ArrayOut; allowedOrigins: core.Array | core.ArrayOut; exposeHeaders?: core.Array | core.ArrayOut; maxAgeSeconds?: number | core.NumberOut; } export class CorsRule extends core.Schema { @core.attr(String, { kind: "array" }) public allowedHeaders?: core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public allowedMethods!: core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public allowedOrigins!: core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public exposeHeaders?: core.Array | core.ArrayOut; @core.attr(Number) public maxAgeSeconds?: number | core.NumberOut; } export interface GrantArgs extends core.SchemaArgs { id?: string | core.StringOut; permissions: core.Array | core.ArrayOut; type: string | core.StringOut; uri?: string | core.StringOut; } export class Grant extends core.Schema { @core.attr(String) public id?: string | core.StringOut; @core.attr(String, { kind: "array" }) public permissions!: core.Array | core.ArrayOut; @core.attr(String) public type!: string | core.StringOut; @core.attr(String) public uri?: string | core.StringOut; } export interface WebsiteArgs extends core.SchemaArgs { errorDocument?: string | core.StringOut; indexDocument?: string | core.StringOut; redirectAllRequestsTo?: string | core.StringOut; routingRules?: string | core.StringOut; } export class Website extends core.Schema { @core.attr(String) public errorDocument?: string | core.StringOut; @core.attr(String) public indexDocument?: string | core.StringOut; @core.attr(String) public redirectAllRequestsTo?: string | core.StringOut; @core.attr(String) public routingRules?: string | core.StringOut; } export interface LoggingArgs extends core.SchemaArgs { targetBucket: string | core.StringOut; targetPrefix?: string | core.StringOut; } export class Logging extends core.Schema { @core.attr(String) public targetBucket!: string | core.StringOut; @core.attr(String) public targetPrefix?: string | core.StringOut; } export interface NoncurrentVersionTransitionArgs extends core.SchemaArgs { days?: number | core.NumberOut; storageClass: string | core.StringOut; } export class NoncurrentVersionTransition extends core.Schema { @core.attr(Number) public days?: number | core.NumberOut; @core.attr(String) public storageClass!: string | core.StringOut; } export interface ExpirationArgs extends core.SchemaArgs { date?: string | core.StringOut; days?: number | core.NumberOut; expiredObjectDeleteMarker?: boolean | core.BooleanOut; } export class Expiration extends core.Schema { @core.attr(String) public date?: string | core.StringOut; @core.attr(Number) public days?: number | core.NumberOut; @core.attr(Boolean) public expiredObjectDeleteMarker?: boolean | core.BooleanOut; } export interface NoncurrentVersionExpirationArgs extends core.SchemaArgs { days?: number | core.NumberOut; } export class NoncurrentVersionExpiration extends core.Schema { @core.attr(Number) public days?: number | core.NumberOut; } export interface TransitionArgs extends core.SchemaArgs { date?: string | core.StringOut; days?: number | core.NumberOut; storageClass: string | core.StringOut; } export class Transition extends core.Schema { @core.attr(String) public date?: string | core.StringOut; @core.attr(Number) public days?: number | core.NumberOut; @core.attr(String) public storageClass!: string | core.StringOut; } export interface LifecycleRuleArgs extends core.SchemaArgs { abortIncompleteMultipartUploadDays?: number | core.NumberOut; enabled: boolean | core.BooleanOut; expiration?: Expiration; id?: string | core.StringOut; noncurrentVersionExpiration?: NoncurrentVersionExpiration; noncurrentVersionTransition?: | core.Array | core.ArrayOut; prefix?: string | core.StringOut; tags?: core.Map | core.MapOut; transition?: core.Array | core.ArrayOut; } export class LifecycleRule extends core.Schema { @core.attr(Number) public abortIncompleteMultipartUploadDays?: number | core.NumberOut; @core.attr(Boolean) public enabled!: boolean | core.BooleanOut; @core.attr(Expiration) public expiration?: Expiration; @core.attr(String, { computed: true }) public id?: string | core.StringOut; @core.attr(NoncurrentVersionExpiration) public noncurrentVersionExpiration?: NoncurrentVersionExpiration; @core.attr(NoncurrentVersionTransition, { kind: "array" }) public noncurrentVersionTransition?: | core.Array | core.ArrayOut; @core.attr(String) public prefix?: string | core.StringOut; @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; @core.attr(Transition, { kind: "array" }) public transition?: core.Array | core.ArrayOut; } export interface BucketArgs extends core.ResourceArgs { /** * (Optional, **Deprecated**) Sets the accelerate configuration of an existing bucket. Can be `Enabled` * or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. Terraform will only perform drif * t detection if a configuration value is provided. */ accelerationStatus?: string | core.StringOut; /** * (Optional, **Deprecated**) The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-over * view.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws * exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with * grant`. Terraform will only perform drift detection if a configuration value is provided. Use the r * esource [`aws_s3_bucket_acl`](s3_bucket_acl.html.markdown) instead. */ acl?: string | core.StringOut; /** * The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. */ arn?: string | core.StringOut; /** * (Optional, Forces new resource) The name of the bucket. If omitted, Terraform will assign a random, * unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of buc * ket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnam * ingrules.html). */ bucket?: string | core.StringOut; /** * (Optional, Forces new resource) Creates a unique bucket name beginning with the specified prefix. Co * nflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full l * ist of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide * /bucketnamingrules.html). */ bucketPrefix?: string | core.StringOut; /** * (Optional, **Deprecated**) A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/Ama * zonS3/latest/dev/cors.html). See [CORS rule](#cors-rule) below for details. Terraform will only perf * orm drift detection if a configuration value is provided. Use the resource [`aws_s3_bucket_cors_conf * iguration`](s3_bucket_cors_configuration.html.markdown) instead. */ corsRule?: core.Array | core.ArrayOut; /** * (Optional, Default:`false`) A boolean that indicates all objects (including any [locked objects](htt * ps://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the * bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. */ forceDestroy?: boolean | core.BooleanOut; /** * (Optional, **Deprecated**) An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl * overview.html#sample-acl). See [Grant](#grant) below for details. Conflicts with `acl`. Terraform w * ill only perform drift detection if a configuration value is provided. Use the resource [`aws_s3_buc * ket_acl`](s3_bucket_acl.html.markdown) instead. */ grant?: core.Array | core.ArrayOut; /** * The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_re * gion_endpoints) for this bucket's region. */ hostedZoneId?: string | core.StringOut; /** * (Optional, **Deprecated**) A configuration of [object lifecycle management](http://docs.aws.amazon.c * om/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See [Lifecycle Rule](#lifecycle-rule) below for * details. Terraform will only perform drift detection if a configuration value is provided. */ lifecycleRule?: core.Array | core.ArrayOut; /** * (Optional, **Deprecated**) A configuration of [S3 bucket logging](https://docs.aws.amazon.com/Amazon * S3/latest/UG/ManagingBucketLogging.html) parameters. See [Logging](#logging) below for details. Terr * aform will only perform drift detection if a configuration value is provided. */ logging?: Logging; /** * (Optional, **Deprecated**) A configuration of [S3 object locking](https://docs.aws.amazon.com/Amazon * S3/latest/dev/object-lock.html). See [Object Lock Configuration](#object-lock-configuration) below f * or details. */ objectLockConfiguration?: ObjectLockConfiguration; /** * (Optional, Forces new resource) Indicates whether this bucket has an Object Lock configuration enabl * ed. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. */ objectLockEnabled?: boolean | core.BooleanOut; /** * (Optional, **Deprecated**) A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/e * xample-bucket-policies.html) JSON document. Note that if the policy document is not specific enough * (but still valid), Terraform may view the policy as constantly changing in a `terraform plan`. In th * is case, please make sure you use the verbose/specific version of the policy. For more information a * bout building AWS IAM policy documents with Terraform, see the [AWS IAM Policy Document Guide](https * ://learn.hashicorp.com/terraform/aws/iam-policy). */ policy?: string | core.StringOut; /** * (Optional, **Deprecated**) A configuration of [replication configuration](http://docs.aws.amazon.com * /AmazonS3/latest/dev/crr.html). See [Replication Configuration](#replication-configuration) below fo * r details. Terraform will only perform drift detection if a configuration value is provided. */ replicationConfiguration?: ReplicationConfiguration; /** * (Optional, **Deprecated**) Specifies who should bear the cost of Amazon S3 data transfer. */ requestPayer?: string | core.StringOut; /** * (Optional, **Deprecated**) A configuration of [server-side encryption configuration](http://docs.aws * .amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See [Server Side Encryption Configuration]( * #server-side-encryption-configuration) below for details. */ serverSideEncryptionConfiguration?: ServerSideEncryptionConfiguration; /** * (Optional) A map of tags to assign to the bucket. If configured with a provider [`default_tags` conf * iguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-conf * iguration-block) present, tags with matching keys will overwrite those defined at the provider-level * . */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional, **Deprecated**) A configuration of the [S3 bucket versioning state](https://docs.aws.amaz * on.com/AmazonS3/latest/dev/Versioning.html). See [Versioning](#versioning) below for details. Terraf * orm will only perform drift detection if a configuration value is provided. Use the resource [`aws_s * 3_bucket_versioning`](s3_bucket_versioning.html.markdown) instead. */ versioning?: Versioning; /** * (Optional, **Deprecated**) A configuration of the [S3 bucket website](https://docs.aws.amazon.com/Am * azonS3/latest/userguide/WebsiteHosting.html). See [Website](#website) below for details. Terraform w * ill only perform drift detection if a configuration value is provided. */ website?: Website; } export class Bucket extends core.Resource { /** * (Optional, **Deprecated**) Sets the accelerate configuration of an existing bucket. Can be `Enabled` * or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. Terraform will only perform drif * t detection if a configuration value is provided. */ @core.attr(String, { computed: true }) public accelerationStatus?: string | core.StringOut; /** * (Optional, **Deprecated**) The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-over * view.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws * exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with * grant`. Terraform will only perform drift detection if a configuration value is provided. Use the r * esource [`aws_s3_bucket_acl`](s3_bucket_acl.html.markdown) instead. */ @core.attr(String, { computed: true }) public acl?: string | core.StringOut; /** * The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. */ @core.attr(String, { computed: true }) public arn?: string | core.StringOut; /** * (Optional, Forces new resource) The name of the bucket. If omitted, Terraform will assign a random, * unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of buc * ket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnam * ingrules.html). */ @core.attr(String, { computed: true }) public bucket?: string | core.StringOut; /** * The bucket domain name. Will be of format `bucketname.s3.amazonaws.com`. */ @core.attr(String, { computed: true }) public bucketDomainName!: string | core.StringOut; /** * (Optional, Forces new resource) Creates a unique bucket name beginning with the specified prefix. Co * nflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full l * ist of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide * /bucketnamingrules.html). */ @core.attr(String) public bucketPrefix?: string | core.StringOut; /** * The bucket region-specific domain name. The bucket domain name including the region name, please ref * er [here](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) for format. Note: The * AWS CloudFront allows specifying S3 region-specific endpoint when creating S3 origin, it will preven * t [redirect issues](https://forums.aws.amazon.com/thread.jspa?threadID=216814) from CloudFront to S3 * Origin URL. */ @core.attr(String, { computed: true }) public bucketRegionalDomainName!: string | core.StringOut; /** * (Optional, **Deprecated**) A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/Ama * zonS3/latest/dev/cors.html). See [CORS rule](#cors-rule) below for details. Terraform will only perf * orm drift detection if a configuration value is provided. Use the resource [`aws_s3_bucket_cors_conf * iguration`](s3_bucket_cors_configuration.html.markdown) instead. */ @core.attr(CorsRule, { computed: true, kind: "array" }) public corsRule?: core.Array | core.ArrayOut; /** * (Optional, Default:`false`) A boolean that indicates all objects (including any [locked objects](htt * ps://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the * bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. */ @core.attr(Boolean) public forceDestroy?: boolean | core.BooleanOut; /** * (Optional, **Deprecated**) An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl * overview.html#sample-acl). See [Grant](#grant) below for details. Conflicts with `acl`. Terraform w * ill only perform drift detection if a configuration value is provided. Use the resource [`aws_s3_buc * ket_acl`](s3_bucket_acl.html.markdown) instead. */ @core.attr(Grant, { computed: true, kind: "array" }) public grant?: core.Array | core.ArrayOut; /** * The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_re * gion_endpoints) for this bucket's region. */ @core.attr(String, { computed: true }) public hostedZoneId?: string | core.StringOut; /** * (Optional) Canonical user id to grant for. Used only when `type` is `CanonicalUser`. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional, **Deprecated**) A configuration of [object lifecycle management](http://docs.aws.amazon.c * om/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See [Lifecycle Rule](#lifecycle-rule) below for * details. Terraform will only perform drift detection if a configuration value is provided. */ @core.attr(LifecycleRule, { computed: true, kind: "array" }) public lifecycleRule?: | core.Array | core.ArrayOut; /** * (Optional, **Deprecated**) A configuration of [S3 bucket logging](https://docs.aws.amazon.com/Amazon * S3/latest/UG/ManagingBucketLogging.html) parameters. See [Logging](#logging) below for details. Terr * aform will only perform drift detection if a configuration value is provided. */ @core.attr(Logging, { computed: true }) public logging?: Logging; /** * (Optional, **Deprecated**) A configuration of [S3 object locking](https://docs.aws.amazon.com/Amazon * S3/latest/dev/object-lock.html). See [Object Lock Configuration](#object-lock-configuration) below f * or details. */ @core.attr(ObjectLockConfiguration, { computed: true }) public objectLockConfiguration?: ObjectLockConfiguration; /** * (Optional, Forces new resource) Indicates whether this bucket has an Object Lock configuration enabl * ed. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. */ @core.attr(Boolean, { computed: true }) public objectLockEnabled?: boolean | core.BooleanOut; /** * (Optional, **Deprecated**) A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/e * xample-bucket-policies.html) JSON document. Note that if the policy document is not specific enough * (but still valid), Terraform may view the policy as constantly changing in a `terraform plan`. In th * is case, please make sure you use the verbose/specific version of the policy. For more information a * bout building AWS IAM policy documents with Terraform, see the [AWS IAM Policy Document Guide](https * ://learn.hashicorp.com/terraform/aws/iam-policy). */ @core.attr(String, { computed: true }) public policy?: string | core.StringOut; /** * The AWS region this bucket resides in. */ @core.attr(String, { computed: true }) public region!: string | core.StringOut; /** * (Optional, **Deprecated**) A configuration of [replication configuration](http://docs.aws.amazon.com * /AmazonS3/latest/dev/crr.html). See [Replication Configuration](#replication-configuration) below fo * r details. Terraform will only perform drift detection if a configuration value is provided. */ @core.attr(ReplicationConfiguration, { computed: true }) public replicationConfiguration?: ReplicationConfiguration; /** * (Optional, **Deprecated**) Specifies who should bear the cost of Amazon S3 data transfer. */ @core.attr(String, { computed: true }) public requestPayer?: string | core.StringOut; /** * (Optional, **Deprecated**) A configuration of [server-side encryption configuration](http://docs.aws * .amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See [Server Side Encryption Configuration]( * #server-side-encryption-configuration) below for details. */ @core.attr(ServerSideEncryptionConfiguration, { computed: true }) public serverSideEncryptionConfiguration?: ServerSideEncryptionConfiguration; /** * (Optional) A map of tags to assign to the bucket. If configured with a provider [`default_tags` conf * iguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-conf * iguration-block) present, tags with matching keys will overwrite those defined at the provider-level * . */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Optional, **Deprecated**) A configuration of the [S3 bucket versioning state](https://docs.aws.amaz * on.com/AmazonS3/latest/dev/Versioning.html). See [Versioning](#versioning) below for details. Terraf * orm will only perform drift detection if a configuration value is provided. Use the resource [`aws_s * 3_bucket_versioning`](s3_bucket_versioning.html.markdown) instead. */ @core.attr(Versioning, { computed: true }) public versioning?: Versioning; /** * (Optional, **Deprecated**) A configuration of the [S3 bucket website](https://docs.aws.amazon.com/Am * azonS3/latest/userguide/WebsiteHosting.html). See [Website](#website) below for details. Terraform w * ill only perform drift detection if a configuration value is provided. */ @core.attr(Website, { computed: true }) public website?: Website; /** * The domain of the website endpoint, if the bucket is configured with a website. If not, this will be * an empty string. This is used to create Route 53 alias records. */ @core.attr(String, { computed: true }) public websiteDomain!: string | core.StringOut; /** * The website endpoint, if the bucket is configured with a website. If not, this will be an empty stri * ng. */ @core.attr(String, { computed: true }) public websiteEndpoint!: string | core.StringOut; constructor(name: string, args?: BucketArgs) { super(name, "aws_s3_bucket", args); } public override getNamespace(): string { return "aws_s3"; } }