@aws-sdk/client-dlm 3.451.0 → 3.453.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GettablePolicyStateValues = exports.ResourceNotFoundException = exports.LimitExceededException = exports.InvalidRequestException = exports.InternalServerException = exports.SettablePolicyStateValues = exports.StageValues = exports.ExecutionHandlerServiceValues = exports.LocationValues = exports.IntervalUnitValues = exports.ResourceTypeValues = exports.ResourceLocationValues = exports.PolicyTypeValues = exports.EventSourceValues = exports.EventTypeValues = exports.RetentionIntervalUnitValues = void 0;
3
+ exports.GettablePolicyStateValues = exports.ResourceNotFoundException = exports.DefaultPoliciesTypeValues = exports.LimitExceededException = exports.InvalidRequestException = exports.InternalServerException = exports.SettablePolicyStateValues = exports.StageValues = exports.ExecutionHandlerServiceValues = exports.LocationValues = exports.IntervalUnitValues = exports.ResourceTypeValues = exports.ResourceLocationValues = exports.PolicyTypeValues = exports.PolicyLanguageValues = exports.EventSourceValues = exports.EventTypeValues = exports.DefaultPolicyTypeValues = exports.RetentionIntervalUnitValues = void 0;
4
4
  const DLMServiceException_1 = require("./DLMServiceException");
5
5
  exports.RetentionIntervalUnitValues = {
6
6
  DAYS: "DAYS",
@@ -8,12 +8,20 @@ exports.RetentionIntervalUnitValues = {
8
8
  WEEKS: "WEEKS",
9
9
  YEARS: "YEARS",
10
10
  };
11
+ exports.DefaultPolicyTypeValues = {
12
+ INSTANCE: "INSTANCE",
13
+ VOLUME: "VOLUME",
14
+ };
11
15
  exports.EventTypeValues = {
12
16
  SHARE_SNAPSHOT: "shareSnapshot",
13
17
  };
14
18
  exports.EventSourceValues = {
15
19
  MANAGED_CWE: "MANAGED_CWE",
16
20
  };
21
+ exports.PolicyLanguageValues = {
22
+ SIMPLIFIED: "SIMPLIFIED",
23
+ STANDARD: "STANDARD",
24
+ };
17
25
  exports.PolicyTypeValues = {
18
26
  EBS_SNAPSHOT_MANAGEMENT: "EBS_SNAPSHOT_MANAGEMENT",
19
27
  EVENT_BASED_POLICY: "EVENT_BASED_POLICY",
@@ -93,6 +101,11 @@ class LimitExceededException extends DLMServiceException_1.DLMServiceException {
93
101
  }
94
102
  }
95
103
  exports.LimitExceededException = LimitExceededException;
104
+ exports.DefaultPoliciesTypeValues = {
105
+ ALL: "ALL",
106
+ INSTANCE: "INSTANCE",
107
+ VOLUME: "VOLUME",
108
+ };
96
109
  class ResourceNotFoundException extends DLMServiceException_1.DLMServiceException {
97
110
  constructor(opts) {
98
111
  super({
@@ -13,9 +13,16 @@ const se_CreateLifecyclePolicyCommand = async (input, context) => {
13
13
  const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/policies";
14
14
  let body;
15
15
  body = JSON.stringify((0, smithy_client_1.take)(input, {
16
+ CopyTags: [],
17
+ CreateInterval: [],
18
+ CrossRegionCopyTargets: (_) => (0, smithy_client_1._json)(_),
19
+ DefaultPolicy: [],
16
20
  Description: [],
21
+ Exclusions: (_) => (0, smithy_client_1._json)(_),
17
22
  ExecutionRoleArn: [],
23
+ ExtendDeletion: [],
18
24
  PolicyDetails: (_) => (0, smithy_client_1._json)(_),
25
+ RetainInterval: [],
19
26
  State: [],
20
27
  Tags: (_) => (0, smithy_client_1._json)(_),
21
28
  }));
@@ -60,6 +67,7 @@ const se_GetLifecyclePoliciesCommand = async (input, context) => {
60
67
  ],
61
68
  targetTags: [() => input.TargetTags !== void 0, () => (input.TargetTags || []).map((_entry) => _entry)],
62
69
  tagsToAdd: [() => input.TagsToAdd !== void 0, () => (input.TagsToAdd || []).map((_entry) => _entry)],
70
+ defaultPolicyType: [, input.DefaultPolicyType],
63
71
  });
64
72
  let body;
65
73
  return new protocol_http_1.HttpRequest({
@@ -163,9 +171,15 @@ const se_UpdateLifecyclePolicyCommand = async (input, context) => {
163
171
  resolvedPath = (0, smithy_client_1.resolvedPath)(resolvedPath, input, "PolicyId", () => input.PolicyId, "{PolicyId}", false);
164
172
  let body;
165
173
  body = JSON.stringify((0, smithy_client_1.take)(input, {
174
+ CopyTags: [],
175
+ CreateInterval: [],
176
+ CrossRegionCopyTargets: (_) => (0, smithy_client_1._json)(_),
166
177
  Description: [],
178
+ Exclusions: (_) => (0, smithy_client_1._json)(_),
167
179
  ExecutionRoleArn: [],
180
+ ExtendDeletion: [],
168
181
  PolicyDetails: (_) => (0, smithy_client_1._json)(_),
182
+ RetainInterval: [],
169
183
  State: [],
170
184
  }));
171
185
  return new protocol_http_1.HttpRequest({
@@ -555,6 +569,7 @@ const de_LifecyclePolicy = (output, context) => {
555
569
  return (0, smithy_client_1.take)(output, {
556
570
  DateCreated: (_) => (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(_)),
557
571
  DateModified: (_) => (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(_)),
572
+ DefaultPolicy: smithy_client_1.expectBoolean,
558
573
  Description: smithy_client_1.expectString,
559
574
  ExecutionRoleArn: smithy_client_1.expectString,
560
575
  PolicyArn: smithy_client_1.expectString,
@@ -5,12 +5,20 @@ export const RetentionIntervalUnitValues = {
5
5
  WEEKS: "WEEKS",
6
6
  YEARS: "YEARS",
7
7
  };
8
+ export const DefaultPolicyTypeValues = {
9
+ INSTANCE: "INSTANCE",
10
+ VOLUME: "VOLUME",
11
+ };
8
12
  export const EventTypeValues = {
9
13
  SHARE_SNAPSHOT: "shareSnapshot",
10
14
  };
11
15
  export const EventSourceValues = {
12
16
  MANAGED_CWE: "MANAGED_CWE",
13
17
  };
18
+ export const PolicyLanguageValues = {
19
+ SIMPLIFIED: "SIMPLIFIED",
20
+ STANDARD: "STANDARD",
21
+ };
14
22
  export const PolicyTypeValues = {
15
23
  EBS_SNAPSHOT_MANAGEMENT: "EBS_SNAPSHOT_MANAGEMENT",
16
24
  EVENT_BASED_POLICY: "EVENT_BASED_POLICY",
@@ -87,6 +95,11 @@ export class LimitExceededException extends __BaseException {
87
95
  this.ResourceType = opts.ResourceType;
88
96
  }
89
97
  }
98
+ export const DefaultPoliciesTypeValues = {
99
+ ALL: "ALL",
100
+ INSTANCE: "INSTANCE",
101
+ VOLUME: "VOLUME",
102
+ };
90
103
  export class ResourceNotFoundException extends __BaseException {
91
104
  constructor(opts) {
92
105
  super({
@@ -1,5 +1,5 @@
1
1
  import { HttpRequest as __HttpRequest } from "@smithy/protocol-http";
2
- import { _json, collectBody, decorateServiceException as __decorateServiceException, expectNonNull as __expectNonNull, expectObject as __expectObject, expectString as __expectString, map, parseRfc3339DateTimeWithOffset as __parseRfc3339DateTimeWithOffset, resolvedPath as __resolvedPath, take, withBaseException, } from "@smithy/smithy-client";
2
+ import { _json, collectBody, decorateServiceException as __decorateServiceException, expectBoolean as __expectBoolean, expectNonNull as __expectNonNull, expectObject as __expectObject, expectString as __expectString, map, parseRfc3339DateTimeWithOffset as __parseRfc3339DateTimeWithOffset, resolvedPath as __resolvedPath, take, withBaseException, } from "@smithy/smithy-client";
3
3
  import { DLMServiceException as __BaseException } from "../models/DLMServiceException";
4
4
  import { InternalServerException, InvalidRequestException, LimitExceededException, ResourceNotFoundException, } from "../models/models_0";
5
5
  export const se_CreateLifecyclePolicyCommand = async (input, context) => {
@@ -10,9 +10,16 @@ export const se_CreateLifecyclePolicyCommand = async (input, context) => {
10
10
  const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/policies";
11
11
  let body;
12
12
  body = JSON.stringify(take(input, {
13
+ CopyTags: [],
14
+ CreateInterval: [],
15
+ CrossRegionCopyTargets: (_) => _json(_),
16
+ DefaultPolicy: [],
13
17
  Description: [],
18
+ Exclusions: (_) => _json(_),
14
19
  ExecutionRoleArn: [],
20
+ ExtendDeletion: [],
15
21
  PolicyDetails: (_) => _json(_),
22
+ RetainInterval: [],
16
23
  State: [],
17
24
  Tags: (_) => _json(_),
18
25
  }));
@@ -55,6 +62,7 @@ export const se_GetLifecyclePoliciesCommand = async (input, context) => {
55
62
  ],
56
63
  targetTags: [() => input.TargetTags !== void 0, () => (input.TargetTags || []).map((_entry) => _entry)],
57
64
  tagsToAdd: [() => input.TagsToAdd !== void 0, () => (input.TagsToAdd || []).map((_entry) => _entry)],
65
+ defaultPolicyType: [, input.DefaultPolicyType],
58
66
  });
59
67
  let body;
60
68
  return new __HttpRequest({
@@ -153,9 +161,15 @@ export const se_UpdateLifecyclePolicyCommand = async (input, context) => {
153
161
  resolvedPath = __resolvedPath(resolvedPath, input, "PolicyId", () => input.PolicyId, "{PolicyId}", false);
154
162
  let body;
155
163
  body = JSON.stringify(take(input, {
164
+ CopyTags: [],
165
+ CreateInterval: [],
166
+ CrossRegionCopyTargets: (_) => _json(_),
156
167
  Description: [],
168
+ Exclusions: (_) => _json(_),
157
169
  ExecutionRoleArn: [],
170
+ ExtendDeletion: [],
158
171
  PolicyDetails: (_) => _json(_),
172
+ RetainInterval: [],
159
173
  State: [],
160
174
  }));
161
175
  return new __HttpRequest({
@@ -536,6 +550,7 @@ const de_LifecyclePolicy = (output, context) => {
536
550
  return take(output, {
537
551
  DateCreated: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)),
538
552
  DateModified: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)),
553
+ DefaultPolicy: __expectBoolean,
539
554
  Description: __expectString,
540
555
  ExecutionRoleArn: __expectString,
541
556
  PolicyArn: __expectString,
@@ -23,8 +23,30 @@ export interface CreateLifecyclePolicyCommandOutput extends CreateLifecyclePolic
23
23
  }
24
24
  /**
25
25
  * @public
26
- * <p>Creates a policy to manage the lifecycle of the specified Amazon Web Services resources. You can
27
- * create up to 100 lifecycle policies.</p>
26
+ * <p>Creates an Amazon Data Lifecycle Manager lifecycle policy. Amazon Data Lifecycle Manager supports the following policy types:</p>
27
+ * <ul>
28
+ * <li>
29
+ * <p>Custom EBS snapshot policy</p>
30
+ * </li>
31
+ * <li>
32
+ * <p>Custom EBS-backed AMI policy</p>
33
+ * </li>
34
+ * <li>
35
+ * <p>Cross-account copy event policy</p>
36
+ * </li>
37
+ * <li>
38
+ * <p>Default policy for EBS snapshots</p>
39
+ * </li>
40
+ * <li>
41
+ * <p>Default policy for EBS-backed AMIs</p>
42
+ * </li>
43
+ * </ul>
44
+ * <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/policy-differences.html">
45
+ * Default policies vs custom policies</a>.</p>
46
+ * <important>
47
+ * <p>If you create a default policy, you can specify the request parameters either in
48
+ * the request body, or in the PolicyDetails request structure, but not both.</p>
49
+ * </important>
28
50
  * @example
29
51
  * Use a bare-bones client and the command you need to make an API call.
30
52
  * ```javascript
@@ -176,10 +198,49 @@ export interface CreateLifecyclePolicyCommandOutput extends CreateLifecyclePolic
176
198
  * ],
177
199
  * },
178
200
  * ],
201
+ * PolicyLanguage: "SIMPLIFIED" || "STANDARD",
202
+ * ResourceType: "VOLUME" || "INSTANCE",
203
+ * CreateInterval: Number("int"),
204
+ * RetainInterval: Number("int"),
205
+ * CopyTags: true || false,
206
+ * CrossRegionCopyTargets: [ // CrossRegionCopyTargetList
207
+ * { // CrossRegionCopyTarget
208
+ * TargetRegion: "STRING_VALUE",
209
+ * },
210
+ * ],
211
+ * ExtendDeletion: true || false,
212
+ * Exclusions: { // Exclusions
213
+ * ExcludeBootVolumes: true || false,
214
+ * ExcludeVolumeTypes: [ // ExcludeVolumeTypesList
215
+ * "STRING_VALUE",
216
+ * ],
217
+ * ExcludeTags: [ // ExcludeTagsList
218
+ * "<Tag>",
219
+ * ],
220
+ * },
179
221
  * },
180
222
  * Tags: { // TagMap
181
223
  * "<keys>": "STRING_VALUE",
182
224
  * },
225
+ * DefaultPolicy: "VOLUME" || "INSTANCE",
226
+ * CreateInterval: Number("int"),
227
+ * RetainInterval: Number("int"),
228
+ * CopyTags: true || false,
229
+ * ExtendDeletion: true || false,
230
+ * CrossRegionCopyTargets: [
231
+ * {
232
+ * TargetRegion: "STRING_VALUE",
233
+ * },
234
+ * ],
235
+ * Exclusions: {
236
+ * ExcludeBootVolumes: true || false,
237
+ * ExcludeVolumeTypes: [
238
+ * "STRING_VALUE",
239
+ * ],
240
+ * ExcludeTags: [
241
+ * "<Tag>",
242
+ * ],
243
+ * },
183
244
  * };
184
245
  * const command = new CreateLifecyclePolicyCommand(input);
185
246
  * const response = await client.send(command);
@@ -45,6 +45,7 @@ export interface GetLifecyclePoliciesCommandOutput extends GetLifecyclePoliciesR
45
45
  * TagsToAdd: [ // TagsToAddFilterList
46
46
  * "STRING_VALUE",
47
47
  * ],
48
+ * DefaultPolicyType: "VOLUME" || "INSTANCE" || "ALL",
48
49
  * };
49
50
  * const command = new GetLifecyclePoliciesCommand(input);
50
51
  * const response = await client.send(command);
@@ -58,6 +59,7 @@ export interface GetLifecyclePoliciesCommandOutput extends GetLifecyclePoliciesR
58
59
  * // "<keys>": "STRING_VALUE",
59
60
  * // },
60
61
  * // PolicyType: "EBS_SNAPSHOT_MANAGEMENT" || "IMAGE_MANAGEMENT" || "EVENT_BASED_POLICY",
62
+ * // DefaultPolicy: true || false,
61
63
  * // },
62
64
  * // ],
63
65
  * // };
@@ -185,11 +185,32 @@ export interface GetLifecyclePolicyCommandOutput extends GetLifecyclePolicyRespo
185
185
  * // ],
186
186
  * // },
187
187
  * // ],
188
+ * // PolicyLanguage: "SIMPLIFIED" || "STANDARD",
189
+ * // ResourceType: "VOLUME" || "INSTANCE",
190
+ * // CreateInterval: Number("int"),
191
+ * // RetainInterval: Number("int"),
192
+ * // CopyTags: true || false,
193
+ * // CrossRegionCopyTargets: [ // CrossRegionCopyTargetList
194
+ * // { // CrossRegionCopyTarget
195
+ * // TargetRegion: "STRING_VALUE",
196
+ * // },
197
+ * // ],
198
+ * // ExtendDeletion: true || false,
199
+ * // Exclusions: { // Exclusions
200
+ * // ExcludeBootVolumes: true || false,
201
+ * // ExcludeVolumeTypes: [ // ExcludeVolumeTypesList
202
+ * // "STRING_VALUE",
203
+ * // ],
204
+ * // ExcludeTags: [ // ExcludeTagsList
205
+ * // "<Tag>",
206
+ * // ],
207
+ * // },
188
208
  * // },
189
209
  * // Tags: { // TagMap
190
210
  * // "<keys>": "STRING_VALUE",
191
211
  * // },
192
212
  * // PolicyArn: "STRING_VALUE",
213
+ * // DefaultPolicy: true || false,
193
214
  * // },
194
215
  * // };
195
216
  *
@@ -178,6 +178,44 @@ export interface UpdateLifecyclePolicyCommandOutput extends UpdateLifecyclePolic
178
178
  * ],
179
179
  * },
180
180
  * ],
181
+ * PolicyLanguage: "SIMPLIFIED" || "STANDARD",
182
+ * ResourceType: "VOLUME" || "INSTANCE",
183
+ * CreateInterval: Number("int"),
184
+ * RetainInterval: Number("int"),
185
+ * CopyTags: true || false,
186
+ * CrossRegionCopyTargets: [ // CrossRegionCopyTargetList
187
+ * { // CrossRegionCopyTarget
188
+ * TargetRegion: "STRING_VALUE",
189
+ * },
190
+ * ],
191
+ * ExtendDeletion: true || false,
192
+ * Exclusions: { // Exclusions
193
+ * ExcludeBootVolumes: true || false,
194
+ * ExcludeVolumeTypes: [ // ExcludeVolumeTypesList
195
+ * "STRING_VALUE",
196
+ * ],
197
+ * ExcludeTags: [ // ExcludeTagsList
198
+ * "<Tag>",
199
+ * ],
200
+ * },
201
+ * },
202
+ * CreateInterval: Number("int"),
203
+ * RetainInterval: Number("int"),
204
+ * CopyTags: true || false,
205
+ * ExtendDeletion: true || false,
206
+ * CrossRegionCopyTargets: [
207
+ * {
208
+ * TargetRegion: "STRING_VALUE",
209
+ * },
210
+ * ],
211
+ * Exclusions: {
212
+ * ExcludeBootVolumes: true || false,
213
+ * ExcludeVolumeTypes: [
214
+ * "STRING_VALUE",
215
+ * ],
216
+ * ExcludeTags: [
217
+ * "<Tag>",
218
+ * ],
181
219
  * },
182
220
  * };
183
221
  * const command = new UpdateLifecyclePolicyCommand(input);
@@ -103,7 +103,7 @@ export interface Action {
103
103
  /**
104
104
  * @public
105
105
  * <p>
106
- * <b>[Snapshot policies only]</b> Describes the retention rule for archived snapshots. Once the archive
106
+ * <b>[Custom snapshot policies only]</b> Describes the retention rule for archived snapshots. Once the archive
107
107
  * retention threshold is met, the snapshots are permanently deleted from the archive tier.</p>
108
108
  * <note>
109
109
  * <p>The archive retention rule must retain snapshots in the archive tier for a minimum
@@ -141,7 +141,7 @@ export interface RetentionArchiveTier {
141
141
  /**
142
142
  * @public
143
143
  * <p>
144
- * <b>[Snapshot policies only]</b> Specifies information about the archive storage tier retention period.</p>
144
+ * <b>[Custom snapshot policies only]</b> Specifies information about the archive storage tier retention period.</p>
145
145
  */
146
146
  export interface ArchiveRetainRule {
147
147
  /**
@@ -155,7 +155,7 @@ export interface ArchiveRetainRule {
155
155
  /**
156
156
  * @public
157
157
  * <p>
158
- * <b>[Snapshot policies only]</b> Specifies a snapshot archiving rule for a schedule.</p>
158
+ * <b>[Custom snapshot policies only]</b> Specifies a snapshot archiving rule for a schedule.</p>
159
159
  */
160
160
  export interface ArchiveRule {
161
161
  /**
@@ -164,6 +164,77 @@ export interface ArchiveRule {
164
164
  */
165
165
  RetainRule: ArchiveRetainRule | undefined;
166
166
  }
167
+ /**
168
+ * @public
169
+ * <p>
170
+ * <b>[Default policies only]</b> Specifies a destination Region for cross-Region copy actions.</p>
171
+ */
172
+ export interface CrossRegionCopyTarget {
173
+ /**
174
+ * @public
175
+ * <p>The target Region, for example <code>us-east-1</code>.</p>
176
+ */
177
+ TargetRegion?: string;
178
+ }
179
+ /**
180
+ * @public
181
+ * @enum
182
+ */
183
+ export declare const DefaultPolicyTypeValues: {
184
+ readonly INSTANCE: "INSTANCE";
185
+ readonly VOLUME: "VOLUME";
186
+ };
187
+ /**
188
+ * @public
189
+ */
190
+ export type DefaultPolicyTypeValues = (typeof DefaultPolicyTypeValues)[keyof typeof DefaultPolicyTypeValues];
191
+ /**
192
+ * @public
193
+ * <p>Specifies a tag for a resource.</p>
194
+ */
195
+ export interface Tag {
196
+ /**
197
+ * @public
198
+ * <p>The tag key.</p>
199
+ */
200
+ Key: string | undefined;
201
+ /**
202
+ * @public
203
+ * <p>The tag value.</p>
204
+ */
205
+ Value: string | undefined;
206
+ }
207
+ /**
208
+ * @public
209
+ * <p>
210
+ * <b>[Default policies only]</b> Specifies exclusion parameters for volumes or instances for which you
211
+ * do not want to create snapshots or AMIs. The policy will not create snapshots or AMIs
212
+ * for target resources that match any of the specified exclusion parameters.</p>
213
+ */
214
+ export interface Exclusions {
215
+ /**
216
+ * @public
217
+ * <p>
218
+ * <b>[Default policies for EBS snapshots only]</b> Indicates whether to exclude volumes that are attached to
219
+ * instances as the boot volume. If you exclude boot volumes, only volumes attached as data
220
+ * (non-boot) volumes will be backed up by the policy. To exclude boot volumes, specify
221
+ * <code>true</code>.</p>
222
+ */
223
+ ExcludeBootVolumes?: boolean;
224
+ /**
225
+ * @public
226
+ * <p>
227
+ * <b>[Default policies for EBS snapshots only]</b> Specifies the volume types to exclude. Volumes of the specified
228
+ * types will not be targeted by the policy.</p>
229
+ */
230
+ ExcludeVolumeTypes?: string[];
231
+ /**
232
+ * @public
233
+ * <p>
234
+ * <b>[Default policies for EBS-backed AMIs only]</b> Specifies whether to exclude volumes that have specific tags. </p>
235
+ */
236
+ ExcludeTags?: Tag[];
237
+ }
167
238
  /**
168
239
  * @public
169
240
  * @enum
@@ -231,26 +302,10 @@ export interface EventSource {
231
302
  */
232
303
  Parameters?: EventParameters;
233
304
  }
234
- /**
235
- * @public
236
- * <p>Specifies a tag for a resource.</p>
237
- */
238
- export interface Tag {
239
- /**
240
- * @public
241
- * <p>The tag key.</p>
242
- */
243
- Key: string | undefined;
244
- /**
245
- * @public
246
- * <p>The tag value.</p>
247
- */
248
- Value: string | undefined;
249
- }
250
305
  /**
251
306
  * @public
252
307
  * <p>
253
- * <b>[Snapshot and AMI policies only]</b> Specifies optional parameters for snapshot and AMI policies. The
308
+ * <b>[Custom snapshot and AMI policies only]</b> Specifies optional parameters for snapshot and AMI policies. The
254
309
  * set of valid parameters depends on the combination of policy type and target resource
255
310
  * type.</p>
256
311
  * <p>If you choose to exclude boot volumes and you specify tags that consequently exclude
@@ -263,7 +318,7 @@ export interface _Parameters {
263
318
  /**
264
319
  * @public
265
320
  * <p>
266
- * <b>[Snapshot policies that target instances only]</b> Indicates whether to exclude the root volume from multi-volume
321
+ * <b>[Custom snapshot policies that target instances only]</b> Indicates whether to exclude the root volume from multi-volume
267
322
  * snapshot sets. The default is <code>false</code>. If you specify <code>true</code>,
268
323
  * then the root volumes attached to targeted instances will be excluded from the multi-volume
269
324
  * snapshot sets created by the policy.</p>
@@ -272,7 +327,7 @@ export interface _Parameters {
272
327
  /**
273
328
  * @public
274
329
  * <p>
275
- * <b>[AMI policies only]</b> Indicates whether targeted instances are rebooted when the lifecycle policy
330
+ * <b>[Custom AMI policies only]</b> Indicates whether targeted instances are rebooted when the lifecycle policy
276
331
  * runs. <code>true</code> indicates that targeted instances are not rebooted when the policy
277
332
  * runs. <code>false</code> indicates that target instances are rebooted when the policy runs.
278
333
  * The default is <code>true</code> (instances are not rebooted).</p>
@@ -281,7 +336,7 @@ export interface _Parameters {
281
336
  /**
282
337
  * @public
283
338
  * <p>
284
- * <b>[Snapshot policies that target instances only]</b> The tags used to identify data (non-root) volumes to exclude from
339
+ * <b>[Custom snapshot policies that target instances only]</b> The tags used to identify data (non-root) volumes to exclude from
285
340
  * multi-volume snapshot sets.</p>
286
341
  * <p>If you create a snapshot lifecycle policy that targets instances and you specify tags for
287
342
  * this parameter, then data volumes with the specified tags that are attached to targeted
@@ -289,6 +344,18 @@ export interface _Parameters {
289
344
  */
290
345
  ExcludeDataVolumeTags?: Tag[];
291
346
  }
347
+ /**
348
+ * @public
349
+ * @enum
350
+ */
351
+ export declare const PolicyLanguageValues: {
352
+ readonly SIMPLIFIED: "SIMPLIFIED";
353
+ readonly STANDARD: "STANDARD";
354
+ };
355
+ /**
356
+ * @public
357
+ */
358
+ export type PolicyLanguageValues = (typeof PolicyLanguageValues)[keyof typeof PolicyLanguageValues];
292
359
  /**
293
360
  * @public
294
361
  * @enum
@@ -375,7 +442,7 @@ export type StageValues = (typeof StageValues)[keyof typeof StageValues];
375
442
  /**
376
443
  * @public
377
444
  * <p>
378
- * <b>[Snapshot policies that target instances only]</b> Information about pre and/or post scripts for a
445
+ * <b>[Custom snapshot policies that target instances only]</b> Information about pre and/or post scripts for a
379
446
  * snapshot lifecycle policy that targets instances. For more information, see
380
447
  * <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/automate-app-consistent-backups.html">
381
448
  * Automating application-consistent snapshots with pre and post scripts</a>.</p>
@@ -492,7 +559,7 @@ export interface Script {
492
559
  /**
493
560
  * @public
494
561
  * <p>
495
- * <b>[Snapshot and AMI policies only]</b> Specifies when the policy should create snapshots or AMIs.</p>
562
+ * <b>[Custom snapshot and AMI policies only]</b> Specifies when the policy should create snapshots or AMIs.</p>
496
563
  * <note>
497
564
  * <ul>
498
565
  * <li>
@@ -512,7 +579,7 @@ export interface CreateRule {
512
579
  /**
513
580
  * @public
514
581
  * <p>
515
- * <b>[Snapshot policies only]</b> Specifies the destination for snapshots created by the policy. To create
582
+ * <b>[Custom snapshot policies only]</b> Specifies the destination for snapshots created by the policy. To create
516
583
  * snapshots in the same Region as the source resource, specify <code>CLOUD</code>. To create
517
584
  * snapshots on the same Outpost as the source resource, specify <code>OUTPOST_LOCAL</code>.
518
585
  * If you omit this parameter, <code>CLOUD</code> is used by default.</p>
@@ -549,7 +616,7 @@ export interface CreateRule {
549
616
  /**
550
617
  * @public
551
618
  * <p>
552
- * <b>[Snapshot policies that target instances only]</b> Specifies pre and/or post scripts for a snapshot lifecycle policy
619
+ * <b>[Custom snapshot policies that target instances only]</b> Specifies pre and/or post scripts for a snapshot lifecycle policy
553
620
  * that targets instances. This is useful for creating application-consistent snapshots, or for
554
621
  * performing specific administrative tasks before or after Amazon Data Lifecycle Manager initiates snapshot creation.</p>
555
622
  * <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/automate-app-consistent-backups.html">Automating
@@ -560,7 +627,7 @@ export interface CreateRule {
560
627
  /**
561
628
  * @public
562
629
  * <p>
563
- * <b>[AMI policies only]</b> Specifies an AMI deprecation rule for cross-Region AMI copies created by an AMI policy.</p>
630
+ * <b>[Custom AMI policies only]</b> Specifies an AMI deprecation rule for cross-Region AMI copies created by an AMI policy.</p>
564
631
  */
565
632
  export interface CrossRegionCopyDeprecateRule {
566
633
  /**
@@ -581,7 +648,7 @@ export interface CrossRegionCopyDeprecateRule {
581
648
  /**
582
649
  * @public
583
650
  * <p>
584
- * <b>[Snapshot and AMI policies only]</b> Specifies a cross-Region copy rule for a snapshot and AMI policies.</p>
651
+ * <b>[Custom snapshot and AMI policies only]</b> Specifies a cross-Region copy rule for a snapshot and AMI policies.</p>
585
652
  * <note>
586
653
  * <p>To specify a cross-Region copy action for event-based polices, use
587
654
  * <a href="https://docs.aws.amazon.com/dlm/latest/APIReference/API_CrossRegionCopyAction.html">CrossRegionCopyAction</a>.</p>
@@ -599,7 +666,7 @@ export interface CrossRegionCopyRule {
599
666
  * <p></p>
600
667
  * </note>
601
668
  * <p>
602
- * <b>[AMI policies only]</b> The target Region or the Amazon Resource Name (ARN) of the target Outpost for the
669
+ * <b>[Custom AMI policies only]</b> The target Region or the Amazon Resource Name (ARN) of the target Outpost for the
603
670
  * snapshot copies.</p>
604
671
  */
605
672
  TargetRegion?: string;
@@ -610,7 +677,7 @@ export interface CrossRegionCopyRule {
610
677
  * <b>TargetRegion</b> instead.</p>
611
678
  * </note>
612
679
  * <p>
613
- * <b>[Snapshot policies only]</b> The target Region or the Amazon Resource Name (ARN) of the target Outpost for the
680
+ * <b>[Custom snapshot policies only]</b> The target Region or the Amazon Resource Name (ARN) of the target Outpost for the
614
681
  * snapshot copies.</p>
615
682
  */
616
683
  Target?: string;
@@ -642,14 +709,14 @@ export interface CrossRegionCopyRule {
642
709
  /**
643
710
  * @public
644
711
  * <p>
645
- * <b>[AMI policies only]</b> The AMI deprecation rule for cross-Region AMI copies created by the rule.</p>
712
+ * <b>[Custom AMI policies only]</b> The AMI deprecation rule for cross-Region AMI copies created by the rule.</p>
646
713
  */
647
714
  DeprecateRule?: CrossRegionCopyDeprecateRule;
648
715
  }
649
716
  /**
650
717
  * @public
651
718
  * <p>
652
- * <b>[AMI policies only]</b> Specifies an AMI deprecation rule for AMIs created by an AMI lifecycle policy.</p>
719
+ * <b>[Custom AMI policies only]</b> Specifies an AMI deprecation rule for AMIs created by an AMI lifecycle policy.</p>
653
720
  * <p>For age-based schedules, you must specify <b>Interval</b> and
654
721
  * <b>IntervalUnit</b>. For count-based schedules, you must specify
655
722
  * <b>Count</b>.</p>
@@ -679,7 +746,7 @@ export interface DeprecateRule {
679
746
  /**
680
747
  * @public
681
748
  * <p>
682
- * <b>[Snapshot policies only]</b> Specifies a rule for enabling fast snapshot restore for snapshots created by
749
+ * <b>[Custom snapshot policies only]</b> Specifies a rule for enabling fast snapshot restore for snapshots created by
683
750
  * snapshot policies. You can enable fast snapshot restore based on either a count or a
684
751
  * time interval.</p>
685
752
  */
@@ -709,7 +776,7 @@ export interface FastRestoreRule {
709
776
  /**
710
777
  * @public
711
778
  * <p>
712
- * <b>[Snapshot and AMI policies only]</b> Specifies a retention rule for snapshots created by snapshot policies, or for AMIs
779
+ * <b>[Custom snapshot and AMI policies only]</b> Specifies a retention rule for snapshots created by snapshot policies, or for AMIs
713
780
  * created by AMI policies.</p>
714
781
  * <note>
715
782
  * <p>For snapshot policies that have an <a href="https://docs.aws.amazon.com/dlm/latest/APIReference/API_ArchiveRule.html">ArchiveRule</a>, this retention rule
@@ -772,7 +839,7 @@ export interface RetainRule {
772
839
  /**
773
840
  * @public
774
841
  * <p>
775
- * <b>[Snapshot policies only]</b> Specifies a rule for sharing snapshots across Amazon Web Services accounts.</p>
842
+ * <b>[Custom snapshot policies only]</b> Specifies a rule for sharing snapshots across Amazon Web Services accounts.</p>
776
843
  */
777
844
  export interface ShareRule {
778
845
  /**
@@ -794,7 +861,7 @@ export interface ShareRule {
794
861
  /**
795
862
  * @public
796
863
  * <p>
797
- * <b>[Snapshot and AMI policies only]</b> Specifies a schedule for a snapshot or AMI lifecycle policy.</p>
864
+ * <b>[Custom snapshot and AMI policies only]</b> Specifies a schedule for a snapshot or AMI lifecycle policy.</p>
798
865
  */
799
866
  export interface Schedule {
800
867
  /**
@@ -837,7 +904,7 @@ export interface Schedule {
837
904
  /**
838
905
  * @public
839
906
  * <p>
840
- * <b>[Snapshot policies only]</b> The rule for enabling fast snapshot restore.</p>
907
+ * <b>[Custom snapshot policies only]</b> The rule for enabling fast snapshot restore.</p>
841
908
  */
842
909
  FastRestoreRule?: FastRestoreRule;
843
910
  /**
@@ -853,19 +920,19 @@ export interface Schedule {
853
920
  /**
854
921
  * @public
855
922
  * <p>
856
- * <b>[Snapshot policies only]</b> The rule for sharing snapshots with other Amazon Web Services accounts.</p>
923
+ * <b>[Custom snapshot policies only]</b> The rule for sharing snapshots with other Amazon Web Services accounts.</p>
857
924
  */
858
925
  ShareRules?: ShareRule[];
859
926
  /**
860
927
  * @public
861
928
  * <p>
862
- * <b>[AMI policies only]</b> The AMI deprecation rule for the schedule.</p>
929
+ * <b>[Custom AMI policies only]</b> The AMI deprecation rule for the schedule.</p>
863
930
  */
864
931
  DeprecateRule?: DeprecateRule;
865
932
  /**
866
933
  * @public
867
934
  * <p>
868
- * <b>[Snapshot policies that target volumes only]</b> The snapshot archiving rule for the schedule. When you specify an archiving
935
+ * <b>[Custom snapshot policies that target volumes only]</b> The snapshot archiving rule for the schedule. When you specify an archiving
869
936
  * rule, snapshots are automatically moved from the standard tier to the archive tier once the schedule's
870
937
  * retention threshold is met. Snapshots are then retained in the archive tier for the archive retention
871
938
  * period that you specify. </p>
@@ -876,14 +943,13 @@ export interface Schedule {
876
943
  }
877
944
  /**
878
945
  * @public
879
- * <p>
880
- * <b>[All policy types]</b> Specifies the configuration of a lifecycle policy.</p>
946
+ * <p>Specifies the configuration of a lifecycle policy.</p>
881
947
  */
882
948
  export interface PolicyDetails {
883
949
  /**
884
950
  * @public
885
951
  * <p>
886
- * <b>[All policy types]</b> The valid target resource types and actions a policy can manage. Specify <code>EBS_SNAPSHOT_MANAGEMENT</code>
952
+ * <b>[Custom policies only]</b> The valid target resource types and actions a policy can manage. Specify <code>EBS_SNAPSHOT_MANAGEMENT</code>
887
953
  * to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. Specify <code>IMAGE_MANAGEMENT</code>
888
954
  * to create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. Specify <code>EVENT_BASED_POLICY </code>
889
955
  * to create an event-based policy that performs specific actions when a defined event occurs in your Amazon Web Services account.</p>
@@ -893,7 +959,7 @@ export interface PolicyDetails {
893
959
  /**
894
960
  * @public
895
961
  * <p>
896
- * <b>[Snapshot policies only]</b> The target resource type for snapshot and AMI lifecycle policies. Use <code>VOLUME </code>to
962
+ * <b>[Custom snapshot policies only]</b> The target resource type for snapshot and AMI lifecycle policies. Use <code>VOLUME </code>to
897
963
  * create snapshots of individual volumes or use <code>INSTANCE</code> to create multi-volume
898
964
  * snapshots from the volumes for an instance.</p>
899
965
  */
@@ -901,7 +967,7 @@ export interface PolicyDetails {
901
967
  /**
902
968
  * @public
903
969
  * <p>
904
- * <b>[Snapshot and AMI policies only]</b> The location of the resources to backup. If the source resources are located in an
970
+ * <b>[Custom snapshot and AMI policies only]</b> The location of the resources to backup. If the source resources are located in an
905
971
  * Amazon Web Services Region, specify <code>CLOUD</code>. If the source resources are located on an Outpost
906
972
  * in your account, specify <code>OUTPOST</code>.</p>
907
973
  * <p>If you specify <code>OUTPOST</code>, Amazon Data Lifecycle Manager backs up all resources
@@ -911,20 +977,20 @@ export interface PolicyDetails {
911
977
  /**
912
978
  * @public
913
979
  * <p>
914
- * <b>[Snapshot and AMI policies only]</b> The single tag that identifies targeted resources for this policy.</p>
980
+ * <b>[Custom snapshot and AMI policies only]</b> The single tag that identifies targeted resources for this policy.</p>
915
981
  */
916
982
  TargetTags?: Tag[];
917
983
  /**
918
984
  * @public
919
985
  * <p>
920
- * <b>[Snapshot and AMI policies only]</b> The schedules of policy-defined actions for snapshot and AMI lifecycle policies. A policy
986
+ * <b>[Custom snapshot and AMI policies only]</b> The schedules of policy-defined actions for snapshot and AMI lifecycle policies. A policy
921
987
  * can have up to four schedules—one mandatory schedule and up to three optional schedules.</p>
922
988
  */
923
989
  Schedules?: Schedule[];
924
990
  /**
925
991
  * @public
926
992
  * <p>
927
- * <b>[Snapshot and AMI policies only]</b> A set of optional parameters for snapshot and AMI lifecycle policies. </p>
993
+ * <b>[Custom snapshot and AMI policies only]</b> A set of optional parameters for snapshot and AMI lifecycle policies. </p>
928
994
  * <note>
929
995
  * <p>If you are modifying a policy that was created or previously modified using the Amazon
930
996
  * Data Lifecycle Manager console, then you must include this parameter and specify either
@@ -946,6 +1012,108 @@ export interface PolicyDetails {
946
1012
  * only one action per policy.</p>
947
1013
  */
948
1014
  Actions?: Action[];
1015
+ /**
1016
+ * @public
1017
+ * <p>The type of policy to create. Specify one of the following:</p>
1018
+ * <ul>
1019
+ * <li>
1020
+ * <p>
1021
+ * <code>SIMPLIFIED</code> To create a default policy.</p>
1022
+ * </li>
1023
+ * <li>
1024
+ * <p>
1025
+ * <code>STANDARD</code> To create a custom policy.</p>
1026
+ * </li>
1027
+ * </ul>
1028
+ */
1029
+ PolicyLanguage?: PolicyLanguageValues;
1030
+ /**
1031
+ * @public
1032
+ * <p>
1033
+ * <b>[Default policies only]</b> Specify the type of default policy to create.</p>
1034
+ * <ul>
1035
+ * <li>
1036
+ * <p>To create a default policy for EBS snapshots, that creates snapshots of all volumes in the
1037
+ * Region that do not have recent backups, specify <code>VOLUME</code>.</p>
1038
+ * </li>
1039
+ * <li>
1040
+ * <p>To create a default policy for EBS-backed AMIs, that creates EBS-backed
1041
+ * AMIs from all instances in the Region that do not have recent backups, specify
1042
+ * <code>INSTANCE</code>.</p>
1043
+ * </li>
1044
+ * </ul>
1045
+ */
1046
+ ResourceType?: ResourceTypeValues;
1047
+ /**
1048
+ * @public
1049
+ * <p>
1050
+ * <b>[Default policies only]</b> Specifies how often the policy should run and create snapshots or AMIs.
1051
+ * The creation frequency can range from 1 to 7 days. If you do not specify a value, the
1052
+ * default is 1.</p>
1053
+ * <p>Default: 1</p>
1054
+ */
1055
+ CreateInterval?: number;
1056
+ /**
1057
+ * @public
1058
+ * <p>
1059
+ * <b>[Default policies only]</b> Specifies how long the policy should retain snapshots or AMIs before
1060
+ * deleting them. The retention period can range from 2 to 14 days, but it must be greater
1061
+ * than the creation frequency to ensure that the policy retains at least 1 snapshot or
1062
+ * AMI at any given time. If you do not specify a value, the default is 7.</p>
1063
+ * <p>Default: 7</p>
1064
+ */
1065
+ RetainInterval?: number;
1066
+ /**
1067
+ * @public
1068
+ * <p>
1069
+ * <b>[Default policies only]</b> Indicates whether the policy should copy tags from the source resource
1070
+ * to the snapshot or AMI. If you do not specify a value, the default is <code>false</code>.</p>
1071
+ * <p>Default: false</p>
1072
+ */
1073
+ CopyTags?: boolean;
1074
+ /**
1075
+ * @public
1076
+ * <p>
1077
+ * <b>[Default policies only]</b> Specifies destination Regions for snapshot or AMI copies. You can specify
1078
+ * up to 3 destination Regions. If you do not want to create cross-Region copies, omit this
1079
+ * parameter.</p>
1080
+ */
1081
+ CrossRegionCopyTargets?: CrossRegionCopyTarget[];
1082
+ /**
1083
+ * @public
1084
+ * <p>
1085
+ * <b>[Default policies only]</b> Defines the snapshot or AMI retention behavior for the policy if the
1086
+ * source volume or instance is deleted, or if the policy enters the error, disabled, or
1087
+ * deleted state.</p>
1088
+ * <p>By default (<b>ExtendDeletion=false</b>):</p>
1089
+ * <ul>
1090
+ * <li>
1091
+ * <p>If a source resource is deleted, Amazon Data Lifecycle Manager will continue to delete previously
1092
+ * created snapshots or AMIs, up to but not including the last one, based on the
1093
+ * specified retention period. If you want Amazon Data Lifecycle Manager to delete all snapshots or AMIs,
1094
+ * including the last one, specify <code>true</code>.</p>
1095
+ * </li>
1096
+ * <li>
1097
+ * <p>If a policy enters the error, disabled, or deleted state, Amazon Data Lifecycle Manager stops deleting
1098
+ * snapshots and AMIs. If you want Amazon Data Lifecycle Manager to continue deleting snapshots or AMIs,
1099
+ * including the last one, if the policy enters one of these states, specify
1100
+ * <code>true</code>.</p>
1101
+ * </li>
1102
+ * </ul>
1103
+ * <p>If you enable extended deletion (<b>ExtendDeletion=true</b>),
1104
+ * you override both default behaviors simultaneously.</p>
1105
+ * <p>If you do not specify a value, the default is <code>false</code>.</p>
1106
+ * <p>Default: false</p>
1107
+ */
1108
+ ExtendDeletion?: boolean;
1109
+ /**
1110
+ * @public
1111
+ * <p>
1112
+ * <b>[Default policies only]</b> Specifies exclusion parameters for volumes or instances for which you
1113
+ * do not want to create snapshots or AMIs. The policy will not create snapshots or AMIs
1114
+ * for target resources that match any of the specified exclusion parameters.</p>
1115
+ */
1116
+ Exclusions?: Exclusions;
949
1117
  }
950
1118
  /**
951
1119
  * @public
@@ -977,19 +1145,110 @@ export interface CreateLifecyclePolicyRequest {
977
1145
  Description: string | undefined;
978
1146
  /**
979
1147
  * @public
980
- * <p>The desired activation state of the lifecycle policy after creation.</p>
1148
+ * <p>The activation state of the lifecycle policy after creation.</p>
981
1149
  */
982
1150
  State: SettablePolicyStateValues | undefined;
983
1151
  /**
984
1152
  * @public
985
1153
  * <p>The configuration details of the lifecycle policy.</p>
1154
+ * <important>
1155
+ * <p>If you create a default policy, you can specify the request parameters either in
1156
+ * the request body, or in the PolicyDetails request structure, but not both.</p>
1157
+ * </important>
986
1158
  */
987
- PolicyDetails: PolicyDetails | undefined;
1159
+ PolicyDetails?: PolicyDetails;
988
1160
  /**
989
1161
  * @public
990
1162
  * <p>The tags to apply to the lifecycle policy during creation.</p>
991
1163
  */
992
1164
  Tags?: Record<string, string>;
1165
+ /**
1166
+ * @public
1167
+ * <p>
1168
+ * <b>[Default policies only]</b> Specify the type of default policy to create.</p>
1169
+ * <ul>
1170
+ * <li>
1171
+ * <p>To create a default policy for EBS snapshots, that creates snapshots of all volumes in the
1172
+ * Region that do not have recent backups, specify <code>VOLUME</code>.</p>
1173
+ * </li>
1174
+ * <li>
1175
+ * <p>To create a default policy for EBS-backed AMIs, that creates EBS-backed
1176
+ * AMIs from all instances in the Region that do not have recent backups, specify
1177
+ * <code>INSTANCE</code>.</p>
1178
+ * </li>
1179
+ * </ul>
1180
+ */
1181
+ DefaultPolicy?: DefaultPolicyTypeValues;
1182
+ /**
1183
+ * @public
1184
+ * <p>
1185
+ * <b>[Default policies only]</b> Specifies how often the policy should run and create snapshots or AMIs.
1186
+ * The creation frequency can range from 1 to 7 days. If you do not specify a value, the
1187
+ * default is 1.</p>
1188
+ * <p>Default: 1</p>
1189
+ */
1190
+ CreateInterval?: number;
1191
+ /**
1192
+ * @public
1193
+ * <p>
1194
+ * <b>[Default policies only]</b> Specifies how long the policy should retain snapshots or AMIs before
1195
+ * deleting them. The retention period can range from 2 to 14 days, but it must be greater
1196
+ * than the creation frequency to ensure that the policy retains at least 1 snapshot or
1197
+ * AMI at any given time. If you do not specify a value, the default is 7.</p>
1198
+ * <p>Default: 7</p>
1199
+ */
1200
+ RetainInterval?: number;
1201
+ /**
1202
+ * @public
1203
+ * <p>
1204
+ * <b>[Default policies only]</b> Indicates whether the policy should copy tags from the source resource
1205
+ * to the snapshot or AMI. If you do not specify a value, the default is <code>false</code>.</p>
1206
+ * <p>Default: false</p>
1207
+ */
1208
+ CopyTags?: boolean;
1209
+ /**
1210
+ * @public
1211
+ * <p>
1212
+ * <b>[Default policies only]</b> Defines the snapshot or AMI retention behavior for the policy if the
1213
+ * source volume or instance is deleted, or if the policy enters the error, disabled, or
1214
+ * deleted state.</p>
1215
+ * <p>By default (<b>ExtendDeletion=false</b>):</p>
1216
+ * <ul>
1217
+ * <li>
1218
+ * <p>If a source resource is deleted, Amazon Data Lifecycle Manager will continue to delete previously
1219
+ * created snapshots or AMIs, up to but not including the last one, based on the
1220
+ * specified retention period. If you want Amazon Data Lifecycle Manager to delete all snapshots or AMIs,
1221
+ * including the last one, specify <code>true</code>.</p>
1222
+ * </li>
1223
+ * <li>
1224
+ * <p>If a policy enters the error, disabled, or deleted state, Amazon Data Lifecycle Manager stops deleting
1225
+ * snapshots and AMIs. If you want Amazon Data Lifecycle Manager to continue deleting snapshots or AMIs,
1226
+ * including the last one, if the policy enters one of these states, specify
1227
+ * <code>true</code>.</p>
1228
+ * </li>
1229
+ * </ul>
1230
+ * <p>If you enable extended deletion (<b>ExtendDeletion=true</b>),
1231
+ * you override both default behaviors simultaneously.</p>
1232
+ * <p>If you do not specify a value, the default is <code>false</code>.</p>
1233
+ * <p>Default: false</p>
1234
+ */
1235
+ ExtendDeletion?: boolean;
1236
+ /**
1237
+ * @public
1238
+ * <p>
1239
+ * <b>[Default policies only]</b> Specifies destination Regions for snapshot or AMI copies. You can specify
1240
+ * up to 3 destination Regions. If you do not want to create cross-Region copies, omit this
1241
+ * parameter.</p>
1242
+ */
1243
+ CrossRegionCopyTargets?: CrossRegionCopyTarget[];
1244
+ /**
1245
+ * @public
1246
+ * <p>
1247
+ * <b>[Default policies only]</b> Specifies exclusion parameters for volumes or instances for which you
1248
+ * do not want to create snapshots or AMIs. The policy will not create snapshots or AMIs
1249
+ * for target resources that match any of the specified exclusion parameters.</p>
1250
+ */
1251
+ Exclusions?: Exclusions;
993
1252
  }
994
1253
  /**
995
1254
  * @public
@@ -1059,6 +1318,19 @@ export declare class LimitExceededException extends __BaseException {
1059
1318
  */
1060
1319
  constructor(opts: __ExceptionOptionType<LimitExceededException, __BaseException>);
1061
1320
  }
1321
+ /**
1322
+ * @public
1323
+ * @enum
1324
+ */
1325
+ export declare const DefaultPoliciesTypeValues: {
1326
+ readonly ALL: "ALL";
1327
+ readonly INSTANCE: "INSTANCE";
1328
+ readonly VOLUME: "VOLUME";
1329
+ };
1330
+ /**
1331
+ * @public
1332
+ */
1333
+ export type DefaultPoliciesTypeValues = (typeof DefaultPoliciesTypeValues)[keyof typeof DefaultPoliciesTypeValues];
1062
1334
  /**
1063
1335
  * @public
1064
1336
  */
@@ -1143,6 +1415,26 @@ export interface GetLifecyclePoliciesRequest {
1143
1415
  * <p>These user-defined tags are added in addition to the Amazon Web Services-added lifecycle tags.</p>
1144
1416
  */
1145
1417
  TagsToAdd?: string[];
1418
+ /**
1419
+ * @public
1420
+ * <p>
1421
+ * <b>[Default policies only]</b> Specifies the type of default policy to get. Specify one of the following:</p>
1422
+ * <ul>
1423
+ * <li>
1424
+ * <p>
1425
+ * <code>VOLUME</code> - To get only the default policy for EBS snapshots</p>
1426
+ * </li>
1427
+ * <li>
1428
+ * <p>
1429
+ * <code>INSTANCE</code> - To get only the default policy for EBS-backed AMIs</p>
1430
+ * </li>
1431
+ * <li>
1432
+ * <p>
1433
+ * <code>ALL</code> - To get all default policies</p>
1434
+ * </li>
1435
+ * </ul>
1436
+ */
1437
+ DefaultPolicyType?: DefaultPoliciesTypeValues;
1146
1438
  }
1147
1439
  /**
1148
1440
  * @public
@@ -1178,6 +1470,22 @@ export interface LifecyclePolicySummary {
1178
1470
  * snapshot copies for snapshots that are shared with your account.</p>
1179
1471
  */
1180
1472
  PolicyType?: PolicyTypeValues;
1473
+ /**
1474
+ * @public
1475
+ * <p>
1476
+ * <b>[Default policies only]</b> The type of default policy. Values include:</p>
1477
+ * <ul>
1478
+ * <li>
1479
+ * <p>
1480
+ * <code>VOLUME</code> - Default policy for EBS snapshots</p>
1481
+ * </li>
1482
+ * <li>
1483
+ * <p>
1484
+ * <code>INSTANCE</code> - Default policy for EBS-backed AMIs</p>
1485
+ * </li>
1486
+ * </ul>
1487
+ */
1488
+ DefaultPolicy?: boolean;
1181
1489
  }
1182
1490
  /**
1183
1491
  * @public
@@ -1202,7 +1510,7 @@ export interface GetLifecyclePolicyRequest {
1202
1510
  /**
1203
1511
  * @public
1204
1512
  * <p>
1205
- * <b>[All policy types]</b> Detailed information about a snapshot, AMI, or event-based lifecycle policy.</p>
1513
+ * <b>[Custom policies only]</b> Detailed information about a snapshot, AMI, or event-based lifecycle policy.</p>
1206
1514
  */
1207
1515
  export interface LifecyclePolicy {
1208
1516
  /**
@@ -1256,6 +1564,22 @@ export interface LifecyclePolicy {
1256
1564
  * <p>The Amazon Resource Name (ARN) of the policy.</p>
1257
1565
  */
1258
1566
  PolicyArn?: string;
1567
+ /**
1568
+ * @public
1569
+ * <p>
1570
+ * <b>[Default policies only]</b> The type of default policy. Values include:</p>
1571
+ * <ul>
1572
+ * <li>
1573
+ * <p>
1574
+ * <code>VOLUME</code> - Default policy for EBS snapshots</p>
1575
+ * </li>
1576
+ * <li>
1577
+ * <p>
1578
+ * <code>INSTANCE</code> - Default policy for EBS-backed AMIs</p>
1579
+ * </li>
1580
+ * </ul>
1581
+ */
1582
+ DefaultPolicy?: boolean;
1259
1583
  }
1260
1584
  /**
1261
1585
  * @public
@@ -1358,6 +1682,71 @@ export interface UpdateLifecyclePolicyRequest {
1358
1682
  * resource type.</p>
1359
1683
  */
1360
1684
  PolicyDetails?: PolicyDetails;
1685
+ /**
1686
+ * @public
1687
+ * <p>
1688
+ * <b>[Default policies only]</b> Specifies how often the policy should run and create snapshots or AMIs.
1689
+ * The creation frequency can range from 1 to 7 days.</p>
1690
+ */
1691
+ CreateInterval?: number;
1692
+ /**
1693
+ * @public
1694
+ * <p>
1695
+ * <b>[Default policies only]</b> Specifies how long the policy should retain snapshots or AMIs before
1696
+ * deleting them. The retention period can range from 2 to 14 days, but it must be greater
1697
+ * than the creation frequency to ensure that the policy retains at least 1 snapshot or
1698
+ * AMI at any given time.</p>
1699
+ */
1700
+ RetainInterval?: number;
1701
+ /**
1702
+ * @public
1703
+ * <p>
1704
+ * <b>[Default policies only]</b> Indicates whether the policy should copy tags from the source resource
1705
+ * to the snapshot or AMI.</p>
1706
+ */
1707
+ CopyTags?: boolean;
1708
+ /**
1709
+ * @public
1710
+ * <p>
1711
+ * <b>[Default policies only]</b> Defines the snapshot or AMI retention behavior for the policy if the
1712
+ * source volume or instance is deleted, or if the policy enters the error, disabled, or
1713
+ * deleted state.</p>
1714
+ * <p>By default (<b>ExtendDeletion=false</b>):</p>
1715
+ * <ul>
1716
+ * <li>
1717
+ * <p>If a source resource is deleted, Amazon Data Lifecycle Manager will continue to delete previously
1718
+ * created snapshots or AMIs, up to but not including the last one, based on the
1719
+ * specified retention period. If you want Amazon Data Lifecycle Manager to delete all snapshots or AMIs,
1720
+ * including the last one, specify <code>true</code>.</p>
1721
+ * </li>
1722
+ * <li>
1723
+ * <p>If a policy enters the error, disabled, or deleted state, Amazon Data Lifecycle Manager stops deleting
1724
+ * snapshots and AMIs. If you want Amazon Data Lifecycle Manager to continue deleting snapshots or AMIs,
1725
+ * including the last one, if the policy enters one of these states, specify
1726
+ * <code>true</code>.</p>
1727
+ * </li>
1728
+ * </ul>
1729
+ * <p>If you enable extended deletion (<b>ExtendDeletion=true</b>),
1730
+ * you override both default behaviors simultaneously.</p>
1731
+ * <p>Default: false</p>
1732
+ */
1733
+ ExtendDeletion?: boolean;
1734
+ /**
1735
+ * @public
1736
+ * <p>
1737
+ * <b>[Default policies only]</b> Specifies destination Regions for snapshot or AMI copies. You can specify
1738
+ * up to 3 destination Regions. If you do not want to create cross-Region copies, omit this
1739
+ * parameter.</p>
1740
+ */
1741
+ CrossRegionCopyTargets?: CrossRegionCopyTarget[];
1742
+ /**
1743
+ * @public
1744
+ * <p>
1745
+ * <b>[Default policies only]</b> Specifies exclusion parameters for volumes or instances for which you
1746
+ * do not want to create snapshots or AMIs. The policy will not create snapshots or AMIs
1747
+ * for target resources that match any of the specified exclusion parameters.</p>
1748
+ */
1749
+ Exclusions?: Exclusions;
1361
1750
  }
1362
1751
  /**
1363
1752
  * @public
@@ -36,6 +36,24 @@ export interface ArchiveRetainRule {
36
36
  export interface ArchiveRule {
37
37
  RetainRule: ArchiveRetainRule | undefined;
38
38
  }
39
+ export interface CrossRegionCopyTarget {
40
+ TargetRegion?: string;
41
+ }
42
+ export declare const DefaultPolicyTypeValues: {
43
+ readonly INSTANCE: "INSTANCE";
44
+ readonly VOLUME: "VOLUME";
45
+ };
46
+ export type DefaultPolicyTypeValues =
47
+ (typeof DefaultPolicyTypeValues)[keyof typeof DefaultPolicyTypeValues];
48
+ export interface Tag {
49
+ Key: string | undefined;
50
+ Value: string | undefined;
51
+ }
52
+ export interface Exclusions {
53
+ ExcludeBootVolumes?: boolean;
54
+ ExcludeVolumeTypes?: string[];
55
+ ExcludeTags?: Tag[];
56
+ }
39
57
  export declare const EventTypeValues: {
40
58
  readonly SHARE_SNAPSHOT: "shareSnapshot";
41
59
  };
@@ -55,15 +73,17 @@ export interface EventSource {
55
73
  Type: EventSourceValues | undefined;
56
74
  Parameters?: EventParameters;
57
75
  }
58
- export interface Tag {
59
- Key: string | undefined;
60
- Value: string | undefined;
61
- }
62
76
  export interface _Parameters {
63
77
  ExcludeBootVolume?: boolean;
64
78
  NoReboot?: boolean;
65
79
  ExcludeDataVolumeTags?: Tag[];
66
80
  }
81
+ export declare const PolicyLanguageValues: {
82
+ readonly SIMPLIFIED: "SIMPLIFIED";
83
+ readonly STANDARD: "STANDARD";
84
+ };
85
+ export type PolicyLanguageValues =
86
+ (typeof PolicyLanguageValues)[keyof typeof PolicyLanguageValues];
67
87
  export declare const PolicyTypeValues: {
68
88
  readonly EBS_SNAPSHOT_MANAGEMENT: "EBS_SNAPSHOT_MANAGEMENT";
69
89
  readonly EVENT_BASED_POLICY: "EVENT_BASED_POLICY";
@@ -176,6 +196,14 @@ export interface PolicyDetails {
176
196
  Parameters?: _Parameters;
177
197
  EventSource?: EventSource;
178
198
  Actions?: Action[];
199
+ PolicyLanguage?: PolicyLanguageValues;
200
+ ResourceType?: ResourceTypeValues;
201
+ CreateInterval?: number;
202
+ RetainInterval?: number;
203
+ CopyTags?: boolean;
204
+ CrossRegionCopyTargets?: CrossRegionCopyTarget[];
205
+ ExtendDeletion?: boolean;
206
+ Exclusions?: Exclusions;
179
207
  }
180
208
  export declare const SettablePolicyStateValues: {
181
209
  readonly DISABLED: "DISABLED";
@@ -187,8 +215,15 @@ export interface CreateLifecyclePolicyRequest {
187
215
  ExecutionRoleArn: string | undefined;
188
216
  Description: string | undefined;
189
217
  State: SettablePolicyStateValues | undefined;
190
- PolicyDetails: PolicyDetails | undefined;
218
+ PolicyDetails?: PolicyDetails;
191
219
  Tags?: Record<string, string>;
220
+ DefaultPolicy?: DefaultPolicyTypeValues;
221
+ CreateInterval?: number;
222
+ RetainInterval?: number;
223
+ CopyTags?: boolean;
224
+ ExtendDeletion?: boolean;
225
+ CrossRegionCopyTargets?: CrossRegionCopyTarget[];
226
+ Exclusions?: Exclusions;
192
227
  }
193
228
  export interface CreateLifecyclePolicyResponse {
194
229
  PolicyId?: string;
@@ -223,6 +258,13 @@ export declare class LimitExceededException extends __BaseException {
223
258
  opts: __ExceptionOptionType<LimitExceededException, __BaseException>
224
259
  );
225
260
  }
261
+ export declare const DefaultPoliciesTypeValues: {
262
+ readonly ALL: "ALL";
263
+ readonly INSTANCE: "INSTANCE";
264
+ readonly VOLUME: "VOLUME";
265
+ };
266
+ export type DefaultPoliciesTypeValues =
267
+ (typeof DefaultPoliciesTypeValues)[keyof typeof DefaultPoliciesTypeValues];
226
268
  export interface DeleteLifecyclePolicyRequest {
227
269
  PolicyId: string | undefined;
228
270
  }
@@ -251,6 +293,7 @@ export interface GetLifecyclePoliciesRequest {
251
293
  ResourceTypes?: ResourceTypeValues[];
252
294
  TargetTags?: string[];
253
295
  TagsToAdd?: string[];
296
+ DefaultPolicyType?: DefaultPoliciesTypeValues;
254
297
  }
255
298
  export interface LifecyclePolicySummary {
256
299
  PolicyId?: string;
@@ -258,6 +301,7 @@ export interface LifecyclePolicySummary {
258
301
  State?: GettablePolicyStateValues;
259
302
  Tags?: Record<string, string>;
260
303
  PolicyType?: PolicyTypeValues;
304
+ DefaultPolicy?: boolean;
261
305
  }
262
306
  export interface GetLifecyclePoliciesResponse {
263
307
  Policies?: LifecyclePolicySummary[];
@@ -276,6 +320,7 @@ export interface LifecyclePolicy {
276
320
  PolicyDetails?: PolicyDetails;
277
321
  Tags?: Record<string, string>;
278
322
  PolicyArn?: string;
323
+ DefaultPolicy?: boolean;
279
324
  }
280
325
  export interface GetLifecyclePolicyResponse {
281
326
  Policy?: LifecyclePolicy;
@@ -302,5 +347,11 @@ export interface UpdateLifecyclePolicyRequest {
302
347
  State?: SettablePolicyStateValues;
303
348
  Description?: string;
304
349
  PolicyDetails?: PolicyDetails;
350
+ CreateInterval?: number;
351
+ RetainInterval?: number;
352
+ CopyTags?: boolean;
353
+ ExtendDeletion?: boolean;
354
+ CrossRegionCopyTargets?: CrossRegionCopyTarget[];
355
+ Exclusions?: Exclusions;
305
356
  }
306
357
  export interface UpdateLifecyclePolicyResponse {}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-dlm",
3
3
  "description": "AWS SDK for JavaScript Dlm Client for Node.js, Browser and React Native",
4
- "version": "3.451.0",
4
+ "version": "3.453.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
7
7
  "build:cjs": "tsc -p tsconfig.cjs.json",