import { ResourceBase, ResourceTag } from '../resource'; import { Value, List } from '../dataTypes'; export declare class BucketEncryption { ServerSideEncryptionConfiguration: List; constructor(properties: BucketEncryption); } export declare class RoutingRuleCondition { HttpErrorCodeReturnedEquals?: Value; KeyPrefixEquals?: Value; constructor(properties: RoutingRuleCondition); } export declare class LifecycleConfiguration { Rules: List; constructor(properties: LifecycleConfiguration); } export declare class CorsRule { AllowedHeaders?: List>; AllowedMethods: List>; AllowedOrigins: List>; ExposedHeaders?: List>; Id?: Value; MaxAge?: Value; constructor(properties: CorsRule); } export declare class Destination { BucketAccountId?: Value; BucketArn: Value; Format: Value; Prefix?: Value; constructor(properties: Destination); } export declare class AccessControlTranslation { Owner: Value; constructor(properties: AccessControlTranslation); } export declare class VersioningConfiguration { Status: Value; constructor(properties: VersioningConfiguration); } export declare class NotificationConfiguration { LambdaConfigurations?: List; QueueConfigurations?: List; TopicConfigurations?: List; constructor(properties: NotificationConfiguration); } export declare class ServerSideEncryptionByDefault { KMSMasterKeyID?: Value; SSEAlgorithm: Value; constructor(properties: ServerSideEncryptionByDefault); } export declare class RedirectAllRequestsTo { HostName: Value; Protocol?: Value; constructor(properties: RedirectAllRequestsTo); } export declare class S3KeyFilter { Rules: List; constructor(properties: S3KeyFilter); } export declare class InventoryConfiguration { Destination: Destination; Enabled: Value; Id: Value; IncludedObjectVersions: Value; OptionalFields?: List>; Prefix?: Value; ScheduleFrequency: Value; constructor(properties: InventoryConfiguration); } export declare class ReplicationConfiguration { Role: Value; Rules: List; constructor(properties: ReplicationConfiguration); } export declare class SseKmsEncryptedObjects { Status: Value; constructor(properties: SseKmsEncryptedObjects); } export declare class QueueConfiguration { Event: Value; Filter?: NotificationFilter; Queue: Value; constructor(properties: QueueConfiguration); } export declare class ObjectLockConfiguration { ObjectLockEnabled?: Value; Rule?: ObjectLockRule; constructor(properties: ObjectLockConfiguration); } export declare class CorsConfiguration { CorsRules: List; constructor(properties: CorsConfiguration); } export declare class ReplicationDestination { AccessControlTranslation?: AccessControlTranslation; Account?: Value; Bucket: Value; EncryptionConfiguration?: EncryptionConfiguration; StorageClass?: Value; constructor(properties: ReplicationDestination); } export declare class AccelerateConfiguration { AccelerationStatus: Value; constructor(properties: AccelerateConfiguration); } export declare class NoncurrentVersionTransition { StorageClass: Value; TransitionInDays: Value; constructor(properties: NoncurrentVersionTransition); } export declare class AbortIncompleteMultipartUpload { DaysAfterInitiation: Value; constructor(properties: AbortIncompleteMultipartUpload); } export declare class PublicAccessBlockConfiguration { BlockPublicAcls?: Value; BlockPublicPolicy?: Value; IgnorePublicAcls?: Value; RestrictPublicBuckets?: Value; constructor(properties: PublicAccessBlockConfiguration); } export declare class DefaultRetention { Days?: Value; Mode?: Value; Years?: Value; constructor(properties: DefaultRetention); } export declare class NotificationFilter { S3Key: S3KeyFilter; constructor(properties: NotificationFilter); } export declare class LambdaConfiguration { Event: Value; Filter?: NotificationFilter; Function: Value; constructor(properties: LambdaConfiguration); } export declare class ReplicationRule { Destination: ReplicationDestination; Id?: Value; Prefix: Value; SourceSelectionCriteria?: SourceSelectionCriteria; Status: Value; constructor(properties: ReplicationRule); } export declare class ServerSideEncryptionRule { ServerSideEncryptionByDefault?: ServerSideEncryptionByDefault; constructor(properties: ServerSideEncryptionRule); } export declare class AnalyticsConfiguration { Id: Value; Prefix?: Value; StorageClassAnalysis: StorageClassAnalysis; TagFilters?: List; constructor(properties: AnalyticsConfiguration); } export declare class SourceSelectionCriteria { SseKmsEncryptedObjects: SseKmsEncryptedObjects; constructor(properties: SourceSelectionCriteria); } export declare class LoggingConfiguration { DestinationBucketName?: Value; LogFilePrefix?: Value; constructor(properties: LoggingConfiguration); } export declare class StorageClassAnalysis { DataExport?: DataExport; constructor(properties: StorageClassAnalysis); } export declare class RoutingRule { RedirectRule: RedirectRule; RoutingRuleCondition?: RoutingRuleCondition; constructor(properties: RoutingRule); } export declare class EncryptionConfiguration { ReplicaKmsKeyID: Value; constructor(properties: EncryptionConfiguration); } export declare class RedirectRule { HostName?: Value; HttpRedirectCode?: Value; Protocol?: Value; ReplaceKeyPrefixWith?: Value; ReplaceKeyWith?: Value; constructor(properties: RedirectRule); } export declare class ObjectLockRule { DefaultRetention?: DefaultRetention; constructor(properties: ObjectLockRule); } export declare class WebsiteConfiguration { ErrorDocument?: Value; IndexDocument?: Value; RedirectAllRequestsTo?: RedirectAllRequestsTo; RoutingRules?: List; constructor(properties: WebsiteConfiguration); } export declare class Rule { AbortIncompleteMultipartUpload?: AbortIncompleteMultipartUpload; ExpirationDate?: Value; ExpirationInDays?: Value; Id?: Value; NoncurrentVersionExpirationInDays?: Value; NoncurrentVersionTransition?: NoncurrentVersionTransition; NoncurrentVersionTransitions?: List; Prefix?: Value; Status: Value; TagFilters?: List; Transition?: Transition; Transitions?: List; constructor(properties: Rule); } export declare class TopicConfiguration { Event: Value; Filter?: NotificationFilter; Topic: Value; constructor(properties: TopicConfiguration); } export declare class MetricsConfiguration { Id: Value; Prefix?: Value; TagFilters?: List; constructor(properties: MetricsConfiguration); } export declare class TagFilter { Key: Value; Value: Value; constructor(properties: TagFilter); } export declare class Transition { StorageClass: Value; TransitionDate?: Value; TransitionInDays?: Value; constructor(properties: Transition); } export declare class DataExport { Destination: Destination; OutputSchemaVersion: Value; constructor(properties: DataExport); } export declare class FilterRule { Name: Value; Value: Value; constructor(properties: FilterRule); } export interface BucketProperties { AccelerateConfiguration?: AccelerateConfiguration; AccessControl?: Value; AnalyticsConfigurations?: List; BucketEncryption?: BucketEncryption; BucketName?: Value; CorsConfiguration?: CorsConfiguration; InventoryConfigurations?: List; LifecycleConfiguration?: LifecycleConfiguration; LoggingConfiguration?: LoggingConfiguration; MetricsConfigurations?: List; NotificationConfiguration?: NotificationConfiguration; ObjectLockConfiguration?: ObjectLockConfiguration; ObjectLockEnabled?: Value; PublicAccessBlockConfiguration?: PublicAccessBlockConfiguration; ReplicationConfiguration?: ReplicationConfiguration; Tags?: List; VersioningConfiguration?: VersioningConfiguration; WebsiteConfiguration?: WebsiteConfiguration; } export default class Bucket extends ResourceBase { static BucketEncryption: typeof BucketEncryption; static RoutingRuleCondition: typeof RoutingRuleCondition; static LifecycleConfiguration: typeof LifecycleConfiguration; static CorsRule: typeof CorsRule; static Destination: typeof Destination; static AccessControlTranslation: typeof AccessControlTranslation; static VersioningConfiguration: typeof VersioningConfiguration; static NotificationConfiguration: typeof NotificationConfiguration; static ServerSideEncryptionByDefault: typeof ServerSideEncryptionByDefault; static RedirectAllRequestsTo: typeof RedirectAllRequestsTo; static S3KeyFilter: typeof S3KeyFilter; static InventoryConfiguration: typeof InventoryConfiguration; static ReplicationConfiguration: typeof ReplicationConfiguration; static SseKmsEncryptedObjects: typeof SseKmsEncryptedObjects; static QueueConfiguration: typeof QueueConfiguration; static ObjectLockConfiguration: typeof ObjectLockConfiguration; static CorsConfiguration: typeof CorsConfiguration; static ReplicationDestination: typeof ReplicationDestination; static AccelerateConfiguration: typeof AccelerateConfiguration; static NoncurrentVersionTransition: typeof NoncurrentVersionTransition; static AbortIncompleteMultipartUpload: typeof AbortIncompleteMultipartUpload; static PublicAccessBlockConfiguration: typeof PublicAccessBlockConfiguration; static DefaultRetention: typeof DefaultRetention; static NotificationFilter: typeof NotificationFilter; static LambdaConfiguration: typeof LambdaConfiguration; static ReplicationRule: typeof ReplicationRule; static ServerSideEncryptionRule: typeof ServerSideEncryptionRule; static AnalyticsConfiguration: typeof AnalyticsConfiguration; static SourceSelectionCriteria: typeof SourceSelectionCriteria; static LoggingConfiguration: typeof LoggingConfiguration; static StorageClassAnalysis: typeof StorageClassAnalysis; static RoutingRule: typeof RoutingRule; static EncryptionConfiguration: typeof EncryptionConfiguration; static RedirectRule: typeof RedirectRule; static ObjectLockRule: typeof ObjectLockRule; static WebsiteConfiguration: typeof WebsiteConfiguration; static Rule: typeof Rule; static TopicConfiguration: typeof TopicConfiguration; static MetricsConfiguration: typeof MetricsConfiguration; static TagFilter: typeof TagFilter; static Transition: typeof Transition; static DataExport: typeof DataExport; static FilterRule: typeof FilterRule; constructor(properties?: BucketProperties); }