Current section

Files

Jump to
aws lib aws generated a_r_c_regionswitch.ex
Raw

lib/aws/generated/a_r_c_regionswitch.ex

# WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
# See https://github.com/aws-beam/aws-codegen for more details.
defmodule AWS.ARCRegionswitch do
@moduledoc """
Amazon Application Recovery Controller (ARC) Region switch helps you to quickly
and reliably shift traffic away from an impaired Amazon Web Services Region to a
healthy Region.
With Region switch, you can create plans that define the steps to shift traffic
for your application from one Amazon Web Services Region to another.
Region switch provides a structured approach to multi-Region failover, helping
you to meet your recovery time objectives (RTOs) and maintain business
continuity during regional disruptions.
For more information, see [Region switch in ARC](https://docs.aws.amazon.com/r53recovery/latest/dg/region-switch.html) in
the *Amazon Application Recovery Controller User Guide*.
"""
alias AWS.Client
alias AWS.Request
@typedoc """
## Example:
get_plan_response() :: %{
"plan" => plan()
}
"""
@type get_plan_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
associated_alarm() :: %{
"alarmType" => list(any()),
"crossAccountRole" => String.t() | atom(),
"externalId" => [String.t() | atom()],
"resourceIdentifier" => [String.t() | atom()]
}
"""
@type associated_alarm() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_plan_execution_events_response() :: %{
"items" => list(execution_event()),
"nextToken" => [String.t() | atom()]
}
"""
@type list_plan_execution_events_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
kubernetes_scaling_resource() :: %{
"hpaName" => [String.t() | atom()],
"name" => [String.t() | atom()],
"namespace" => String.t() | atom()
}
"""
@type kubernetes_scaling_resource() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_route53_health_checks_response() :: %{
"healthChecks" => list(route53_health_check()),
"nextToken" => String.t() | atom()
}
"""
@type list_route53_health_checks_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
arc_routing_control_state() :: %{
"routingControlArn" => String.t() | atom(),
"state" => list(any())
}
"""
@type arc_routing_control_state() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_plan_executions_response() :: %{
"items" => list(abbreviated_execution()),
"nextToken" => [String.t() | atom()]
}
"""
@type list_plan_executions_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
eks_cluster() :: %{
"clusterArn" => String.t() | atom(),
"crossAccountRole" => String.t() | atom(),
"externalId" => [String.t() | atom()]
}
"""
@type eks_cluster() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
access_denied_exception() :: %{
"message" => [String.t() | atom()]
}
"""
@type access_denied_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
aurora_serverless_scaling_configuration() :: %{
"crossAccountRole" => String.t() | atom(),
"externalId" => [String.t() | atom()],
"globalClusterIdentifier" => String.t() | atom(),
"regionDatabaseClusterArns" => map(),
"targetPercent" => [integer()],
"timeoutMinutes" => [integer()]
}
"""
@type aurora_serverless_scaling_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
execution_approval_configuration() :: %{
"approvalRole" => String.t() | atom(),
"timeoutMinutes" => [integer()]
}
"""
@type execution_approval_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
failed_report_output() :: %{
"errorCode" => list(any()),
"errorMessage" => [String.t() | atom()]
}
"""
@type failed_report_output() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
resource_warning() :: %{
"resourceArn" => String.t() | atom(),
"stepName" => String.t() | atom(),
"version" => [String.t() | atom()],
"warningMessage" => [String.t() | atom()],
"warningStatus" => list(any()),
"warningUpdatedTime" => [non_neg_integer()],
"workflow" => minimal_workflow()
}
"""
@type resource_warning() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
ec2_asg_capacity_increase_configuration() :: %{
"asgs" => list(asg()),
"capacityMonitoringApproach" => list(any()),
"targetPercent" => [integer()],
"timeoutMinutes" => [integer()],
"ungraceful" => ec2_ungraceful()
}
"""
@type ec2_asg_capacity_increase_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
rds_promote_read_replica_configuration() :: %{
"crossAccountRole" => String.t() | atom(),
"dbInstanceArnMap" => map(),
"externalId" => [String.t() | atom()],
"timeoutMinutes" => [integer()]
}
"""
@type rds_promote_read_replica_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_plan_in_region_request() :: %{
required("arn") => String.t() | atom()
}
"""
@type get_plan_in_region_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
lambdas() :: %{
"arn" => String.t() | atom(),
"crossAccountRole" => String.t() | atom(),
"externalId" => [String.t() | atom()]
}
"""
@type lambdas() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
execution_event() :: %{
"description" => [String.t() | atom()],
"error" => [String.t() | atom()],
"eventId" => [String.t() | atom()],
"executionBlockType" => list(any()),
"previousEventId" => [String.t() | atom()],
"resources" => list([String.t() | atom()]()),
"stepName" => String.t() | atom(),
"timestamp" => [non_neg_integer()],
"type" => list(any())
}
"""
@type execution_event() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_plans_in_region_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom()
}
"""
@type list_plans_in_region_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
neptune_global_database_configuration() :: %{
"behavior" => list(any()),
"crossAccountRole" => String.t() | atom(),
"externalId" => [String.t() | atom()],
"globalClusterIdentifier" => String.t() | atom(),
"regionDatabaseClusterArns" => map(),
"timeoutMinutes" => [integer()],
"ungraceful" => neptune_ungraceful()
}
"""
@type neptune_global_database_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_plan_in_region_response() :: %{
"plan" => plan()
}
"""
@type get_plan_in_region_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_route53_health_checks_in_region_request() :: %{
optional("hostedZoneId") => String.t() | atom(),
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom(),
optional("recordName") => String.t() | atom(),
required("arn") => String.t() | atom()
}
"""
@type list_route53_health_checks_in_region_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
step_state() :: %{
"endTime" => [non_neg_integer()],
"name" => String.t() | atom(),
"startTime" => [non_neg_integer()],
"status" => list(any()),
"stepMode" => list(any())
}
"""
@type step_state() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
cancel_plan_execution_request() :: %{
optional("comment") => String.t() | atom(),
required("executionId") => String.t() | atom(),
required("planArn") => String.t() | atom()
}
"""
@type cancel_plan_execution_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
illegal_argument_exception() :: %{
"message" => [String.t() | atom()]
}
"""
@type illegal_argument_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_plans_in_region_response() :: %{
"nextToken" => String.t() | atom(),
"plans" => list(abbreviated_plan())
}
"""
@type list_plans_in_region_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
route53_health_check() :: %{
"healthCheckId" => String.t() | atom(),
"hostedZoneId" => String.t() | atom(),
"recordName" => String.t() | atom(),
"region" => String.t() | atom(),
"status" => list(any())
}
"""
@type route53_health_check() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_plan_execution_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => [String.t() | atom()],
required("executionId") => String.t() | atom(),
required("planArn") => String.t() | atom()
}
"""
@type get_plan_execution_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
service() :: %{
"clusterArn" => String.t() | atom(),
"crossAccountRole" => String.t() | atom(),
"externalId" => [String.t() | atom()],
"serviceArn" => String.t() | atom()
}
"""
@type service() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
document_db_configuration() :: %{
"behavior" => list(any()),
"crossAccountRole" => String.t() | atom(),
"databaseClusterArns" => list(String.t() | atom()),
"externalId" => [String.t() | atom()],
"globalClusterIdentifier" => String.t() | atom(),
"timeoutMinutes" => [integer()],
"ungraceful" => document_db_ungraceful()
}
"""
@type document_db_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_plan_request() :: %{
required("arn") => String.t() | atom()
}
"""
@type delete_plan_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_plan_execution_request() :: %{
optional("comment") => String.t() | atom(),
required("action") => list(any()),
required("executionId") => String.t() | atom(),
required("planArn") => String.t() | atom()
}
"""
@type update_plan_execution_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
document_db_ungraceful() :: %{
"ungraceful" => list(any())
}
"""
@type document_db_ungraceful() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
arc_routing_control_configuration() :: %{
"crossAccountRole" => String.t() | atom(),
"externalId" => [String.t() | atom()],
"regionAndRoutingControls" => map(),
"timeoutMinutes" => [integer()]
}
"""
@type arc_routing_control_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
s3_report_output_configuration() :: %{
"bucketOwner" => String.t() | atom(),
"bucketPath" => [String.t() | atom()]
}
"""
@type s3_report_output_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_plan_request() :: %{
optional("associatedAlarms") => map(),
optional("description") => [String.t() | atom()],
optional("primaryRegion") => String.t() | atom(),
optional("recoveryTimeObjectiveMinutes") => [integer()],
optional("reportConfiguration") => report_configuration(),
optional("tags") => map(),
optional("triggers") => list(trigger()),
required("executionRole") => String.t() | atom(),
required("name") => String.t() | atom(),
required("recoveryApproach") => list(any()),
required("regions") => list(String.t() | atom()),
required("workflows") => list(workflow())
}
"""
@type create_plan_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
eks_resource_scaling_configuration() :: %{
"capacityMonitoringApproach" => list(any()),
"eksClusters" => list(eks_cluster()),
"kubernetesResourceType" => kubernetes_resource_type(),
"scalingResources" => list(map()),
"targetPercent" => [integer()],
"timeoutMinutes" => [integer()],
"ungraceful" => eks_resource_scaling_ungraceful()
}
"""
@type eks_resource_scaling_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
aurora_provisioned_scaling_configuration() :: %{
"crossAccountRole" => String.t() | atom(),
"externalId" => [String.t() | atom()],
"globalClusterIdentifier" => String.t() | atom(),
"instanceArns" => map(),
"regionDatabaseClusterArns" => map(),
"timeoutMinutes" => [integer()]
}
"""
@type aurora_provisioned_scaling_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
approve_plan_execution_step_response() :: %{}
"""
@type approve_plan_execution_step_response() :: %{}
@typedoc """
## Example:
cancel_plan_execution_response() :: %{}
"""
@type cancel_plan_execution_response() :: %{}
@typedoc """
## Example:
internal_server_exception() :: %{
"message" => [String.t() | atom()]
}
"""
@type internal_server_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
start_plan_execution_response() :: %{
"activateRegion" => [String.t() | atom()],
"deactivateRegion" => [String.t() | atom()],
"executionId" => String.t() | atom(),
"plan" => String.t() | atom(),
"planVersion" => [String.t() | atom()]
}
"""
@type start_plan_execution_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
step() :: %{
"description" => [String.t() | atom()],
"executionBlockConfiguration" => list(),
"executionBlockType" => list(any()),
"name" => String.t() | atom()
}
"""
@type step() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
resource_not_found_exception() :: %{
"message" => [String.t() | atom()]
}
"""
@type resource_not_found_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
neptune_ungraceful() :: %{
"ungraceful" => list(any())
}
"""
@type neptune_ungraceful() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
tag_resource_request() :: %{
required("arn") => String.t() | atom(),
required("tags") => map()
}
"""
@type tag_resource_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
start_plan_execution_request() :: %{
optional("comment") => String.t() | atom(),
optional("latestVersion") => [String.t() | atom()],
optional("mode") => list(any()),
optional("recoveryExecutionId") => String.t() | atom(),
required("action") => list(any()),
required("planArn") => String.t() | atom(),
required("targetRegion") => [String.t() | atom()]
}
"""
@type start_plan_execution_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_plan_evaluation_status_response() :: %{
"evaluationState" => list(any()),
"lastEvaluatedVersion" => [String.t() | atom()],
"lastEvaluationTime" => [non_neg_integer()],
"nextToken" => String.t() | atom(),
"planArn" => String.t() | atom(),
"region" => String.t() | atom(),
"warnings" => list(resource_warning())
}
"""
@type get_plan_evaluation_status_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_plan_request() :: %{
optional("associatedAlarms") => map(),
optional("description") => [String.t() | atom()],
optional("recoveryTimeObjectiveMinutes") => [integer()],
optional("reportConfiguration") => report_configuration(),
optional("triggers") => list(trigger()),
required("arn") => String.t() | atom(),
required("executionRole") => String.t() | atom(),
required("workflows") => list(workflow())
}
"""
@type update_plan_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
global_aurora_ungraceful() :: %{
"ungraceful" => list(any())
}
"""
@type global_aurora_ungraceful() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
create_plan_response() :: %{
"plan" => plan()
}
"""
@type create_plan_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
workflow() :: %{
"steps" => list(step()),
"workflowDescription" => [String.t() | atom()],
"workflowTargetAction" => list(any()),
"workflowTargetRegion" => String.t() | atom()
}
"""
@type workflow() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
tag_resource_response() :: %{}
"""
@type tag_resource_response() :: %{}
@typedoc """
## Example:
update_plan_execution_step_response() :: %{}
"""
@type update_plan_execution_step_response() :: %{}
@typedoc """
## Example:
list_route53_health_checks_in_region_response() :: %{
"healthChecks" => list(route53_health_check()),
"nextToken" => String.t() | atom()
}
"""
@type list_route53_health_checks_in_region_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
delete_plan_response() :: %{}
"""
@type delete_plan_response() :: %{}
@typedoc """
## Example:
untag_resource_response() :: %{}
"""
@type untag_resource_response() :: %{}
@typedoc """
## Example:
event_source_mapping() :: %{
"arn" => String.t() | atom(),
"crossAccountRole" => String.t() | atom(),
"externalId" => [String.t() | atom()]
}
"""
@type event_source_mapping() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
generated_report() :: %{
"reportGenerationTime" => [non_neg_integer()],
"reportOutput" => list()
}
"""
@type generated_report() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_plans_response() :: %{
"nextToken" => String.t() | atom(),
"plans" => list(abbreviated_plan())
}
"""
@type list_plans_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
untag_resource_request() :: %{
required("arn") => String.t() | atom(),
required("resourceTagKeys") => list(String.t() | atom())
}
"""
@type untag_resource_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_plan_execution_step_request() :: %{
required("actionToTake") => list(any()),
required("comment") => String.t() | atom(),
required("executionId") => String.t() | atom(),
required("planArn") => String.t() | atom(),
required("stepName") => [String.t() | atom()]
}
"""
@type update_plan_execution_step_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_plan_execution_response() :: %{}
"""
@type update_plan_execution_response() :: %{}
@typedoc """
## Example:
parallel_execution_block_configuration() :: %{
"steps" => list(step())
}
"""
@type parallel_execution_block_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
plan() :: %{
"arn" => String.t() | atom(),
"associatedAlarms" => map(),
"description" => [String.t() | atom()],
"executionRole" => String.t() | atom(),
"name" => String.t() | atom(),
"owner" => String.t() | atom(),
"primaryRegion" => String.t() | atom(),
"recoveryApproach" => list(any()),
"recoveryTimeObjectiveMinutes" => [integer()],
"regions" => list(String.t() | atom()),
"reportConfiguration" => report_configuration(),
"triggers" => list(trigger()),
"updatedAt" => [non_neg_integer()],
"version" => [String.t() | atom()],
"workflows" => list(workflow())
}
"""
@type plan() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
lambda_event_source_mapping_ungraceful() :: %{
"behavior" => list(any())
}
"""
@type lambda_event_source_mapping_ungraceful() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_plans_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom()
}
"""
@type list_plans_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
lambda_event_source_mapping_configuration() :: %{
"action" => list(any()),
"regionEventSourceMappings" => map(),
"timeoutMinutes" => [integer()],
"ungraceful" => lambda_event_source_mapping_ungraceful()
}
"""
@type lambda_event_source_mapping_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
ec2_ungraceful() :: %{
"minimumSuccessPercentage" => [integer()]
}
"""
@type ec2_ungraceful() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_plan_execution_events_request() :: %{
optional("maxResults") => integer(),
optional("name") => String.t() | atom(),
optional("nextToken") => [String.t() | atom()],
required("executionId") => String.t() | atom(),
required("planArn") => String.t() | atom()
}
"""
@type list_plan_execution_events_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
trigger() :: %{
"action" => list(any()),
"conditions" => list(trigger_condition()),
"description" => [String.t() | atom()],
"minDelayMinutesBetweenExecutions" => [integer()],
"targetRegion" => String.t() | atom()
}
"""
@type trigger() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_tags_for_resource_response() :: %{
"resourceTags" => map()
}
"""
@type list_tags_for_resource_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
route53_resource_record_set() :: %{
"recordSetIdentifier" => String.t() | atom(),
"region" => String.t() | atom()
}
"""
@type route53_resource_record_set() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
lambda_ungraceful() :: %{
"behavior" => list(any())
}
"""
@type lambda_ungraceful() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
minimal_workflow() :: %{
"action" => list(any()),
"name" => [String.t() | atom()]
}
"""
@type minimal_workflow() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
approve_plan_execution_step_request() :: %{
optional("comment") => String.t() | atom(),
required("approval") => list(any()),
required("executionId") => String.t() | atom(),
required("planArn") => String.t() | atom(),
required("stepName") => String.t() | atom()
}
"""
@type approve_plan_execution_step_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
s3_report_output() :: %{
"s3ObjectKey" => [String.t() | atom()]
}
"""
@type s3_report_output() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
ecs_capacity_increase_configuration() :: %{
"capacityMonitoringApproach" => list(any()),
"services" => list(service()),
"targetPercent" => [integer()],
"timeoutMinutes" => [integer()],
"ungraceful" => ecs_ungraceful()
}
"""
@type ecs_capacity_increase_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
trigger_condition() :: %{
"associatedAlarmName" => [String.t() | atom()],
"condition" => list(any())
}
"""
@type trigger_condition() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
rds_create_cross_region_replica_configuration() :: %{
"crossAccountRole" => String.t() | atom(),
"dbInstanceArnMap" => map(),
"externalId" => [String.t() | atom()],
"timeoutMinutes" => [integer()]
}
"""
@type rds_create_cross_region_replica_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
ecs_ungraceful() :: %{
"minimumSuccessPercentage" => [integer()]
}
"""
@type ecs_ungraceful() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
abbreviated_plan() :: %{
"activePlanExecution" => String.t() | atom(),
"arn" => String.t() | atom(),
"description" => [String.t() | atom()],
"executionRole" => [String.t() | atom()],
"name" => String.t() | atom(),
"owner" => String.t() | atom(),
"primaryRegion" => String.t() | atom(),
"recoveryApproach" => list(any()),
"recoveryTimeObjectiveMinutes" => [integer()],
"regions" => list(String.t() | atom()),
"updatedAt" => [non_neg_integer()],
"version" => [String.t() | atom()]
}
"""
@type abbreviated_plan() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
asg() :: %{
"arn" => String.t() | atom(),
"crossAccountRole" => String.t() | atom(),
"externalId" => [String.t() | atom()]
}
"""
@type asg() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
illegal_state_exception() :: %{
"message" => [String.t() | atom()]
}
"""
@type illegal_state_exception() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
custom_action_lambda_configuration() :: %{
"lambdas" => list(lambdas()),
"regionToRun" => list(any()),
"retryIntervalMinutes" => [float()],
"timeoutMinutes" => [integer()],
"ungraceful" => lambda_ungraceful()
}
"""
@type custom_action_lambda_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
update_plan_response() :: %{
"plan" => plan()
}
"""
@type update_plan_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
global_aurora_configuration() :: %{
"behavior" => list(any()),
"crossAccountRole" => String.t() | atom(),
"databaseClusterArns" => list(String.t() | atom()),
"externalId" => [String.t() | atom()],
"globalClusterIdentifier" => String.t() | atom(),
"timeoutMinutes" => [integer()],
"ungraceful" => global_aurora_ungraceful()
}
"""
@type global_aurora_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_route53_health_checks_request() :: %{
optional("hostedZoneId") => String.t() | atom(),
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom(),
optional("recordName") => String.t() | atom(),
required("arn") => String.t() | atom()
}
"""
@type list_route53_health_checks_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
region_switch_plan_configuration() :: %{
"arn" => String.t() | atom(),
"crossAccountRole" => String.t() | atom(),
"externalId" => [String.t() | atom()]
}
"""
@type region_switch_plan_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_plan_execution_response() :: %{
"actualRecoveryTime" => String.t() | atom(),
"comment" => [String.t() | atom()],
"endTime" => [non_neg_integer()],
"executionAction" => list(any()),
"executionId" => String.t() | atom(),
"executionRegion" => [String.t() | atom()],
"executionState" => list(any()),
"generatedReportDetails" => list(generated_report()),
"mode" => list(any()),
"nextToken" => [String.t() | atom()],
"plan" => plan(),
"planArn" => String.t() | atom(),
"recoveryExecutionId" => [String.t() | atom()],
"startTime" => [non_neg_integer()],
"stepStates" => list(step_state()),
"updatedAt" => [non_neg_integer()],
"version" => [String.t() | atom()]
}
"""
@type get_plan_execution_response() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
report_configuration() :: %{
"reportOutput" => list(list())
}
"""
@type report_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_plan_evaluation_status_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => String.t() | atom(),
required("planArn") => String.t() | atom()
}
"""
@type get_plan_evaluation_status_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_tags_for_resource_request() :: %{
required("arn") => String.t() | atom()
}
"""
@type list_tags_for_resource_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
get_plan_request() :: %{
required("arn") => String.t() | atom()
}
"""
@type get_plan_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
abbreviated_execution() :: %{
"actualRecoveryTime" => String.t() | atom(),
"comment" => [String.t() | atom()],
"endTime" => [non_neg_integer()],
"executionAction" => list(any()),
"executionId" => String.t() | atom(),
"executionRegion" => [String.t() | atom()],
"executionState" => list(any()),
"mode" => list(any()),
"planArn" => String.t() | atom(),
"recoveryExecutionId" => [String.t() | atom()],
"startTime" => [non_neg_integer()],
"updatedAt" => [non_neg_integer()],
"version" => [String.t() | atom()]
}
"""
@type abbreviated_execution() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
route53_health_check_configuration() :: %{
"crossAccountRole" => String.t() | atom(),
"externalId" => [String.t() | atom()],
"hostedZoneId" => String.t() | atom(),
"recordName" => String.t() | atom(),
"recordSets" => list(route53_resource_record_set()),
"timeoutMinutes" => [integer()]
}
"""
@type route53_health_check_configuration() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
kubernetes_resource_type() :: %{
"apiVersion" => [String.t() | atom()],
"kind" => [String.t() | atom()]
}
"""
@type kubernetes_resource_type() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
list_plan_executions_request() :: %{
optional("maxResults") => integer(),
optional("nextToken") => [String.t() | atom()],
optional("state") => list(any()),
required("planArn") => String.t() | atom()
}
"""
@type list_plan_executions_request() :: %{(String.t() | atom()) => any()}
@typedoc """
## Example:
eks_resource_scaling_ungraceful() :: %{
"minimumSuccessPercentage" => [integer()]
}
"""
@type eks_resource_scaling_ungraceful() :: %{(String.t() | atom()) => any()}
@type approve_plan_execution_step_errors() ::
resource_not_found_exception() | access_denied_exception()
@type cancel_plan_execution_errors() ::
resource_not_found_exception() | access_denied_exception()
@type delete_plan_errors() :: illegal_state_exception() | resource_not_found_exception()
@type get_plan_errors() :: resource_not_found_exception()
@type get_plan_evaluation_status_errors() ::
resource_not_found_exception() | access_denied_exception()
@type get_plan_execution_errors() :: resource_not_found_exception() | access_denied_exception()
@type get_plan_in_region_errors() :: resource_not_found_exception() | access_denied_exception()
@type list_plan_execution_events_errors() ::
resource_not_found_exception() | access_denied_exception()
@type list_plan_executions_errors() ::
resource_not_found_exception() | access_denied_exception()
@type list_plans_in_region_errors() :: access_denied_exception()
@type list_route53_health_checks_errors() ::
resource_not_found_exception()
| internal_server_exception()
| illegal_argument_exception()
| access_denied_exception()
@type list_route53_health_checks_in_region_errors() ::
resource_not_found_exception()
| internal_server_exception()
| illegal_argument_exception()
| access_denied_exception()
@type list_tags_for_resource_errors() ::
resource_not_found_exception() | internal_server_exception()
@type start_plan_execution_errors() ::
illegal_state_exception()
| resource_not_found_exception()
| illegal_argument_exception()
| access_denied_exception()
@type tag_resource_errors() :: resource_not_found_exception() | internal_server_exception()
@type untag_resource_errors() :: resource_not_found_exception() | internal_server_exception()
@type update_plan_errors() :: resource_not_found_exception()
@type update_plan_execution_errors() ::
illegal_state_exception() | resource_not_found_exception() | access_denied_exception()
@type update_plan_execution_step_errors() ::
resource_not_found_exception() | access_denied_exception()
def metadata do
%{
api_version: "2022-07-26",
content_type: "application/x-amz-json-1.0",
credential_scope: nil,
endpoint_prefix: "arc-region-switch",
global?: false,
hostname: nil,
protocol: "json",
service_id: "ARC Region switch",
signature_version: "v4",
signing_name: "arc-region-switch",
target_prefix: "ArcRegionSwitch"
}
end
@doc """
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.
"""
@spec approve_plan_execution_step(map(), approve_plan_execution_step_request(), list()) ::
{:ok, approve_plan_execution_step_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, approve_plan_execution_step_errors()}
def approve_plan_execution_step(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ApprovePlanExecutionStep", input, options)
end
@doc """
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.
"""
@spec cancel_plan_execution(map(), cancel_plan_execution_request(), list()) ::
{:ok, cancel_plan_execution_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, cancel_plan_execution_errors()}
def cancel_plan_execution(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "CancelPlanExecution", input, options)
end
@doc """
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.
"""
@spec create_plan(map(), create_plan_request(), list()) ::
{:ok, create_plan_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
def create_plan(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "CreatePlan", input, options)
end
@doc """
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.
"""
@spec delete_plan(map(), delete_plan_request(), list()) ::
{:ok, delete_plan_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, delete_plan_errors()}
def delete_plan(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "DeletePlan", input, options)
end
@doc """
Retrieves detailed information about a Region switch plan.
You must specify the ARN of the plan.
"""
@spec get_plan(map(), get_plan_request(), list()) ::
{:ok, get_plan_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_plan_errors()}
def get_plan(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetPlan", input, options)
end
@doc """
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.
"""
@spec get_plan_evaluation_status(map(), get_plan_evaluation_status_request(), list()) ::
{:ok, get_plan_evaluation_status_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_plan_evaluation_status_errors()}
def get_plan_evaluation_status(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetPlanEvaluationStatus", input, options)
end
@doc """
Retrieves detailed information about a specific plan execution.
You must specify the plan ARN and execution ID.
"""
@spec get_plan_execution(map(), get_plan_execution_request(), list()) ::
{:ok, get_plan_execution_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_plan_execution_errors()}
def get_plan_execution(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetPlanExecution", input, options)
end
@doc """
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.
"""
@spec get_plan_in_region(map(), get_plan_in_region_request(), list()) ::
{:ok, get_plan_in_region_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, get_plan_in_region_errors()}
def get_plan_in_region(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "GetPlanInRegion", input, options)
end
@doc """
Lists the events that occurred during a plan execution.
These events provide a detailed timeline of the execution process.
"""
@spec list_plan_execution_events(map(), list_plan_execution_events_request(), list()) ::
{:ok, list_plan_execution_events_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_plan_execution_events_errors()}
def list_plan_execution_events(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListPlanExecutionEvents", input, options)
end
@doc """
Lists the executions of a Region switch plan.
This operation returns information about both current and historical executions.
"""
@spec list_plan_executions(map(), list_plan_executions_request(), list()) ::
{:ok, list_plan_executions_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_plan_executions_errors()}
def list_plan_executions(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListPlanExecutions", input, options)
end
@doc """
Lists all Region switch plans in your Amazon Web Services account.
"""
@spec list_plans(map(), list_plans_request(), list()) ::
{:ok, list_plans_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
def list_plans(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListPlans", input, options)
end
@doc """
Lists all Region switch plans in your Amazon Web Services account that are
available in the current Amazon Web Services Region.
"""
@spec list_plans_in_region(map(), list_plans_in_region_request(), list()) ::
{:ok, list_plans_in_region_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_plans_in_region_errors()}
def list_plans_in_region(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListPlansInRegion", input, options)
end
@doc """
List the Amazon Route 53 health checks.
"""
@spec list_route53_health_checks(map(), list_route53_health_checks_request(), list()) ::
{:ok, list_route53_health_checks_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_route53_health_checks_errors()}
def list_route53_health_checks(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListRoute53HealthChecks", input, options)
end
@doc """
List the Amazon Route 53 health checks in a specific Amazon Web Services Region.
"""
@spec list_route53_health_checks_in_region(
map(),
list_route53_health_checks_in_region_request(),
list()
) ::
{:ok, list_route53_health_checks_in_region_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_route53_health_checks_in_region_errors()}
def list_route53_health_checks_in_region(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListRoute53HealthChecksInRegion", input, options)
end
@doc """
Lists the tags attached to a Region switch resource.
"""
@spec list_tags_for_resource(map(), list_tags_for_resource_request(), list()) ::
{:ok, list_tags_for_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, list_tags_for_resource_errors()}
def list_tags_for_resource(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "ListTagsForResource", input, options)
end
@doc """
Starts the execution of a Region switch plan.
You can execute a plan in either `graceful` or `ungraceful` mode.
Specifing `ungraceful` mode either changes the behavior of the execution blocks
in a workflow or skips specific execution blocks.
"""
@spec start_plan_execution(map(), start_plan_execution_request(), list()) ::
{:ok, start_plan_execution_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, start_plan_execution_errors()}
def start_plan_execution(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "StartPlanExecution", input, options)
end
@doc """
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.
"""
@spec tag_resource(map(), tag_resource_request(), list()) ::
{:ok, tag_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, tag_resource_errors()}
def tag_resource(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "TagResource", input, options)
end
@doc """
Removes tags from a Region switch resource.
"""
@spec untag_resource(map(), untag_resource_request(), list()) ::
{:ok, untag_resource_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, untag_resource_errors()}
def untag_resource(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "UntagResource", input, options)
end
@doc """
Updates an existing Region switch plan.
You can modify the plan's description, workflows, execution role, recovery time
objective, associated alarms, and triggers.
"""
@spec update_plan(map(), update_plan_request(), list()) ::
{:ok, update_plan_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, update_plan_errors()}
def update_plan(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "UpdatePlan", input, options)
end
@doc """
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.
"""
@spec update_plan_execution(map(), update_plan_execution_request(), list()) ::
{:ok, update_plan_execution_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, update_plan_execution_errors()}
def update_plan_execution(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "UpdatePlanExecution", input, options)
end
@doc """
Updates a specific step in an in-progress plan execution.
This operation allows you to modify the step's comment or action.
"""
@spec update_plan_execution_step(map(), update_plan_execution_step_request(), list()) ::
{:ok, update_plan_execution_step_response(), any()}
| {:error, {:unexpected_response, any()}}
| {:error, term()}
| {:error, update_plan_execution_step_errors()}
def update_plan_execution_step(%Client{} = client, input, options \\ []) do
meta =
metadata()
Request.request_post(client, meta, "UpdatePlanExecutionStep", input, options)
end
end