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 declare class DefaultRetention extends core.Schema { days?: number | core.NumberOut; mode: string | core.StringOut; years?: number | core.NumberOut; } export interface ObjectLockConfigurationRuleArgs extends core.SchemaArgs { defaultRetention: DefaultRetention; } export declare class ObjectLockConfigurationRule extends core.Schema { defaultRetention: DefaultRetention; } export interface ObjectLockConfigurationArgs extends core.SchemaArgs { objectLockEnabled?: string | core.StringOut; rule?: ObjectLockConfigurationRule; } export declare class ObjectLockConfiguration extends core.Schema { objectLockEnabled?: string | core.StringOut; rule?: ObjectLockConfigurationRule; } export interface AccessControlTranslationArgs extends core.SchemaArgs { owner: string | core.StringOut; } export declare class AccessControlTranslation extends core.Schema { owner: string | core.StringOut; } export interface ReplicationTimeArgs extends core.SchemaArgs { minutes?: number | core.NumberOut; status?: string | core.StringOut; } export declare class ReplicationTime extends core.Schema { minutes?: number | core.NumberOut; status?: string | core.StringOut; } export interface MetricsArgs extends core.SchemaArgs { minutes?: number | core.NumberOut; status?: string | core.StringOut; } export declare class Metrics extends core.Schema { minutes?: number | core.NumberOut; 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 declare class Destination extends core.Schema { accessControlTranslation?: AccessControlTranslation; accountId?: string | core.StringOut; bucket: string | core.StringOut; metrics?: Metrics; replicaKmsKeyId?: string | core.StringOut; replicationTime?: ReplicationTime; storageClass?: string | core.StringOut; } export interface SseKmsEncryptedObjectsArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; } export declare class SseKmsEncryptedObjects extends core.Schema { enabled: boolean | core.BooleanOut; } export interface SourceSelectionCriteriaArgs extends core.SchemaArgs { sseKmsEncryptedObjects?: SseKmsEncryptedObjects; } export declare class SourceSelectionCriteria extends core.Schema { sseKmsEncryptedObjects?: SseKmsEncryptedObjects; } export interface FilterArgs extends core.SchemaArgs { prefix?: string | core.StringOut; tags?: core.Map | core.MapOut; } export declare class Filter extends core.Schema { prefix?: string | core.StringOut; 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 declare class Rules extends core.Schema { 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 interface ReplicationConfigurationArgs extends core.SchemaArgs { role: string | core.StringOut; rules: core.Array | core.ArrayOut; } export declare class ReplicationConfiguration extends core.Schema { role: string | core.StringOut; rules: core.Array | core.ArrayOut; } export interface VersioningArgs extends core.SchemaArgs { enabled?: boolean | core.BooleanOut; mfaDelete?: boolean | core.BooleanOut; } export declare class Versioning extends core.Schema { enabled?: boolean | core.BooleanOut; mfaDelete?: boolean | core.BooleanOut; } export interface ApplyServerSideEncryptionByDefaultArgs extends core.SchemaArgs { kmsMasterKeyId?: string | core.StringOut; sseAlgorithm: string | core.StringOut; } export declare class ApplyServerSideEncryptionByDefault extends core.Schema { kmsMasterKeyId?: string | core.StringOut; sseAlgorithm: string | core.StringOut; } export interface ServerSideEncryptionConfigurationRuleArgs extends core.SchemaArgs { applyServerSideEncryptionByDefault: ApplyServerSideEncryptionByDefault; bucketKeyEnabled?: boolean | core.BooleanOut; } export declare class ServerSideEncryptionConfigurationRule extends core.Schema { applyServerSideEncryptionByDefault: ApplyServerSideEncryptionByDefault; bucketKeyEnabled?: boolean | core.BooleanOut; } export interface ServerSideEncryptionConfigurationArgs extends core.SchemaArgs { rule: ServerSideEncryptionConfigurationRule; } export declare class ServerSideEncryptionConfiguration extends core.Schema { 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 declare class CorsRule extends core.Schema { 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 interface GrantArgs extends core.SchemaArgs { id?: string | core.StringOut; permissions: core.Array | core.ArrayOut; type: string | core.StringOut; uri?: string | core.StringOut; } export declare class Grant extends core.Schema { id?: string | core.StringOut; permissions: core.Array | core.ArrayOut; type: string | core.StringOut; 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 declare class Website extends core.Schema { errorDocument?: string | core.StringOut; indexDocument?: string | core.StringOut; redirectAllRequestsTo?: string | core.StringOut; routingRules?: string | core.StringOut; } export interface LoggingArgs extends core.SchemaArgs { targetBucket: string | core.StringOut; targetPrefix?: string | core.StringOut; } export declare class Logging extends core.Schema { targetBucket: string | core.StringOut; targetPrefix?: string | core.StringOut; } export interface NoncurrentVersionTransitionArgs extends core.SchemaArgs { days?: number | core.NumberOut; storageClass: string | core.StringOut; } export declare class NoncurrentVersionTransition extends core.Schema { days?: number | core.NumberOut; storageClass: string | core.StringOut; } export interface ExpirationArgs extends core.SchemaArgs { date?: string | core.StringOut; days?: number | core.NumberOut; expiredObjectDeleteMarker?: boolean | core.BooleanOut; } export declare class Expiration extends core.Schema { date?: string | core.StringOut; days?: number | core.NumberOut; expiredObjectDeleteMarker?: boolean | core.BooleanOut; } export interface NoncurrentVersionExpirationArgs extends core.SchemaArgs { days?: number | core.NumberOut; } export declare class NoncurrentVersionExpiration extends core.Schema { days?: number | core.NumberOut; } export interface TransitionArgs extends core.SchemaArgs { date?: string | core.StringOut; days?: number | core.NumberOut; storageClass: string | core.StringOut; } export declare class Transition extends core.Schema { date?: string | core.StringOut; days?: number | core.NumberOut; 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 declare class LifecycleRule extends core.Schema { 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 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 declare 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. */ 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; /** * The bucket domain name. Will be of format `bucketname.s3.amazonaws.com`. */ 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). */ 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. */ 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. */ 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) Canonical user id to grant for. Used only when `type` is `CanonicalUser`. */ 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. */ 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; /** * The AWS region this bucket resides in. */ 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. */ 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; /** * 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. */ websiteDomain: string | core.StringOut; /** * The website endpoint, if the bucket is configured with a website. If not, this will be an empty stri * ng. */ websiteEndpoint: string | core.StringOut; constructor(name: string, args?: BucketArgs); getNamespace(): string; } //# sourceMappingURL=bucket.d.ts.map