diff --git a/clients/client-backup/README.md b/clients/client-backup/README.md
index 6c80c2814138..1913206b55bb 100644
--- a/clients/client-backup/README.md
+++ b/clients/client-backup/README.md
@@ -255,6 +255,14 @@ CreateLegalHold
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-backup/classes/createlegalholdcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-backup/interfaces/createlegalholdcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-backup/interfaces/createlegalholdcommandoutput.html)
+
+
+
+CreateLogicallyAirGappedBackupVault
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-backup/classes/createlogicallyairgappedbackupvaultcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-backup/interfaces/createlogicallyairgappedbackupvaultcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-backup/interfaces/createlogicallyairgappedbackupvaultcommandoutput.html)
+
@@ -599,6 +607,14 @@ ListProtectedResources
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-backup/classes/listprotectedresourcescommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-backup/interfaces/listprotectedresourcescommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-backup/interfaces/listprotectedresourcescommandoutput.html)
+
+
+
+ListProtectedResourcesByBackupVault
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-backup/classes/listprotectedresourcesbybackupvaultcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-backup/interfaces/listprotectedresourcesbybackupvaultcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-backup/interfaces/listprotectedresourcesbybackupvaultcommandoutput.html)
+
diff --git a/clients/client-backup/src/Backup.ts b/clients/client-backup/src/Backup.ts
index 8c14111cb780..8ece9170d37a 100644
--- a/clients/client-backup/src/Backup.ts
+++ b/clients/client-backup/src/Backup.ts
@@ -33,6 +33,11 @@ import {
CreateLegalHoldCommandInput,
CreateLegalHoldCommandOutput,
} from "./commands/CreateLegalHoldCommand";
+import {
+ CreateLogicallyAirGappedBackupVaultCommand,
+ CreateLogicallyAirGappedBackupVaultCommandInput,
+ CreateLogicallyAirGappedBackupVaultCommandOutput,
+} from "./commands/CreateLogicallyAirGappedBackupVaultCommand";
import {
CreateReportPlanCommand,
CreateReportPlanCommandInput,
@@ -243,6 +248,11 @@ import {
ListLegalHoldsCommandInput,
ListLegalHoldsCommandOutput,
} from "./commands/ListLegalHoldsCommand";
+import {
+ ListProtectedResourcesByBackupVaultCommand,
+ ListProtectedResourcesByBackupVaultCommandInput,
+ ListProtectedResourcesByBackupVaultCommandOutput,
+} from "./commands/ListProtectedResourcesByBackupVaultCommand";
import {
ListProtectedResourcesCommand,
ListProtectedResourcesCommandInput,
@@ -363,6 +373,7 @@ const commands = {
CreateBackupVaultCommand,
CreateFrameworkCommand,
CreateLegalHoldCommand,
+ CreateLogicallyAirGappedBackupVaultCommand,
CreateReportPlanCommand,
DeleteBackupPlanCommand,
DeleteBackupSelectionCommand,
@@ -406,6 +417,7 @@ const commands = {
ListFrameworksCommand,
ListLegalHoldsCommand,
ListProtectedResourcesCommand,
+ ListProtectedResourcesByBackupVaultCommand,
ListRecoveryPointsByBackupVaultCommand,
ListRecoveryPointsByLegalHoldCommand,
ListRecoveryPointsByResourceCommand,
@@ -525,6 +537,23 @@ export interface Backup {
cb: (err: any, data?: CreateLegalHoldCommandOutput) => void
): void;
+ /**
+ * @see {@link CreateLogicallyAirGappedBackupVaultCommand}
+ */
+ createLogicallyAirGappedBackupVault(
+ args: CreateLogicallyAirGappedBackupVaultCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ createLogicallyAirGappedBackupVault(
+ args: CreateLogicallyAirGappedBackupVaultCommandInput,
+ cb: (err: any, data?: CreateLogicallyAirGappedBackupVaultCommandOutput) => void
+ ): void;
+ createLogicallyAirGappedBackupVault(
+ args: CreateLogicallyAirGappedBackupVaultCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: CreateLogicallyAirGappedBackupVaultCommandOutput) => void
+ ): void;
+
/**
* @see {@link CreateReportPlanCommand}
*/
@@ -1220,6 +1249,23 @@ export interface Backup {
cb: (err: any, data?: ListProtectedResourcesCommandOutput) => void
): void;
+ /**
+ * @see {@link ListProtectedResourcesByBackupVaultCommand}
+ */
+ listProtectedResourcesByBackupVault(
+ args: ListProtectedResourcesByBackupVaultCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ listProtectedResourcesByBackupVault(
+ args: ListProtectedResourcesByBackupVaultCommandInput,
+ cb: (err: any, data?: ListProtectedResourcesByBackupVaultCommandOutput) => void
+ ): void;
+ listProtectedResourcesByBackupVault(
+ args: ListProtectedResourcesByBackupVaultCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: ListProtectedResourcesByBackupVaultCommandOutput) => void
+ ): void;
+
/**
* @see {@link ListRecoveryPointsByBackupVaultCommand}
*/
diff --git a/clients/client-backup/src/BackupClient.ts b/clients/client-backup/src/BackupClient.ts
index 705003e844aa..5f3d08e14a03 100644
--- a/clients/client-backup/src/BackupClient.ts
+++ b/clients/client-backup/src/BackupClient.ts
@@ -59,6 +59,10 @@ import {
import { CreateBackupVaultCommandInput, CreateBackupVaultCommandOutput } from "./commands/CreateBackupVaultCommand";
import { CreateFrameworkCommandInput, CreateFrameworkCommandOutput } from "./commands/CreateFrameworkCommand";
import { CreateLegalHoldCommandInput, CreateLegalHoldCommandOutput } from "./commands/CreateLegalHoldCommand";
+import {
+ CreateLogicallyAirGappedBackupVaultCommandInput,
+ CreateLogicallyAirGappedBackupVaultCommandOutput,
+} from "./commands/CreateLogicallyAirGappedBackupVaultCommand";
import { CreateReportPlanCommandInput, CreateReportPlanCommandOutput } from "./commands/CreateReportPlanCommand";
import { DeleteBackupPlanCommandInput, DeleteBackupPlanCommandOutput } from "./commands/DeleteBackupPlanCommand";
import {
@@ -167,6 +171,10 @@ import { ListBackupVaultsCommandInput, ListBackupVaultsCommandOutput } from "./c
import { ListCopyJobsCommandInput, ListCopyJobsCommandOutput } from "./commands/ListCopyJobsCommand";
import { ListFrameworksCommandInput, ListFrameworksCommandOutput } from "./commands/ListFrameworksCommand";
import { ListLegalHoldsCommandInput, ListLegalHoldsCommandOutput } from "./commands/ListLegalHoldsCommand";
+import {
+ ListProtectedResourcesByBackupVaultCommandInput,
+ ListProtectedResourcesByBackupVaultCommandOutput,
+} from "./commands/ListProtectedResourcesByBackupVaultCommand";
import {
ListProtectedResourcesCommandInput,
ListProtectedResourcesCommandOutput,
@@ -241,6 +249,7 @@ export type ServiceInputTypes =
| CreateBackupVaultCommandInput
| CreateFrameworkCommandInput
| CreateLegalHoldCommandInput
+ | CreateLogicallyAirGappedBackupVaultCommandInput
| CreateReportPlanCommandInput
| DeleteBackupPlanCommandInput
| DeleteBackupSelectionCommandInput
@@ -283,6 +292,7 @@ export type ServiceInputTypes =
| ListCopyJobsCommandInput
| ListFrameworksCommandInput
| ListLegalHoldsCommandInput
+ | ListProtectedResourcesByBackupVaultCommandInput
| ListProtectedResourcesCommandInput
| ListRecoveryPointsByBackupVaultCommandInput
| ListRecoveryPointsByLegalHoldCommandInput
@@ -318,6 +328,7 @@ export type ServiceOutputTypes =
| CreateBackupVaultCommandOutput
| CreateFrameworkCommandOutput
| CreateLegalHoldCommandOutput
+ | CreateLogicallyAirGappedBackupVaultCommandOutput
| CreateReportPlanCommandOutput
| DeleteBackupPlanCommandOutput
| DeleteBackupSelectionCommandOutput
@@ -360,6 +371,7 @@ export type ServiceOutputTypes =
| ListCopyJobsCommandOutput
| ListFrameworksCommandOutput
| ListLegalHoldsCommandOutput
+ | ListProtectedResourcesByBackupVaultCommandOutput
| ListProtectedResourcesCommandOutput
| ListRecoveryPointsByBackupVaultCommandOutput
| ListRecoveryPointsByLegalHoldCommandOutput
diff --git a/clients/client-backup/src/commands/CreateLogicallyAirGappedBackupVaultCommand.ts b/clients/client-backup/src/commands/CreateLogicallyAirGappedBackupVaultCommand.ts
new file mode 100644
index 000000000000..ea111577b7a8
--- /dev/null
+++ b/clients/client-backup/src/commands/CreateLogicallyAirGappedBackupVaultCommand.ts
@@ -0,0 +1,193 @@
+// smithy-typescript generated code
+import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
+import { getSerdePlugin } from "@smithy/middleware-serde";
+import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
+import { Command as $Command } from "@smithy/smithy-client";
+import {
+ FinalizeHandlerArguments,
+ Handler,
+ HandlerExecutionContext,
+ HttpHandlerOptions as __HttpHandlerOptions,
+ MetadataBearer as __MetadataBearer,
+ MiddlewareStack,
+ SerdeContext as __SerdeContext,
+} from "@smithy/types";
+
+import { BackupClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../BackupClient";
+import {
+ CreateLogicallyAirGappedBackupVaultInput,
+ CreateLogicallyAirGappedBackupVaultInputFilterSensitiveLog,
+ CreateLogicallyAirGappedBackupVaultOutput,
+} from "../models/models_0";
+import {
+ de_CreateLogicallyAirGappedBackupVaultCommand,
+ se_CreateLogicallyAirGappedBackupVaultCommand,
+} from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export { __MetadataBearer, $Command };
+/**
+ * @public
+ *
+ * The input for {@link CreateLogicallyAirGappedBackupVaultCommand}.
+ */
+export interface CreateLogicallyAirGappedBackupVaultCommandInput extends CreateLogicallyAirGappedBackupVaultInput {}
+/**
+ * @public
+ *
+ * The output of {@link CreateLogicallyAirGappedBackupVaultCommand}.
+ */
+export interface CreateLogicallyAirGappedBackupVaultCommandOutput
+ extends CreateLogicallyAirGappedBackupVaultOutput,
+ __MetadataBearer {}
+
+/**
+ * @public
+ * This request creates a logical container where backups are stored.
+ * This request includes a name, optionally one or more resource tags, an encryption key,
+ * and a request ID.
+ *
+ * Do not include sensitive data, such as passport numbers, in the name of a backup
+ * vault.
+ *
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { BackupClient, CreateLogicallyAirGappedBackupVaultCommand } from "@aws-sdk/client-backup"; // ES Modules import
+ * // const { BackupClient, CreateLogicallyAirGappedBackupVaultCommand } = require("@aws-sdk/client-backup"); // CommonJS import
+ * const client = new BackupClient(config);
+ * const input = { // CreateLogicallyAirGappedBackupVaultInput
+ * BackupVaultName: "STRING_VALUE", // required
+ * BackupVaultTags: { // Tags
+ * "": "STRING_VALUE",
+ * },
+ * CreatorRequestId: "STRING_VALUE",
+ * MinRetentionDays: Number("long"), // required
+ * MaxRetentionDays: Number("long"), // required
+ * };
+ * const command = new CreateLogicallyAirGappedBackupVaultCommand(input);
+ * const response = await client.send(command);
+ * // { // CreateLogicallyAirGappedBackupVaultOutput
+ * // BackupVaultName: "STRING_VALUE",
+ * // BackupVaultArn: "STRING_VALUE",
+ * // CreationDate: new Date("TIMESTAMP"),
+ * // VaultState: "CREATING" || "AVAILABLE" || "FAILED",
+ * // };
+ *
+ * ```
+ *
+ * @param CreateLogicallyAirGappedBackupVaultCommandInput - {@link CreateLogicallyAirGappedBackupVaultCommandInput}
+ * @returns {@link CreateLogicallyAirGappedBackupVaultCommandOutput}
+ * @see {@link CreateLogicallyAirGappedBackupVaultCommandInput} for command's `input` shape.
+ * @see {@link CreateLogicallyAirGappedBackupVaultCommandOutput} for command's `response` shape.
+ * @see {@link BackupClientResolvedConfig | config} for BackupClient's `config` shape.
+ *
+ * @throws {@link AlreadyExistsException} (client fault)
+ * The required resource already exists.
+ *
+ * @throws {@link InvalidParameterValueException} (client fault)
+ * Indicates that something is wrong with a parameter's value. For example, the value is
+ * out of range.
+ *
+ * @throws {@link InvalidRequestException} (client fault)
+ * Indicates that something is wrong with the input to the request. For example, a
+ * parameter is of the wrong type.
+ *
+ * @throws {@link LimitExceededException} (client fault)
+ * A limit in the request has been exceeded; for example, a maximum number of items allowed
+ * in a request.
+ *
+ * @throws {@link MissingParameterValueException} (client fault)
+ * Indicates that a required parameter is missing.
+ *
+ * @throws {@link ServiceUnavailableException} (server fault)
+ * The request failed due to a temporary failure of the server.
+ *
+ * @throws {@link BackupServiceException}
+ * Base exception class for all service exceptions from Backup service.
+ *
+ */
+export class CreateLogicallyAirGappedBackupVaultCommand extends $Command<
+ CreateLogicallyAirGappedBackupVaultCommandInput,
+ CreateLogicallyAirGappedBackupVaultCommandOutput,
+ BackupClientResolvedConfig
+> {
+ // Start section: command_properties
+ // End section: command_properties
+
+ public static getEndpointParameterInstructions(): EndpointParameterInstructions {
+ return {
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
+ Endpoint: { type: "builtInParams", name: "endpoint" },
+ Region: { type: "builtInParams", name: "region" },
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
+ };
+ }
+
+ /**
+ * @public
+ */
+ constructor(readonly input: CreateLogicallyAirGappedBackupVaultCommandInput) {
+ // Start section: command_constructor
+ super();
+ // End section: command_constructor
+ }
+
+ /**
+ * @internal
+ */
+ resolveMiddleware(
+ clientStack: MiddlewareStack,
+ configuration: BackupClientResolvedConfig,
+ options?: __HttpHandlerOptions
+ ): Handler {
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
+ this.middlewareStack.use(
+ getEndpointPlugin(configuration, CreateLogicallyAirGappedBackupVaultCommand.getEndpointParameterInstructions())
+ );
+
+ const stack = clientStack.concat(this.middlewareStack);
+
+ const { logger } = configuration;
+ const clientName = "BackupClient";
+ const commandName = "CreateLogicallyAirGappedBackupVaultCommand";
+ const handlerExecutionContext: HandlerExecutionContext = {
+ logger,
+ clientName,
+ commandName,
+ inputFilterSensitiveLog: CreateLogicallyAirGappedBackupVaultInputFilterSensitiveLog,
+ outputFilterSensitiveLog: (_: any) => _,
+ };
+ const { requestHandler } = configuration;
+ return stack.resolve(
+ (request: FinalizeHandlerArguments) =>
+ requestHandler.handle(request.request as __HttpRequest, options || {}),
+ handlerExecutionContext
+ );
+ }
+
+ /**
+ * @internal
+ */
+ private serialize(
+ input: CreateLogicallyAirGappedBackupVaultCommandInput,
+ context: __SerdeContext
+ ): Promise<__HttpRequest> {
+ return se_CreateLogicallyAirGappedBackupVaultCommand(input, context);
+ }
+
+ /**
+ * @internal
+ */
+ private deserialize(
+ output: __HttpResponse,
+ context: __SerdeContext
+ ): Promise {
+ return de_CreateLogicallyAirGappedBackupVaultCommand(output, context);
+ }
+
+ // Start section: command_body_extra
+ // End section: command_body_extra
+}
diff --git a/clients/client-backup/src/commands/DescribeBackupVaultCommand.ts b/clients/client-backup/src/commands/DescribeBackupVaultCommand.ts
index e74a6e5ae698..2a96912d9265 100644
--- a/clients/client-backup/src/commands/DescribeBackupVaultCommand.ts
+++ b/clients/client-backup/src/commands/DescribeBackupVaultCommand.ts
@@ -45,12 +45,14 @@ export interface DescribeBackupVaultCommandOutput extends DescribeBackupVaultOut
* const client = new BackupClient(config);
* const input = { // DescribeBackupVaultInput
* BackupVaultName: "STRING_VALUE", // required
+ * BackupVaultAccountId: "STRING_VALUE",
* };
* const command = new DescribeBackupVaultCommand(input);
* const response = await client.send(command);
* // { // DescribeBackupVaultOutput
* // BackupVaultName: "STRING_VALUE",
* // BackupVaultArn: "STRING_VALUE",
+ * // VaultType: "BACKUP_VAULT" || "LOGICALLY_AIR_GAPPED_BACKUP_VAULT",
* // EncryptionKeyArn: "STRING_VALUE",
* // CreationDate: new Date("TIMESTAMP"),
* // CreatorRequestId: "STRING_VALUE",
diff --git a/clients/client-backup/src/commands/DescribeRecoveryPointCommand.ts b/clients/client-backup/src/commands/DescribeRecoveryPointCommand.ts
index 0f5abf237176..5b6446fa87af 100644
--- a/clients/client-backup/src/commands/DescribeRecoveryPointCommand.ts
+++ b/clients/client-backup/src/commands/DescribeRecoveryPointCommand.ts
@@ -47,6 +47,7 @@ export interface DescribeRecoveryPointCommandOutput extends DescribeRecoveryPoin
* const input = { // DescribeRecoveryPointInput
* BackupVaultName: "STRING_VALUE", // required
* RecoveryPointArn: "STRING_VALUE", // required
+ * BackupVaultAccountId: "STRING_VALUE",
* };
* const command = new DescribeRecoveryPointCommand(input);
* const response = await client.send(command);
diff --git a/clients/client-backup/src/commands/GetRecoveryPointRestoreMetadataCommand.ts b/clients/client-backup/src/commands/GetRecoveryPointRestoreMetadataCommand.ts
index 7b34d00e40ba..6ff2c1409926 100644
--- a/clients/client-backup/src/commands/GetRecoveryPointRestoreMetadataCommand.ts
+++ b/clients/client-backup/src/commands/GetRecoveryPointRestoreMetadataCommand.ts
@@ -55,6 +55,7 @@ export interface GetRecoveryPointRestoreMetadataCommandOutput
* const input = { // GetRecoveryPointRestoreMetadataInput
* BackupVaultName: "STRING_VALUE", // required
* RecoveryPointArn: "STRING_VALUE", // required
+ * BackupVaultAccountId: "STRING_VALUE",
* };
* const command = new GetRecoveryPointRestoreMetadataCommand(input);
* const response = await client.send(command);
diff --git a/clients/client-backup/src/commands/ListBackupVaultsCommand.ts b/clients/client-backup/src/commands/ListBackupVaultsCommand.ts
index e9407e8c6897..c3e363588738 100644
--- a/clients/client-backup/src/commands/ListBackupVaultsCommand.ts
+++ b/clients/client-backup/src/commands/ListBackupVaultsCommand.ts
@@ -45,6 +45,8 @@ export interface ListBackupVaultsCommandOutput extends ListBackupVaultsOutput, _
* // const { BackupClient, ListBackupVaultsCommand } = require("@aws-sdk/client-backup"); // CommonJS import
* const client = new BackupClient(config);
* const input = { // ListBackupVaultsInput
+ * ByVaultType: "BACKUP_VAULT" || "LOGICALLY_AIR_GAPPED_BACKUP_VAULT",
+ * ByShared: true || false,
* NextToken: "STRING_VALUE",
* MaxResults: Number("int"),
* };
diff --git a/clients/client-backup/src/commands/ListProtectedResourcesByBackupVaultCommand.ts b/clients/client-backup/src/commands/ListProtectedResourcesByBackupVaultCommand.ts
new file mode 100644
index 000000000000..a26a94621e6d
--- /dev/null
+++ b/clients/client-backup/src/commands/ListProtectedResourcesByBackupVaultCommand.ts
@@ -0,0 +1,177 @@
+// smithy-typescript generated code
+import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
+import { getSerdePlugin } from "@smithy/middleware-serde";
+import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
+import { Command as $Command } from "@smithy/smithy-client";
+import {
+ FinalizeHandlerArguments,
+ Handler,
+ HandlerExecutionContext,
+ HttpHandlerOptions as __HttpHandlerOptions,
+ MetadataBearer as __MetadataBearer,
+ MiddlewareStack,
+ SerdeContext as __SerdeContext,
+} from "@smithy/types";
+
+import { BackupClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../BackupClient";
+import {
+ ListProtectedResourcesByBackupVaultInput,
+ ListProtectedResourcesByBackupVaultOutput,
+} from "../models/models_0";
+import {
+ de_ListProtectedResourcesByBackupVaultCommand,
+ se_ListProtectedResourcesByBackupVaultCommand,
+} from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export { __MetadataBearer, $Command };
+/**
+ * @public
+ *
+ * The input for {@link ListProtectedResourcesByBackupVaultCommand}.
+ */
+export interface ListProtectedResourcesByBackupVaultCommandInput extends ListProtectedResourcesByBackupVaultInput {}
+/**
+ * @public
+ *
+ * The output of {@link ListProtectedResourcesByBackupVaultCommand}.
+ */
+export interface ListProtectedResourcesByBackupVaultCommandOutput
+ extends ListProtectedResourcesByBackupVaultOutput,
+ __MetadataBearer {}
+
+/**
+ * @public
+ * This request lists the protected resources corresponding to each backup vault.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { BackupClient, ListProtectedResourcesByBackupVaultCommand } from "@aws-sdk/client-backup"; // ES Modules import
+ * // const { BackupClient, ListProtectedResourcesByBackupVaultCommand } = require("@aws-sdk/client-backup"); // CommonJS import
+ * const client = new BackupClient(config);
+ * const input = { // ListProtectedResourcesByBackupVaultInput
+ * BackupVaultName: "STRING_VALUE", // required
+ * BackupVaultAccountId: "STRING_VALUE",
+ * NextToken: "STRING_VALUE",
+ * MaxResults: Number("int"),
+ * };
+ * const command = new ListProtectedResourcesByBackupVaultCommand(input);
+ * const response = await client.send(command);
+ * // { // ListProtectedResourcesByBackupVaultOutput
+ * // Results: [ // ProtectedResourcesList
+ * // { // ProtectedResource
+ * // ResourceArn: "STRING_VALUE",
+ * // ResourceType: "STRING_VALUE",
+ * // LastBackupTime: new Date("TIMESTAMP"),
+ * // ResourceName: "STRING_VALUE",
+ * // },
+ * // ],
+ * // NextToken: "STRING_VALUE",
+ * // };
+ *
+ * ```
+ *
+ * @param ListProtectedResourcesByBackupVaultCommandInput - {@link ListProtectedResourcesByBackupVaultCommandInput}
+ * @returns {@link ListProtectedResourcesByBackupVaultCommandOutput}
+ * @see {@link ListProtectedResourcesByBackupVaultCommandInput} for command's `input` shape.
+ * @see {@link ListProtectedResourcesByBackupVaultCommandOutput} for command's `response` shape.
+ * @see {@link BackupClientResolvedConfig | config} for BackupClient's `config` shape.
+ *
+ * @throws {@link InvalidParameterValueException} (client fault)
+ * Indicates that something is wrong with a parameter's value. For example, the value is
+ * out of range.
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ * A resource that is required for the action doesn't exist.
+ *
+ * @throws {@link ServiceUnavailableException} (server fault)
+ * The request failed due to a temporary failure of the server.
+ *
+ * @throws {@link BackupServiceException}
+ * Base exception class for all service exceptions from Backup service.
+ *
+ */
+export class ListProtectedResourcesByBackupVaultCommand extends $Command<
+ ListProtectedResourcesByBackupVaultCommandInput,
+ ListProtectedResourcesByBackupVaultCommandOutput,
+ BackupClientResolvedConfig
+> {
+ // Start section: command_properties
+ // End section: command_properties
+
+ public static getEndpointParameterInstructions(): EndpointParameterInstructions {
+ return {
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
+ Endpoint: { type: "builtInParams", name: "endpoint" },
+ Region: { type: "builtInParams", name: "region" },
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
+ };
+ }
+
+ /**
+ * @public
+ */
+ constructor(readonly input: ListProtectedResourcesByBackupVaultCommandInput) {
+ // Start section: command_constructor
+ super();
+ // End section: command_constructor
+ }
+
+ /**
+ * @internal
+ */
+ resolveMiddleware(
+ clientStack: MiddlewareStack,
+ configuration: BackupClientResolvedConfig,
+ options?: __HttpHandlerOptions
+ ): Handler {
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
+ this.middlewareStack.use(
+ getEndpointPlugin(configuration, ListProtectedResourcesByBackupVaultCommand.getEndpointParameterInstructions())
+ );
+
+ const stack = clientStack.concat(this.middlewareStack);
+
+ const { logger } = configuration;
+ const clientName = "BackupClient";
+ const commandName = "ListProtectedResourcesByBackupVaultCommand";
+ const handlerExecutionContext: HandlerExecutionContext = {
+ logger,
+ clientName,
+ commandName,
+ inputFilterSensitiveLog: (_: any) => _,
+ outputFilterSensitiveLog: (_: any) => _,
+ };
+ const { requestHandler } = configuration;
+ return stack.resolve(
+ (request: FinalizeHandlerArguments) =>
+ requestHandler.handle(request.request as __HttpRequest, options || {}),
+ handlerExecutionContext
+ );
+ }
+
+ /**
+ * @internal
+ */
+ private serialize(
+ input: ListProtectedResourcesByBackupVaultCommandInput,
+ context: __SerdeContext
+ ): Promise<__HttpRequest> {
+ return se_ListProtectedResourcesByBackupVaultCommand(input, context);
+ }
+
+ /**
+ * @internal
+ */
+ private deserialize(
+ output: __HttpResponse,
+ context: __SerdeContext
+ ): Promise {
+ return de_ListProtectedResourcesByBackupVaultCommand(output, context);
+ }
+
+ // Start section: command_body_extra
+ // End section: command_body_extra
+}
diff --git a/clients/client-backup/src/commands/ListRecoveryPointsByBackupVaultCommand.ts b/clients/client-backup/src/commands/ListRecoveryPointsByBackupVaultCommand.ts
index eabe378e441d..06aef97e3ae0 100644
--- a/clients/client-backup/src/commands/ListRecoveryPointsByBackupVaultCommand.ts
+++ b/clients/client-backup/src/commands/ListRecoveryPointsByBackupVaultCommand.ts
@@ -50,6 +50,7 @@ export interface ListRecoveryPointsByBackupVaultCommandOutput
* const client = new BackupClient(config);
* const input = { // ListRecoveryPointsByBackupVaultInput
* BackupVaultName: "STRING_VALUE", // required
+ * BackupVaultAccountId: "STRING_VALUE",
* NextToken: "STRING_VALUE",
* MaxResults: Number("int"),
* ByResourceArn: "STRING_VALUE",
diff --git a/clients/client-backup/src/commands/index.ts b/clients/client-backup/src/commands/index.ts
index 7871ad2f9f06..16498c9a8668 100644
--- a/clients/client-backup/src/commands/index.ts
+++ b/clients/client-backup/src/commands/index.ts
@@ -5,6 +5,7 @@ export * from "./CreateBackupSelectionCommand";
export * from "./CreateBackupVaultCommand";
export * from "./CreateFrameworkCommand";
export * from "./CreateLegalHoldCommand";
+export * from "./CreateLogicallyAirGappedBackupVaultCommand";
export * from "./CreateReportPlanCommand";
export * from "./DeleteBackupPlanCommand";
export * from "./DeleteBackupSelectionCommand";
@@ -47,6 +48,7 @@ export * from "./ListBackupVaultsCommand";
export * from "./ListCopyJobsCommand";
export * from "./ListFrameworksCommand";
export * from "./ListLegalHoldsCommand";
+export * from "./ListProtectedResourcesByBackupVaultCommand";
export * from "./ListProtectedResourcesCommand";
export * from "./ListRecoveryPointsByBackupVaultCommand";
export * from "./ListRecoveryPointsByLegalHoldCommand";
diff --git a/clients/client-backup/src/models/models_0.ts b/clients/client-backup/src/models/models_0.ts
index 8fab0aa931a2..695bfeba3f19 100644
--- a/clients/client-backup/src/models/models_0.ts
+++ b/clients/client-backup/src/models/models_0.ts
@@ -207,7 +207,7 @@ export interface BackupJob {
/**
* @public
- * The current state of a resource recovery point.
+ * The current state of a backup job.
*/
State?: BackupJobState | string;
@@ -541,6 +541,7 @@ export interface BackupRuleInput {
* A value in minutes after a backup is scheduled before a job will be canceled if it
* doesn't start successfully. This value is optional.
* If this value is included, it must be at least 60 minutes to avoid errors.
+ * This parameter has a maximum value of 100 years (52,560,000 minutes).
* During the start window, the backup job status remains in CREATED
status until it
* has successfully begun or until the start window time has run out. If within the start
* window time Backup receives an error that allows the job to be retried,
@@ -571,6 +572,7 @@ export interface BackupRuleInput {
* section of the
* Feature availability by resource table. Backup ignores this expression for
* other resource types.
+ * This parameter has a maximum value of 100 years (36,500 days).
*/
Lifecycle?: Lifecycle;
@@ -2099,6 +2101,144 @@ export interface CreateLegalHoldOutput {
RecoveryPointSelection?: RecoveryPointSelection;
}
+/**
+ * @public
+ */
+export interface CreateLogicallyAirGappedBackupVaultInput {
+ /**
+ * @public
+ * This is the name of the vault that is being created.
+ */
+ BackupVaultName: string | undefined;
+
+ /**
+ * @public
+ * These are the tags that will be included in the newly-created vault.
+ */
+ BackupVaultTags?: Record;
+
+ /**
+ * @public
+ * This is the ID of the creation request.
+ */
+ CreatorRequestId?: string;
+
+ /**
+ * @public
+ * This setting specifies the minimum retention period
+ * that the vault retains its recovery points. If this parameter is not specified,
+ * no minimum retention period is enforced.
+ * If specified, any backup or copy job to the vault must have a lifecycle policy with a
+ * retention period equal to or longer than the minimum retention period. If a job
+ * retention period is shorter than that minimum retention period, then the vault fails the
+ * backup or copy job, and you should either modify your lifecycle settings or use a different
+ * vault.
+ */
+ MinRetentionDays: number | undefined;
+
+ /**
+ * @public
+ * This is the setting that specifies the maximum retention period
+ * that the vault retains its recovery points. If this parameter is not specified, Backup
+ * does not enforce a maximum retention period on the recovery points in the vault (allowing
+ * indefinite storage).
+ * If specified, any backup or copy job to the vault must have a lifecycle policy with a
+ * retention period equal to or shorter than the maximum retention period. If the job
+ * retention period is longer than that maximum retention period, then the vault fails the
+ * backup or copy job, and you should either modify your lifecycle settings or use a different
+ * vault.
+ */
+ MaxRetentionDays: number | undefined;
+}
+
+/**
+ * @public
+ * @enum
+ */
+export const VaultState = {
+ AVAILABLE: "AVAILABLE",
+ CREATING: "CREATING",
+ FAILED: "FAILED",
+} as const;
+
+/**
+ * @public
+ */
+export type VaultState = (typeof VaultState)[keyof typeof VaultState];
+
+/**
+ * @public
+ */
+export interface CreateLogicallyAirGappedBackupVaultOutput {
+ /**
+ * @public
+ * The name of a logical container where backups are stored. Logically air-gapped
+ * backup vaults are identified by names that are unique to the account used to create
+ * them and the Region where they are created. They consist of lowercase letters, numbers,
+ * and hyphens.
+ */
+ BackupVaultName?: string;
+
+ /**
+ * @public
+ * This is the ARN (Amazon Resource Name) of the vault being created.
+ */
+ BackupVaultArn?: string;
+
+ /**
+ * @public
+ * The date and time when the vault was created.
+ * This value is in Unix format, Coordinated Universal Time (UTC), and accurate to
+ * milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018
+ * 12:11:30.087 AM.
+ */
+ CreationDate?: Date;
+
+ /**
+ * @public
+ * This is the current state of the vault.
+ */
+ VaultState?: VaultState | string;
+}
+
+/**
+ * @public
+ * Indicates that something is wrong with the input to the request. For example, a
+ * parameter is of the wrong type.
+ */
+export class InvalidRequestException extends __BaseException {
+ readonly name: "InvalidRequestException" = "InvalidRequestException";
+ readonly $fault: "client" = "client";
+ Code?: string;
+ Message?: string;
+ /**
+ * @public
+ *
+ */
+ Type?: string;
+
+ /**
+ * @public
+ *
+ */
+ Context?: string;
+ /**
+ * @internal
+ */
+ constructor(opts: __ExceptionOptionType) {
+ super({
+ name: "InvalidRequestException",
+ $fault: "client",
+ ...opts,
+ });
+ Object.setPrototypeOf(this, InvalidRequestException.prototype);
+ this.Code = opts.Code;
+ this.Message = opts.Message;
+ this.Type = opts.Type;
+ this.Context = opts.Context;
+ }
+}
+
/**
* @public
* Contains information from your report plan about where to deliver your reports,
@@ -2303,44 +2443,6 @@ export interface DeleteBackupPlanOutput {
VersionId?: string;
}
-/**
- * @public
- *
Indicates that something is wrong with the input to the request. For example, a
- * parameter is of the wrong type.
- */
-export class InvalidRequestException extends __BaseException {
- readonly name: "InvalidRequestException" = "InvalidRequestException";
- readonly $fault: "client" = "client";
- Code?: string;
- Message?: string;
- /**
- * @public
- *
- */
- Type?: string;
-
- /**
- * @public
- *
- */
- Context?: string;
- /**
- * @internal
- */
- constructor(opts: __ExceptionOptionType) {
- super({
- name: "InvalidRequestException",
- $fault: "client",
- ...opts,
- });
- Object.setPrototypeOf(this, InvalidRequestException.prototype);
- this.Code = opts.Code;
- this.Message = opts.Message;
- this.Type = opts.Type;
- this.Context = opts.Context;
- }
-}
-
/**
* @public
*/
@@ -2568,7 +2670,7 @@ export interface DescribeBackupJobOutput {
/**
* @public
- * The current state of a resource recovery point.
+ * The current state of a backup job.
*/
State?: BackupJobState | string;
@@ -2698,8 +2800,28 @@ export interface DescribeBackupVaultInput {
* hyphens.
*/
BackupVaultName: string | undefined;
+
+ /**
+ * @public
+ * This is the account ID of the specified backup vault.
+ */
+ BackupVaultAccountId?: string;
}
+/**
+ * @public
+ * @enum
+ */
+export const VaultType = {
+ BACKUP_VAULT: "BACKUP_VAULT",
+ LOGICALLY_AIR_GAPPED_BACKUP_VAULT: "LOGICALLY_AIR_GAPPED_BACKUP_VAULT",
+} as const;
+
+/**
+ * @public
+ */
+export type VaultType = (typeof VaultType)[keyof typeof VaultType];
+
/**
* @public
*/
@@ -2719,6 +2841,12 @@ export interface DescribeBackupVaultOutput {
*/
BackupVaultArn?: string;
+ /**
+ * @public
+ * This is the type of vault described.
+ */
+ VaultType?: VaultType | string;
+
/**
* @public
* The server-side encryption key that is used to protect your backups; for example,
@@ -3010,6 +3138,12 @@ export interface DescribeRecoveryPointInput {
* arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45
.
*/
RecoveryPointArn: string | undefined;
+
+ /**
+ * @public
+ * This is the account ID of the specified backup vault.
+ */
+ BackupVaultAccountId?: string;
}
/**
@@ -4086,6 +4220,12 @@ export interface GetRecoveryPointRestoreMetadataInput {
* arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45
.
*/
RecoveryPointArn: string | undefined;
+
+ /**
+ * @public
+ * This is the account ID of the specified backup vault.
+ */
+ BackupVaultAccountId?: string;
}
/**
@@ -4513,6 +4653,18 @@ export interface ListBackupSelectionsOutput {
* @public
*/
export interface ListBackupVaultsInput {
+ /**
+ * @public
+ * This parameter will sort the list of vaults by vault type.
+ */
+ ByVaultType?: VaultType | string;
+
+ /**
+ * @public
+ * This parameter will sort the list of vaults by shared vaults.
+ */
+ ByShared?: boolean;
+
/**
* @public
* The next item following a partial list of returned items. For example, if a request is
@@ -4975,6 +5127,58 @@ export interface ListProtectedResourcesOutput {
NextToken?: string;
}
+/**
+ * @public
+ */
+export interface ListProtectedResourcesByBackupVaultInput {
+ /**
+ * @public
+ *
This is the list of protected resources by backup vault within the vault(s) you specify by name.
+ */
+ BackupVaultName: string | undefined;
+
+ /**
+ * @public
+ * This is the list of protected resources by backup vault within the vault(s) you specify by account ID.
+ */
+ BackupVaultAccountId?: string;
+
+ /**
+ * @public
+ * The next item following a partial list of returned items. For example, if a request is
+ * made to return maxResults
number of items, NextToken
allows you
+ * to return more items in your list starting at the location pointed to by the next
+ * token.
+ */
+ NextToken?: string;
+
+ /**
+ * @public
+ * The maximum number of items to be returned.
+ */
+ MaxResults?: number;
+}
+
+/**
+ * @public
+ */
+export interface ListProtectedResourcesByBackupVaultOutput {
+ /**
+ * @public
+ * These are the results returned for the request ListProtectedResourcesByBackupVault.
+ */
+ Results?: ProtectedResource[];
+
+ /**
+ * @public
+ * The next item following a partial list of returned items. For example, if a request is
+ * made to return maxResults
number of items, NextToken
allows you
+ * to return more items in your list starting at the location pointed to by the next
+ * token.
+ */
+ NextToken?: string;
+}
+
/**
* @public
*/
@@ -4992,6 +5196,12 @@ export interface ListRecoveryPointsByBackupVaultInput {
*/
BackupVaultName: string | undefined;
+ /**
+ * @public
+ * This parameter will sort the list of recovery points by account ID.
+ */
+ BackupVaultAccountId?: string;
+
/**
* @public
* The next item following a partial list of returned items. For example, if a request is
@@ -5983,6 +6193,7 @@ export interface StartBackupJobInput {
*
A value in minutes after a backup is scheduled before a job will be canceled if it
* doesn't start successfully. This value is optional, and the default is 8 hours.
* If this value is included, it must be at least 60 minutes to avoid errors.
+ * This parameter has a maximum value of 100 years (52,560,000 minutes).
* During the start window, the backup job status remains in CREATED
status until it
* has successfully begun or until the start window time has run out. If within the start
* window time Backup receives an error that allows the job to be retried,
@@ -5999,6 +6210,8 @@ export interface StartBackupJobInput {
* Backup will cancel the job. This value is optional. This value begins
* counting down from when the backup was scheduled. It does not add additional time for
* StartWindowMinutes
, or if the backup started later than scheduled.
+ * Like StartWindowMinutes
, this parameter has a maximum value of
+ * 100 years (52,560,000 minutes).
*/
CompleteWindowMinutes?: number;
@@ -6015,6 +6228,7 @@ export interface StartBackupJobInput {
* section of the
* Feature availability by resource table. Backup ignores this expression for
* other resource types.
+ * This parameter has a maximum value of 100 years (36,500 days).
*/
Lifecycle?: Lifecycle;
@@ -6768,6 +6982,16 @@ export const CreateLegalHoldInputFilterSensitiveLog = (obj: CreateLegalHoldInput
...(obj.Tags && { Tags: SENSITIVE_STRING }),
});
+/**
+ * @internal
+ */
+export const CreateLogicallyAirGappedBackupVaultInputFilterSensitiveLog = (
+ obj: CreateLogicallyAirGappedBackupVaultInput
+): any => ({
+ ...obj,
+ ...(obj.BackupVaultTags && { BackupVaultTags: SENSITIVE_STRING }),
+});
+
/**
* @internal
*/
diff --git a/clients/client-backup/src/pagination/ListProtectedResourcesByBackupVaultPaginator.ts b/clients/client-backup/src/pagination/ListProtectedResourcesByBackupVaultPaginator.ts
new file mode 100644
index 000000000000..fc00685e1e08
--- /dev/null
+++ b/clients/client-backup/src/pagination/ListProtectedResourcesByBackupVaultPaginator.ts
@@ -0,0 +1,50 @@
+// smithy-typescript generated code
+import { Paginator } from "@smithy/types";
+
+import { BackupClient } from "../BackupClient";
+import {
+ ListProtectedResourcesByBackupVaultCommand,
+ ListProtectedResourcesByBackupVaultCommandInput,
+ ListProtectedResourcesByBackupVaultCommandOutput,
+} from "../commands/ListProtectedResourcesByBackupVaultCommand";
+import { BackupPaginationConfiguration } from "./Interfaces";
+
+/**
+ * @internal
+ */
+const makePagedClientRequest = async (
+ client: BackupClient,
+ input: ListProtectedResourcesByBackupVaultCommandInput,
+ ...args: any
+): Promise => {
+ // @ts-ignore
+ return await client.send(new ListProtectedResourcesByBackupVaultCommand(input), ...args);
+};
+/**
+ * @public
+ */
+export async function* paginateListProtectedResourcesByBackupVault(
+ config: BackupPaginationConfiguration,
+ input: ListProtectedResourcesByBackupVaultCommandInput,
+ ...additionalArguments: any
+): Paginator {
+ // ToDo: replace with actual type instead of typeof input.NextToken
+ let token: typeof input.NextToken | undefined = config.startingToken || undefined;
+ let hasNext = true;
+ let page: ListProtectedResourcesByBackupVaultCommandOutput;
+ while (hasNext) {
+ input.NextToken = token;
+ input["MaxResults"] = config.pageSize;
+ if (config.client instanceof BackupClient) {
+ page = await makePagedClientRequest(config.client, input, ...additionalArguments);
+ } else {
+ throw new Error("Invalid client, expected Backup | BackupClient");
+ }
+ yield page;
+ const prevToken = token;
+ token = page.NextToken;
+ hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));
+ }
+ // @ts-ignore
+ return undefined;
+}
diff --git a/clients/client-backup/src/pagination/index.ts b/clients/client-backup/src/pagination/index.ts
index c4028fdd5e62..ed86936ce4d6 100644
--- a/clients/client-backup/src/pagination/index.ts
+++ b/clients/client-backup/src/pagination/index.ts
@@ -9,6 +9,7 @@ export * from "./ListBackupVaultsPaginator";
export * from "./ListCopyJobsPaginator";
export * from "./ListFrameworksPaginator";
export * from "./ListLegalHoldsPaginator";
+export * from "./ListProtectedResourcesByBackupVaultPaginator";
export * from "./ListProtectedResourcesPaginator";
export * from "./ListRecoveryPointsByBackupVaultPaginator";
export * from "./ListRecoveryPointsByLegalHoldPaginator";
diff --git a/clients/client-backup/src/protocols/Aws_restJson1.ts b/clients/client-backup/src/protocols/Aws_restJson1.ts
index 9ed971e9eee4..10303915af2c 100644
--- a/clients/client-backup/src/protocols/Aws_restJson1.ts
+++ b/clients/client-backup/src/protocols/Aws_restJson1.ts
@@ -34,6 +34,10 @@ import {
import { CreateBackupVaultCommandInput, CreateBackupVaultCommandOutput } from "../commands/CreateBackupVaultCommand";
import { CreateFrameworkCommandInput, CreateFrameworkCommandOutput } from "../commands/CreateFrameworkCommand";
import { CreateLegalHoldCommandInput, CreateLegalHoldCommandOutput } from "../commands/CreateLegalHoldCommand";
+import {
+ CreateLogicallyAirGappedBackupVaultCommandInput,
+ CreateLogicallyAirGappedBackupVaultCommandOutput,
+} from "../commands/CreateLogicallyAirGappedBackupVaultCommand";
import { CreateReportPlanCommandInput, CreateReportPlanCommandOutput } from "../commands/CreateReportPlanCommand";
import { DeleteBackupPlanCommandInput, DeleteBackupPlanCommandOutput } from "../commands/DeleteBackupPlanCommand";
import {
@@ -142,6 +146,10 @@ import { ListBackupVaultsCommandInput, ListBackupVaultsCommandOutput } from "../
import { ListCopyJobsCommandInput, ListCopyJobsCommandOutput } from "../commands/ListCopyJobsCommand";
import { ListFrameworksCommandInput, ListFrameworksCommandOutput } from "../commands/ListFrameworksCommand";
import { ListLegalHoldsCommandInput, ListLegalHoldsCommandOutput } from "../commands/ListLegalHoldsCommand";
+import {
+ ListProtectedResourcesByBackupVaultCommandInput,
+ ListProtectedResourcesByBackupVaultCommandOutput,
+} from "../commands/ListProtectedResourcesByBackupVaultCommand";
import {
ListProtectedResourcesCommandInput,
ListProtectedResourcesCommandOutput,
@@ -446,6 +454,48 @@ export const se_CreateLegalHoldCommand = async (
});
};
+/**
+ * serializeAws_restJson1CreateLogicallyAirGappedBackupVaultCommand
+ */
+export const se_CreateLogicallyAirGappedBackupVaultCommand = async (
+ input: CreateLogicallyAirGappedBackupVaultCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
+ const headers: any = {
+ "content-type": "application/json",
+ };
+ let resolvedPath =
+ `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` +
+ "/logically-air-gapped-backup-vaults/{BackupVaultName}";
+ resolvedPath = __resolvedPath(
+ resolvedPath,
+ input,
+ "BackupVaultName",
+ () => input.BackupVaultName!,
+ "{BackupVaultName}",
+ false
+ );
+ let body: any;
+ body = JSON.stringify(
+ take(input, {
+ BackupVaultTags: (_) => _json(_),
+ CreatorRequestId: [],
+ MaxRetentionDays: [],
+ MinRetentionDays: [],
+ })
+ );
+ return new __HttpRequest({
+ protocol,
+ hostname,
+ port,
+ method: "PUT",
+ headers,
+ path: resolvedPath,
+ body,
+ });
+};
+
/**
* serializeAws_restJson1CreateReportPlanCommand
*/
@@ -816,6 +866,9 @@ export const se_DescribeBackupVaultCommand = async (
"{BackupVaultName}",
false
);
+ const query: any = map({
+ backupVaultAccountId: [, input.BackupVaultAccountId!],
+ });
let body: any;
return new __HttpRequest({
protocol,
@@ -824,6 +877,7 @@ export const se_DescribeBackupVaultCommand = async (
method: "GET",
headers,
path: resolvedPath,
+ query,
body,
});
};
@@ -958,6 +1012,9 @@ export const se_DescribeRecoveryPointCommand = async (
"{RecoveryPointArn}",
false
);
+ const query: any = map({
+ backupVaultAccountId: [, input.BackupVaultAccountId!],
+ });
let body: any;
return new __HttpRequest({
protocol,
@@ -966,6 +1023,7 @@ export const se_DescribeRecoveryPointCommand = async (
method: "GET",
headers,
path: resolvedPath,
+ query,
body,
});
};
@@ -1438,6 +1496,9 @@ export const se_GetRecoveryPointRestoreMetadataCommand = async (
"{RecoveryPointArn}",
false
);
+ const query: any = map({
+ backupVaultAccountId: [, input.BackupVaultAccountId!],
+ });
let body: any;
return new __HttpRequest({
protocol,
@@ -1446,6 +1507,7 @@ export const se_GetRecoveryPointRestoreMetadataCommand = async (
method: "GET",
headers,
path: resolvedPath,
+ query,
body,
});
};
@@ -1663,6 +1725,8 @@ export const se_ListBackupVaultsCommand = async (
const headers: any = {};
const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/backup-vaults";
const query: any = map({
+ vaultType: [, input.ByVaultType!],
+ shared: [() => input.ByShared !== void 0, () => input.ByShared!.toString()],
nextToken: [, input.NextToken!],
maxResults: [() => input.MaxResults !== void 0, () => input.MaxResults!.toString()],
});
@@ -1809,6 +1873,44 @@ export const se_ListProtectedResourcesCommand = async (
});
};
+/**
+ * serializeAws_restJson1ListProtectedResourcesByBackupVaultCommand
+ */
+export const se_ListProtectedResourcesByBackupVaultCommand = async (
+ input: ListProtectedResourcesByBackupVaultCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
+ const headers: any = {};
+ let resolvedPath =
+ `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` +
+ "/backup-vaults/{BackupVaultName}/resources";
+ resolvedPath = __resolvedPath(
+ resolvedPath,
+ input,
+ "BackupVaultName",
+ () => input.BackupVaultName!,
+ "{BackupVaultName}",
+ false
+ );
+ const query: any = map({
+ backupVaultAccountId: [, input.BackupVaultAccountId!],
+ nextToken: [, input.NextToken!],
+ maxResults: [() => input.MaxResults !== void 0, () => input.MaxResults!.toString()],
+ });
+ let body: any;
+ return new __HttpRequest({
+ protocol,
+ hostname,
+ port,
+ method: "GET",
+ headers,
+ path: resolvedPath,
+ query,
+ body,
+ });
+};
+
/**
* serializeAws_restJson1ListRecoveryPointsByBackupVaultCommand
*/
@@ -1830,6 +1932,7 @@ export const se_ListRecoveryPointsByBackupVaultCommand = async (
false
);
const query: any = map({
+ backupVaultAccountId: [, input.BackupVaultAccountId!],
nextToken: [, input.NextToken!],
maxResults: [() => input.MaxResults !== void 0, () => input.MaxResults!.toString()],
resourceArn: [, input.ByResourceArn!],
@@ -2988,6 +3091,71 @@ const de_CreateLegalHoldCommandError = async (
}
};
+/**
+ * deserializeAws_restJson1CreateLogicallyAirGappedBackupVaultCommand
+ */
+export const de_CreateLogicallyAirGappedBackupVaultCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_CreateLogicallyAirGappedBackupVaultCommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
+ const doc = take(data, {
+ BackupVaultArn: __expectString,
+ BackupVaultName: __expectString,
+ CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
+ VaultState: __expectString,
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
+/**
+ * deserializeAws_restJson1CreateLogicallyAirGappedBackupVaultCommandError
+ */
+const de_CreateLogicallyAirGappedBackupVaultCommandError = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ const parsedOutput: any = {
+ ...output,
+ body: await parseErrorBody(output.body, context),
+ };
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
+ switch (errorCode) {
+ case "AlreadyExistsException":
+ case "com.amazonaws.backup#AlreadyExistsException":
+ throw await de_AlreadyExistsExceptionRes(parsedOutput, context);
+ case "InvalidParameterValueException":
+ case "com.amazonaws.backup#InvalidParameterValueException":
+ throw await de_InvalidParameterValueExceptionRes(parsedOutput, context);
+ case "InvalidRequestException":
+ case "com.amazonaws.backup#InvalidRequestException":
+ throw await de_InvalidRequestExceptionRes(parsedOutput, context);
+ case "LimitExceededException":
+ case "com.amazonaws.backup#LimitExceededException":
+ throw await de_LimitExceededExceptionRes(parsedOutput, context);
+ case "MissingParameterValueException":
+ case "com.amazonaws.backup#MissingParameterValueException":
+ throw await de_MissingParameterValueExceptionRes(parsedOutput, context);
+ case "ServiceUnavailableException":
+ case "com.amazonaws.backup#ServiceUnavailableException":
+ throw await de_ServiceUnavailableExceptionRes(parsedOutput, context);
+ default:
+ const parsedBody = parsedOutput.body;
+ return throwDefaultError({
+ output,
+ parsedBody,
+ errorCode,
+ });
+ }
+};
+
/**
* deserializeAws_restJson1CreateReportPlanCommand
*/
@@ -3653,6 +3821,7 @@ export const de_DescribeBackupVaultCommand = async (
MaxRetentionDays: __expectLong,
MinRetentionDays: __expectLong,
NumberOfRecoveryPoints: __expectLong,
+ VaultType: __expectString,
});
Object.assign(contents, doc);
return contents;
@@ -5463,6 +5632,60 @@ const de_ListProtectedResourcesCommandError = async (
}
};
+/**
+ * deserializeAws_restJson1ListProtectedResourcesByBackupVaultCommand
+ */
+export const de_ListProtectedResourcesByBackupVaultCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_ListProtectedResourcesByBackupVaultCommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
+ const doc = take(data, {
+ NextToken: __expectString,
+ Results: (_) => de_ProtectedResourcesList(_, context),
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
+/**
+ * deserializeAws_restJson1ListProtectedResourcesByBackupVaultCommandError
+ */
+const de_ListProtectedResourcesByBackupVaultCommandError = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ const parsedOutput: any = {
+ ...output,
+ body: await parseErrorBody(output.body, context),
+ };
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
+ switch (errorCode) {
+ case "InvalidParameterValueException":
+ case "com.amazonaws.backup#InvalidParameterValueException":
+ throw await de_InvalidParameterValueExceptionRes(parsedOutput, context);
+ case "ResourceNotFoundException":
+ case "com.amazonaws.backup#ResourceNotFoundException":
+ throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
+ case "ServiceUnavailableException":
+ case "com.amazonaws.backup#ServiceUnavailableException":
+ throw await de_ServiceUnavailableExceptionRes(parsedOutput, context);
+ default:
+ const parsedBody = parsedOutput.body;
+ return throwDefaultError({
+ output,
+ parsedBody,
+ errorCode,
+ });
+ }
+};
+
/**
* deserializeAws_restJson1ListRecoveryPointsByBackupVaultCommand
*/
diff --git a/codegen/sdk-codegen/aws-models/backup.json b/codegen/sdk-codegen/aws-models/backup.json
index 67495e0f4131..ce067b61679c 100644
--- a/codegen/sdk-codegen/aws-models/backup.json
+++ b/codegen/sdk-codegen/aws-models/backup.json
@@ -157,7 +157,7 @@
"State": {
"target": "com.amazonaws.backup#BackupJobState",
"traits": {
- "smithy.api#documentation": "The current state of a resource recovery point.
"
+ "smithy.api#documentation": "The current state of a backup job.
"
}
},
"StatusMessage": {
@@ -600,7 +600,7 @@
"StartWindowMinutes": {
"target": "com.amazonaws.backup#WindowMinutes",
"traits": {
- "smithy.api#documentation": "A value in minutes after a backup is scheduled before a job will be canceled if it\n doesn't start successfully. This value is optional. \n If this value is included, it must be at least 60 minutes to avoid errors.
\n During the start window, the backup job status remains in CREATED
status until it \n has successfully begun or until the start window time has run out. If within the start \n window time Backup receives an error that allows the job to be retried, \n Backup will automatically retry to begin the job at least every 10 minutes \n until the backup \n successfully begins (the job status changes to RUNNING
) or until the job status \n changes to EXPIRED
(which is expected to occur when the start window time is over).
"
+ "smithy.api#documentation": "A value in minutes after a backup is scheduled before a job will be canceled if it\n doesn't start successfully. This value is optional. \n If this value is included, it must be at least 60 minutes to avoid errors.
\n This parameter has a maximum value of 100 years (52,560,000 minutes).
\n During the start window, the backup job status remains in CREATED
status until it \n has successfully begun or until the start window time has run out. If within the start \n window time Backup receives an error that allows the job to be retried, \n Backup will automatically retry to begin the job at least every 10 minutes \n until the backup \n successfully begins (the job status changes to RUNNING
) or until the job status \n changes to EXPIRED
(which is expected to occur when the start window time is over).
"
}
},
"CompletionWindowMinutes": {
@@ -612,7 +612,7 @@
"Lifecycle": {
"target": "com.amazonaws.backup#Lifecycle",
"traits": {
- "smithy.api#documentation": "The lifecycle defines when a protected resource is transitioned to cold storage and when\n it expires. Backup will transition and expire backups automatically according\n to the lifecycle that you define.
\n Backups transitioned to cold storage must be stored in cold storage for a minimum of 90\n days. Therefore, the “retention” setting must be 90 days greater than the “transition to\n cold after days” setting. The “transition to cold after days” setting cannot be changed\n after a backup has been transitioned to cold.
\n Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" \n section of the \n Feature availability by resource table. Backup ignores this expression for\n other resource types.
"
+ "smithy.api#documentation": "The lifecycle defines when a protected resource is transitioned to cold storage and when\n it expires. Backup will transition and expire backups automatically according\n to the lifecycle that you define.
\n Backups transitioned to cold storage must be stored in cold storage for a minimum of 90\n days. Therefore, the “retention” setting must be 90 days greater than the “transition to\n cold after days” setting. The “transition to cold after days” setting cannot be changed\n after a backup has been transitioned to cold.
\n Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" \n section of the \n Feature availability by resource table. Backup ignores this expression for\n other resource types.
\n This parameter has a maximum value of 100 years (36,500 days).
"
}
},
"RecoveryPointTags": {
@@ -1966,6 +1966,118 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.backup#CreateLogicallyAirGappedBackupVault": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.backup#CreateLogicallyAirGappedBackupVaultInput"
+ },
+ "output": {
+ "target": "com.amazonaws.backup#CreateLogicallyAirGappedBackupVaultOutput"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.backup#AlreadyExistsException"
+ },
+ {
+ "target": "com.amazonaws.backup#InvalidParameterValueException"
+ },
+ {
+ "target": "com.amazonaws.backup#InvalidRequestException"
+ },
+ {
+ "target": "com.amazonaws.backup#LimitExceededException"
+ },
+ {
+ "target": "com.amazonaws.backup#MissingParameterValueException"
+ },
+ {
+ "target": "com.amazonaws.backup#ServiceUnavailableException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "This request creates a logical container where backups are stored.
\n This request includes a name, optionally one or more resource tags, an encryption key, \n and a request ID.
\n \n Do not include sensitive data, such as passport numbers, in the name of a backup\n vault.
\n ",
+ "smithy.api#http": {
+ "method": "PUT",
+ "uri": "/logically-air-gapped-backup-vaults/{BackupVaultName}",
+ "code": 200
+ },
+ "smithy.api#idempotent": {}
+ }
+ },
+ "com.amazonaws.backup#CreateLogicallyAirGappedBackupVaultInput": {
+ "type": "structure",
+ "members": {
+ "BackupVaultName": {
+ "target": "com.amazonaws.backup#BackupVaultName",
+ "traits": {
+ "smithy.api#documentation": "This is the name of the vault that is being created.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "BackupVaultTags": {
+ "target": "com.amazonaws.backup#Tags",
+ "traits": {
+ "smithy.api#documentation": "These are the tags that will be included in the newly-created vault.
"
+ }
+ },
+ "CreatorRequestId": {
+ "target": "com.amazonaws.backup#string",
+ "traits": {
+ "smithy.api#documentation": "This is the ID of the creation request.
"
+ }
+ },
+ "MinRetentionDays": {
+ "target": "com.amazonaws.backup#Long",
+ "traits": {
+ "smithy.api#documentation": "This setting specifies the minimum retention period\n that the vault retains its recovery points. If this parameter is not specified, \n no minimum retention period is enforced.
\n If specified, any backup or copy job to the vault must have a lifecycle policy with a\n retention period equal to or longer than the minimum retention period. If a job\n retention period is shorter than that minimum retention period, then the vault fails the\n backup or copy job, and you should either modify your lifecycle settings or use a different\n vault.
",
+ "smithy.api#required": {}
+ }
+ },
+ "MaxRetentionDays": {
+ "target": "com.amazonaws.backup#Long",
+ "traits": {
+ "smithy.api#documentation": "This is the setting that specifies the maximum retention period\n that the vault retains its recovery points. If this parameter is not specified, Backup \n does not enforce a maximum retention period on the recovery points in the vault (allowing\n indefinite storage).
\n If specified, any backup or copy job to the vault must have a lifecycle policy with a\n retention period equal to or shorter than the maximum retention period. If the job \n retention period is longer than that maximum retention period, then the vault fails the\n backup or copy job, and you should either modify your lifecycle settings or use a different\n vault.
",
+ "smithy.api#required": {}
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.backup#CreateLogicallyAirGappedBackupVaultOutput": {
+ "type": "structure",
+ "members": {
+ "BackupVaultName": {
+ "target": "com.amazonaws.backup#BackupVaultName",
+ "traits": {
+ "smithy.api#documentation": "The name of a logical container where backups are stored. Logically air-gapped \n backup vaults are identified by names that are unique to the account used to create \n them and the Region where they are created. They consist of lowercase letters, numbers, \n and hyphens.
"
+ }
+ },
+ "BackupVaultArn": {
+ "target": "com.amazonaws.backup#ARN",
+ "traits": {
+ "smithy.api#documentation": "This is the ARN (Amazon Resource Name) of the vault being created.
"
+ }
+ },
+ "CreationDate": {
+ "target": "com.amazonaws.backup#timestamp",
+ "traits": {
+ "smithy.api#documentation": "The date and time when the vault was created.
\n This value is in Unix format, Coordinated Universal Time (UTC), and accurate to\n milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018\n 12:11:30.087 AM.
"
+ }
+ },
+ "VaultState": {
+ "target": "com.amazonaws.backup#VaultState",
+ "traits": {
+ "smithy.api#documentation": "This is the current state of the vault.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.backup#CreateReportPlan": {
"type": "operation",
"input": {
@@ -2100,6 +2212,9 @@
{
"target": "com.amazonaws.backup#CreateLegalHold"
},
+ {
+ "target": "com.amazonaws.backup#CreateLogicallyAirGappedBackupVault"
+ },
{
"target": "com.amazonaws.backup#CreateReportPlan"
},
@@ -2229,6 +2344,9 @@
{
"target": "com.amazonaws.backup#ListProtectedResources"
},
+ {
+ "target": "com.amazonaws.backup#ListProtectedResourcesByBackupVault"
+ },
{
"target": "com.amazonaws.backup#ListRecoveryPointsByBackupVault"
},
@@ -3929,7 +4047,7 @@
"State": {
"target": "com.amazonaws.backup#BackupJobState",
"traits": {
- "smithy.api#documentation": "The current state of a resource recovery point.
"
+ "smithy.api#documentation": "The current state of a backup job.
"
}
},
"StatusMessage": {
@@ -4076,6 +4194,13 @@
"smithy.api#httpLabel": {},
"smithy.api#required": {}
}
+ },
+ "BackupVaultAccountId": {
+ "target": "com.amazonaws.backup#string",
+ "traits": {
+ "smithy.api#documentation": "This is the account ID of the specified backup vault.
",
+ "smithy.api#httpQuery": "backupVaultAccountId"
+ }
}
},
"traits": {
@@ -4097,6 +4222,12 @@
"smithy.api#documentation": "An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example,\n arn:aws:backup:us-east-1:123456789012:vault:aBackupVault
.
"
}
},
+ "VaultType": {
+ "target": "com.amazonaws.backup#VaultType",
+ "traits": {
+ "smithy.api#documentation": "This is the type of vault described.
"
+ }
+ },
"EncryptionKeyArn": {
"target": "com.amazonaws.backup#ARN",
"traits": {
@@ -4498,6 +4629,13 @@
"smithy.api#httpLabel": {},
"smithy.api#required": {}
}
+ },
+ "BackupVaultAccountId": {
+ "target": "com.amazonaws.backup#AccountId",
+ "traits": {
+ "smithy.api#documentation": "This is the account ID of the specified backup vault.
",
+ "smithy.api#httpQuery": "backupVaultAccountId"
+ }
}
},
"traits": {
@@ -5902,6 +6040,13 @@
"smithy.api#httpLabel": {},
"smithy.api#required": {}
}
+ },
+ "BackupVaultAccountId": {
+ "target": "com.amazonaws.backup#AccountId",
+ "traits": {
+ "smithy.api#documentation": "This is the account ID of the specified backup vault.
",
+ "smithy.api#httpQuery": "backupVaultAccountId"
+ }
}
},
"traits": {
@@ -6737,6 +6882,21 @@
"com.amazonaws.backup#ListBackupVaultsInput": {
"type": "structure",
"members": {
+ "ByVaultType": {
+ "target": "com.amazonaws.backup#VaultType",
+ "traits": {
+ "smithy.api#documentation": "This parameter will sort the list of vaults by vault type.
",
+ "smithy.api#httpQuery": "vaultType"
+ }
+ },
+ "ByShared": {
+ "target": "com.amazonaws.backup#Boolean2",
+ "traits": {
+ "smithy.api#default": false,
+ "smithy.api#documentation": "This parameter will sort the list of vaults by shared vaults.
",
+ "smithy.api#httpQuery": "shared"
+ }
+ },
"NextToken": {
"target": "com.amazonaws.backup#string",
"traits": {
@@ -7103,6 +7263,97 @@
}
}
},
+ "com.amazonaws.backup#ListProtectedResourcesByBackupVault": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.backup#ListProtectedResourcesByBackupVaultInput"
+ },
+ "output": {
+ "target": "com.amazonaws.backup#ListProtectedResourcesByBackupVaultOutput"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.backup#InvalidParameterValueException"
+ },
+ {
+ "target": "com.amazonaws.backup#ResourceNotFoundException"
+ },
+ {
+ "target": "com.amazonaws.backup#ServiceUnavailableException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "This request lists the protected resources corresponding to each backup vault.
",
+ "smithy.api#http": {
+ "method": "GET",
+ "uri": "/backup-vaults/{BackupVaultName}/resources",
+ "code": 200
+ },
+ "smithy.api#paginated": {
+ "inputToken": "NextToken",
+ "outputToken": "NextToken",
+ "items": "Results",
+ "pageSize": "MaxResults"
+ }
+ }
+ },
+ "com.amazonaws.backup#ListProtectedResourcesByBackupVaultInput": {
+ "type": "structure",
+ "members": {
+ "BackupVaultName": {
+ "target": "com.amazonaws.backup#BackupVaultName",
+ "traits": {
+ "smithy.api#documentation": "This is the list of protected resources by backup vault within the vault(s) you specify by name.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "BackupVaultAccountId": {
+ "target": "com.amazonaws.backup#AccountId",
+ "traits": {
+ "smithy.api#documentation": "This is the list of protected resources by backup vault within the vault(s) you specify by account ID.
",
+ "smithy.api#httpQuery": "backupVaultAccountId"
+ }
+ },
+ "NextToken": {
+ "target": "com.amazonaws.backup#string",
+ "traits": {
+ "smithy.api#documentation": "The next item following a partial list of returned items. For example, if a request is\n made to return maxResults
number of items, NextToken
allows you\n to return more items in your list starting at the location pointed to by the next\n token.
",
+ "smithy.api#httpQuery": "nextToken"
+ }
+ },
+ "MaxResults": {
+ "target": "com.amazonaws.backup#MaxResults",
+ "traits": {
+ "smithy.api#documentation": "The maximum number of items to be returned.
",
+ "smithy.api#httpQuery": "maxResults"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.backup#ListProtectedResourcesByBackupVaultOutput": {
+ "type": "structure",
+ "members": {
+ "Results": {
+ "target": "com.amazonaws.backup#ProtectedResourcesList",
+ "traits": {
+ "smithy.api#documentation": "These are the results returned for the request ListProtectedResourcesByBackupVault.
"
+ }
+ },
+ "NextToken": {
+ "target": "com.amazonaws.backup#string",
+ "traits": {
+ "smithy.api#documentation": "The next item following a partial list of returned items. For example, if a request is\n made to return maxResults
number of items, NextToken
allows you\n to return more items in your list starting at the location pointed to by the next\n token.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.backup#ListProtectedResourcesInput": {
"type": "structure",
"members": {
@@ -7194,6 +7445,13 @@
"smithy.api#required": {}
}
},
+ "BackupVaultAccountId": {
+ "target": "com.amazonaws.backup#AccountId",
+ "traits": {
+ "smithy.api#documentation": "This parameter will sort the list of recovery points by account ID.
",
+ "smithy.api#httpQuery": "backupVaultAccountId"
+ }
+ },
"NextToken": {
"target": "com.amazonaws.backup#string",
"traits": {
@@ -9027,19 +9285,19 @@
"StartWindowMinutes": {
"target": "com.amazonaws.backup#WindowMinutes",
"traits": {
- "smithy.api#documentation": "A value in minutes after a backup is scheduled before a job will be canceled if it\n doesn't start successfully. This value is optional, and the default is 8 hours. \n If this value is included, it must be at least 60 minutes to avoid errors.
\n During the start window, the backup job status remains in CREATED
status until it \n has successfully begun or until the start window time has run out. If within the start \n window time Backup receives an error that allows the job to be retried, \n Backup will automatically retry to begin the job at least every 10 minutes \n until the backup \n successfully begins (the job status changes to RUNNING
) or until the job status \n changes to EXPIRED
(which is expected to occur when the start window time is over).
"
+ "smithy.api#documentation": "A value in minutes after a backup is scheduled before a job will be canceled if it\n doesn't start successfully. This value is optional, and the default is 8 hours. \n If this value is included, it must be at least 60 minutes to avoid errors.
\n This parameter has a maximum value of 100 years (52,560,000 minutes).
\n During the start window, the backup job status remains in CREATED
status until it \n has successfully begun or until the start window time has run out. If within the start \n window time Backup receives an error that allows the job to be retried, \n Backup will automatically retry to begin the job at least every 10 minutes \n until the backup \n successfully begins (the job status changes to RUNNING
) or until the job status \n changes to EXPIRED
(which is expected to occur when the start window time is over).
"
}
},
"CompleteWindowMinutes": {
"target": "com.amazonaws.backup#WindowMinutes",
"traits": {
- "smithy.api#documentation": "A value in minutes during which a successfully started backup must complete, or else\n Backup will cancel the job. This value is optional. This value begins\n counting down from when the backup was scheduled. It does not add additional time for\n StartWindowMinutes
, or if the backup started later than scheduled.
"
+ "smithy.api#documentation": "A value in minutes during which a successfully started backup must complete, or else\n Backup will cancel the job. This value is optional. This value begins\n counting down from when the backup was scheduled. It does not add additional time for\n StartWindowMinutes
, or if the backup started later than scheduled.
\n Like StartWindowMinutes
, this parameter has a maximum value of \n 100 years (52,560,000 minutes).
"
}
},
"Lifecycle": {
"target": "com.amazonaws.backup#Lifecycle",
"traits": {
- "smithy.api#documentation": "The lifecycle defines when a protected resource is transitioned to cold storage and when\n it expires. Backup will transition and expire backups automatically according\n to the lifecycle that you define.
\n Backups transitioned to cold storage must be stored in cold storage for a minimum of 90\n days. Therefore, the “retention” setting must be 90 days greater than the “transition to\n cold after days” setting. The “transition to cold after days” setting cannot be changed\n after a backup has been transitioned to cold.
\n Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" \n section of the \n Feature availability by resource table. Backup ignores this expression for\n other resource types.
"
+ "smithy.api#documentation": "The lifecycle defines when a protected resource is transitioned to cold storage and when\n it expires. Backup will transition and expire backups automatically according\n to the lifecycle that you define.
\n Backups transitioned to cold storage must be stored in cold storage for a minimum of 90\n days. Therefore, the “retention” setting must be 90 days greater than the “transition to\n cold after days” setting. The “transition to cold after days” setting cannot be changed\n after a backup has been transitioned to cold.
\n Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" \n section of the \n Feature availability by resource table. Backup ignores this expression for\n other resource types.
\n This parameter has a maximum value of 100 years (36,500 days).
"
}
},
"RecoveryPointTags": {
@@ -10073,6 +10331,46 @@
"target": "com.amazonaws.backup#string"
}
},
+ "com.amazonaws.backup#VaultState": {
+ "type": "enum",
+ "members": {
+ "CREATING": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "CREATING"
+ }
+ },
+ "AVAILABLE": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "AVAILABLE"
+ }
+ },
+ "FAILED": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "FAILED"
+ }
+ }
+ }
+ },
+ "com.amazonaws.backup#VaultType": {
+ "type": "enum",
+ "members": {
+ "BACKUP_VAULT": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "BACKUP_VAULT"
+ }
+ },
+ "LOGICALLY_AIR_GAPPED_BACKUP_VAULT": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "LOGICALLY_AIR_GAPPED_BACKUP_VAULT"
+ }
+ }
+ }
+ },
"com.amazonaws.backup#WindowMinutes": {
"type": "long"
},