SDK for PHP 3.x

Client: Aws\ARCRegionSwitch\ARCRegionSwitchClient
Service ID: arc-region-switch
Version: 2022-07-26

This page describes the parameters and results for the operations of the ARC - Region switch (2022-07-26), and shows how to use the Aws\ARCRegionSwitch\ARCRegionSwitchClient object to call the described operations. This documentation is specific to the 2022-07-26 API version of the service.

Operation Summary

Each of the following operations can be created from a client using $client->getCommand('CommandName'), where "CommandName" is the name of one of the following operations. Note: a command is a value that encapsulates an operation and the parameters used to create an HTTP request.

You can also create and send a command immediately using the magic methods available on a client object: $client->commandName(/* parameters */). You can send the command asynchronously (returning a promise) by appending the word "Async" to the operation name: $client->commandNameAsync(/* parameters */).

ApprovePlanExecutionStep ( array $params = [] )
Approves a step in a plan execution that requires manual approval.
CancelPlanExecution ( array $params = [] )
Cancels an in-progress plan execution.
CreatePlan ( array $params = [] )
Creates a new Region switch plan.
DeletePlan ( array $params = [] )
Deletes a Region switch plan.
GetPlan ( array $params = [] )
Retrieves detailed information about a Region switch plan.
GetPlanEvaluationStatus ( array $params = [] )
Retrieves the evaluation status of a Region switch plan.
GetPlanExecution ( array $params = [] )
Retrieves detailed information about a specific plan execution.
GetPlanInRegion ( array $params = [] )
Retrieves information about a Region switch plan in a specific Amazon Web Services Region.
ListPlanExecutionEvents ( array $params = [] )
Lists the events that occurred during a plan execution.
ListPlanExecutions ( array $params = [] )
Lists the executions of a Region switch plan.
ListPlans ( array $params = [] )
Lists all Region switch plans in your Amazon Web Services account.
ListPlansInRegion ( array $params = [] )
Lists all Region switch plans in your Amazon Web Services account that are available in the current Amazon Web Services Region.
ListRoute53HealthChecks ( array $params = [] )
List the Amazon Route 53 health checks.
ListTagsForResource ( array $params = [] )
Lists the tags attached to a Region switch resource.
StartPlanExecution ( array $params = [] )
Starts the execution of a Region switch plan.
TagResource ( array $params = [] )
Adds or updates tags for a Region switch resource.
UntagResource ( array $params = [] )
Removes tags from a Region switch resource.
UpdatePlan ( array $params = [] )
Updates an existing Region switch plan.
UpdatePlanExecution ( array $params = [] )
Updates an in-progress plan execution.
UpdatePlanExecutionStep ( array $params = [] )
Updates a specific step in an in-progress plan execution.

Paginators

Paginators handle automatically iterating over paginated API results. Paginators are associated with specific API operations, and they accept the parameters that the corresponding API operation accepts. You can get a paginator from a client class using getPaginator($paginatorName, $operationParameters). This client supports the following paginators:

GetPlanEvaluationStatus
GetPlanExecution
ListPlanExecutionEvents
ListPlanExecutions
ListPlans
ListPlansInRegion
ListRoute53HealthChecks

Waiters

Waiters allow you to poll a resource until it enters into a desired state. A waiter has a name used to describe what it does, and is associated with an API operation. When creating a waiter, you can provide the API operation parameters associated with the corresponding operation. Waiters can be accessed using the getWaiter($waiterName, $operationParameters) method of a client object. This client supports the following waiters:

Waiter name API Operation Delay Max Attempts
PlanEvaluationStatusPassed GetPlanEvaluationStatus 30 5
PlanExecutionCompleted GetPlanExecution 30 5

Operations

ApprovePlanExecutionStep

$result = $client->approvePlanExecutionStep([/* ... */]);
$promise = $client->approvePlanExecutionStepAsync([/* ... */]);

Approves a step in a plan execution that requires manual approval. When you create a plan, you can include approval steps that require manual intervention before the execution can proceed. This operation allows you to provide that approval.

You must specify the plan ARN, execution ID, step name, and approval status. You can also provide an optional comment explaining the approval decision.

Parameter Syntax

$result = $client->approvePlanExecutionStep([
    'approval' => 'approve|decline', // REQUIRED
    'comment' => '<string>',
    'executionId' => '<string>', // REQUIRED
    'planArn' => '<string>', // REQUIRED
    'stepName' => '<string>', // REQUIRED
]);

Parameter Details

Members
approval
Required: Yes
Type: string

The status of approval for a plan execution step.

comment
Type: string

A comment that you can enter about a plan execution.

executionId
Required: Yes
Type: string

The execution identifier of a plan execution.

planArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan.

stepName
Required: Yes
Type: string

The name of a step in a plan execution.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

AccessDeniedException:

You do not have sufficient access to perform this action.

HTTP Status Code: 403

CancelPlanExecution

$result = $client->cancelPlanExecution([/* ... */]);
$promise = $client->cancelPlanExecutionAsync([/* ... */]);

Cancels an in-progress plan execution. This operation stops the execution of the plan and prevents any further steps from being processed.

You must specify the plan ARN and execution ID. You can also provide an optional comment explaining why the execution was canceled.

Parameter Syntax

$result = $client->cancelPlanExecution([
    'comment' => '<string>',
    'executionId' => '<string>', // REQUIRED
    'planArn' => '<string>', // REQUIRED
]);

Parameter Details

Members
comment
Type: string

A comment that you can enter about canceling a plan execution step.

executionId
Required: Yes
Type: string

The execution identifier of a plan execution.

planArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

AccessDeniedException:

You do not have sufficient access to perform this action.

HTTP Status Code: 403

CreatePlan

$result = $client->createPlan([/* ... */]);
$promise = $client->createPlanAsync([/* ... */]);

Creates a new Region switch plan. A plan defines the steps required to shift traffic from one Amazon Web Services Region to another.

You must specify a name for the plan, the primary Region, and at least one additional Region. You can also provide a description, execution role, recovery time objective, associated alarms, triggers, and workflows that define the steps to execute during a Region switch.

Parameter Syntax

$result = $client->createPlan([
    'associatedAlarms' => [
        '<String>' => [
            'alarmType' => 'applicationHealth|trigger', // REQUIRED
            'crossAccountRole' => '<string>',
            'externalId' => '<string>',
            'resourceIdentifier' => '<string>', // REQUIRED
        ],
        // ...
    ],
    'description' => '<string>',
    'executionRole' => '<string>', // REQUIRED
    'name' => '<string>', // REQUIRED
    'primaryRegion' => '<string>',
    'recoveryApproach' => 'activeActive|activePassive', // REQUIRED
    'recoveryTimeObjectiveMinutes' => <integer>,
    'regions' => ['<string>', ...], // REQUIRED
    'tags' => ['<string>', ...],
    'triggers' => [
        [
            'action' => 'activate|deactivate', // REQUIRED
            'conditions' => [ // REQUIRED
                [
                    'associatedAlarmName' => '<string>', // REQUIRED
                    'condition' => 'red|green', // REQUIRED
                ],
                // ...
            ],
            'description' => '<string>',
            'minDelayMinutesBetweenExecutions' => <integer>, // REQUIRED
            'targetRegion' => '<string>', // REQUIRED
        ],
        // ...
    ],
    'workflows' => [ // REQUIRED
        [
            'steps' => [
                [
                    'description' => '<string>',
                    'executionBlockConfiguration' => [ // REQUIRED
                        'arcRoutingControlConfig' => [
                            'crossAccountRole' => '<string>',
                            'externalId' => '<string>',
                            'regionAndRoutingControls' => [ // REQUIRED
                                '<String>' => [
                                    [
                                        'routingControlArn' => '<string>', // REQUIRED
                                        'state' => 'On|Off', // REQUIRED
                                    ],
                                    // ...
                                ],
                                // ...
                            ],
                            'timeoutMinutes' => <integer>,
                        ],
                        'customActionLambdaConfig' => [
                            'lambdas' => [ // REQUIRED
                                [
                                    'arn' => '<string>',
                                    'crossAccountRole' => '<string>',
                                    'externalId' => '<string>',
                                ],
                                // ...
                            ],
                            'regionToRun' => 'activatingRegion|deactivatingRegion', // REQUIRED
                            'retryIntervalMinutes' => <float>, // REQUIRED
                            'timeoutMinutes' => <integer>,
                            'ungraceful' => [
                                'behavior' => 'skip',
                            ],
                        ],
                        'ec2AsgCapacityIncreaseConfig' => [
                            'asgs' => [ // REQUIRED
                                [
                                    'arn' => '<string>',
                                    'crossAccountRole' => '<string>',
                                    'externalId' => '<string>',
                                ],
                                // ...
                            ],
                            'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|autoscalingMaxInLast24Hours',
                            'targetPercent' => <integer>,
                            'timeoutMinutes' => <integer>,
                            'ungraceful' => [
                                'minimumSuccessPercentage' => <integer>, // REQUIRED
                            ],
                        ],
                        'ecsCapacityIncreaseConfig' => [
                            'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|containerInsightsMaxInLast24Hours',
                            'services' => [ // REQUIRED
                                [
                                    'clusterArn' => '<string>',
                                    'crossAccountRole' => '<string>',
                                    'externalId' => '<string>',
                                    'serviceArn' => '<string>',
                                ],
                                // ...
                            ],
                            'targetPercent' => <integer>,
                            'timeoutMinutes' => <integer>,
                            'ungraceful' => [
                                'minimumSuccessPercentage' => <integer>, // REQUIRED
                            ],
                        ],
                        'eksResourceScalingConfig' => [
                            'capacityMonitoringApproach' => 'sampledMaxInLast24Hours',
                            'eksClusters' => [
                                [
                                    'clusterArn' => '<string>', // REQUIRED
                                    'crossAccountRole' => '<string>',
                                    'externalId' => '<string>',
                                ],
                                // ...
                            ],
                            'kubernetesResourceType' => [ // REQUIRED
                                'apiVersion' => '<string>', // REQUIRED
                                'kind' => '<string>', // REQUIRED
                            ],
                            'scalingResources' => [
                                [
                                    '<String>' => [
                                        '<Region>' => [
                                            'hpaName' => '<string>',
                                            'name' => '<string>', // REQUIRED
                                            'namespace' => '<string>', // REQUIRED
                                        ],
                                        // ...
                                    ],
                                    // ...
                                ],
                                // ...
                            ],
                            'targetPercent' => <integer>,
                            'timeoutMinutes' => <integer>,
                            'ungraceful' => [
                                'minimumSuccessPercentage' => <integer>, // REQUIRED
                            ],
                        ],
                        'executionApprovalConfig' => [
                            'approvalRole' => '<string>', // REQUIRED
                            'timeoutMinutes' => <integer>,
                        ],
                        'globalAuroraConfig' => [
                            'behavior' => 'switchoverOnly|failover', // REQUIRED
                            'crossAccountRole' => '<string>',
                            'databaseClusterArns' => ['<string>', ...], // REQUIRED
                            'externalId' => '<string>',
                            'globalClusterIdentifier' => '<string>', // REQUIRED
                            'timeoutMinutes' => <integer>,
                            'ungraceful' => [
                                'ungraceful' => 'failover',
                            ],
                        ],
                        'parallelConfig' => [
                            'steps' => [...], // REQUIRED, RECURSIVE
                        ],
                        'regionSwitchPlanConfig' => [
                            'arn' => '<string>', // REQUIRED
                            'crossAccountRole' => '<string>',
                            'externalId' => '<string>',
                        ],
                        'route53HealthCheckConfig' => [
                            'crossAccountRole' => '<string>',
                            'externalId' => '<string>',
                            'hostedZoneId' => '<string>', // REQUIRED
                            'recordName' => '<string>', // REQUIRED
                            'recordSets' => [
                                [
                                    'recordSetIdentifier' => '<string>',
                                    'region' => '<string>',
                                ],
                                // ...
                            ],
                            'timeoutMinutes' => <integer>,
                        ],
                    ],
                    'executionBlockType' => 'CustomActionLambda|ManualApproval|AuroraGlobalDatabase|EC2AutoScaling|ARCRoutingControl|ARCRegionSwitchPlan|Parallel|ECSServiceScaling|EKSResourceScaling|Route53HealthCheck', // REQUIRED
                    'name' => '<string>', // REQUIRED
                ],
                // ...
            ],
            'workflowDescription' => '<string>',
            'workflowTargetAction' => 'activate|deactivate', // REQUIRED
            'workflowTargetRegion' => '<string>',
        ],
        // ...
    ],
]);

Parameter Details

Members
associatedAlarms
Type: Associative array of custom strings keys (String) to AssociatedAlarm structures

The alarms associated with a Region switch plan.

description
Type: string

The description of a Region switch plan.

executionRole
Required: Yes
Type: string

An execution role is a way to categorize a Region switch plan.

name
Required: Yes
Type: string

The name of a Region switch plan.

primaryRegion
Type: string

The primary Amazon Web Services Region for the application. This is the Region where the application normally runs before any Region switch occurs.

recoveryApproach
Required: Yes
Type: string

The recovery approach for a Region switch plan, which can be active/active (activeActive) or active/passive (activePassive).

recoveryTimeObjectiveMinutes
Type: int

Optionally, you can specify an recovery time objective for a Region switch plan, in minutes.

regions
Required: Yes
Type: Array of strings

An array that specifies the Amazon Web Services Regions for a Region switch plan. Specify two Regions.

tags
Type: Associative array of custom strings keys (TagKey) to strings

The tags to apply to the Region switch plan.

triggers
Type: Array of Trigger structures

The triggers associated with a Region switch plan.

workflows
Required: Yes
Type: Array of Workflow structures

An array of workflows included in a Region switch plan.

Result Syntax

[
    'plan' => [
        'arn' => '<string>',
        'associatedAlarms' => [
            '<String>' => [
                'alarmType' => 'applicationHealth|trigger',
                'crossAccountRole' => '<string>',
                'externalId' => '<string>',
                'resourceIdentifier' => '<string>',
            ],
            // ...
        ],
        'description' => '<string>',
        'executionRole' => '<string>',
        'name' => '<string>',
        'owner' => '<string>',
        'primaryRegion' => '<string>',
        'recoveryApproach' => 'activeActive|activePassive',
        'recoveryTimeObjectiveMinutes' => <integer>,
        'regions' => ['<string>', ...],
        'triggers' => [
            [
                'action' => 'activate|deactivate',
                'conditions' => [
                    [
                        'associatedAlarmName' => '<string>',
                        'condition' => 'red|green',
                    ],
                    // ...
                ],
                'description' => '<string>',
                'minDelayMinutesBetweenExecutions' => <integer>,
                'targetRegion' => '<string>',
            ],
            // ...
        ],
        'updatedAt' => <DateTime>,
        'version' => '<string>',
        'workflows' => [
            [
                'steps' => [
                    [
                        'description' => '<string>',
                        'executionBlockConfiguration' => [
                            'arcRoutingControlConfig' => [
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                                'regionAndRoutingControls' => [
                                    '<String>' => [
                                        [
                                            'routingControlArn' => '<string>',
                                            'state' => 'On|Off',
                                        ],
                                        // ...
                                    ],
                                    // ...
                                ],
                                'timeoutMinutes' => <integer>,
                            ],
                            'customActionLambdaConfig' => [
                                'lambdas' => [
                                    [
                                        'arn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'regionToRun' => 'activatingRegion|deactivatingRegion',
                                'retryIntervalMinutes' => <float>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'behavior' => 'skip',
                                ],
                            ],
                            'ec2AsgCapacityIncreaseConfig' => [
                                'asgs' => [
                                    [
                                        'arn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|autoscalingMaxInLast24Hours',
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'ecsCapacityIncreaseConfig' => [
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|containerInsightsMaxInLast24Hours',
                                'services' => [
                                    [
                                        'clusterArn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                        'serviceArn' => '<string>',
                                    ],
                                    // ...
                                ],
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'eksResourceScalingConfig' => [
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours',
                                'eksClusters' => [
                                    [
                                        'clusterArn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'kubernetesResourceType' => [
                                    'apiVersion' => '<string>',
                                    'kind' => '<string>',
                                ],
                                'scalingResources' => [
                                    [
                                        '<String>' => [
                                            '<Region>' => [
                                                'hpaName' => '<string>',
                                                'name' => '<string>',
                                                'namespace' => '<string>',
                                            ],
                                            // ...
                                        ],
                                        // ...
                                    ],
                                    // ...
                                ],
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'executionApprovalConfig' => [
                                'approvalRole' => '<string>',
                                'timeoutMinutes' => <integer>,
                            ],
                            'globalAuroraConfig' => [
                                'behavior' => 'switchoverOnly|failover',
                                'crossAccountRole' => '<string>',
                                'databaseClusterArns' => ['<string>', ...],
                                'externalId' => '<string>',
                                'globalClusterIdentifier' => '<string>',
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'ungraceful' => 'failover',
                                ],
                            ],
                            'parallelConfig' => [
                                'steps' => [...], // RECURSIVE
                            ],
                            'regionSwitchPlanConfig' => [
                                'arn' => '<string>',
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                            ],
                            'route53HealthCheckConfig' => [
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                                'hostedZoneId' => '<string>',
                                'recordName' => '<string>',
                                'recordSets' => [
                                    [
                                        'recordSetIdentifier' => '<string>',
                                        'region' => '<string>',
                                    ],
                                    // ...
                                ],
                                'timeoutMinutes' => <integer>,
                            ],
                        ],
                        'executionBlockType' => 'CustomActionLambda|ManualApproval|AuroraGlobalDatabase|EC2AutoScaling|ARCRoutingControl|ARCRegionSwitchPlan|Parallel|ECSServiceScaling|EKSResourceScaling|Route53HealthCheck',
                        'name' => '<string>',
                    ],
                    // ...
                ],
                'workflowDescription' => '<string>',
                'workflowTargetAction' => 'activate|deactivate',
                'workflowTargetRegion' => '<string>',
            ],
            // ...
        ],
    ],
]

Result Details

Members
plan
Type: Plan structure

The details of the created Region switch plan.

Errors

There are no errors described for this operation.

DeletePlan

$result = $client->deletePlan([/* ... */]);
$promise = $client->deletePlanAsync([/* ... */]);

Deletes a Region switch plan. You must specify the ARN of the plan to delete.

You cannot delete a plan that has an active execution in progress.

Parameter Syntax

$result = $client->deletePlan([
    'arn' => '<string>', // REQUIRED
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

IllegalStateException:

The operation failed because the current state of the resource doesn't allow the operation to proceed.

HTTP Status Code: 400

GetPlan

$result = $client->getPlan([/* ... */]);
$promise = $client->getPlanAsync([/* ... */]);

Retrieves detailed information about a Region switch plan. You must specify the ARN of the plan.

Parameter Syntax

$result = $client->getPlan([
    'arn' => '<string>', // REQUIRED
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan.

Result Syntax

[
    'plan' => [
        'arn' => '<string>',
        'associatedAlarms' => [
            '<String>' => [
                'alarmType' => 'applicationHealth|trigger',
                'crossAccountRole' => '<string>',
                'externalId' => '<string>',
                'resourceIdentifier' => '<string>',
            ],
            // ...
        ],
        'description' => '<string>',
        'executionRole' => '<string>',
        'name' => '<string>',
        'owner' => '<string>',
        'primaryRegion' => '<string>',
        'recoveryApproach' => 'activeActive|activePassive',
        'recoveryTimeObjectiveMinutes' => <integer>,
        'regions' => ['<string>', ...],
        'triggers' => [
            [
                'action' => 'activate|deactivate',
                'conditions' => [
                    [
                        'associatedAlarmName' => '<string>',
                        'condition' => 'red|green',
                    ],
                    // ...
                ],
                'description' => '<string>',
                'minDelayMinutesBetweenExecutions' => <integer>,
                'targetRegion' => '<string>',
            ],
            // ...
        ],
        'updatedAt' => <DateTime>,
        'version' => '<string>',
        'workflows' => [
            [
                'steps' => [
                    [
                        'description' => '<string>',
                        'executionBlockConfiguration' => [
                            'arcRoutingControlConfig' => [
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                                'regionAndRoutingControls' => [
                                    '<String>' => [
                                        [
                                            'routingControlArn' => '<string>',
                                            'state' => 'On|Off',
                                        ],
                                        // ...
                                    ],
                                    // ...
                                ],
                                'timeoutMinutes' => <integer>,
                            ],
                            'customActionLambdaConfig' => [
                                'lambdas' => [
                                    [
                                        'arn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'regionToRun' => 'activatingRegion|deactivatingRegion',
                                'retryIntervalMinutes' => <float>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'behavior' => 'skip',
                                ],
                            ],
                            'ec2AsgCapacityIncreaseConfig' => [
                                'asgs' => [
                                    [
                                        'arn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|autoscalingMaxInLast24Hours',
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'ecsCapacityIncreaseConfig' => [
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|containerInsightsMaxInLast24Hours',
                                'services' => [
                                    [
                                        'clusterArn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                        'serviceArn' => '<string>',
                                    ],
                                    // ...
                                ],
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'eksResourceScalingConfig' => [
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours',
                                'eksClusters' => [
                                    [
                                        'clusterArn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'kubernetesResourceType' => [
                                    'apiVersion' => '<string>',
                                    'kind' => '<string>',
                                ],
                                'scalingResources' => [
                                    [
                                        '<String>' => [
                                            '<Region>' => [
                                                'hpaName' => '<string>',
                                                'name' => '<string>',
                                                'namespace' => '<string>',
                                            ],
                                            // ...
                                        ],
                                        // ...
                                    ],
                                    // ...
                                ],
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'executionApprovalConfig' => [
                                'approvalRole' => '<string>',
                                'timeoutMinutes' => <integer>,
                            ],
                            'globalAuroraConfig' => [
                                'behavior' => 'switchoverOnly|failover',
                                'crossAccountRole' => '<string>',
                                'databaseClusterArns' => ['<string>', ...],
                                'externalId' => '<string>',
                                'globalClusterIdentifier' => '<string>',
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'ungraceful' => 'failover',
                                ],
                            ],
                            'parallelConfig' => [
                                'steps' => [...], // RECURSIVE
                            ],
                            'regionSwitchPlanConfig' => [
                                'arn' => '<string>',
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                            ],
                            'route53HealthCheckConfig' => [
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                                'hostedZoneId' => '<string>',
                                'recordName' => '<string>',
                                'recordSets' => [
                                    [
                                        'recordSetIdentifier' => '<string>',
                                        'region' => '<string>',
                                    ],
                                    // ...
                                ],
                                'timeoutMinutes' => <integer>,
                            ],
                        ],
                        'executionBlockType' => 'CustomActionLambda|ManualApproval|AuroraGlobalDatabase|EC2AutoScaling|ARCRoutingControl|ARCRegionSwitchPlan|Parallel|ECSServiceScaling|EKSResourceScaling|Route53HealthCheck',
                        'name' => '<string>',
                    ],
                    // ...
                ],
                'workflowDescription' => '<string>',
                'workflowTargetAction' => 'activate|deactivate',
                'workflowTargetRegion' => '<string>',
            ],
            // ...
        ],
    ],
]

Result Details

Members
plan
Type: Plan structure

The detailed information about the requested Region switch plan.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

GetPlanEvaluationStatus

$result = $client->getPlanEvaluationStatus([/* ... */]);
$promise = $client->getPlanEvaluationStatusAsync([/* ... */]);

Retrieves the evaluation status of a Region switch plan. The evaluation status provides information about the last time the plan was evaluated and any warnings or issues detected.

Parameter Syntax

$result = $client->getPlanEvaluationStatus([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'planArn' => '<string>', // REQUIRED
]);

Parameter Details

Members
maxResults
Type: int

The number of objects that you want to return with this call.

nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

planArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the Region switch plan to retrieve evaluation status for.

Result Syntax

[
    'evaluationState' => 'passed|actionRequired|pendingEvaluation|unknown',
    'lastEvaluatedVersion' => '<string>',
    'lastEvaluationTime' => <DateTime>,
    'nextToken' => '<string>',
    'planArn' => '<string>',
    'region' => '<string>',
    'warnings' => [
        [
            'resourceArn' => '<string>',
            'stepName' => '<string>',
            'version' => '<string>',
            'warningMessage' => '<string>',
            'warningStatus' => 'active|resolved',
            'warningUpdatedTime' => <DateTime>,
            'workflow' => [
                'action' => 'activate|deactivate',
                'name' => '<string>',
            ],
        ],
        // ...
    ],
]

Result Details

Members
evaluationState
Type: string

The evaluation state for the plan.

lastEvaluatedVersion
Type: string

The version of the last evaluation of the plan.

lastEvaluationTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The time of the last time that Region switch ran an evaluation of the plan.

nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

planArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan.

region
Type: string

The Amazon Web Services Region for the plan.

warnings
Type: Array of ResourceWarning structures

The current evaluation warnings for the plan.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

AccessDeniedException:

You do not have sufficient access to perform this action.

HTTP Status Code: 403

GetPlanExecution

$result = $client->getPlanExecution([/* ... */]);
$promise = $client->getPlanExecutionAsync([/* ... */]);

Retrieves detailed information about a specific plan execution. You must specify the plan ARN and execution ID.

Parameter Syntax

$result = $client->getPlanExecution([
    'executionId' => '<string>', // REQUIRED
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'planArn' => '<string>', // REQUIRED
]);

Parameter Details

Members
executionId
Required: Yes
Type: string

The execution identifier of a plan execution.

maxResults
Type: int

The number of objects that you want to return with this call.

nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

planArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan with the execution to retrieve.

Result Syntax

[
    'actualRecoveryTime' => '<string>',
    'comment' => '<string>',
    'endTime' => <DateTime>,
    'executionAction' => 'activate|deactivate',
    'executionId' => '<string>',
    'executionRegion' => '<string>',
    'executionState' => 'inProgress|pausedByFailedStep|pausedByOperator|completed|completedWithExceptions|canceled|planExecutionTimedOut|pendingManualApproval|failed|pending|completedMonitoringApplicationHealth',
    'mode' => 'graceful|ungraceful',
    'nextToken' => '<string>',
    'plan' => [
        'arn' => '<string>',
        'associatedAlarms' => [
            '<String>' => [
                'alarmType' => 'applicationHealth|trigger',
                'crossAccountRole' => '<string>',
                'externalId' => '<string>',
                'resourceIdentifier' => '<string>',
            ],
            // ...
        ],
        'description' => '<string>',
        'executionRole' => '<string>',
        'name' => '<string>',
        'owner' => '<string>',
        'primaryRegion' => '<string>',
        'recoveryApproach' => 'activeActive|activePassive',
        'recoveryTimeObjectiveMinutes' => <integer>,
        'regions' => ['<string>', ...],
        'triggers' => [
            [
                'action' => 'activate|deactivate',
                'conditions' => [
                    [
                        'associatedAlarmName' => '<string>',
                        'condition' => 'red|green',
                    ],
                    // ...
                ],
                'description' => '<string>',
                'minDelayMinutesBetweenExecutions' => <integer>,
                'targetRegion' => '<string>',
            ],
            // ...
        ],
        'updatedAt' => <DateTime>,
        'version' => '<string>',
        'workflows' => [
            [
                'steps' => [
                    [
                        'description' => '<string>',
                        'executionBlockConfiguration' => [
                            'arcRoutingControlConfig' => [
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                                'regionAndRoutingControls' => [
                                    '<String>' => [
                                        [
                                            'routingControlArn' => '<string>',
                                            'state' => 'On|Off',
                                        ],
                                        // ...
                                    ],
                                    // ...
                                ],
                                'timeoutMinutes' => <integer>,
                            ],
                            'customActionLambdaConfig' => [
                                'lambdas' => [
                                    [
                                        'arn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'regionToRun' => 'activatingRegion|deactivatingRegion',
                                'retryIntervalMinutes' => <float>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'behavior' => 'skip',
                                ],
                            ],
                            'ec2AsgCapacityIncreaseConfig' => [
                                'asgs' => [
                                    [
                                        'arn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|autoscalingMaxInLast24Hours',
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'ecsCapacityIncreaseConfig' => [
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|containerInsightsMaxInLast24Hours',
                                'services' => [
                                    [
                                        'clusterArn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                        'serviceArn' => '<string>',
                                    ],
                                    // ...
                                ],
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'eksResourceScalingConfig' => [
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours',
                                'eksClusters' => [
                                    [
                                        'clusterArn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'kubernetesResourceType' => [
                                    'apiVersion' => '<string>',
                                    'kind' => '<string>',
                                ],
                                'scalingResources' => [
                                    [
                                        '<String>' => [
                                            '<Region>' => [
                                                'hpaName' => '<string>',
                                                'name' => '<string>',
                                                'namespace' => '<string>',
                                            ],
                                            // ...
                                        ],
                                        // ...
                                    ],
                                    // ...
                                ],
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'executionApprovalConfig' => [
                                'approvalRole' => '<string>',
                                'timeoutMinutes' => <integer>,
                            ],
                            'globalAuroraConfig' => [
                                'behavior' => 'switchoverOnly|failover',
                                'crossAccountRole' => '<string>',
                                'databaseClusterArns' => ['<string>', ...],
                                'externalId' => '<string>',
                                'globalClusterIdentifier' => '<string>',
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'ungraceful' => 'failover',
                                ],
                            ],
                            'parallelConfig' => [
                                'steps' => [...], // RECURSIVE
                            ],
                            'regionSwitchPlanConfig' => [
                                'arn' => '<string>',
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                            ],
                            'route53HealthCheckConfig' => [
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                                'hostedZoneId' => '<string>',
                                'recordName' => '<string>',
                                'recordSets' => [
                                    [
                                        'recordSetIdentifier' => '<string>',
                                        'region' => '<string>',
                                    ],
                                    // ...
                                ],
                                'timeoutMinutes' => <integer>,
                            ],
                        ],
                        'executionBlockType' => 'CustomActionLambda|ManualApproval|AuroraGlobalDatabase|EC2AutoScaling|ARCRoutingControl|ARCRegionSwitchPlan|Parallel|ECSServiceScaling|EKSResourceScaling|Route53HealthCheck',
                        'name' => '<string>',
                    ],
                    // ...
                ],
                'workflowDescription' => '<string>',
                'workflowTargetAction' => 'activate|deactivate',
                'workflowTargetRegion' => '<string>',
            ],
            // ...
        ],
    ],
    'planArn' => '<string>',
    'startTime' => <DateTime>,
    'stepStates' => [
        [
            'endTime' => <DateTime>,
            'name' => '<string>',
            'startTime' => <DateTime>,
            'status' => 'notStarted|running|failed|completed|canceled|skipped|pendingApproval',
            'stepMode' => 'graceful|ungraceful',
        ],
        // ...
    ],
    'updatedAt' => <DateTime>,
    'version' => '<string>',
]

Result Details

Members
actualRecoveryTime
Type: string

The actual recovery time that Region switch calculates for a plan execution. Actual recovery time includes the time for the plan to run added to the time elapsed until the application health alarms that you've specified are healthy again.

comment
Type: string

A comment included on the plan execution.

endTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The time (UTC) when the plan execution ended.

executionAction
Required: Yes
Type: string

The plan execution action. Valid values are Activate, to activate an Amazon Web Services Region, or Deactivate, to deactivate a Region.

executionId
Required: Yes
Type: string

The execution identifier of a plan execution.

executionRegion
Required: Yes
Type: string

The Amazon Web Services Region for a plan execution.

executionState
Required: Yes
Type: string

The plan execution state. Provides the state of a plan execution, for example, In Progress or Paused by Operator.

mode
Required: Yes
Type: string

The plan execution mode. Valid values are Practice, for testing without making actual changes, or Recovery, for actual traffic shifting and application recovery.

nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

plan
Type: Plan structure

The details of the Region switch plan.

planArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan.

startTime
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The time (UTC) when the plan execution started.

stepStates
Type: Array of StepState structures

The states of the steps in the plan execution.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the plan execution was last updated.

version
Type: string

The version for the plan.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

AccessDeniedException:

You do not have sufficient access to perform this action.

HTTP Status Code: 403

GetPlanInRegion

$result = $client->getPlanInRegion([/* ... */]);
$promise = $client->getPlanInRegionAsync([/* ... */]);

Retrieves information about a Region switch plan in a specific Amazon Web Services Region. This operation is useful for getting Region-specific information about a plan.

Parameter Syntax

$result = $client->getPlanInRegion([
    'arn' => '<string>', // REQUIRED
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan in Region.

Result Syntax

[
    'plan' => [
        'arn' => '<string>',
        'associatedAlarms' => [
            '<String>' => [
                'alarmType' => 'applicationHealth|trigger',
                'crossAccountRole' => '<string>',
                'externalId' => '<string>',
                'resourceIdentifier' => '<string>',
            ],
            // ...
        ],
        'description' => '<string>',
        'executionRole' => '<string>',
        'name' => '<string>',
        'owner' => '<string>',
        'primaryRegion' => '<string>',
        'recoveryApproach' => 'activeActive|activePassive',
        'recoveryTimeObjectiveMinutes' => <integer>,
        'regions' => ['<string>', ...],
        'triggers' => [
            [
                'action' => 'activate|deactivate',
                'conditions' => [
                    [
                        'associatedAlarmName' => '<string>',
                        'condition' => 'red|green',
                    ],
                    // ...
                ],
                'description' => '<string>',
                'minDelayMinutesBetweenExecutions' => <integer>,
                'targetRegion' => '<string>',
            ],
            // ...
        ],
        'updatedAt' => <DateTime>,
        'version' => '<string>',
        'workflows' => [
            [
                'steps' => [
                    [
                        'description' => '<string>',
                        'executionBlockConfiguration' => [
                            'arcRoutingControlConfig' => [
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                                'regionAndRoutingControls' => [
                                    '<String>' => [
                                        [
                                            'routingControlArn' => '<string>',
                                            'state' => 'On|Off',
                                        ],
                                        // ...
                                    ],
                                    // ...
                                ],
                                'timeoutMinutes' => <integer>,
                            ],
                            'customActionLambdaConfig' => [
                                'lambdas' => [
                                    [
                                        'arn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'regionToRun' => 'activatingRegion|deactivatingRegion',
                                'retryIntervalMinutes' => <float>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'behavior' => 'skip',
                                ],
                            ],
                            'ec2AsgCapacityIncreaseConfig' => [
                                'asgs' => [
                                    [
                                        'arn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|autoscalingMaxInLast24Hours',
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'ecsCapacityIncreaseConfig' => [
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|containerInsightsMaxInLast24Hours',
                                'services' => [
                                    [
                                        'clusterArn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                        'serviceArn' => '<string>',
                                    ],
                                    // ...
                                ],
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'eksResourceScalingConfig' => [
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours',
                                'eksClusters' => [
                                    [
                                        'clusterArn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'kubernetesResourceType' => [
                                    'apiVersion' => '<string>',
                                    'kind' => '<string>',
                                ],
                                'scalingResources' => [
                                    [
                                        '<String>' => [
                                            '<Region>' => [
                                                'hpaName' => '<string>',
                                                'name' => '<string>',
                                                'namespace' => '<string>',
                                            ],
                                            // ...
                                        ],
                                        // ...
                                    ],
                                    // ...
                                ],
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'executionApprovalConfig' => [
                                'approvalRole' => '<string>',
                                'timeoutMinutes' => <integer>,
                            ],
                            'globalAuroraConfig' => [
                                'behavior' => 'switchoverOnly|failover',
                                'crossAccountRole' => '<string>',
                                'databaseClusterArns' => ['<string>', ...],
                                'externalId' => '<string>',
                                'globalClusterIdentifier' => '<string>',
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'ungraceful' => 'failover',
                                ],
                            ],
                            'parallelConfig' => [
                                'steps' => [...], // RECURSIVE
                            ],
                            'regionSwitchPlanConfig' => [
                                'arn' => '<string>',
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                            ],
                            'route53HealthCheckConfig' => [
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                                'hostedZoneId' => '<string>',
                                'recordName' => '<string>',
                                'recordSets' => [
                                    [
                                        'recordSetIdentifier' => '<string>',
                                        'region' => '<string>',
                                    ],
                                    // ...
                                ],
                                'timeoutMinutes' => <integer>,
                            ],
                        ],
                        'executionBlockType' => 'CustomActionLambda|ManualApproval|AuroraGlobalDatabase|EC2AutoScaling|ARCRoutingControl|ARCRegionSwitchPlan|Parallel|ECSServiceScaling|EKSResourceScaling|Route53HealthCheck',
                        'name' => '<string>',
                    ],
                    // ...
                ],
                'workflowDescription' => '<string>',
                'workflowTargetAction' => 'activate|deactivate',
                'workflowTargetRegion' => '<string>',
            ],
            // ...
        ],
    ],
]

Result Details

Members
plan
Type: Plan structure

The details of the Region switch plan.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

AccessDeniedException:

You do not have sufficient access to perform this action.

HTTP Status Code: 403

ListPlanExecutionEvents

$result = $client->listPlanExecutionEvents([/* ... */]);
$promise = $client->listPlanExecutionEventsAsync([/* ... */]);

Lists the events that occurred during a plan execution. These events provide a detailed timeline of the execution process.

Parameter Syntax

$result = $client->listPlanExecutionEvents([
    'executionId' => '<string>', // REQUIRED
    'maxResults' => <integer>,
    'name' => '<string>',
    'nextToken' => '<string>',
    'planArn' => '<string>', // REQUIRED
]);

Parameter Details

Members
executionId
Required: Yes
Type: string

The execution identifier of a plan execution.

maxResults
Type: int

The number of objects that you want to return with this call.

name
Type: string

The name of the plan execution event.

nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

planArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan.

Result Syntax

[
    'items' => [
        [
            'description' => '<string>',
            'error' => '<string>',
            'eventId' => '<string>',
            'executionBlockType' => 'CustomActionLambda|ManualApproval|AuroraGlobalDatabase|EC2AutoScaling|ARCRoutingControl|ARCRegionSwitchPlan|Parallel|ECSServiceScaling|EKSResourceScaling|Route53HealthCheck',
            'previousEventId' => '<string>',
            'resources' => ['<string>', ...],
            'stepName' => '<string>',
            'timestamp' => <DateTime>,
            'type' => 'unknown|executionPending|executionStarted|executionSucceeded|executionFailed|executionPausing|executionPaused|executionCanceling|executionCanceled|executionPendingApproval|executionBehaviorChangedToUngraceful|executionBehaviorChangedToGraceful|executionPendingChildPlanManualApproval|executionSuccessMonitoringApplicationHealth|stepStarted|stepUpdate|stepSucceeded|stepFailed|stepSkipped|stepPausedByError|stepPausedByOperator|stepCanceled|stepPendingApproval|stepExecutionBehaviorChangedToUngraceful|stepPendingApplicationHealthMonitor',
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Type: Array of ExecutionEvent structures

The items in the plan execution event.

nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

AccessDeniedException:

You do not have sufficient access to perform this action.

HTTP Status Code: 403

ListPlanExecutions

$result = $client->listPlanExecutions([/* ... */]);
$promise = $client->listPlanExecutionsAsync([/* ... */]);

Lists the executions of a Region switch plan. This operation returns information about both current and historical executions.

Parameter Syntax

$result = $client->listPlanExecutions([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'planArn' => '<string>', // REQUIRED
    'state' => 'inProgress|pausedByFailedStep|pausedByOperator|completed|completedWithExceptions|canceled|planExecutionTimedOut|pendingManualApproval|failed|pending|completedMonitoringApplicationHealth',
]);

Parameter Details

Members
maxResults
Type: int

The number of objects that you want to return with this call.

nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

planArn
Required: Yes
Type: string

The ARN for the plan.

state
Type: string

The state of the plan execution. For example, the plan execution might be In Progress.

Result Syntax

[
    'items' => [
        [
            'actualRecoveryTime' => '<string>',
            'comment' => '<string>',
            'endTime' => <DateTime>,
            'executionAction' => 'activate|deactivate',
            'executionId' => '<string>',
            'executionRegion' => '<string>',
            'executionState' => 'inProgress|pausedByFailedStep|pausedByOperator|completed|completedWithExceptions|canceled|planExecutionTimedOut|pendingManualApproval|failed|pending|completedMonitoringApplicationHealth',
            'mode' => 'graceful|ungraceful',
            'planArn' => '<string>',
            'startTime' => <DateTime>,
            'updatedAt' => <DateTime>,
            'version' => '<string>',
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Type: Array of AbbreviatedExecution structures

The items in the plan execution to return.

nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

AccessDeniedException:

You do not have sufficient access to perform this action.

HTTP Status Code: 403

ListPlans

$result = $client->listPlans([/* ... */]);
$promise = $client->listPlansAsync([/* ... */]);

Lists all Region switch plans in your Amazon Web Services account.

Parameter Syntax

$result = $client->listPlans([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
]);

Parameter Details

Members
maxResults
Type: int

The number of objects that you want to return with this call.

nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

Result Syntax

[
    'nextToken' => '<string>',
    'plans' => [
        [
            'activePlanExecution' => '<string>',
            'arn' => '<string>',
            'description' => '<string>',
            'executionRole' => '<string>',
            'name' => '<string>',
            'owner' => '<string>',
            'primaryRegion' => '<string>',
            'recoveryApproach' => 'activeActive|activePassive',
            'recoveryTimeObjectiveMinutes' => <integer>,
            'regions' => ['<string>', ...],
            'updatedAt' => <DateTime>,
            'version' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

plans
Type: Array of AbbreviatedPlan structures

The plans that were requested.

Errors

There are no errors described for this operation.

ListPlansInRegion

$result = $client->listPlansInRegion([/* ... */]);
$promise = $client->listPlansInRegionAsync([/* ... */]);

Lists all Region switch plans in your Amazon Web Services account that are available in the current Amazon Web Services Region.

Parameter Syntax

$result = $client->listPlansInRegion([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
]);

Parameter Details

Members
maxResults
Type: int

The number of objects that you want to return with this call.

nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

Result Syntax

[
    'nextToken' => '<string>',
    'plans' => [
        [
            'activePlanExecution' => '<string>',
            'arn' => '<string>',
            'description' => '<string>',
            'executionRole' => '<string>',
            'name' => '<string>',
            'owner' => '<string>',
            'primaryRegion' => '<string>',
            'recoveryApproach' => 'activeActive|activePassive',
            'recoveryTimeObjectiveMinutes' => <integer>,
            'regions' => ['<string>', ...],
            'updatedAt' => <DateTime>,
            'version' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

plans
Type: Array of AbbreviatedPlan structures

The plans that were requested.

Errors

AccessDeniedException:

You do not have sufficient access to perform this action.

HTTP Status Code: 403

ListRoute53HealthChecks

$result = $client->listRoute53HealthChecks([/* ... */]);
$promise = $client->listRoute53HealthChecksAsync([/* ... */]);

List the Amazon Route 53 health checks.

Parameter Syntax

$result = $client->listRoute53HealthChecks([
    'arn' => '<string>', // REQUIRED
    'hostedZoneId' => '<string>',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'recordName' => '<string>',
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the Amazon Route 53 health check request.

hostedZoneId
Type: string

The hosted zone ID for the health checks.

maxResults
Type: int

The number of objects that you want to return with this call.

nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

recordName
Type: string

The record name for the health checks.

Result Syntax

[
    'healthChecks' => [
        [
            'healthCheckId' => '<string>',
            'hostedZoneId' => '<string>',
            'recordName' => '<string>',
            'region' => '<string>',
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
healthChecks
Type: Array of Route53HealthCheck structures

List of the health checks requested.

nextToken
Type: string

Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's nextToken response to request the next page of results.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

AccessDeniedException:

You do not have sufficient access to perform this action.

HTTP Status Code: 403

InternalServerException:

The request processing has failed because of an unknown error, exception, or failure.

HTTP Status Code: 500

ListTagsForResource

$result = $client->listTagsForResource([/* ... */]);
$promise = $client->listTagsForResourceAsync([/* ... */]);

Lists the tags attached to a Region switch resource.

Parameter Syntax

$result = $client->listTagsForResource([
    'arn' => '<string>', // REQUIRED
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the resource.

Result Syntax

[
    'resourceTags' => ['<string>', ...],
]

Result Details

Members
resourceTags
Type: Associative array of custom strings keys (TagKey) to strings

The tags for a resource.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

InternalServerException:

The request processing has failed because of an unknown error, exception, or failure.

HTTP Status Code: 500

StartPlanExecution

$result = $client->startPlanExecution([/* ... */]);
$promise = $client->startPlanExecutionAsync([/* ... */]);

Starts the execution of a Region switch plan. You can execute a plan in either PRACTICE or RECOVERY mode.

In PRACTICE mode, the execution simulates the steps without making actual changes to your application's traffic routing. In RECOVERY mode, the execution performs actual changes to shift traffic between Regions.

Parameter Syntax

$result = $client->startPlanExecution([
    'action' => 'activate|deactivate', // REQUIRED
    'comment' => '<string>',
    'latestVersion' => '<string>',
    'mode' => 'graceful|ungraceful',
    'planArn' => '<string>', // REQUIRED
    'targetRegion' => '<string>', // REQUIRED
]);

Parameter Details

Members
action
Required: Yes
Type: string

The action to perform. Valid values are ACTIVATE (to shift traffic to the target Region) or DEACTIVATE (to shift traffic away from the target Region).

comment
Type: string

An optional comment explaining why the plan execution is being started.

latestVersion
Type: string

A boolean value indicating whether to use the latest version of the plan. If set to false, you must specify a specific version.

mode
Type: string

The plan execution mode. Valid values are Practice, for testing without making actual changes, or Recovery, for actual traffic shifting and application recovery.

planArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan to execute.

targetRegion
Required: Yes
Type: string

The Amazon Web Services Region to target with this execution. This is the Region that traffic will be shifted to or from, depending on the action.

Result Syntax

[
    'activateRegion' => '<string>',
    'deactivateRegion' => '<string>',
    'executionId' => '<string>',
    'plan' => '<string>',
    'planVersion' => '<string>',
]

Result Details

Members
activateRegion
Type: string

The Amazon Web Services Region to activate.

deactivateRegion
Type: string

The Amazon Web Services Region to deactivate.

executionId
Type: string

The execution identifier of a plan execution.

plan
Type: string

The details of the Region switch plan.

planVersion
Type: string

The version of the plan, a unique number generated by Region switch.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

IllegalStateException:

The operation failed because the current state of the resource doesn't allow the operation to proceed.

HTTP Status Code: 400

AccessDeniedException:

You do not have sufficient access to perform this action.

HTTP Status Code: 403

IllegalArgumentException:

The request processing has an invalid argument.

TagResource

$result = $client->tagResource([/* ... */]);
$promise = $client->tagResourceAsync([/* ... */]);

Adds or updates tags for a Region switch resource. You can assign metadata to your resources in the form of tags, which are key-value pairs.

Parameter Syntax

$result = $client->tagResource([
    'arn' => '<string>', // REQUIRED
    'tags' => ['<string>', ...], // REQUIRED
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) for a tag that you add to a resource.

tags
Required: Yes
Type: Associative array of custom strings keys (TagKey) to strings

Tags that you add to a resource. You can add a maximum of 50 tags in Region switch.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

InternalServerException:

The request processing has failed because of an unknown error, exception, or failure.

HTTP Status Code: 500

UntagResource

$result = $client->untagResource([/* ... */]);
$promise = $client->untagResourceAsync([/* ... */]);

Removes tags from a Region switch resource.

Parameter Syntax

$result = $client->untagResource([
    'arn' => '<string>', // REQUIRED
    'resourceTagKeys' => ['<string>', ...], // REQUIRED
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) for a tag you remove a resource from.

resourceTagKeys
Required: Yes
Type: Array of strings

Tag keys that you remove from a resource.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

InternalServerException:

The request processing has failed because of an unknown error, exception, or failure.

HTTP Status Code: 500

UpdatePlan

$result = $client->updatePlan([/* ... */]);
$promise = $client->updatePlanAsync([/* ... */]);

Updates an existing Region switch plan. You can modify the plan's description, workflows, execution role, recovery time objective, associated alarms, and triggers.

Parameter Syntax

$result = $client->updatePlan([
    'arn' => '<string>', // REQUIRED
    'associatedAlarms' => [
        '<String>' => [
            'alarmType' => 'applicationHealth|trigger', // REQUIRED
            'crossAccountRole' => '<string>',
            'externalId' => '<string>',
            'resourceIdentifier' => '<string>', // REQUIRED
        ],
        // ...
    ],
    'description' => '<string>',
    'executionRole' => '<string>', // REQUIRED
    'recoveryTimeObjectiveMinutes' => <integer>,
    'triggers' => [
        [
            'action' => 'activate|deactivate', // REQUIRED
            'conditions' => [ // REQUIRED
                [
                    'associatedAlarmName' => '<string>', // REQUIRED
                    'condition' => 'red|green', // REQUIRED
                ],
                // ...
            ],
            'description' => '<string>',
            'minDelayMinutesBetweenExecutions' => <integer>, // REQUIRED
            'targetRegion' => '<string>', // REQUIRED
        ],
        // ...
    ],
    'workflows' => [ // REQUIRED
        [
            'steps' => [
                [
                    'description' => '<string>',
                    'executionBlockConfiguration' => [ // REQUIRED
                        'arcRoutingControlConfig' => [
                            'crossAccountRole' => '<string>',
                            'externalId' => '<string>',
                            'regionAndRoutingControls' => [ // REQUIRED
                                '<String>' => [
                                    [
                                        'routingControlArn' => '<string>', // REQUIRED
                                        'state' => 'On|Off', // REQUIRED
                                    ],
                                    // ...
                                ],
                                // ...
                            ],
                            'timeoutMinutes' => <integer>,
                        ],
                        'customActionLambdaConfig' => [
                            'lambdas' => [ // REQUIRED
                                [
                                    'arn' => '<string>',
                                    'crossAccountRole' => '<string>',
                                    'externalId' => '<string>',
                                ],
                                // ...
                            ],
                            'regionToRun' => 'activatingRegion|deactivatingRegion', // REQUIRED
                            'retryIntervalMinutes' => <float>, // REQUIRED
                            'timeoutMinutes' => <integer>,
                            'ungraceful' => [
                                'behavior' => 'skip',
                            ],
                        ],
                        'ec2AsgCapacityIncreaseConfig' => [
                            'asgs' => [ // REQUIRED
                                [
                                    'arn' => '<string>',
                                    'crossAccountRole' => '<string>',
                                    'externalId' => '<string>',
                                ],
                                // ...
                            ],
                            'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|autoscalingMaxInLast24Hours',
                            'targetPercent' => <integer>,
                            'timeoutMinutes' => <integer>,
                            'ungraceful' => [
                                'minimumSuccessPercentage' => <integer>, // REQUIRED
                            ],
                        ],
                        'ecsCapacityIncreaseConfig' => [
                            'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|containerInsightsMaxInLast24Hours',
                            'services' => [ // REQUIRED
                                [
                                    'clusterArn' => '<string>',
                                    'crossAccountRole' => '<string>',
                                    'externalId' => '<string>',
                                    'serviceArn' => '<string>',
                                ],
                                // ...
                            ],
                            'targetPercent' => <integer>,
                            'timeoutMinutes' => <integer>,
                            'ungraceful' => [
                                'minimumSuccessPercentage' => <integer>, // REQUIRED
                            ],
                        ],
                        'eksResourceScalingConfig' => [
                            'capacityMonitoringApproach' => 'sampledMaxInLast24Hours',
                            'eksClusters' => [
                                [
                                    'clusterArn' => '<string>', // REQUIRED
                                    'crossAccountRole' => '<string>',
                                    'externalId' => '<string>',
                                ],
                                // ...
                            ],
                            'kubernetesResourceType' => [ // REQUIRED
                                'apiVersion' => '<string>', // REQUIRED
                                'kind' => '<string>', // REQUIRED
                            ],
                            'scalingResources' => [
                                [
                                    '<String>' => [
                                        '<Region>' => [
                                            'hpaName' => '<string>',
                                            'name' => '<string>', // REQUIRED
                                            'namespace' => '<string>', // REQUIRED
                                        ],
                                        // ...
                                    ],
                                    // ...
                                ],
                                // ...
                            ],
                            'targetPercent' => <integer>,
                            'timeoutMinutes' => <integer>,
                            'ungraceful' => [
                                'minimumSuccessPercentage' => <integer>, // REQUIRED
                            ],
                        ],
                        'executionApprovalConfig' => [
                            'approvalRole' => '<string>', // REQUIRED
                            'timeoutMinutes' => <integer>,
                        ],
                        'globalAuroraConfig' => [
                            'behavior' => 'switchoverOnly|failover', // REQUIRED
                            'crossAccountRole' => '<string>',
                            'databaseClusterArns' => ['<string>', ...], // REQUIRED
                            'externalId' => '<string>',
                            'globalClusterIdentifier' => '<string>', // REQUIRED
                            'timeoutMinutes' => <integer>,
                            'ungraceful' => [
                                'ungraceful' => 'failover',
                            ],
                        ],
                        'parallelConfig' => [
                            'steps' => [...], // REQUIRED, RECURSIVE
                        ],
                        'regionSwitchPlanConfig' => [
                            'arn' => '<string>', // REQUIRED
                            'crossAccountRole' => '<string>',
                            'externalId' => '<string>',
                        ],
                        'route53HealthCheckConfig' => [
                            'crossAccountRole' => '<string>',
                            'externalId' => '<string>',
                            'hostedZoneId' => '<string>', // REQUIRED
                            'recordName' => '<string>', // REQUIRED
                            'recordSets' => [
                                [
                                    'recordSetIdentifier' => '<string>',
                                    'region' => '<string>',
                                ],
                                // ...
                            ],
                            'timeoutMinutes' => <integer>,
                        ],
                    ],
                    'executionBlockType' => 'CustomActionLambda|ManualApproval|AuroraGlobalDatabase|EC2AutoScaling|ARCRoutingControl|ARCRegionSwitchPlan|Parallel|ECSServiceScaling|EKSResourceScaling|Route53HealthCheck', // REQUIRED
                    'name' => '<string>', // REQUIRED
                ],
                // ...
            ],
            'workflowDescription' => '<string>',
            'workflowTargetAction' => 'activate|deactivate', // REQUIRED
            'workflowTargetRegion' => '<string>',
        ],
        // ...
    ],
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan.

associatedAlarms
Type: Associative array of custom strings keys (String) to AssociatedAlarm structures

The updated CloudWatch alarms associated with the plan.

description
Type: string

The updated description for the Region switch plan.

executionRole
Required: Yes
Type: string

The updated IAM role ARN that grants Region switch the permissions needed to execute the plan steps.

recoveryTimeObjectiveMinutes
Type: int

The updated target recovery time objective (RTO) in minutes for the plan.

triggers
Type: Array of Trigger structures

The updated conditions that can automatically trigger the execution of the plan.

workflows
Required: Yes
Type: Array of Workflow structures

The updated workflows for the Region switch plan.

Result Syntax

[
    'plan' => [
        'arn' => '<string>',
        'associatedAlarms' => [
            '<String>' => [
                'alarmType' => 'applicationHealth|trigger',
                'crossAccountRole' => '<string>',
                'externalId' => '<string>',
                'resourceIdentifier' => '<string>',
            ],
            // ...
        ],
        'description' => '<string>',
        'executionRole' => '<string>',
        'name' => '<string>',
        'owner' => '<string>',
        'primaryRegion' => '<string>',
        'recoveryApproach' => 'activeActive|activePassive',
        'recoveryTimeObjectiveMinutes' => <integer>,
        'regions' => ['<string>', ...],
        'triggers' => [
            [
                'action' => 'activate|deactivate',
                'conditions' => [
                    [
                        'associatedAlarmName' => '<string>',
                        'condition' => 'red|green',
                    ],
                    // ...
                ],
                'description' => '<string>',
                'minDelayMinutesBetweenExecutions' => <integer>,
                'targetRegion' => '<string>',
            ],
            // ...
        ],
        'updatedAt' => <DateTime>,
        'version' => '<string>',
        'workflows' => [
            [
                'steps' => [
                    [
                        'description' => '<string>',
                        'executionBlockConfiguration' => [
                            'arcRoutingControlConfig' => [
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                                'regionAndRoutingControls' => [
                                    '<String>' => [
                                        [
                                            'routingControlArn' => '<string>',
                                            'state' => 'On|Off',
                                        ],
                                        // ...
                                    ],
                                    // ...
                                ],
                                'timeoutMinutes' => <integer>,
                            ],
                            'customActionLambdaConfig' => [
                                'lambdas' => [
                                    [
                                        'arn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'regionToRun' => 'activatingRegion|deactivatingRegion',
                                'retryIntervalMinutes' => <float>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'behavior' => 'skip',
                                ],
                            ],
                            'ec2AsgCapacityIncreaseConfig' => [
                                'asgs' => [
                                    [
                                        'arn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|autoscalingMaxInLast24Hours',
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'ecsCapacityIncreaseConfig' => [
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours|containerInsightsMaxInLast24Hours',
                                'services' => [
                                    [
                                        'clusterArn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                        'serviceArn' => '<string>',
                                    ],
                                    // ...
                                ],
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'eksResourceScalingConfig' => [
                                'capacityMonitoringApproach' => 'sampledMaxInLast24Hours',
                                'eksClusters' => [
                                    [
                                        'clusterArn' => '<string>',
                                        'crossAccountRole' => '<string>',
                                        'externalId' => '<string>',
                                    ],
                                    // ...
                                ],
                                'kubernetesResourceType' => [
                                    'apiVersion' => '<string>',
                                    'kind' => '<string>',
                                ],
                                'scalingResources' => [
                                    [
                                        '<String>' => [
                                            '<Region>' => [
                                                'hpaName' => '<string>',
                                                'name' => '<string>',
                                                'namespace' => '<string>',
                                            ],
                                            // ...
                                        ],
                                        // ...
                                    ],
                                    // ...
                                ],
                                'targetPercent' => <integer>,
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'minimumSuccessPercentage' => <integer>,
                                ],
                            ],
                            'executionApprovalConfig' => [
                                'approvalRole' => '<string>',
                                'timeoutMinutes' => <integer>,
                            ],
                            'globalAuroraConfig' => [
                                'behavior' => 'switchoverOnly|failover',
                                'crossAccountRole' => '<string>',
                                'databaseClusterArns' => ['<string>', ...],
                                'externalId' => '<string>',
                                'globalClusterIdentifier' => '<string>',
                                'timeoutMinutes' => <integer>,
                                'ungraceful' => [
                                    'ungraceful' => 'failover',
                                ],
                            ],
                            'parallelConfig' => [
                                'steps' => [...], // RECURSIVE
                            ],
                            'regionSwitchPlanConfig' => [
                                'arn' => '<string>',
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                            ],
                            'route53HealthCheckConfig' => [
                                'crossAccountRole' => '<string>',
                                'externalId' => '<string>',
                                'hostedZoneId' => '<string>',
                                'recordName' => '<string>',
                                'recordSets' => [
                                    [
                                        'recordSetIdentifier' => '<string>',
                                        'region' => '<string>',
                                    ],
                                    // ...
                                ],
                                'timeoutMinutes' => <integer>,
                            ],
                        ],
                        'executionBlockType' => 'CustomActionLambda|ManualApproval|AuroraGlobalDatabase|EC2AutoScaling|ARCRoutingControl|ARCRegionSwitchPlan|Parallel|ECSServiceScaling|EKSResourceScaling|Route53HealthCheck',
                        'name' => '<string>',
                    ],
                    // ...
                ],
                'workflowDescription' => '<string>',
                'workflowTargetAction' => 'activate|deactivate',
                'workflowTargetRegion' => '<string>',
            ],
            // ...
        ],
    ],
]

Result Details

Members
plan
Type: Plan structure

The details of the updated Region switch plan.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

UpdatePlanExecution

$result = $client->updatePlanExecution([/* ... */]);
$promise = $client->updatePlanExecutionAsync([/* ... */]);

Updates an in-progress plan execution. This operation allows you to modify certain aspects of the execution, such as adding a comment or changing the action.

Parameter Syntax

$result = $client->updatePlanExecution([
    'action' => 'switchToGraceful|switchToUngraceful|pause|resume', // REQUIRED
    'comment' => '<string>',
    'executionId' => '<string>', // REQUIRED
    'planArn' => '<string>', // REQUIRED
]);

Parameter Details

Members
action
Required: Yes
Type: string

The action specified for a plan execution, for example, Switch to Graceful or Pause.

comment
Type: string

An optional comment about the plan execution.

executionId
Required: Yes
Type: string

The execution identifier of a plan execution.

planArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan with the execution to update.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

IllegalStateException:

The operation failed because the current state of the resource doesn't allow the operation to proceed.

HTTP Status Code: 400

AccessDeniedException:

You do not have sufficient access to perform this action.

HTTP Status Code: 403

UpdatePlanExecutionStep

$result = $client->updatePlanExecutionStep([/* ... */]);
$promise = $client->updatePlanExecutionStepAsync([/* ... */]);

Updates a specific step in an in-progress plan execution. This operation allows you to modify the step's comment or action.

Parameter Syntax

$result = $client->updatePlanExecutionStep([
    'actionToTake' => 'switchToUngraceful|skip', // REQUIRED
    'comment' => '<string>', // REQUIRED
    'executionId' => '<string>', // REQUIRED
    'planArn' => '<string>', // REQUIRED
    'stepName' => '<string>', // REQUIRED
]);

Parameter Details

Members
actionToTake
Required: Yes
Type: string

The updated action to take for the step. This can be used to skip or retry a step.

comment
Required: Yes
Type: string

An optional comment about the plan execution.

executionId
Required: Yes
Type: string

The unique identifier of the plan execution containing the step to update.

planArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan containing the execution step to update.

stepName
Required: Yes
Type: string

The name of the execution step to update.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ResourceNotFoundException:

The specified resource was not found.

HTTP Status Code: 404

AccessDeniedException:

You do not have sufficient access to perform this action.

HTTP Status Code: 403

Shapes

AbbreviatedExecution

Description

A summarized representation of a plan execution. This structure contains key information about an execution without all the detailed step data.

Members
actualRecoveryTime
Type: string

The actual recovery time that Region switch calculates for a plan execution. Actual recovery time includes the time for the plan to run added to the time elapsed until the application health alarms that you've specified are healthy again.

comment
Type: string

An optional comment about the plan execution.

endTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the plan execution was ended.

executionAction
Required: Yes
Type: string

The plan execution action. Valid values are Activate, to activate an Amazon Web Services Region, or Deactivate, to deactivate a Region.

executionId
Required: Yes
Type: string

The execution identifier of a plan execution.

executionRegion
Required: Yes
Type: string

The Amazon Web Services Region for a plan execution.

executionState
Required: Yes
Type: string

The plan execution state. Provides the state of a plan execution, for example, In Progress or Paused by Operator.

mode
Required: Yes
Type: string

The plan execution mode. Valid values are Practice, for testing without making actual changes, or Recovery, for actual traffic shifting and application recovery.

planArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan.

startTime
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the plan execution was started.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the plan execution was last updated.

version
Type: string

The version for the plan.

AbbreviatedPlan

Description

A summarized representation of a Region switch plan. This structure contains key information about a plan without all the detailed workflow and step data.

Members
activePlanExecution
Type: string

Specifies if this is the active plan execution at this time.

arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the Region switch plan.

description
Type: string

The description of a Region switch plan.

executionRole
Type: string

The execution role is a way to categorize a Region switch plan.

name
Required: Yes
Type: string

The name of a Region switch plan.

owner
Required: Yes
Type: string

The owner of a Region switch plan.

primaryRegion
Type: string

The primary Region for a plan.

recoveryApproach
Required: Yes
Type: string

The recovery approach for a Region switch plan, which can be active/active (activeActive) or active/passive (activePassive).

recoveryTimeObjectiveMinutes
Type: int

The recovery time objective that you've specified.

regions
Required: Yes
Type: Array of strings

The Amazon Web Services Region specified for a Region switch plan.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the plan execution was last updated.

version
Type: string

The version for the plan.

AccessDeniedException

Description

You do not have sufficient access to perform this action.

HTTP Status Code: 403

Members
message
Required: Yes
Type: string

ArcRoutingControlConfiguration

Description

Configuration for ARC routing controls used in a Region switch plan. Routing controls are simple on/off switches that you can use to shift traffic away from an impaired Region.

Members
crossAccountRole
Type: string

The cross account role for the configuration.

externalId
Type: string

The external ID (secret key) for the configuration.

regionAndRoutingControls
Required: Yes
Type: Associative array of custom strings keys (String) to ArcRoutingControlState structuress

The Region and ARC routing controls for the configuration.

timeoutMinutes
Type: int

The timeout value specified for the configuration.

ArcRoutingControlState

Description

Represents the state of an ARC routing control.

Members
routingControlArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of a routing control.

state
Required: Yes
Type: string

The state of an ARC routing control, On or Off.

Asg

Description

Configuration for an Amazon EC2 Auto Scaling group used in a Region switch plan.

Members
arn
Type: string

The Amazon Resource Name (ARN) of the EC2 Auto Scaling group.

crossAccountRole
Type: string

The cross account role for the configuration.

externalId
Type: string

The external ID (secret key) for the configuration.

AssociatedAlarm

Description

An Amazon CloudWatch alarm associated with a Region switch plan. These alarms can be used to trigger automatic execution of the plan.

Members
alarmType
Required: Yes
Type: string

The alarm type for an associated alarm. An associated CloudWatch alarm can be an application health alarm or a trigger alarm.

crossAccountRole
Type: string

The cross account role for the configuration.

externalId
Type: string

The external ID (secret key) for the configuration.

resourceIdentifier
Required: Yes
Type: string

The resource identifier for alarms that you associate with a plan.

CustomActionLambdaConfiguration

Description

Configuration for Amazon Web Services Lambda functions that perform custom actions during a Region switch.

Members
lambdas
Required: Yes
Type: Array of Lambdas structures

The Amazon Web Services Lambda functions for the execution block.

regionToRun
Required: Yes
Type: string

The Amazon Web Services Region for the function to run in.

retryIntervalMinutes
Required: Yes
Type: float

The retry interval specified.

timeoutMinutes
Type: int

The timeout value specified for the configuration.

ungraceful
Type: LambdaUngraceful structure

The settings for ungraceful execution.

Ec2AsgCapacityIncreaseConfiguration

Description

Configuration for increasing the capacity of Amazon EC2 Auto Scaling groups during a Region switch.

Members
asgs
Required: Yes
Type: Array of Asg structures

The EC2 Auto Scaling groups for the configuration.

capacityMonitoringApproach
Type: string

The monitoring approach that you specify EC2 Auto Scaling groups for the configuration.

targetPercent
Type: int

The target percentage that you specify for EC2 Auto Scaling groups.

timeoutMinutes
Type: int

The timeout value specified for the configuration.

ungraceful
Type: Ec2Ungraceful structure

The settings for ungraceful execution.

Ec2Ungraceful

Description

Configuration for handling failures when performing operations on EC2 resources.

Members
minimumSuccessPercentage
Required: Yes
Type: int

The minimum success percentage that you specify for EC2 Auto Scaling groups.

EcsCapacityIncreaseConfiguration

Description

The configuration for an Amazon Web Services ECS capacity increase.

Members
capacityMonitoringApproach
Type: string

The monitoring approach specified for the configuration, for example, Most_Recent.

services
Required: Yes
Type: Array of Service structures

The services specified for the configuration.

targetPercent
Type: int

The target percentage specified for the configuration.

timeoutMinutes
Type: int

The timeout value specified for the configuration.

ungraceful
Type: EcsUngraceful structure

The settings for ungraceful execution.

EcsUngraceful

Description

The settings for ungraceful execution.

Members
minimumSuccessPercentage
Required: Yes
Type: int

The minimum success percentage specified for the configuration.

EksCluster

Description

The Amazon Web Services EKS cluster execution block configuration.

Members
clusterArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of an Amazon Web Services EKS cluster.

crossAccountRole
Type: string

The cross account role for the configuration.

externalId
Type: string

The external ID (secret key) for the configuration.

EksResourceScalingConfiguration

Description

The Amazon Web Services EKS resource scaling configuration.

Members
capacityMonitoringApproach
Type: string

The monitoring approach for the configuration, that is, whether it was sampled in the last 24 hours or autoscaled in the last 24 hours.

eksClusters
Type: Array of EksCluster structures

The clusters for the configuration.

kubernetesResourceType
Required: Yes
Type: KubernetesResourceType structure

The Kubernetes resource type for the configuration.

scalingResources
Type: Array of maps

The scaling resources for the configuration.

targetPercent
Type: int

The target percentage for the configuration.

timeoutMinutes
Type: int

The timeout value specified for the configuration.

ungraceful

The settings for ungraceful execution.

EksResourceScalingUngraceful

Description

The ungraceful settings for Amazon Web Services EKS resource scaling.

Members
minimumSuccessPercentage
Required: Yes
Type: int

The minimum success percentage for the configuration.

ExecutionApprovalConfiguration

Description

Configuration for approval steps in a Region switch plan execution. Approval steps require manual intervention before the execution can proceed.

Members
approvalRole
Required: Yes
Type: string

The IAM approval role for the configuration.

timeoutMinutes
Type: int

The timeout value specified for the configuration.

ExecutionBlockConfiguration

Description

Execution block configurations for a workflow in a Region switch plan. An execution block represents a specific type of action to perform during a Region switch.

Members
arcRoutingControlConfig

An ARC routing control execution block.

customActionLambdaConfig

An Amazon Web Services Lambda execution block.

ec2AsgCapacityIncreaseConfig

An EC2 Auto Scaling group execution block.

ecsCapacityIncreaseConfig

The capacity increase specified for the configuration.

eksResourceScalingConfig

An Amazon Web Services EKS resource scaling execution block.

executionApprovalConfig

A manual approval execution block.

globalAuroraConfig
Type: GlobalAuroraConfiguration structure

An Aurora Global Database execution block.

parallelConfig

A parallel configuration execution block.

regionSwitchPlanConfig

A Region switch plan execution block.

route53HealthCheckConfig

The Amazon Route 53 health check configuration.

ExecutionEvent

Description

Represents an event that occurred during a plan execution. These events provide a detailed timeline of the execution process.

Members
description
Type: string

The description for an execution event.

error
Type: string

Errors for an execution event.

eventId
Required: Yes
Type: string

The event ID for an execution event.

executionBlockType
Type: string

The execution block type for an execution event.

previousEventId
Type: string

The event ID of the previous execution event.

resources
Type: Array of strings

The resources for an execution event.

stepName
Type: string

The step name for an execution event.

timestamp
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp for an execution event.

type
Type: string

The type of an execution event.

GlobalAuroraConfiguration

Description

Configuration for Amazon Aurora global databases used in a Region switch plan.

Members
behavior
Required: Yes
Type: string

The behavior for a global database, that is, only allow switchover or also allow failover.

crossAccountRole
Type: string

The cross account role for the configuration.

databaseClusterArns
Required: Yes
Type: Array of strings

The database cluster Amazon Resource Names (ARNs) for a global database.

externalId
Type: string

The external ID (secret key) for the configuration.

globalClusterIdentifier
Required: Yes
Type: string

The global cluster identifier for a global database.

timeoutMinutes
Type: int

The timeout value specified for the configuration.

ungraceful
Type: GlobalAuroraUngraceful structure

The settings for ungraceful execution.

GlobalAuroraUngraceful

Description

Configuration for handling failures when performing operations on Aurora global databases.

Members
ungraceful
Type: string

The settings for ungraceful execution.

IllegalArgumentException

Description

The request processing has an invalid argument.

Members
message
Required: Yes
Type: string

IllegalStateException

Description

The operation failed because the current state of the resource doesn't allow the operation to proceed.

HTTP Status Code: 400

Members
message
Required: Yes
Type: string

InternalServerException

Description

The request processing has failed because of an unknown error, exception, or failure.

HTTP Status Code: 500

Members
message
Required: Yes
Type: string

KubernetesResourceType

Description

Defines the type of Kubernetes resource to scale in an Amazon EKS cluster.

Members
apiVersion
Required: Yes
Type: string

The API version type for the Kubernetes resource.

kind
Required: Yes
Type: string

The kind for the Kubernetes resource.

KubernetesScalingResource

Description

Defines a Kubernetes resource to scale in an Amazon EKS cluster.

Members
hpaName
Type: string

The hpaname for the Kubernetes resource.

name
Required: Yes
Type: string

The name for the Kubernetes resource.

namespace
Required: Yes
Type: string

The namespace for the Kubernetes resource.

LambdaUngraceful

Description

Configuration for handling failures when invoking Lambda functions.

Members
behavior
Type: string

The ungraceful behavior for a Lambda function, which must be set to skip.

Lambdas

Description

Configuration for Amazon Web Services Lambda functions used in a Region switch plan.

Members
arn
Type: string

The Amazon Resource Name (ARN) of the Lambda function.

crossAccountRole
Type: string

The cross account role for the configuration.

externalId
Type: string

The external ID (secret key) for the configuration.

MinimalWorkflow

Description

A simplified representation of a workflow in a Region switch plan.

Members
action
Type: string

The action for a minimal workflow, which can be Activate or Deactivate.

name
Type: string

The name for a minimal workflow

ParallelExecutionBlockConfiguration

Description

Configuration for steps that should be executed in parallel during a Region switch.

Members
steps
Required: Yes
Type: Array of Step structures

The steps for a parallel execution block.

Plan

Description

Represents a Region switch plan. A plan defines the steps required to shift traffic from one Amazon Web Services Region to another.

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan.

associatedAlarms
Type: Associative array of custom strings keys (String) to AssociatedAlarm structures

The associated application health alarms for a plan.

description
Type: string

The description for a plan.

executionRole
Required: Yes
Type: string

The execution role for a plan.

name
Required: Yes
Type: string

The name for a plan.

owner
Required: Yes
Type: string

The owner of a plan.

primaryRegion
Type: string

The primary Region for a plan.

recoveryApproach
Required: Yes
Type: string

The recovery approach for a Region switch plan, which can be active/active (activeActive) or active/passive (activePassive).

recoveryTimeObjectiveMinutes
Type: int

The recovery time objective for a plan.

regions
Required: Yes
Type: Array of strings

The Amazon Web Services Regions for a plan.

triggers
Type: Array of Trigger structures

The triggers for a plan.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the plan was last updated.

version
Type: string

The version for the plan.

workflows
Required: Yes
Type: Array of Workflow structures

The workflows for a plan.

RegionSwitchPlanConfiguration

Description

Configuration for nested Region switch plans. This allows one Region switch plan to trigger another plan as part of its execution.

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the plan configuration.

crossAccountRole
Type: string

The cross account role for the configuration.

externalId
Type: string

The external ID (secret key) for the configuration.

ResourceNotFoundException

Description

The specified resource was not found.

HTTP Status Code: 404

Members
message
Required: Yes
Type: string

ResourceWarning

Description

Represents a warning about a resource in a Region switch plan.

Members
resourceArn
Type: string

The Amazon Resource Name (ARN) of the resource.

stepName
Type: string

The name of the step for the resource warning.

version
Required: Yes
Type: string

The version for the resource warning.

warningMessage
Required: Yes
Type: string

The warning message about what needs to be corrected.

warningStatus
Required: Yes
Type: string

The status of the resource warning.

warningUpdatedTime
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the warning was last updated.

workflow
Type: MinimalWorkflow structure

The workflow for the resource warning.

Route53HealthCheck

Description

The Amazon Route 53 health check.

Members
healthCheckId
Type: string

The Amazon Route 53 health check ID.

hostedZoneId
Required: Yes
Type: string

The Amazon Route 53 health check hosted zone ID.

recordName
Required: Yes
Type: string

The Amazon Route 53 record name.

region
Required: Yes
Type: string

The Amazon Route 53 Region.

Route53HealthCheckConfiguration

Description

The Amazon Route 53 health check configuration.

Members
crossAccountRole
Type: string

The cross account role for the configuration.

externalId
Type: string

The external ID (secret key) for the configuration.

hostedZoneId
Required: Yes
Type: string

The Amazon Route 53 health check configuration hosted zone ID.

recordName
Required: Yes
Type: string

The Amazon Route 53 health check configuration record name.

recordSets
Type: Array of Route53ResourceRecordSet structures

The Amazon Route 53 health check configuration record sets.

timeoutMinutes
Type: int

The Amazon Route 53 health check configuration time out (in minutes).

Route53ResourceRecordSet

Description

The Amazon Route 53 record set.

Members
recordSetIdentifier
Type: string

The Amazon Route 53 record set identifier.

region
Type: string

The Amazon Route 53 record set Region.

Service

Description

The service for a cross account role.

Members
clusterArn
Type: string

The cluster Amazon Resource Name (ARN) for a service.

crossAccountRole
Type: string

The cross account role for a service.

externalId
Type: string

The external ID (secret key) for the service.

serviceArn
Type: string

The Amazon Resource Name (ARN) for a service.

Step

Description

Represents a step in a Region switch plan workflow. Each step performs a specific action during the Region switch process.

Members
description
Type: string

The description of a step in a workflow.

executionBlockConfiguration
Required: Yes
Type: ExecutionBlockConfiguration structure

The configuration for an execution block in a workflow.

executionBlockType
Required: Yes
Type: string

The type of an execution block in a workflow.

name
Required: Yes
Type: string

The name of a step in a workflow.

StepState

Description

Represents the state of a step in a plan execution.

Members
endTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when a step endeded execution.

name
Type: string

The name of a step in a workflow.

startTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when a step started execution.

status
Type: string

The status of a step in a workflow. For example, a status might be Completed or Pending Approval.

stepMode
Type: string

The mode for a step execution. The mode can be Graceful or Ungraceful.

Trigger

Description

Defines a condition that can automatically trigger the execution of a Region switch plan.

Members
action
Required: Yes
Type: string

The action to perform when the trigger fires. Valid values include ACTIVATE and DEACTIVATE.

conditions
Required: Yes
Type: Array of TriggerCondition structures

The conditions that must be met for the trigger to fire.

description
Type: string

The description for a trigger.

minDelayMinutesBetweenExecutions
Required: Yes
Type: int

The minimum time, in minutes, that must elapse between automatic executions of the plan.

targetRegion
Required: Yes
Type: string

The Amazon Web Services Region for a trigger.

TriggerCondition

Description

Defines a condition that must be met for a trigger to fire.

Members
associatedAlarmName
Required: Yes
Type: string

The name of the CloudWatch alarm associated with the condition.

condition
Required: Yes
Type: string

The condition that must be met. Valid values include ALARM and OK.

Workflow

Description

Represents a workflow in a Region switch plan. A workflow defines a sequence of steps to execute during a Region switch.

Members
steps
Type: Array of Step structures

The steps that make up the workflow.

workflowDescription
Type: string

The description of the workflow.

workflowTargetAction
Required: Yes
Type: string

The action that the workflow performs. Valid values include ACTIVATE and DEACTIVATE.

workflowTargetRegion
Type: string

The Amazon Web Services Region that the workflow targets.