/** * Declaration of a Life cycle rule */ export interface LifecycleRule { /** * A unique identifier for this rule. The value cannot be more than 255 characters. */ id?: string; /** * Whether this rule is enabled. * * @default true */ enabled?: boolean; /** * Specifies a lifecycle rule that aborts incomplete multipart uploads to an Amazon S3 bucket. * * The AbortIncompleteMultipartUpload property type creates a lifecycle * rule that aborts incomplete multipart uploads to an Amazon S3 bucket. * When Amazon S3 aborts a multipart upload, it deletes all parts * associated with the multipart upload. * * @default Incomplete uploads are never aborted */ abortIncompleteMultipartUploadAfterDays?: number; /** * Indicates when objects are deleted from Amazon S3 and Amazon Glacier. * * The date value must be in ISO 8601 format. The time is always midnight UTC. * * If you specify an expiration and transition time, you must use the same * time unit for both properties (either in days or by date). The * expiration time must also be later than the transition time. * * @default No expiration date */ expirationDate?: Date; /** * Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon Glacier. * * If you specify an expiration and transition time, you must use the same * time unit for both properties (either in days or by date). The * expiration time must also be later than the transition time. * * @default No expiration timeout */ expirationInDays?: number; /** * Time between when a new version of the object is uploaded to the bucket and when old versions of the object expire. * * For buckets with versioning enabled (or suspended), specifies the time, * in days, between when a new version of the object is uploaded to the * bucket and when old versions of the object expire. When object versions * expire, Amazon S3 permanently deletes them. If you specify a transition * and expiration time, the expiration time must be later than the * transition time. * * @default No noncurrent version expiration */ noncurrentVersionExpirationInDays?: number; /** * One or more transition rules that specify when non-current objects transition to a specified storage class. * * Only for for buckets with versioning enabled (or suspended). * * If you specify a transition and expiration time, the expiration time * must be later than the transition time. */ noncurrentVersionTransitions?: NoncurrentVersionTransition[]; /** * One or more transition rules that specify when an object transitions to a specified storage class. * * If you specify an expiration and transition time, you must use the same * time unit for both properties (either in days or by date). The * expiration time must also be later than the transition time. * * @default No transition rules */ transitions?: Transition[]; /** * Object key prefix that identifies one or more objects to which this rule applies. * * @default Rule applies to all objects */ prefix?: string; /** * The TagFilter property type specifies tags to use to identify a subset of objects for an Amazon S3 bucket. * * @default Rule applies to all objects */ tagFilters?: { [tag: string]: any; }; } /** * Describes when an object transitions to a specified storage class. */ export interface Transition { /** * The storage class to which you want the object to transition. */ storageClass: StorageClass; /** * Indicates when objects are transitioned to the specified storage class. * * The date value must be in ISO 8601 format. The time is always midnight UTC. * * @default No transition date. */ transitionDate?: Date; /** * Indicates the number of days after creation when objects are transitioned to the specified storage class. * * @default No transition count. */ transitionInDays?: number; } /** * Describes when noncurrent versions transition to a specified storage class. */ export interface NoncurrentVersionTransition { /** * The storage class to which you want the object to transition. */ storageClass: StorageClass; /** * Indicates the number of days after creation when objects are transitioned to the specified storage class. * * @default No transition count. */ transitionInDays: number; } /** * Storage class to move an object to */ export declare enum StorageClass { /** * Storage class for data that is accessed less frequently, but requires rapid access when needed. * * Has lower availability than Standard storage. */ InfrequentAccess = "STANDARD_IA", /** * Infrequent Access that's only stored in one availability zone. * * Has lower availability than standard InfrequentAccess. */ OneZoneInfrequentAccess = "ONEZONE_IA", /** * Storage class for long-term archival that can take between minutes and hours to access. */ Glacier = "GLACIER" }