UNPKG

8.22 kBTypeScriptView Raw
1import { Duration } from '@aws-cdk/core';
2/**
3 * Declaration of a Life cycle rule
4 */
5export interface LifecycleRule {
6 /**
7 * A unique identifier for this rule. The value cannot be more than 255 characters.
8 */
9 readonly id?: string;
10 /**
11 * Whether this rule is enabled.
12 *
13 * @default true
14 */
15 readonly enabled?: boolean;
16 /**
17 * Specifies a lifecycle rule that aborts incomplete multipart uploads to an Amazon S3 bucket.
18 *
19 * The AbortIncompleteMultipartUpload property type creates a lifecycle
20 * rule that aborts incomplete multipart uploads to an Amazon S3 bucket.
21 * When Amazon S3 aborts a multipart upload, it deletes all parts
22 * associated with the multipart upload.
23 *
24 * @default Incomplete uploads are never aborted
25 */
26 readonly abortIncompleteMultipartUploadAfter?: Duration;
27 /**
28 * Indicates when objects are deleted from Amazon S3 and Amazon Glacier.
29 *
30 * The date value must be in ISO 8601 format. The time is always midnight UTC.
31 *
32 * If you specify an expiration and transition time, you must use the same
33 * time unit for both properties (either in days or by date). The
34 * expiration time must also be later than the transition time.
35 *
36 * @default No expiration date
37 */
38 readonly expirationDate?: Date;
39 /**
40 * Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon Glacier.
41 *
42 * If you specify an expiration and transition time, you must use the same
43 * time unit for both properties (either in days or by date). The
44 * expiration time must also be later than the transition time.
45 *
46 * @default No expiration timeout
47 */
48 readonly expiration?: Duration;
49 /**
50 * Time between when a new version of the object is uploaded to the bucket and when old versions of the object expire.
51 *
52 * For buckets with versioning enabled (or suspended), specifies the time,
53 * in days, between when a new version of the object is uploaded to the
54 * bucket and when old versions of the object expire. When object versions
55 * expire, Amazon S3 permanently deletes them. If you specify a transition
56 * and expiration time, the expiration time must be later than the
57 * transition time.
58 *
59 * @default No noncurrent version expiration
60 */
61 readonly noncurrentVersionExpiration?: Duration;
62 /**
63 * One or more transition rules that specify when non-current objects transition to a specified storage class.
64 *
65 * Only for for buckets with versioning enabled (or suspended).
66 *
67 * If you specify a transition and expiration time, the expiration time
68 * must be later than the transition time.
69 */
70 readonly noncurrentVersionTransitions?: NoncurrentVersionTransition[];
71 /**
72 * One or more transition rules that specify when an object transitions to a specified storage class.
73 *
74 * If you specify an expiration and transition time, you must use the same
75 * time unit for both properties (either in days or by date). The
76 * expiration time must also be later than the transition time.
77 *
78 * @default No transition rules
79 */
80 readonly transitions?: Transition[];
81 /**
82 * Object key prefix that identifies one or more objects to which this rule applies.
83 *
84 * @default Rule applies to all objects
85 */
86 readonly prefix?: string;
87 /**
88 * The TagFilter property type specifies tags to use to identify a subset of objects for an Amazon S3 bucket.
89 *
90 * @default Rule applies to all objects
91 */
92 readonly tagFilters?: {
93 [tag: string]: any;
94 };
95 /**
96 * Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions.
97 * If set to true, the delete marker will be expired.
98 *
99 * @default false
100 */
101 readonly expiredObjectDeleteMarker?: boolean;
102}
103/**
104 * Describes when an object transitions to a specified storage class.
105 */
106export interface Transition {
107 /**
108 * The storage class to which you want the object to transition.
109 */
110 readonly storageClass: StorageClass;
111 /**
112 * Indicates when objects are transitioned to the specified storage class.
113 *
114 * The date value must be in ISO 8601 format. The time is always midnight UTC.
115 *
116 * @default No transition date.
117 */
118 readonly transitionDate?: Date;
119 /**
120 * Indicates the number of days after creation when objects are transitioned to the specified storage class.
121 *
122 * @default No transition count.
123 */
124 readonly transitionAfter?: Duration;
125}
126/**
127 * Describes when noncurrent versions transition to a specified storage class.
128 */
129export interface NoncurrentVersionTransition {
130 /**
131 * The storage class to which you want the object to transition.
132 */
133 readonly storageClass: StorageClass;
134 /**
135 * Indicates the number of days after creation when objects are transitioned to the specified storage class.
136 *
137 * @default No transition count.
138 */
139 readonly transitionAfter: Duration;
140 /**
141 * Indicates the number of noncurrent version objects to be retained. Can be up to 100 noncurrent versions retained.
142 *
143 * @default No noncurrent version retained.
144 */
145 readonly noncurrentVersionsToRetain?: number;
146}
147/**
148 * Storage class to move an object to
149 */
150export declare class StorageClass {
151 readonly value: string;
152 /**
153 * Storage class for data that is accessed less frequently, but requires rapid
154 * access when needed.
155 *
156 * Has lower availability than Standard storage.
157 */
158 static readonly INFREQUENT_ACCESS: StorageClass;
159 /**
160 * Infrequent Access that's only stored in one availability zone.
161 *
162 * Has lower availability than standard InfrequentAccess.
163 */
164 static readonly ONE_ZONE_INFREQUENT_ACCESS: StorageClass;
165 /**
166 * Storage class for long-term archival that can take between minutes and
167 * hours to access.
168 *
169 * Use for archives where portions of the data might need to be retrieved in
170 * minutes. Data stored in the GLACIER storage class has a minimum storage
171 * duration period of 90 days and can be accessed in as little as 1-5 minutes
172 * using expedited retrieval. If you delete an object before the 90-day
173 * minimum, you are charged for 90 days.
174 */
175 static readonly GLACIER: StorageClass;
176 /**
177 * Storage class for long-term archival that can be accessed in a few milliseconds.
178 *
179 * It is ideal for data that is accessed once or twice per quarter, and
180 * that requires immediate access. Data stored in the GLACIER_IR storage class
181 * has a minimum storage duration period of 90 days and can be accessed in
182 * as milliseconds. If you delete an object before the 90-day minimum,
183 * you are charged for 90 days.
184 */
185 static readonly GLACIER_INSTANT_RETRIEVAL: StorageClass;
186 /**
187 * Use for archiving data that rarely needs to be accessed. Data stored in the
188 * DEEP_ARCHIVE storage class has a minimum storage duration period of 180
189 * days and a default retrieval time of 12 hours. If you delete an object
190 * before the 180-day minimum, you are charged for 180 days. For pricing
191 * information, see Amazon S3 Pricing.
192 */
193 static readonly DEEP_ARCHIVE: StorageClass;
194 /**
195 * The INTELLIGENT_TIERING storage class is designed to optimize storage costs
196 * by automatically moving data to the most cost-effective storage access
197 * tier, without performance impact or operational overhead.
198 * INTELLIGENT_TIERING delivers automatic cost savings by moving data on a
199 * granular object level between two access tiers, a frequent access tier and
200 * a lower-cost infrequent access tier, when access patterns change. The
201 * INTELLIGENT_TIERING storage class is ideal if you want to optimize storage
202 * costs automatically for long-lived data when access patterns are unknown or
203 * unpredictable.
204 */
205 static readonly INTELLIGENT_TIERING: StorageClass;
206 constructor(value: string);
207 toString(): string;
208}