1 | import { Duration } from '@aws-cdk/core';
|
2 | /**
|
3 | * Declaration of a Life cycle rule
|
4 | */
|
5 | export 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 | */
|
106 | export 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 | */
|
129 | export 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 | */
|
150 | export 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 | }
|