@aws-sdk/client-dlm 3.451.0 → 3.454.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>
@@ -414,7 +481,8 @@ export interface Script {
414
481
  * <p>Indicates the service used to execute the pre and/or post scripts.</p>
415
482
  * <ul>
416
483
  * <li>
417
- * <p>If you are using custom SSM documents, specify
484
+ * <p>If you are using custom SSM documents or automating
485
+ * application-consistent snapshots of SAP HANA workloads, specify
418
486
  * <code>AWS_SYSTEMS_MANAGER</code>.</p>
419
487
  * </li>
420
488
  * <li>
@@ -434,6 +502,10 @@ export interface Script {
434
502
  * SSM document.</p>
435
503
  * </li>
436
504
  * <li>
505
+ * <p>If you are automating application-consistent snapshots for SAP HANA
506
+ * workloads, specify <code>AWSSystemsManagerSAP-CreateDLMSnapshotForSAPHANA</code>.</p>
507
+ * </li>
508
+ * <li>
437
509
  * <p>If you are using a custom SSM document that you own, specify either
438
510
  * the name or ARN of the SSM document. If you are using a custom SSM
439
511
  * document that is shared with you, specify the ARN of the SSM document.</p>
@@ -492,7 +564,7 @@ export interface Script {
492
564
  /**
493
565
  * @public
494
566
  * <p>
495
- * <b>[Snapshot and AMI policies only]</b> Specifies when the policy should create snapshots or AMIs.</p>
567
+ * <b>[Custom snapshot and AMI policies only]</b> Specifies when the policy should create snapshots or AMIs.</p>
496
568
  * <note>
497
569
  * <ul>
498
570
  * <li>
@@ -512,7 +584,7 @@ export interface CreateRule {
512
584
  /**
513
585
  * @public
514
586
  * <p>
515
- * <b>[Snapshot policies only]</b> Specifies the destination for snapshots created by the policy. To create
587
+ * <b>[Custom snapshot policies only]</b> Specifies the destination for snapshots created by the policy. To create
516
588
  * snapshots in the same Region as the source resource, specify <code>CLOUD</code>. To create
517
589
  * snapshots on the same Outpost as the source resource, specify <code>OUTPOST_LOCAL</code>.
518
590
  * If you omit this parameter, <code>CLOUD</code> is used by default.</p>
@@ -549,7 +621,7 @@ export interface CreateRule {
549
621
  /**
550
622
  * @public
551
623
  * <p>
552
- * <b>[Snapshot policies that target instances only]</b> Specifies pre and/or post scripts for a snapshot lifecycle policy
624
+ * <b>[Custom snapshot policies that target instances only]</b> Specifies pre and/or post scripts for a snapshot lifecycle policy
553
625
  * that targets instances. This is useful for creating application-consistent snapshots, or for
554
626
  * performing specific administrative tasks before or after Amazon Data Lifecycle Manager initiates snapshot creation.</p>
555
627
  * <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/automate-app-consistent-backups.html">Automating
@@ -560,7 +632,7 @@ export interface CreateRule {
560
632
  /**
561
633
  * @public
562
634
  * <p>
563
- * <b>[AMI policies only]</b> Specifies an AMI deprecation rule for cross-Region AMI copies created by an AMI policy.</p>
635
+ * <b>[Custom AMI policies only]</b> Specifies an AMI deprecation rule for cross-Region AMI copies created by an AMI policy.</p>
564
636
  */
565
637
  export interface CrossRegionCopyDeprecateRule {
566
638
  /**
@@ -581,7 +653,7 @@ export interface CrossRegionCopyDeprecateRule {
581
653
  /**
582
654
  * @public
583
655
  * <p>
584
- * <b>[Snapshot and AMI policies only]</b> Specifies a cross-Region copy rule for a snapshot and AMI policies.</p>
656
+ * <b>[Custom snapshot and AMI policies only]</b> Specifies a cross-Region copy rule for a snapshot and AMI policies.</p>
585
657
  * <note>
586
658
  * <p>To specify a cross-Region copy action for event-based polices, use
587
659
  * <a href="https://docs.aws.amazon.com/dlm/latest/APIReference/API_CrossRegionCopyAction.html">CrossRegionCopyAction</a>.</p>
@@ -599,7 +671,7 @@ export interface CrossRegionCopyRule {
599
671
  * <p></p>
600
672
  * </note>
601
673
  * <p>
602
- * <b>[AMI policies only]</b> The target Region or the Amazon Resource Name (ARN) of the target Outpost for the
674
+ * <b>[Custom AMI policies only]</b> The target Region or the Amazon Resource Name (ARN) of the target Outpost for the
603
675
  * snapshot copies.</p>
604
676
  */
605
677
  TargetRegion?: string;
@@ -610,7 +682,7 @@ export interface CrossRegionCopyRule {
610
682
  * <b>TargetRegion</b> instead.</p>
611
683
  * </note>
612
684
  * <p>
613
- * <b>[Snapshot policies only]</b> The target Region or the Amazon Resource Name (ARN) of the target Outpost for the
685
+ * <b>[Custom snapshot policies only]</b> The target Region or the Amazon Resource Name (ARN) of the target Outpost for the
614
686
  * snapshot copies.</p>
615
687
  */
616
688
  Target?: string;
@@ -642,14 +714,14 @@ export interface CrossRegionCopyRule {
642
714
  /**
643
715
  * @public
644
716
  * <p>
645
- * <b>[AMI policies only]</b> The AMI deprecation rule for cross-Region AMI copies created by the rule.</p>
717
+ * <b>[Custom AMI policies only]</b> The AMI deprecation rule for cross-Region AMI copies created by the rule.</p>
646
718
  */
647
719
  DeprecateRule?: CrossRegionCopyDeprecateRule;
648
720
  }
649
721
  /**
650
722
  * @public
651
723
  * <p>
652
- * <b>[AMI policies only]</b> Specifies an AMI deprecation rule for AMIs created by an AMI lifecycle policy.</p>
724
+ * <b>[Custom AMI policies only]</b> Specifies an AMI deprecation rule for AMIs created by an AMI lifecycle policy.</p>
653
725
  * <p>For age-based schedules, you must specify <b>Interval</b> and
654
726
  * <b>IntervalUnit</b>. For count-based schedules, you must specify
655
727
  * <b>Count</b>.</p>
@@ -679,7 +751,7 @@ export interface DeprecateRule {
679
751
  /**
680
752
  * @public
681
753
  * <p>
682
- * <b>[Snapshot policies only]</b> Specifies a rule for enabling fast snapshot restore for snapshots created by
754
+ * <b>[Custom snapshot policies only]</b> Specifies a rule for enabling fast snapshot restore for snapshots created by
683
755
  * snapshot policies. You can enable fast snapshot restore based on either a count or a
684
756
  * time interval.</p>
685
757
  */
@@ -709,7 +781,7 @@ export interface FastRestoreRule {
709
781
  /**
710
782
  * @public
711
783
  * <p>
712
- * <b>[Snapshot and AMI policies only]</b> Specifies a retention rule for snapshots created by snapshot policies, or for AMIs
784
+ * <b>[Custom snapshot and AMI policies only]</b> Specifies a retention rule for snapshots created by snapshot policies, or for AMIs
713
785
  * created by AMI policies.</p>
714
786
  * <note>
715
787
  * <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 +844,7 @@ export interface RetainRule {
772
844
  /**
773
845
  * @public
774
846
  * <p>
775
- * <b>[Snapshot policies only]</b> Specifies a rule for sharing snapshots across Amazon Web Services accounts.</p>
847
+ * <b>[Custom snapshot policies only]</b> Specifies a rule for sharing snapshots across Amazon Web Services accounts.</p>
776
848
  */
777
849
  export interface ShareRule {
778
850
  /**
@@ -794,7 +866,7 @@ export interface ShareRule {
794
866
  /**
795
867
  * @public
796
868
  * <p>
797
- * <b>[Snapshot and AMI policies only]</b> Specifies a schedule for a snapshot or AMI lifecycle policy.</p>
869
+ * <b>[Custom snapshot and AMI policies only]</b> Specifies a schedule for a snapshot or AMI lifecycle policy.</p>
798
870
  */
799
871
  export interface Schedule {
800
872
  /**
@@ -837,7 +909,7 @@ export interface Schedule {
837
909
  /**
838
910
  * @public
839
911
  * <p>
840
- * <b>[Snapshot policies only]</b> The rule for enabling fast snapshot restore.</p>
912
+ * <b>[Custom snapshot policies only]</b> The rule for enabling fast snapshot restore.</p>
841
913
  */
842
914
  FastRestoreRule?: FastRestoreRule;
843
915
  /**
@@ -853,19 +925,19 @@ export interface Schedule {
853
925
  /**
854
926
  * @public
855
927
  * <p>
856
- * <b>[Snapshot policies only]</b> The rule for sharing snapshots with other Amazon Web Services accounts.</p>
928
+ * <b>[Custom snapshot policies only]</b> The rule for sharing snapshots with other Amazon Web Services accounts.</p>
857
929
  */
858
930
  ShareRules?: ShareRule[];
859
931
  /**
860
932
  * @public
861
933
  * <p>
862
- * <b>[AMI policies only]</b> The AMI deprecation rule for the schedule.</p>
934
+ * <b>[Custom AMI policies only]</b> The AMI deprecation rule for the schedule.</p>
863
935
  */
864
936
  DeprecateRule?: DeprecateRule;
865
937
  /**
866
938
  * @public
867
939
  * <p>
868
- * <b>[Snapshot policies that target volumes only]</b> The snapshot archiving rule for the schedule. When you specify an archiving
940
+ * <b>[Custom snapshot policies that target volumes only]</b> The snapshot archiving rule for the schedule. When you specify an archiving
869
941
  * rule, snapshots are automatically moved from the standard tier to the archive tier once the schedule's
870
942
  * retention threshold is met. Snapshots are then retained in the archive tier for the archive retention
871
943
  * period that you specify. </p>
@@ -876,14 +948,13 @@ export interface Schedule {
876
948
  }
877
949
  /**
878
950
  * @public
879
- * <p>
880
- * <b>[All policy types]</b> Specifies the configuration of a lifecycle policy.</p>
951
+ * <p>Specifies the configuration of a lifecycle policy.</p>
881
952
  */
882
953
  export interface PolicyDetails {
883
954
  /**
884
955
  * @public
885
956
  * <p>
886
- * <b>[All policy types]</b> The valid target resource types and actions a policy can manage. Specify <code>EBS_SNAPSHOT_MANAGEMENT</code>
957
+ * <b>[Custom policies only]</b> The valid target resource types and actions a policy can manage. Specify <code>EBS_SNAPSHOT_MANAGEMENT</code>
887
958
  * to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. Specify <code>IMAGE_MANAGEMENT</code>
888
959
  * to create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. Specify <code>EVENT_BASED_POLICY </code>
889
960
  * to create an event-based policy that performs specific actions when a defined event occurs in your Amazon Web Services account.</p>
@@ -893,7 +964,7 @@ export interface PolicyDetails {
893
964
  /**
894
965
  * @public
895
966
  * <p>
896
- * <b>[Snapshot policies only]</b> The target resource type for snapshot and AMI lifecycle policies. Use <code>VOLUME </code>to
967
+ * <b>[Custom snapshot policies only]</b> The target resource type for snapshot and AMI lifecycle policies. Use <code>VOLUME </code>to
897
968
  * create snapshots of individual volumes or use <code>INSTANCE</code> to create multi-volume
898
969
  * snapshots from the volumes for an instance.</p>
899
970
  */
@@ -901,7 +972,7 @@ export interface PolicyDetails {
901
972
  /**
902
973
  * @public
903
974
  * <p>
904
- * <b>[Snapshot and AMI policies only]</b> The location of the resources to backup. If the source resources are located in an
975
+ * <b>[Custom snapshot and AMI policies only]</b> The location of the resources to backup. If the source resources are located in an
905
976
  * Amazon Web Services Region, specify <code>CLOUD</code>. If the source resources are located on an Outpost
906
977
  * in your account, specify <code>OUTPOST</code>.</p>
907
978
  * <p>If you specify <code>OUTPOST</code>, Amazon Data Lifecycle Manager backs up all resources
@@ -911,20 +982,20 @@ export interface PolicyDetails {
911
982
  /**
912
983
  * @public
913
984
  * <p>
914
- * <b>[Snapshot and AMI policies only]</b> The single tag that identifies targeted resources for this policy.</p>
985
+ * <b>[Custom snapshot and AMI policies only]</b> The single tag that identifies targeted resources for this policy.</p>
915
986
  */
916
987
  TargetTags?: Tag[];
917
988
  /**
918
989
  * @public
919
990
  * <p>
920
- * <b>[Snapshot and AMI policies only]</b> The schedules of policy-defined actions for snapshot and AMI lifecycle policies. A policy
991
+ * <b>[Custom snapshot and AMI policies only]</b> The schedules of policy-defined actions for snapshot and AMI lifecycle policies. A policy
921
992
  * can have up to four schedules—one mandatory schedule and up to three optional schedules.</p>
922
993
  */
923
994
  Schedules?: Schedule[];
924
995
  /**
925
996
  * @public
926
997
  * <p>
927
- * <b>[Snapshot and AMI policies only]</b> A set of optional parameters for snapshot and AMI lifecycle policies. </p>
998
+ * <b>[Custom snapshot and AMI policies only]</b> A set of optional parameters for snapshot and AMI lifecycle policies. </p>
928
999
  * <note>
929
1000
  * <p>If you are modifying a policy that was created or previously modified using the Amazon
930
1001
  * Data Lifecycle Manager console, then you must include this parameter and specify either
@@ -946,6 +1017,108 @@ export interface PolicyDetails {
946
1017
  * only one action per policy.</p>
947
1018
  */
948
1019
  Actions?: Action[];
1020
+ /**
1021
+ * @public
1022
+ * <p>The type of policy to create. Specify one of the following:</p>
1023
+ * <ul>
1024
+ * <li>
1025
+ * <p>
1026
+ * <code>SIMPLIFIED</code> To create a default policy.</p>
1027
+ * </li>
1028
+ * <li>
1029
+ * <p>
1030
+ * <code>STANDARD</code> To create a custom policy.</p>
1031
+ * </li>
1032
+ * </ul>
1033
+ */
1034
+ PolicyLanguage?: PolicyLanguageValues;
1035
+ /**
1036
+ * @public
1037
+ * <p>
1038
+ * <b>[Default policies only]</b> Specify the type of default policy to create.</p>
1039
+ * <ul>
1040
+ * <li>
1041
+ * <p>To create a default policy for EBS snapshots, that creates snapshots of all volumes in the
1042
+ * Region that do not have recent backups, specify <code>VOLUME</code>.</p>
1043
+ * </li>
1044
+ * <li>
1045
+ * <p>To create a default policy for EBS-backed AMIs, that creates EBS-backed
1046
+ * AMIs from all instances in the Region that do not have recent backups, specify
1047
+ * <code>INSTANCE</code>.</p>
1048
+ * </li>
1049
+ * </ul>
1050
+ */
1051
+ ResourceType?: ResourceTypeValues;
1052
+ /**
1053
+ * @public
1054
+ * <p>
1055
+ * <b>[Default policies only]</b> Specifies how often the policy should run and create snapshots or AMIs.
1056
+ * The creation frequency can range from 1 to 7 days. If you do not specify a value, the
1057
+ * default is 1.</p>
1058
+ * <p>Default: 1</p>
1059
+ */
1060
+ CreateInterval?: number;
1061
+ /**
1062
+ * @public
1063
+ * <p>
1064
+ * <b>[Default policies only]</b> Specifies how long the policy should retain snapshots or AMIs before
1065
+ * deleting them. The retention period can range from 2 to 14 days, but it must be greater
1066
+ * than the creation frequency to ensure that the policy retains at least 1 snapshot or
1067
+ * AMI at any given time. If you do not specify a value, the default is 7.</p>
1068
+ * <p>Default: 7</p>
1069
+ */
1070
+ RetainInterval?: number;
1071
+ /**
1072
+ * @public
1073
+ * <p>
1074
+ * <b>[Default policies only]</b> Indicates whether the policy should copy tags from the source resource
1075
+ * to the snapshot or AMI. If you do not specify a value, the default is <code>false</code>.</p>
1076
+ * <p>Default: false</p>
1077
+ */
1078
+ CopyTags?: boolean;
1079
+ /**
1080
+ * @public
1081
+ * <p>
1082
+ * <b>[Default policies only]</b> Specifies destination Regions for snapshot or AMI copies. You can specify
1083
+ * up to 3 destination Regions. If you do not want to create cross-Region copies, omit this
1084
+ * parameter.</p>
1085
+ */
1086
+ CrossRegionCopyTargets?: CrossRegionCopyTarget[];
1087
+ /**
1088
+ * @public
1089
+ * <p>
1090
+ * <b>[Default policies only]</b> Defines the snapshot or AMI retention behavior for the policy if the
1091
+ * source volume or instance is deleted, or if the policy enters the error, disabled, or
1092
+ * deleted state.</p>
1093
+ * <p>By default (<b>ExtendDeletion=false</b>):</p>
1094
+ * <ul>
1095
+ * <li>
1096
+ * <p>If a source resource is deleted, Amazon Data Lifecycle Manager will continue to delete previously
1097
+ * created snapshots or AMIs, up to but not including the last one, based on the
1098
+ * specified retention period. If you want Amazon Data Lifecycle Manager to delete all snapshots or AMIs,
1099
+ * including the last one, specify <code>true</code>.</p>
1100
+ * </li>
1101
+ * <li>
1102
+ * <p>If a policy enters the error, disabled, or deleted state, Amazon Data Lifecycle Manager stops deleting
1103
+ * snapshots and AMIs. If you want Amazon Data Lifecycle Manager to continue deleting snapshots or AMIs,
1104
+ * including the last one, if the policy enters one of these states, specify
1105
+ * <code>true</code>.</p>
1106
+ * </li>
1107
+ * </ul>
1108
+ * <p>If you enable extended deletion (<b>ExtendDeletion=true</b>),
1109
+ * you override both default behaviors simultaneously.</p>
1110
+ * <p>If you do not specify a value, the default is <code>false</code>.</p>
1111
+ * <p>Default: false</p>
1112
+ */
1113
+ ExtendDeletion?: boolean;
1114
+ /**
1115
+ * @public
1116
+ * <p>
1117
+ * <b>[Default policies only]</b> Specifies exclusion parameters for volumes or instances for which you
1118
+ * do not want to create snapshots or AMIs. The policy will not create snapshots or AMIs
1119
+ * for target resources that match any of the specified exclusion parameters.</p>
1120
+ */
1121
+ Exclusions?: Exclusions;
949
1122
  }
950
1123
  /**
951
1124
  * @public
@@ -977,19 +1150,110 @@ export interface CreateLifecyclePolicyRequest {
977
1150
  Description: string | undefined;
978
1151
  /**
979
1152
  * @public
980
- * <p>The desired activation state of the lifecycle policy after creation.</p>
1153
+ * <p>The activation state of the lifecycle policy after creation.</p>
981
1154
  */
982
1155
  State: SettablePolicyStateValues | undefined;
983
1156
  /**
984
1157
  * @public
985
1158
  * <p>The configuration details of the lifecycle policy.</p>
1159
+ * <important>
1160
+ * <p>If you create a default policy, you can specify the request parameters either in
1161
+ * the request body, or in the PolicyDetails request structure, but not both.</p>
1162
+ * </important>
986
1163
  */
987
- PolicyDetails: PolicyDetails | undefined;
1164
+ PolicyDetails?: PolicyDetails;
988
1165
  /**
989
1166
  * @public
990
1167
  * <p>The tags to apply to the lifecycle policy during creation.</p>
991
1168
  */
992
1169
  Tags?: Record<string, string>;
1170
+ /**
1171
+ * @public
1172
+ * <p>
1173
+ * <b>[Default policies only]</b> Specify the type of default policy to create.</p>
1174
+ * <ul>
1175
+ * <li>
1176
+ * <p>To create a default policy for EBS snapshots, that creates snapshots of all volumes in the
1177
+ * Region that do not have recent backups, specify <code>VOLUME</code>.</p>
1178
+ * </li>
1179
+ * <li>
1180
+ * <p>To create a default policy for EBS-backed AMIs, that creates EBS-backed
1181
+ * AMIs from all instances in the Region that do not have recent backups, specify
1182
+ * <code>INSTANCE</code>.</p>
1183
+ * </li>
1184
+ * </ul>
1185
+ */
1186
+ DefaultPolicy?: DefaultPolicyTypeValues;
1187
+ /**
1188
+ * @public
1189
+ * <p>
1190
+ * <b>[Default policies only]</b> Specifies how often the policy should run and create snapshots or AMIs.
1191
+ * The creation frequency can range from 1 to 7 days. If you do not specify a value, the
1192
+ * default is 1.</p>
1193
+ * <p>Default: 1</p>
1194
+ */
1195
+ CreateInterval?: number;
1196
+ /**
1197
+ * @public
1198
+ * <p>
1199
+ * <b>[Default policies only]</b> Specifies how long the policy should retain snapshots or AMIs before
1200
+ * deleting them. The retention period can range from 2 to 14 days, but it must be greater
1201
+ * than the creation frequency to ensure that the policy retains at least 1 snapshot or
1202
+ * AMI at any given time. If you do not specify a value, the default is 7.</p>
1203
+ * <p>Default: 7</p>
1204
+ */
1205
+ RetainInterval?: number;
1206
+ /**
1207
+ * @public
1208
+ * <p>
1209
+ * <b>[Default policies only]</b> Indicates whether the policy should copy tags from the source resource
1210
+ * to the snapshot or AMI. If you do not specify a value, the default is <code>false</code>.</p>
1211
+ * <p>Default: false</p>
1212
+ */
1213
+ CopyTags?: boolean;
1214
+ /**
1215
+ * @public
1216
+ * <p>
1217
+ * <b>[Default policies only]</b> Defines the snapshot or AMI retention behavior for the policy if the
1218
+ * source volume or instance is deleted, or if the policy enters the error, disabled, or
1219
+ * deleted state.</p>
1220
+ * <p>By default (<b>ExtendDeletion=false</b>):</p>
1221
+ * <ul>
1222
+ * <li>
1223
+ * <p>If a source resource is deleted, Amazon Data Lifecycle Manager will continue to delete previously
1224
+ * created snapshots or AMIs, up to but not including the last one, based on the
1225
+ * specified retention period. If you want Amazon Data Lifecycle Manager to delete all snapshots or AMIs,
1226
+ * including the last one, specify <code>true</code>.</p>
1227
+ * </li>
1228
+ * <li>
1229
+ * <p>If a policy enters the error, disabled, or deleted state, Amazon Data Lifecycle Manager stops deleting
1230
+ * snapshots and AMIs. If you want Amazon Data Lifecycle Manager to continue deleting snapshots or AMIs,
1231
+ * including the last one, if the policy enters one of these states, specify
1232
+ * <code>true</code>.</p>
1233
+ * </li>
1234
+ * </ul>
1235
+ * <p>If you enable extended deletion (<b>ExtendDeletion=true</b>),
1236
+ * you override both default behaviors simultaneously.</p>
1237
+ * <p>If you do not specify a value, the default is <code>false</code>.</p>
1238
+ * <p>Default: false</p>
1239
+ */
1240
+ ExtendDeletion?: boolean;
1241
+ /**
1242
+ * @public
1243
+ * <p>
1244
+ * <b>[Default policies only]</b> Specifies destination Regions for snapshot or AMI copies. You can specify
1245
+ * up to 3 destination Regions. If you do not want to create cross-Region copies, omit this
1246
+ * parameter.</p>
1247
+ */
1248
+ CrossRegionCopyTargets?: CrossRegionCopyTarget[];
1249
+ /**
1250
+ * @public
1251
+ * <p>
1252
+ * <b>[Default policies only]</b> Specifies exclusion parameters for volumes or instances for which you
1253
+ * do not want to create snapshots or AMIs. The policy will not create snapshots or AMIs
1254
+ * for target resources that match any of the specified exclusion parameters.</p>
1255
+ */
1256
+ Exclusions?: Exclusions;
993
1257
  }
994
1258
  /**
995
1259
  * @public
@@ -1059,6 +1323,19 @@ export declare class LimitExceededException extends __BaseException {
1059
1323
  */
1060
1324
  constructor(opts: __ExceptionOptionType<LimitExceededException, __BaseException>);
1061
1325
  }
1326
+ /**
1327
+ * @public
1328
+ * @enum
1329
+ */
1330
+ export declare const DefaultPoliciesTypeValues: {
1331
+ readonly ALL: "ALL";
1332
+ readonly INSTANCE: "INSTANCE";
1333
+ readonly VOLUME: "VOLUME";
1334
+ };
1335
+ /**
1336
+ * @public
1337
+ */
1338
+ export type DefaultPoliciesTypeValues = (typeof DefaultPoliciesTypeValues)[keyof typeof DefaultPoliciesTypeValues];
1062
1339
  /**
1063
1340
  * @public
1064
1341
  */
@@ -1143,6 +1420,26 @@ export interface GetLifecyclePoliciesRequest {
1143
1420
  * <p>These user-defined tags are added in addition to the Amazon Web Services-added lifecycle tags.</p>
1144
1421
  */
1145
1422
  TagsToAdd?: string[];
1423
+ /**
1424
+ * @public
1425
+ * <p>
1426
+ * <b>[Default policies only]</b> Specifies the type of default policy to get. Specify one of the following:</p>
1427
+ * <ul>
1428
+ * <li>
1429
+ * <p>
1430
+ * <code>VOLUME</code> - To get only the default policy for EBS snapshots</p>
1431
+ * </li>
1432
+ * <li>
1433
+ * <p>
1434
+ * <code>INSTANCE</code> - To get only the default policy for EBS-backed AMIs</p>
1435
+ * </li>
1436
+ * <li>
1437
+ * <p>
1438
+ * <code>ALL</code> - To get all default policies</p>
1439
+ * </li>
1440
+ * </ul>
1441
+ */
1442
+ DefaultPolicyType?: DefaultPoliciesTypeValues;
1146
1443
  }
1147
1444
  /**
1148
1445
  * @public
@@ -1178,6 +1475,22 @@ export interface LifecyclePolicySummary {
1178
1475
  * snapshot copies for snapshots that are shared with your account.</p>
1179
1476
  */
1180
1477
  PolicyType?: PolicyTypeValues;
1478
+ /**
1479
+ * @public
1480
+ * <p>
1481
+ * <b>[Default policies only]</b> The type of default policy. Values include:</p>
1482
+ * <ul>
1483
+ * <li>
1484
+ * <p>
1485
+ * <code>VOLUME</code> - Default policy for EBS snapshots</p>
1486
+ * </li>
1487
+ * <li>
1488
+ * <p>
1489
+ * <code>INSTANCE</code> - Default policy for EBS-backed AMIs</p>
1490
+ * </li>
1491
+ * </ul>
1492
+ */
1493
+ DefaultPolicy?: boolean;
1181
1494
  }
1182
1495
  /**
1183
1496
  * @public
@@ -1202,7 +1515,7 @@ export interface GetLifecyclePolicyRequest {
1202
1515
  /**
1203
1516
  * @public
1204
1517
  * <p>
1205
- * <b>[All policy types]</b> Detailed information about a snapshot, AMI, or event-based lifecycle policy.</p>
1518
+ * <b>[Custom policies only]</b> Detailed information about a snapshot, AMI, or event-based lifecycle policy.</p>
1206
1519
  */
1207
1520
  export interface LifecyclePolicy {
1208
1521
  /**
@@ -1256,6 +1569,22 @@ export interface LifecyclePolicy {
1256
1569
  * <p>The Amazon Resource Name (ARN) of the policy.</p>
1257
1570
  */
1258
1571
  PolicyArn?: string;
1572
+ /**
1573
+ * @public
1574
+ * <p>
1575
+ * <b>[Default policies only]</b> The type of default policy. Values include:</p>
1576
+ * <ul>
1577
+ * <li>
1578
+ * <p>
1579
+ * <code>VOLUME</code> - Default policy for EBS snapshots</p>
1580
+ * </li>
1581
+ * <li>
1582
+ * <p>
1583
+ * <code>INSTANCE</code> - Default policy for EBS-backed AMIs</p>
1584
+ * </li>
1585
+ * </ul>
1586
+ */
1587
+ DefaultPolicy?: boolean;
1259
1588
  }
1260
1589
  /**
1261
1590
  * @public
@@ -1358,6 +1687,71 @@ export interface UpdateLifecyclePolicyRequest {
1358
1687
  * resource type.</p>
1359
1688
  */
1360
1689
  PolicyDetails?: PolicyDetails;
1690
+ /**
1691
+ * @public
1692
+ * <p>
1693
+ * <b>[Default policies only]</b> Specifies how often the policy should run and create snapshots or AMIs.
1694
+ * The creation frequency can range from 1 to 7 days.</p>
1695
+ */
1696
+ CreateInterval?: number;
1697
+ /**
1698
+ * @public
1699
+ * <p>
1700
+ * <b>[Default policies only]</b> Specifies how long the policy should retain snapshots or AMIs before
1701
+ * deleting them. The retention period can range from 2 to 14 days, but it must be greater
1702
+ * than the creation frequency to ensure that the policy retains at least 1 snapshot or
1703
+ * AMI at any given time.</p>
1704
+ */
1705
+ RetainInterval?: number;
1706
+ /**
1707
+ * @public
1708
+ * <p>
1709
+ * <b>[Default policies only]</b> Indicates whether the policy should copy tags from the source resource
1710
+ * to the snapshot or AMI.</p>
1711
+ */
1712
+ CopyTags?: boolean;
1713
+ /**
1714
+ * @public
1715
+ * <p>
1716
+ * <b>[Default policies only]</b> Defines the snapshot or AMI retention behavior for the policy if the
1717
+ * source volume or instance is deleted, or if the policy enters the error, disabled, or
1718
+ * deleted state.</p>
1719
+ * <p>By default (<b>ExtendDeletion=false</b>):</p>
1720
+ * <ul>
1721
+ * <li>
1722
+ * <p>If a source resource is deleted, Amazon Data Lifecycle Manager will continue to delete previously
1723
+ * created snapshots or AMIs, up to but not including the last one, based on the
1724
+ * specified retention period. If you want Amazon Data Lifecycle Manager to delete all snapshots or AMIs,
1725
+ * including the last one, specify <code>true</code>.</p>
1726
+ * </li>
1727
+ * <li>
1728
+ * <p>If a policy enters the error, disabled, or deleted state, Amazon Data Lifecycle Manager stops deleting
1729
+ * snapshots and AMIs. If you want Amazon Data Lifecycle Manager to continue deleting snapshots or AMIs,
1730
+ * including the last one, if the policy enters one of these states, specify
1731
+ * <code>true</code>.</p>
1732
+ * </li>
1733
+ * </ul>
1734
+ * <p>If you enable extended deletion (<b>ExtendDeletion=true</b>),
1735
+ * you override both default behaviors simultaneously.</p>
1736
+ * <p>Default: false</p>
1737
+ */
1738
+ ExtendDeletion?: boolean;
1739
+ /**
1740
+ * @public
1741
+ * <p>
1742
+ * <b>[Default policies only]</b> Specifies destination Regions for snapshot or AMI copies. You can specify
1743
+ * up to 3 destination Regions. If you do not want to create cross-Region copies, omit this
1744
+ * parameter.</p>
1745
+ */
1746
+ CrossRegionCopyTargets?: CrossRegionCopyTarget[];
1747
+ /**
1748
+ * @public
1749
+ * <p>
1750
+ * <b>[Default policies only]</b> Specifies exclusion parameters for volumes or instances for which you
1751
+ * do not want to create snapshots or AMIs. The policy will not create snapshots or AMIs
1752
+ * for target resources that match any of the specified exclusion parameters.</p>
1753
+ */
1754
+ Exclusions?: Exclusions;
1361
1755
  }
1362
1756
  /**
1363
1757
  * @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.454.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",
@@ -21,7 +21,7 @@
21
21
  "dependencies": {
22
22
  "@aws-crypto/sha256-browser": "3.0.0",
23
23
  "@aws-crypto/sha256-js": "3.0.0",
24
- "@aws-sdk/client-sts": "3.451.0",
24
+ "@aws-sdk/client-sts": "3.454.0",
25
25
  "@aws-sdk/core": "3.451.0",
26
26
  "@aws-sdk/credential-provider-node": "3.451.0",
27
27
  "@aws-sdk/middleware-host-header": "3.451.0",