Associate a Source Network to an existing CloudFormation Stack and modify launch templates to use this network. Can be used for reverting to previously deployed CloudFormation stacks.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DrsClient, AssociateSourceNetworkStackCommand } from "@aws-sdk/client-drs"; // ES Modules import + * // const { DrsClient, AssociateSourceNetworkStackCommand } = require("@aws-sdk/client-drs"); // CommonJS import + * const client = new DrsClient(config); + * const input = { // AssociateSourceNetworkStackRequest + * sourceNetworkID: "STRING_VALUE", // required + * cfnStackName: "STRING_VALUE", // required + * }; + * const command = new AssociateSourceNetworkStackCommand(input); + * const response = await client.send(command); + * // { // AssociateSourceNetworkStackResponse + * // job: { // Job + * // jobID: "STRING_VALUE", // required + * // arn: "STRING_VALUE", + * // type: "STRING_VALUE", + * // initiatedBy: "STRING_VALUE", + * // creationDateTime: "STRING_VALUE", + * // endDateTime: "STRING_VALUE", + * // status: "STRING_VALUE", + * // participatingServers: [ // ParticipatingServers + * // { // ParticipatingServer + * // sourceServerID: "STRING_VALUE", + * // recoveryInstanceID: "STRING_VALUE", + * // launchStatus: "STRING_VALUE", + * // }, + * // ], + * // tags: { // TagsMap + * // "The request could not be completed due to a conflict with the current state of the target resource.
+ * + * @throws {@link InternalServerException} (server fault) + *The request processing has failed because of an unknown error, exception or failure.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The resource for this operation was not found.
+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *The request could not be completed because its exceeded the service quota.
+ * + * @throws {@link ThrottlingException} (client fault) + *The request was denied due to request throttling.
+ * + * @throws {@link UninitializedAccountException} (client fault) + *The account performing the request has not been initialized.
+ * + * @throws {@link ValidationException} (client fault) + *The input fails to satisfy the constraints specified by the AWS service.
+ * + * @throws {@link DrsServiceException} + *Base exception class for all service exceptions from Drs service.
+ * + */ +export class AssociateSourceNetworkStackCommand extends $Command< + AssociateSourceNetworkStackCommandInput, + AssociateSourceNetworkStackCommandOutput, + DrsClientResolvedConfig +> { + // 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: AssociateSourceNetworkStackCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackCreate a new Source Network resource for a provided VPC ID.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DrsClient, CreateSourceNetworkCommand } from "@aws-sdk/client-drs"; // ES Modules import + * // const { DrsClient, CreateSourceNetworkCommand } = require("@aws-sdk/client-drs"); // CommonJS import + * const client = new DrsClient(config); + * const input = { // CreateSourceNetworkRequest + * vpcID: "STRING_VALUE", // required + * originAccountID: "STRING_VALUE", // required + * originRegion: "STRING_VALUE", // required + * tags: { // TagsMap + * "The request could not be completed due to a conflict with the current state of the target resource.
+ * + * @throws {@link InternalServerException} (server fault) + *The request processing has failed because of an unknown error, exception or failure.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The resource for this operation was not found.
+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *The request could not be completed because its exceeded the service quota.
+ * + * @throws {@link ThrottlingException} (client fault) + *The request was denied due to request throttling.
+ * + * @throws {@link UninitializedAccountException} (client fault) + *The account performing the request has not been initialized.
+ * + * @throws {@link ValidationException} (client fault) + *The input fails to satisfy the constraints specified by the AWS service.
+ * + * @throws {@link DrsServiceException} + *Base exception class for all service exceptions from Drs service.
+ * + */ +export class CreateSourceNetworkCommand extends $Command< + CreateSourceNetworkCommandInput, + CreateSourceNetworkCommandOutput, + DrsClientResolvedConfig +> { + // 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: CreateSourceNetworkCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackDelete Source Network resource.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DrsClient, DeleteSourceNetworkCommand } from "@aws-sdk/client-drs"; // ES Modules import + * // const { DrsClient, DeleteSourceNetworkCommand } = require("@aws-sdk/client-drs"); // CommonJS import + * const client = new DrsClient(config); + * const input = { // DeleteSourceNetworkRequest + * sourceNetworkID: "STRING_VALUE", // required + * }; + * const command = new DeleteSourceNetworkCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param DeleteSourceNetworkCommandInput - {@link DeleteSourceNetworkCommandInput} + * @returns {@link DeleteSourceNetworkCommandOutput} + * @see {@link DeleteSourceNetworkCommandInput} for command's `input` shape. + * @see {@link DeleteSourceNetworkCommandOutput} for command's `response` shape. + * @see {@link DrsClientResolvedConfig | config} for DrsClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *The request could not be completed due to a conflict with the current state of the target resource.
+ * + * @throws {@link InternalServerException} (server fault) + *The request processing has failed because of an unknown error, exception or failure.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The resource for this operation was not found.
+ * + * @throws {@link ThrottlingException} (client fault) + *The request was denied due to request throttling.
+ * + * @throws {@link UninitializedAccountException} (client fault) + *The account performing the request has not been initialized.
+ * + * @throws {@link DrsServiceException} + *Base exception class for all service exceptions from Drs service.
+ * + */ +export class DeleteSourceNetworkCommand extends $Command< + DeleteSourceNetworkCommandInput, + DeleteSourceNetworkCommandOutput, + DrsClientResolvedConfig +> { + // 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: DeleteSourceNetworkCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackLists all Source Networks or multiple Source Networks filtered by ID.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DrsClient, DescribeSourceNetworksCommand } from "@aws-sdk/client-drs"; // ES Modules import + * // const { DrsClient, DescribeSourceNetworksCommand } = require("@aws-sdk/client-drs"); // CommonJS import + * const client = new DrsClient(config); + * const input = { // DescribeSourceNetworksRequest + * filters: { // DescribeSourceNetworksRequestFilters + * sourceNetworkIDs: [ // DescribeSourceNetworksRequestFiltersIDs + * "STRING_VALUE", + * ], + * originAccountID: "STRING_VALUE", + * originRegion: "STRING_VALUE", + * }, + * maxResults: Number("int"), + * nextToken: "STRING_VALUE", + * }; + * const command = new DescribeSourceNetworksCommand(input); + * const response = await client.send(command); + * // { // DescribeSourceNetworksResponse + * // items: [ // SourceNetworksList + * // { // SourceNetwork + * // sourceNetworkID: "STRING_VALUE", + * // sourceVpcID: "STRING_VALUE", + * // arn: "STRING_VALUE", + * // tags: { // TagsMap + * // "The request processing has failed because of an unknown error, exception or failure.
+ * + * @throws {@link ThrottlingException} (client fault) + *The request was denied due to request throttling.
+ * + * @throws {@link UninitializedAccountException} (client fault) + *The account performing the request has not been initialized.
+ * + * @throws {@link ValidationException} (client fault) + *The input fails to satisfy the constraints specified by the AWS service.
+ * + * @throws {@link DrsServiceException} + *Base exception class for all service exceptions from Drs service.
+ * + */ +export class DescribeSourceNetworksCommand extends $Command< + DescribeSourceNetworksCommandInput, + DescribeSourceNetworksCommandOutput, + DrsClientResolvedConfig +> { + // 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: DescribeSourceNetworksCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackExport the Source Network CloudFormation template to an S3 bucket.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DrsClient, ExportSourceNetworkCfnTemplateCommand } from "@aws-sdk/client-drs"; // ES Modules import + * // const { DrsClient, ExportSourceNetworkCfnTemplateCommand } = require("@aws-sdk/client-drs"); // CommonJS import + * const client = new DrsClient(config); + * const input = { // ExportSourceNetworkCfnTemplateRequest + * sourceNetworkID: "STRING_VALUE", // required + * }; + * const command = new ExportSourceNetworkCfnTemplateCommand(input); + * const response = await client.send(command); + * // { // ExportSourceNetworkCfnTemplateResponse + * // s3DestinationUrl: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ExportSourceNetworkCfnTemplateCommandInput - {@link ExportSourceNetworkCfnTemplateCommandInput} + * @returns {@link ExportSourceNetworkCfnTemplateCommandOutput} + * @see {@link ExportSourceNetworkCfnTemplateCommandInput} for command's `input` shape. + * @see {@link ExportSourceNetworkCfnTemplateCommandOutput} for command's `response` shape. + * @see {@link DrsClientResolvedConfig | config} for DrsClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *The request could not be completed due to a conflict with the current state of the target resource.
+ * + * @throws {@link InternalServerException} (server fault) + *The request processing has failed because of an unknown error, exception or failure.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The resource for this operation was not found.
+ * + * @throws {@link ThrottlingException} (client fault) + *The request was denied due to request throttling.
+ * + * @throws {@link UninitializedAccountException} (client fault) + *The account performing the request has not been initialized.
+ * + * @throws {@link ValidationException} (client fault) + *The input fails to satisfy the constraints specified by the AWS service.
+ * + * @throws {@link DrsServiceException} + *Base exception class for all service exceptions from Drs service.
+ * + */ +export class ExportSourceNetworkCfnTemplateCommand extends $Command< + ExportSourceNetworkCfnTemplateCommandInput, + ExportSourceNetworkCfnTemplateCommandOutput, + DrsClientResolvedConfig +> { + // 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: ExportSourceNetworkCfnTemplateCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackDeploy VPC for the specified Source Network and modify launch templates to use this network. The VPC will be deployed using a dedicated CloudFormation stack.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DrsClient, StartSourceNetworkRecoveryCommand } from "@aws-sdk/client-drs"; // ES Modules import + * // const { DrsClient, StartSourceNetworkRecoveryCommand } = require("@aws-sdk/client-drs"); // CommonJS import + * const client = new DrsClient(config); + * const input = { // StartSourceNetworkRecoveryRequest + * sourceNetworks: [ // StartSourceNetworkRecoveryRequestNetworkEntries // required + * { // StartSourceNetworkRecoveryRequestNetworkEntry + * sourceNetworkID: "STRING_VALUE", // required + * cfnStackName: "STRING_VALUE", + * }, + * ], + * deployAsNew: true || false, + * tags: { // TagsMap + * "The request could not be completed due to a conflict with the current state of the target resource.
+ * + * @throws {@link InternalServerException} (server fault) + *The request processing has failed because of an unknown error, exception or failure.
+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *The request could not be completed because its exceeded the service quota.
+ * + * @throws {@link ThrottlingException} (client fault) + *The request was denied due to request throttling.
+ * + * @throws {@link UninitializedAccountException} (client fault) + *The account performing the request has not been initialized.
+ * + * @throws {@link ValidationException} (client fault) + *The input fails to satisfy the constraints specified by the AWS service.
+ * + * @throws {@link DrsServiceException} + *Base exception class for all service exceptions from Drs service.
+ * + */ +export class StartSourceNetworkRecoveryCommand extends $Command< + StartSourceNetworkRecoveryCommandInput, + StartSourceNetworkRecoveryCommandOutput, + DrsClientResolvedConfig +> { + // 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: StartSourceNetworkRecoveryCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackStarts replication for a Source Network. This action would make the Source Network protected.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DrsClient, StartSourceNetworkReplicationCommand } from "@aws-sdk/client-drs"; // ES Modules import + * // const { DrsClient, StartSourceNetworkReplicationCommand } = require("@aws-sdk/client-drs"); // CommonJS import + * const client = new DrsClient(config); + * const input = { // StartSourceNetworkReplicationRequest + * sourceNetworkID: "STRING_VALUE", // required + * }; + * const command = new StartSourceNetworkReplicationCommand(input); + * const response = await client.send(command); + * // { // StartSourceNetworkReplicationResponse + * // sourceNetwork: { // SourceNetwork + * // sourceNetworkID: "STRING_VALUE", + * // sourceVpcID: "STRING_VALUE", + * // arn: "STRING_VALUE", + * // tags: { // TagsMap + * // "The request could not be completed due to a conflict with the current state of the target resource.
+ * + * @throws {@link InternalServerException} (server fault) + *The request processing has failed because of an unknown error, exception or failure.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The resource for this operation was not found.
+ * + * @throws {@link ThrottlingException} (client fault) + *The request was denied due to request throttling.
+ * + * @throws {@link UninitializedAccountException} (client fault) + *The account performing the request has not been initialized.
+ * + * @throws {@link DrsServiceException} + *Base exception class for all service exceptions from Drs service.
+ * + */ +export class StartSourceNetworkReplicationCommand extends $Command< + StartSourceNetworkReplicationCommandInput, + StartSourceNetworkReplicationCommandOutput, + DrsClientResolvedConfig +> { + // 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: StartSourceNetworkReplicationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackStops replication for a Source Network. This action would make the Source Network unprotected.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DrsClient, StopSourceNetworkReplicationCommand } from "@aws-sdk/client-drs"; // ES Modules import + * // const { DrsClient, StopSourceNetworkReplicationCommand } = require("@aws-sdk/client-drs"); // CommonJS import + * const client = new DrsClient(config); + * const input = { // StopSourceNetworkReplicationRequest + * sourceNetworkID: "STRING_VALUE", // required + * }; + * const command = new StopSourceNetworkReplicationCommand(input); + * const response = await client.send(command); + * // { // StopSourceNetworkReplicationResponse + * // sourceNetwork: { // SourceNetwork + * // sourceNetworkID: "STRING_VALUE", + * // sourceVpcID: "STRING_VALUE", + * // arn: "STRING_VALUE", + * // tags: { // TagsMap + * // "The request could not be completed due to a conflict with the current state of the target resource.
+ * + * @throws {@link InternalServerException} (server fault) + *The request processing has failed because of an unknown error, exception or failure.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The resource for this operation was not found.
+ * + * @throws {@link ThrottlingException} (client fault) + *The request was denied due to request throttling.
+ * + * @throws {@link UninitializedAccountException} (client fault) + *The account performing the request has not been initialized.
+ * + * @throws {@link ValidationException} (client fault) + *The input fails to satisfy the constraints specified by the AWS service.
+ * + * @throws {@link DrsServiceException} + *Base exception class for all service exceptions from Drs service.
+ * + */ +export class StopSourceNetworkReplicationCommand extends $Command< + StopSourceNetworkReplicationCommandInput, + StopSourceNetworkReplicationCommandOutput, + DrsClientResolvedConfig +> { + // 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: StopSourceNetworkReplicationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackThe Source Network ID to associate with CloudFormation template.
+ */ + sourceNetworkID: string | undefined; + + /** + *CloudFormation template to associate with a Source Network.
+ */ + cfnStackName: string | undefined; +} + +/** + * @public + * @enum + */ +export const InitiatedBy = { + ASSOCIATE_NETWORK_RECOVERY: "ASSOCIATE_NETWORK_RECOVERY", + CREATE_NETWORK_RECOVERY: "CREATE_NETWORK_RECOVERY", + DIAGNOSTIC: "DIAGNOSTIC", + FAILBACK: "FAILBACK", + START_DRILL: "START_DRILL", + START_RECOVERY: "START_RECOVERY", + TARGET_ACCOUNT: "TARGET_ACCOUNT", + TERMINATE_RECOVERY_INSTANCES: "TERMINATE_RECOVERY_INSTANCES", + UPDATE_NETWORK_RECOVERY: "UPDATE_NETWORK_RECOVERY", +} as const; + +/** + * @public + */ +export type InitiatedBy = (typeof InitiatedBy)[keyof typeof InitiatedBy]; + +/** + * @public + * @enum + */ +export const LaunchStatus = { + FAILED: "FAILED", + IN_PROGRESS: "IN_PROGRESS", + LAUNCHED: "LAUNCHED", + PENDING: "PENDING", + TERMINATED: "TERMINATED", +} as const; + +/** + * @public + */ +export type LaunchStatus = (typeof LaunchStatus)[keyof typeof LaunchStatus]; + +/** + * @public + *ID of a resource participating in an asynchronous Job.
+ */ +export type ParticipatingResourceID = + | ParticipatingResourceID.SourceNetworkIDMember + | ParticipatingResourceID.$UnknownMember; + +/** + * @public + */ +export namespace ParticipatingResourceID { + /** + *Source Network ID.
+ */ + export interface SourceNetworkIDMember { + sourceNetworkID: string; + $unknown?: never; + } + + export interface $UnknownMember { + sourceNetworkID?: never; + $unknown: [string, any]; + } + + export interface VisitorRepresents a resource participating in an asynchronous Job.
+ */ +export interface ParticipatingResource { + /** + *The ID of a participating resource.
+ */ + participatingResourceID?: ParticipatingResourceID; + + /** + *The launch status of a participating resource.
+ */ + launchStatus?: LaunchStatus | string; +} + +/** + * @public + *Represents a server participating in an asynchronous Job.
+ */ +export interface ParticipatingServer { + /** + *The Source Server ID of a participating server.
+ */ + sourceServerID?: string; + + /** + *The Recovery Instance ID of a participating server.
+ */ + recoveryInstanceID?: string; + + /** + *The launch status of a participating server.
+ */ + launchStatus?: LaunchStatus | string; +} + +/** + * @public + * @enum + */ +export const JobStatus = { + COMPLETED: "COMPLETED", + PENDING: "PENDING", + STARTED: "STARTED", +} as const; + +/** + * @public + */ +export type JobStatus = (typeof JobStatus)[keyof typeof JobStatus]; + +/** + * @public + * @enum + */ +export const JobType = { + CREATE_CONVERTED_SNAPSHOT: "CREATE_CONVERTED_SNAPSHOT", + LAUNCH: "LAUNCH", + TERMINATE: "TERMINATE", +} as const; + +/** + * @public + */ +export type JobType = (typeof JobType)[keyof typeof JobType]; + +/** + * @public + *A job is an asynchronous workflow.
+ */ +export interface Job { + /** + *The ID of the Job.
+ */ + jobID: string | undefined; + + /** + *The ARN of a Job.
+ */ + arn?: string; + + /** + *The type of the Job.
+ */ + type?: JobType | string; + + /** + *A string representing who initiated the Job.
+ */ + initiatedBy?: InitiatedBy | string; + + /** + *The date and time of when the Job was created.
+ */ + creationDateTime?: string; + + /** + *The date and time of when the Job ended.
+ */ + endDateTime?: string; + + /** + *The status of the Job.
+ */ + status?: JobStatus | string; + + /** + *A list of servers that the Job is acting upon.
+ */ + participatingServers?: ParticipatingServer[]; + + /** + *A list of tags associated with the Job.
+ */ + tags?: RecordA list of resources that the Job is acting upon.
+ */ + participatingResources?: ParticipatingResource[]; +} + +/** + * @public + */ +export interface AssociateSourceNetworkStackResponse { + /** + *The Source Network association Job.
+ */ + job?: Job; +} + /** * @public *The request could not be completed due to a conflict with the current state of the target resource.
*/ -export class ConflictException extends __BaseException { - readonly name: "ConflictException" = "ConflictException"; +export class ConflictException extends __BaseException { + readonly name: "ConflictException" = "ConflictException"; + readonly $fault: "client" = "client"; + code?: string; + /** + *The ID of the resource.
+ */ + resourceId?: string; + + /** + *The type of the resource.
+ */ + resourceType?: string; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionTypeThe request processing has failed because of an unknown error, exception or failure.
+ */ +export class InternalServerException extends __BaseException { + readonly name: "InternalServerException" = "InternalServerException"; + readonly $fault: "server" = "server"; + /** + *The number of seconds after which the request should be safe to retry.
+ */ + retryAfterSeconds?: number; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionTypeThe resource for this operation was not found.
+ */ +export class ResourceNotFoundException extends __BaseException { + readonly name: "ResourceNotFoundException" = "ResourceNotFoundException"; + readonly $fault: "client" = "client"; + code?: string; + /** + *The ID of the resource.
+ */ + resourceId?: string; + + /** + *The type of the resource.
+ */ + resourceType?: string; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionTypeThe request could not be completed because its exceeded the service quota.
+ */ +export class ServiceQuotaExceededException extends __BaseException { + readonly name: "ServiceQuotaExceededException" = "ServiceQuotaExceededException"; + readonly $fault: "client" = "client"; + code?: string; + /** + *The ID of the resource.
+ */ + resourceId?: string; + + /** + *The type of the resource.
+ */ + resourceType?: string; + + /** + *Service code.
+ */ + serviceCode?: string; + + /** + *Quota code.
+ */ + quotaCode?: string; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionTypeThe request was denied due to request throttling.
+ */ +export class ThrottlingException extends __BaseException { + readonly name: "ThrottlingException" = "ThrottlingException"; + readonly $fault: "client" = "client"; + /** + *Service code.
+ */ + serviceCode?: string; + + /** + *Quota code.
+ */ + quotaCode?: string; + + /** + *The number of seconds after which the request should be safe to retry.
+ */ + retryAfterSeconds?: string; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionTypeThe account performing the request has not been initialized.
+ */ +export class UninitializedAccountException extends __BaseException { + readonly name: "UninitializedAccountException" = "UninitializedAccountException"; + readonly $fault: "client" = "client"; + code?: string; + /** + * @internal + */ + constructor(opts: __ExceptionOptionTypeValidate exception field.
+ */ +export interface ValidationExceptionField { + /** + *Validate exception field name.
+ */ + name?: string; + + /** + *Validate exception field message.
+ */ + message?: string; +} + +/** + * @public + * @enum + */ +export const ValidationExceptionReason = { + CANNOT_PARSE: "cannotParse", + FIELD_VALIDATION_FAILED: "fieldValidationFailed", + OTHER: "other", + UNKNOWN_OPERATION: "unknownOperation", +} as const; + +/** + * @public + */ +export type ValidationExceptionReason = (typeof ValidationExceptionReason)[keyof typeof ValidationExceptionReason]; + +/** + * @public + *The input fails to satisfy the constraints specified by the AWS service.
+ */ +export class ValidationException extends __BaseException { + readonly name: "ValidationException" = "ValidationException"; readonly $fault: "client" = "client"; code?: string; /** - *The ID of the resource.
+ *Validation exception reason.
*/ - resourceId?: string; + reason?: ValidationExceptionReason | string; /** - *The type of the resource.
+ *A list of fields that failed validation.
*/ - resourceType?: string; + fieldList?: ValidationExceptionField[]; /** * @internal */ - constructor(opts: __ExceptionOptionTypeAn object containing information regarding the last launch of a Source Server.
@@ -686,291 +1123,64 @@ export interface SourceServer { tags?: RecordThe ID of the Recovery Instance associated with this Source Server.
- */ - recoveryInstanceId?: string; - - /** - *The status of the last recovery launch of this Source Server.
- */ - lastLaunchResult?: LastLaunchResult | string; - - /** - *The Data Replication Info of the Source Server.
- */ - dataReplicationInfo?: DataReplicationInfo; - - /** - *The lifecycle information of this Source Server.
- */ - lifeCycle?: LifeCycle; - - /** - *The source properties of the Source Server.
- */ - sourceProperties?: SourceProperties; - - /** - *The staging area of the source server.
- */ - stagingArea?: StagingArea; - - /** - *Source cloud properties of the Source Server.
- */ - sourceCloudProperties?: SourceCloudProperties; - - /** - *Replication direction of the Source Server.
- */ - replicationDirection?: ReplicationDirection | string; - - /** - *For EC2-originated Source Servers which have been failed over and then failed back, this value will mean the ARN of the Source Server on the opposite replication direction.
- */ - reversedDirectionSourceServerArn?: string; -} - -/** - * @public - */ -export interface CreateExtendedSourceServerResponse { - /** - *Created extended source server.
- */ - sourceServer?: SourceServer; -} - -/** - * @public - *The request processing has failed because of an unknown error, exception or failure.
- */ -export class InternalServerException extends __BaseException { - readonly name: "InternalServerException" = "InternalServerException"; - readonly $fault: "server" = "server"; - /** - *The number of seconds after which the request should be safe to retry.
- */ - retryAfterSeconds?: number; - - /** - * @internal - */ - constructor(opts: __ExceptionOptionTypeThe resource for this operation was not found.
- */ -export class ResourceNotFoundException extends __BaseException { - readonly name: "ResourceNotFoundException" = "ResourceNotFoundException"; - readonly $fault: "client" = "client"; - code?: string; - /** - *The ID of the resource.
- */ - resourceId?: string; - - /** - *The type of the resource.
- */ - resourceType?: string; - - /** - * @internal - */ - constructor(opts: __ExceptionOptionTypeThe request could not be completed because its exceeded the service quota.
- */ -export class ServiceQuotaExceededException extends __BaseException { - readonly name: "ServiceQuotaExceededException" = "ServiceQuotaExceededException"; - readonly $fault: "client" = "client"; - code?: string; - /** - *The ID of the resource.
- */ - resourceId?: string; - - /** - *The type of the resource.
- */ - resourceType?: string; - - /** - *Service code.
- */ - serviceCode?: string; - - /** - *Quota code.
- */ - quotaCode?: string; - - /** - * @internal - */ - constructor(opts: __ExceptionOptionTypeThe request was denied due to request throttling.
- */ -export class ThrottlingException extends __BaseException { - readonly name: "ThrottlingException" = "ThrottlingException"; - readonly $fault: "client" = "client"; - /** - *Service code.
- */ - serviceCode?: string; - - /** - *Quota code.
+ *The ID of the Recovery Instance associated with this Source Server.
*/ - quotaCode?: string; + recoveryInstanceId?: string; /** - *The number of seconds after which the request should be safe to retry.
+ *The status of the last recovery launch of this Source Server.
*/ - retryAfterSeconds?: string; + lastLaunchResult?: LastLaunchResult | string; /** - * @internal + *The Data Replication Info of the Source Server.
*/ - constructor(opts: __ExceptionOptionTypeThe account performing the request has not been initialized.
- */ -export class UninitializedAccountException extends __BaseException { - readonly name: "UninitializedAccountException" = "UninitializedAccountException"; - readonly $fault: "client" = "client"; - code?: string; /** - * @internal + *The lifecycle information of this Source Server.
*/ - constructor(opts: __ExceptionOptionTypeValidate exception field.
- */ -export interface ValidationExceptionField { /** - *Validate exception field name.
+ *The source properties of the Source Server.
*/ - name?: string; + sourceProperties?: SourceProperties; /** - *Validate exception field message.
+ *The staging area of the source server.
*/ - message?: string; -} + stagingArea?: StagingArea; -/** - * @public - * @enum - */ -export const ValidationExceptionReason = { - CANNOT_PARSE: "cannotParse", - FIELD_VALIDATION_FAILED: "fieldValidationFailed", - OTHER: "other", - UNKNOWN_OPERATION: "unknownOperation", -} as const; + /** + *Source cloud properties of the Source Server.
+ */ + sourceCloudProperties?: SourceCloudProperties; -/** - * @public - */ -export type ValidationExceptionReason = (typeof ValidationExceptionReason)[keyof typeof ValidationExceptionReason]; + /** + *Replication direction of the Source Server.
+ */ + replicationDirection?: ReplicationDirection | string; -/** - * @public - *The input fails to satisfy the constraints specified by the AWS service.
- */ -export class ValidationException extends __BaseException { - readonly name: "ValidationException" = "ValidationException"; - readonly $fault: "client" = "client"; - code?: string; /** - *Validation exception reason.
+ *For EC2-originated Source Servers which have been failed over and then failed back, this value will mean the ARN of the Source Server on the opposite replication direction.
*/ - reason?: ValidationExceptionReason | string; + reversedDirectionSourceServerArn?: string; /** - *A list of fields that failed validation.
+ *ID of the Source Network which is protecting this Source Server's network.
*/ - fieldList?: ValidationExceptionField[]; + sourceNetworkID?: string; +} +/** + * @public + */ +export interface CreateExtendedSourceServerResponse { /** - * @internal + *Created extended source server.
*/ - constructor(opts: __ExceptionOptionTypeLicensing.
*/ licensing?: Licensing; + + /** + *S3 bucket ARN to export Source Network templates.
+ */ + exportBucketArn?: string; } /** @@ -1092,6 +1307,11 @@ export interface LaunchConfigurationTemplate { *Licensing.
*/ licensing?: Licensing; + + /** + *S3 bucket ARN to export Source Network templates.
+ */ + exportBucketArn?: string; } /** @@ -1143,6 +1363,7 @@ export type ReplicationConfigurationDefaultLargeStagingDiskType = export const ReplicationConfigurationEbsEncryption = { CUSTOM: "CUSTOM", DEFAULT: "DEFAULT", + NONE: "NONE", } as const; /** @@ -1367,6 +1588,41 @@ export interface ReplicationConfigurationTemplate { autoReplicateNewDisks?: boolean; } +/** + * @public + */ +export interface CreateSourceNetworkRequest { + /** + *Which VPC ID to protect.
+ */ + vpcID: string | undefined; + + /** + *Account containing the VPC to protect.
+ */ + originAccountID: string | undefined; + + /** + *Region containing the VPC to protect.
+ */ + originRegion: string | undefined; + + /** + *A set of tags to be associated with the Source Network resource.
+ */ + tags?: RecordID of the created Source Network.
+ */ + sourceNetworkID?: string; +} + /** * @public */ @@ -1422,6 +1678,21 @@ export interface DeleteReplicationConfigurationTemplateRequest { */ export interface DeleteReplicationConfigurationTemplateResponse {} +/** + * @public + */ +export interface DeleteSourceNetworkRequest { + /** + *ID of the Source Network to delete.
+ */ + sourceNetworkID: string | undefined; +} + +/** + * @public + */ +export interface DeleteSourceNetworkResponse {} + /** * @public */ @@ -1468,15 +1739,25 @@ export const JobLogEvent = { CONVERSION_END: "CONVERSION_END", CONVERSION_FAIL: "CONVERSION_FAIL", CONVERSION_START: "CONVERSION_START", + DEPLOY_NETWORK_CONFIGURATION_END: "DEPLOY_NETWORK_CONFIGURATION_END", + DEPLOY_NETWORK_CONFIGURATION_FAILED: "DEPLOY_NETWORK_CONFIGURATION_FAILED", + DEPLOY_NETWORK_CONFIGURATION_START: "DEPLOY_NETWORK_CONFIGURATION_START", JOB_CANCEL: "JOB_CANCEL", JOB_END: "JOB_END", JOB_START: "JOB_START", LAUNCH_FAILED: "LAUNCH_FAILED", LAUNCH_START: "LAUNCH_START", + NETWORK_RECOVERY_FAIL: "NETWORK_RECOVERY_FAIL", SERVER_SKIPPED: "SERVER_SKIPPED", SNAPSHOT_END: "SNAPSHOT_END", SNAPSHOT_FAIL: "SNAPSHOT_FAIL", SNAPSHOT_START: "SNAPSHOT_START", + UPDATE_LAUNCH_TEMPLATE_END: "UPDATE_LAUNCH_TEMPLATE_END", + UPDATE_LAUNCH_TEMPLATE_FAILED: "UPDATE_LAUNCH_TEMPLATE_FAILED", + UPDATE_LAUNCH_TEMPLATE_START: "UPDATE_LAUNCH_TEMPLATE_START", + UPDATE_NETWORK_CONFIGURATION_END: "UPDATE_NETWORK_CONFIGURATION_END", + UPDATE_NETWORK_CONFIGURATION_FAILED: "UPDATE_NETWORK_CONFIGURATION_FAILED", + UPDATE_NETWORK_CONFIGURATION_START: "UPDATE_NETWORK_CONFIGURATION_START", USING_PREVIOUS_SNAPSHOT: "USING_PREVIOUS_SNAPSHOT", USING_PREVIOUS_SNAPSHOT_FAILED: "USING_PREVIOUS_SNAPSHOT_FAILED", } as const; @@ -1488,230 +1769,175 @@ export type JobLogEvent = (typeof JobLogEvent)[keyof typeof JobLogEvent]; /** * @public - *Metadata associated with a Job log.
+ *Properties of Source Network related to a job event.
*/ -export interface JobLogEventData { - /** - *The ID of a Source Server.
- */ - sourceServerID?: string; - +export interface SourceNetworkData { /** - *The ID of a conversion server.
+ *Source Network ID.
*/ - conversionServerID?: string; + sourceNetworkID?: string; /** - *The ID of a Recovery Instance.
+ *VPC ID protected by the Source Network.
*/ - targetInstanceID?: string; + sourceVpc?: string; /** - *A string representing a job error.
+ *ID of the recovered VPC following Source Network recovery.
*/ - rawError?: string; + targetVpc?: string; /** - *Properties of a conversion job
+ *CloudFormation stack name that was deployed for recovering the Source Network.
*/ - conversionProperties?: ConversionProperties; + stackName?: string; } /** * @public - *A log outputted by a Job.
+ *Properties of resource related to a job event.
*/ -export interface JobLog { - /** - *The date and time the log was taken.
- */ - logDateTime?: string; - - /** - *The event represents the type of a log.
- */ - event?: JobLogEvent | string; - - /** - *Metadata associated with a Job log.
- */ - eventData?: JobLogEventData; -} +export type EventResourceData = EventResourceData.SourceNetworkDataMember | EventResourceData.$UnknownMember; /** * @public */ -export interface DescribeJobLogItemsResponse { - /** - *An array of Job log items.
- */ - items?: JobLog[]; - +export namespace EventResourceData { /** - *The token of the next Job log items to retrieve.
+ *Source Network properties.
*/ - nextToken?: string; -} + export interface SourceNetworkDataMember { + sourceNetworkData: SourceNetworkData; + $unknown?: never; + } -/** - * @public - *A set of filters by which to return Jobs.
- */ -export interface DescribeJobsRequestFilters { - /** - *An array of Job IDs that should be returned. An empty array means all jobs.
- */ - jobIDs?: string[]; + export interface $UnknownMember { + sourceNetworkData?: never; + $unknown: [string, any]; + } - /** - *The start date in a date range query.
- */ - fromDate?: string; + export interface VisitorThe end date in a date range query.
- */ - toDate?: string; + export const visit =Metadata associated with a Job log.
*/ -export interface DescribeJobsRequest { +export interface JobLogEventData { /** - *A set of filters by which to return Jobs.
+ *The ID of a Source Server.
*/ - filters?: DescribeJobsRequestFilters; + sourceServerID?: string; /** - *Maximum number of Jobs to retrieve.
+ *The ID of a conversion server.
*/ - maxResults?: number; + conversionServerID?: string; /** - *The token of the next Job to retrieve.
- */ - nextToken?: string; -} - -/** - * @public - * @enum - */ -export const InitiatedBy = { - DIAGNOSTIC: "DIAGNOSTIC", - FAILBACK: "FAILBACK", - START_DRILL: "START_DRILL", - START_RECOVERY: "START_RECOVERY", - TARGET_ACCOUNT: "TARGET_ACCOUNT", - TERMINATE_RECOVERY_INSTANCES: "TERMINATE_RECOVERY_INSTANCES", -} as const; - -/** - * @public - */ -export type InitiatedBy = (typeof InitiatedBy)[keyof typeof InitiatedBy]; - -/** - * @public - *Represents a server participating in an asynchronous Job.
- */ -export interface ParticipatingServer { + *The ID of a Recovery Instance.
+ */ + targetInstanceID?: string; + /** - *The Source Server ID of a participating server.
+ *A string representing a job error.
*/ - sourceServerID?: string; + rawError?: string; /** - *The Recovery Instance ID of a participating server.
+ *Properties of a conversion job
*/ - recoveryInstanceID?: string; + conversionProperties?: ConversionProperties; /** - *The launch status of a participating server.
+ *Properties of resource related to a job event.
*/ - launchStatus?: LaunchStatus | string; + eventResourceData?: EventResourceData; } /** * @public - * @enum - */ -export const JobStatus = { - COMPLETED: "COMPLETED", - PENDING: "PENDING", - STARTED: "STARTED", -} as const; - -/** - * @public + *A log outputted by a Job.
*/ -export type JobStatus = (typeof JobStatus)[keyof typeof JobStatus]; +export interface JobLog { + /** + *The date and time the log was taken.
+ */ + logDateTime?: string; -/** - * @public - * @enum - */ -export const JobType = { - CREATE_CONVERTED_SNAPSHOT: "CREATE_CONVERTED_SNAPSHOT", - LAUNCH: "LAUNCH", - TERMINATE: "TERMINATE", -} as const; + /** + *The event represents the type of a log.
+ */ + event?: JobLogEvent | string; -/** - * @public - */ -export type JobType = (typeof JobType)[keyof typeof JobType]; + /** + *Metadata associated with a Job log.
+ */ + eventData?: JobLogEventData; +} /** * @public - *A job is an asynchronous workflow.
*/ -export interface Job { - /** - *The ID of the Job.
- */ - jobID: string | undefined; - +export interface DescribeJobLogItemsResponse { /** - *The ARN of a Job.
+ *An array of Job log items.
*/ - arn?: string; + items?: JobLog[]; /** - *The type of the Job.
+ *The token of the next Job log items to retrieve.
*/ - type?: JobType | string; + nextToken?: string; +} +/** + * @public + *A set of filters by which to return Jobs.
+ */ +export interface DescribeJobsRequestFilters { /** - *A string representing who initiated the Job.
+ *An array of Job IDs that should be returned. An empty array means all jobs.
*/ - initiatedBy?: InitiatedBy | string; + jobIDs?: string[]; /** - *The date and time of when the Job was created.
+ *The start date in a date range query.
*/ - creationDateTime?: string; + fromDate?: string; /** - *The date and time of when the Job ended.
+ *The end date in a date range query.
*/ - endDateTime?: string; + toDate?: string; +} +/** + * @public + */ +export interface DescribeJobsRequest { /** - *The status of the Job.
+ *A set of filters by which to return Jobs.
*/ - status?: JobStatus | string; + filters?: DescribeJobsRequestFilters; /** - *A list of servers that the Job is acting upon.
+ *Maximum number of Jobs to retrieve.
*/ - participatingServers?: ParticipatingServer[]; + maxResults?: number; /** - *A list of tags associated with the Job.
+ *The token of the next Job to retrieve.
*/ - tags?: RecordEnvironment (On Premises / AWS) of the instance that the recovery instance originated from.
+ *Environment (On Premises / AWS) of the instance that the recovery instance originated from.
+ */ + originEnvironment?: OriginEnvironment | string; + + /** + *AWS availability zone associated with the recovery instance.
+ */ + originAvailabilityZone?: string; +} + +/** + * @public + */ +export interface DescribeRecoveryInstancesResponse { + /** + *The token of the next Recovery Instance to retrieve.
+ */ + nextToken?: string; + + /** + *An array of Recovery Instances.
+ */ + items?: RecoveryInstance[]; +} + +/** + * @public + *A set of filters by which to return Recovery Snapshots.
+ */ +export interface DescribeRecoverySnapshotsRequestFilters { + /** + *The start date in a date range query.
+ */ + fromDateTime?: string; + + /** + *The end date in a date range query.
+ */ + toDateTime?: string; +} + +/** + * @public + * @enum + */ +export const RecoverySnapshotsOrder = { + ASC: "ASC", + DESC: "DESC", +} as const; + +/** + * @public + */ +export type RecoverySnapshotsOrder = (typeof RecoverySnapshotsOrder)[keyof typeof RecoverySnapshotsOrder]; + +/** + * @public + */ +export interface DescribeRecoverySnapshotsRequest { + /** + *Filter Recovery Snapshots by Source Server ID.
+ */ + sourceServerID: string | undefined; + + /** + *A set of filters by which to return Recovery Snapshots.
+ */ + filters?: DescribeRecoverySnapshotsRequestFilters; + + /** + *The sorted ordering by which to return Recovery Snapshots.
+ */ + order?: RecoverySnapshotsOrder | string; + + /** + *Maximum number of Recovery Snapshots to retrieve.
+ */ + maxResults?: number; + + /** + *The token of the next Recovery Snapshot to retrieve.
+ */ + nextToken?: string; +} + +/** + * @public + *A snapshot of a Source Server used during recovery.
+ */ +export interface RecoverySnapshot { + /** + *The ID of the Recovery Snapshot.
+ */ + snapshotID: string | undefined; + + /** + *The ID of the Source Server that the snapshot was taken for.
+ */ + sourceServerID: string | undefined; + + /** + *The timestamp of when we expect the snapshot to be taken.
+ */ + expectedTimestamp: string | undefined; + + /** + *The actual timestamp that the snapshot was taken.
+ */ + timestamp?: string; + + /** + *A list of EBS snapshots.
+ */ + ebsSnapshots?: string[]; +} + +/** + * @public + */ +export interface DescribeRecoverySnapshotsResponse { + /** + *An array of Recovery Snapshots.
+ */ + items?: RecoverySnapshot[]; + + /** + *The token of the next Recovery Snapshot to retrieve.
+ */ + nextToken?: string; +} + +/** + * @public + */ +export interface DescribeReplicationConfigurationTemplatesRequest { + /** + *The IDs of the Replication Configuration Templates to retrieve. An empty list means all Replication Configuration Templates.
+ */ + replicationConfigurationTemplateIDs?: string[]; + + /** + *Maximum number of Replication Configuration Templates to retrieve.
+ */ + maxResults?: number; + + /** + *The token of the next Replication Configuration Template to retrieve.
+ */ + nextToken?: string; +} + +/** + * @public + */ +export interface DescribeReplicationConfigurationTemplatesResponse { + /** + *An array of Replication Configuration Templates.
*/ - originEnvironment?: OriginEnvironment | string; + items?: ReplicationConfigurationTemplate[]; /** - *AWS availability zone associated with the recovery instance.
+ *The token of the next Replication Configuration Template to retrieve.
*/ - originAvailabilityZone?: string; + nextToken?: string; } /** * @public + *A set of filters by which to return Source Networks.
*/ -export interface DescribeRecoveryInstancesResponse { +export interface DescribeSourceNetworksRequestFilters { /** - *The token of the next Recovery Instance to retrieve.
+ *An array of Source Network IDs that should be returned. An empty array means all Source Networks.
*/ - nextToken?: string; + sourceNetworkIDs?: string[]; /** - *An array of Recovery Instances.
+ *Filter Source Networks by account ID containing the protected VPCs.
*/ - items?: RecoveryInstance[]; + originAccountID?: string; + + /** + *Filter Source Networks by the region containing the protected VPCs.
+ */ + originRegion?: string; } /** * @public - *A set of filters by which to return Recovery Snapshots.
*/ -export interface DescribeRecoverySnapshotsRequestFilters { +export interface DescribeSourceNetworksRequest { /** - *The start date in a date range query.
+ *A set of filters by which to return Source Networks.
*/ - fromDateTime?: string; + filters?: DescribeSourceNetworksRequestFilters; /** - *The end date in a date range query.
+ *Maximum number of Source Networks to retrieve.
*/ - toDateTime?: string; + maxResults?: number; + + /** + *The token of the next Source Networks to retrieve.
+ */ + nextToken?: string; } /** * @public * @enum */ -export const RecoverySnapshotsOrder = { - ASC: "ASC", - DESC: "DESC", +export const RecoveryResult = { + ASSOCIATE_FAIL: "ASSOCIATE_FAIL", + ASSOCIATE_SUCCESS: "ASSOCIATE_SUCCESS", + FAIL: "FAIL", + IN_PROGRESS: "IN_PROGRESS", + NOT_STARTED: "NOT_STARTED", + PARTIAL_SUCCESS: "PARTIAL_SUCCESS", + SUCCESS: "SUCCESS", } as const; /** * @public */ -export type RecoverySnapshotsOrder = (typeof RecoverySnapshotsOrder)[keyof typeof RecoverySnapshotsOrder]; +export type RecoveryResult = (typeof RecoveryResult)[keyof typeof RecoveryResult]; /** * @public + *An object representing the Source Network recovery Lifecycle.
*/ -export interface DescribeRecoverySnapshotsRequest { +export interface RecoveryLifeCycle { /** - *Filter Recovery Snapshots by Source Server ID.
+ *The date and time the last Source Network recovery was initiated.
*/ - sourceServerID: string | undefined; + apiCallDateTime?: Date; /** - *A set of filters by which to return Recovery Snapshots.
+ *The ID of the Job that was used to last recover the Source Network.
*/ - filters?: DescribeRecoverySnapshotsRequestFilters; + jobID?: string; /** - *The sorted ordering by which to return Recovery Snapshots.
+ *The status of the last recovery status of this Source Network.
*/ - order?: RecoverySnapshotsOrder | string; + lastRecoveryResult?: RecoveryResult | string; +} - /** - *Maximum number of Recovery Snapshots to retrieve.
- */ - maxResults?: number; +/** + * @public + * @enum + */ +export const ReplicationStatus = { + ERROR: "ERROR", + IN_PROGRESS: "IN_PROGRESS", + PROTECTED: "PROTECTED", + STOPPED: "STOPPED", +} as const; - /** - *The token of the next Recovery Snapshot to retrieve.
- */ - nextToken?: string; -} +/** + * @public + */ +export type ReplicationStatus = (typeof ReplicationStatus)[keyof typeof ReplicationStatus]; /** * @public - *A snapshot of a Source Server used during recovery.
+ *The ARN of the Source Network.
*/ -export interface RecoverySnapshot { +export interface SourceNetwork { /** - *The ID of the Recovery Snapshot.
+ *Source Network ID.
*/ - snapshotID: string | undefined; + sourceNetworkID?: string; /** - *The ID of the Source Server that the snapshot was taken for.
+ *VPC ID protected by the Source Network.
*/ - sourceServerID: string | undefined; + sourceVpcID?: string; /** - *The timestamp of when we expect the snapshot to be taken.
+ *The ARN of the Source Network.
*/ - expectedTimestamp: string | undefined; + arn?: string; /** - *The actual timestamp that the snapshot was taken.
+ *A list of tags associated with the Source Network.
*/ - timestamp?: string; + tags?: RecordA list of EBS snapshots.
+ *Status of Source Network Replication. Possible values: + * (a) STOPPED - Source Network is not replicating. + * (b) IN_PROGRESS - Source Network is being replicated. + * (c) PROTECTED - Source Network was replicated successfully and is being synchronized for changes. + * (d) ERROR - Source Network replication has failed
*/ - ebsSnapshots?: string[]; -} + replicationStatus?: ReplicationStatus | string; -/** - * @public - */ -export interface DescribeRecoverySnapshotsResponse { /** - *An array of Recovery Snapshots.
+ *Error details in case Source Network replication status is ERROR.
*/ - items?: RecoverySnapshot[]; + replicationStatusDetails?: string; /** - *The token of the next Recovery Snapshot to retrieve.
+ *CloudFormation stack name that was deployed for recovering the Source Network.
*/ - nextToken?: string; -} + cfnStackName?: string; -/** - * @public - */ -export interface DescribeReplicationConfigurationTemplatesRequest { /** - *The IDs of the Replication Configuration Templates to retrieve. An empty list means all Replication Configuration Templates.
+ *Region containing the VPC protected by the Source Network.
*/ - replicationConfigurationTemplateIDs?: string[]; + sourceRegion?: string; /** - *Maximum number of Replication Configuration Templates to retrieve.
+ *Account ID containing the VPC protected by the Source Network.
*/ - maxResults?: number; + sourceAccountID?: string; /** - *The token of the next Replication Configuration Template to retrieve.
+ *An object containing information regarding the last recovery of the Source Network.
*/ - nextToken?: string; + lastRecovery?: RecoveryLifeCycle; + + /** + *ID of the recovered VPC following Source Network recovery.
+ */ + launchedVpcID?: string; } /** * @public */ -export interface DescribeReplicationConfigurationTemplatesResponse { +export interface DescribeSourceNetworksResponse { /** - *An array of Replication Configuration Templates.
+ *An array of Source Networks.
*/ - items?: ReplicationConfigurationTemplate[]; + items?: SourceNetwork[]; /** - *The token of the next Replication Configuration Template to retrieve.
+ *The token of the next Source Networks to retrieve.
*/ nextToken?: string; } @@ -2564,6 +2967,11 @@ export interface UpdateLaunchConfigurationTemplateRequest { *Licensing.
*/ licensing?: Licensing; + + /** + *S3 bucket ARN to export Source Network templates.
+ */ + exportBucketArn?: string; } /** @@ -2902,6 +3310,112 @@ export interface UpdateReplicationConfigurationTemplateRequest { autoReplicateNewDisks?: boolean; } +/** + * @public + */ +export interface ExportSourceNetworkCfnTemplateRequest { + /** + *The Source Network ID to export its CloudFormation template to an S3 bucket.
+ */ + sourceNetworkID: string | undefined; +} + +/** + * @public + */ +export interface ExportSourceNetworkCfnTemplateResponse { + /** + *S3 bucket URL where the Source Network CloudFormation template was exported to.
+ */ + s3DestinationUrl?: string; +} + +/** + * @public + *An object representing the Source Network to recover.
+ */ +export interface StartSourceNetworkRecoveryRequestNetworkEntry { + /** + *The ID of the Source Network you want to recover.
+ */ + sourceNetworkID: string | undefined; + + /** + *CloudFormation stack name to be used for recovering the network.
+ */ + cfnStackName?: string; +} + +/** + * @public + */ +export interface StartSourceNetworkRecoveryRequest { + /** + *The Source Networks that we want to start a Recovery Job for.
+ */ + sourceNetworks: StartSourceNetworkRecoveryRequestNetworkEntry[] | undefined; + + /** + *Don't update existing CloudFormation Stack, recover the network using a new stack.
+ */ + deployAsNew?: boolean; + + /** + *The tags to be associated with the Source Network recovery Job.
+ */ + tags?: RecordThe Source Network recovery Job.
+ */ + job?: Job; +} + +/** + * @public + */ +export interface StartSourceNetworkReplicationRequest { + /** + *ID of the Source Network to replicate.
+ */ + sourceNetworkID: string | undefined; +} + +/** + * @public + */ +export interface StartSourceNetworkReplicationResponse { + /** + *Source Network which was requested for replication.
+ */ + sourceNetwork?: SourceNetwork; +} + +/** + * @public + */ +export interface StopSourceNetworkReplicationRequest { + /** + *ID of the Source Network to stop replication.
+ */ + sourceNetworkID: string | undefined; +} + +/** + * @public + */ +export interface StopSourceNetworkReplicationResponse { + /** + *Source Network which was requested to stop replication.
+ */ + sourceNetwork?: SourceNetwork; +} + /** * @public */ @@ -3369,6 +3883,33 @@ export interface UntagResourceRequest { tagKeys: string[] | undefined; } +/** + * @internal + */ +export const AssociateSourceNetworkStackRequestFilterSensitiveLog = (obj: AssociateSourceNetworkStackRequest): any => ({ + ...obj, + ...(obj.cfnStackName && { cfnStackName: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const JobFilterSensitiveLog = (obj: Job): any => ({ + ...obj, + ...(obj.tags && { tags: SENSITIVE_STRING }), + ...(obj.participatingResources && { participatingResources: obj.participatingResources.map((item) => item) }), +}); + +/** + * @internal + */ +export const AssociateSourceNetworkStackResponseFilterSensitiveLog = ( + obj: AssociateSourceNetworkStackResponse +): any => ({ + ...obj, + ...(obj.job && { job: JobFilterSensitiveLog(obj.job) }), +}); + /** * @internal */ @@ -3446,7 +3987,7 @@ export const ReplicationConfigurationTemplateFilterSensitiveLog = (obj: Replicat /** * @internal */ -export const JobFilterSensitiveLog = (obj: Job): any => ({ +export const CreateSourceNetworkRequestFilterSensitiveLog = (obj: CreateSourceNetworkRequest): any => ({ ...obj, ...(obj.tags && { tags: SENSITIVE_STRING }), }); @@ -3495,6 +4036,24 @@ export const DescribeReplicationConfigurationTemplatesResponseFilterSensitiveLog ...(obj.items && { items: obj.items.map((item) => ReplicationConfigurationTemplateFilterSensitiveLog(item)) }), }); +/** + * @internal + */ +export const SourceNetworkFilterSensitiveLog = (obj: SourceNetwork): any => ({ + ...obj, + ...(obj.tags && { tags: SENSITIVE_STRING }), + ...(obj.replicationStatusDetails && { replicationStatusDetails: SENSITIVE_STRING }), + ...(obj.cfnStackName && { cfnStackName: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const DescribeSourceNetworksResponseFilterSensitiveLog = (obj: DescribeSourceNetworksResponse): any => ({ + ...obj, + ...(obj.items && { items: obj.items.map((item) => SourceNetworkFilterSensitiveLog(item)) }), +}); + /** * @internal */ @@ -3575,6 +4134,57 @@ export const UpdateReplicationConfigurationTemplateRequestFilterSensitiveLog = ( ...(obj.stagingAreaTags && { stagingAreaTags: SENSITIVE_STRING }), }); +/** + * @internal + */ +export const StartSourceNetworkRecoveryRequestNetworkEntryFilterSensitiveLog = ( + obj: StartSourceNetworkRecoveryRequestNetworkEntry +): any => ({ + ...obj, + ...(obj.cfnStackName && { cfnStackName: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const StartSourceNetworkRecoveryRequestFilterSensitiveLog = (obj: StartSourceNetworkRecoveryRequest): any => ({ + ...obj, + ...(obj.sourceNetworks && { + sourceNetworks: obj.sourceNetworks.map((item) => + StartSourceNetworkRecoveryRequestNetworkEntryFilterSensitiveLog(item) + ), + }), + ...(obj.tags && { tags: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const StartSourceNetworkRecoveryResponseFilterSensitiveLog = (obj: StartSourceNetworkRecoveryResponse): any => ({ + ...obj, + ...(obj.job && { job: JobFilterSensitiveLog(obj.job) }), +}); + +/** + * @internal + */ +export const StartSourceNetworkReplicationResponseFilterSensitiveLog = ( + obj: StartSourceNetworkReplicationResponse +): any => ({ + ...obj, + ...(obj.sourceNetwork && { sourceNetwork: SourceNetworkFilterSensitiveLog(obj.sourceNetwork) }), +}); + +/** + * @internal + */ +export const StopSourceNetworkReplicationResponseFilterSensitiveLog = ( + obj: StopSourceNetworkReplicationResponse +): any => ({ + ...obj, + ...(obj.sourceNetwork && { sourceNetwork: SourceNetworkFilterSensitiveLog(obj.sourceNetwork) }), +}); + /** * @internal */ diff --git a/clients/client-drs/src/pagination/DescribeSourceNetworksPaginator.ts b/clients/client-drs/src/pagination/DescribeSourceNetworksPaginator.ts new file mode 100644 index 000000000000..aa4860f396ec --- /dev/null +++ b/clients/client-drs/src/pagination/DescribeSourceNetworksPaginator.ts @@ -0,0 +1,50 @@ +// smithy-typescript generated code +import { Paginator } from "@aws-sdk/types"; + +import { + DescribeSourceNetworksCommand, + DescribeSourceNetworksCommandInput, + DescribeSourceNetworksCommandOutput, +} from "../commands/DescribeSourceNetworksCommand"; +import { DrsClient } from "../DrsClient"; +import { DrsPaginationConfiguration } from "./Interfaces"; + +/** + * @internal + */ +const makePagedClientRequest = async ( + client: DrsClient, + input: DescribeSourceNetworksCommandInput, + ...args: any +): Promise