{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2022-07-26",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"arc-region-switch",
    "jsonVersion":"1.0",
    "protocol":"smithy-rpc-v2-cbor",
    "protocols":[
      "smithy-rpc-v2-cbor",
      "json"
    ],
    "serviceFullName":"ARC - Region switch",
    "serviceId":"ARC Region switch",
    "signatureVersion":"v4",
    "signingName":"arc-region-switch",
    "targetPrefix":"ArcRegionSwitch",
    "uid":"arc-region-switch-2022-07-26"
  },
  "operations":{
    "ApprovePlanExecutionStep":{
      "name":"ApprovePlanExecutionStep",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ApprovePlanExecutionStepRequest"},
      "output":{"shape":"ApprovePlanExecutionStepResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>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.</p> <p>You must specify the plan ARN, execution ID, step name, and approval status. You can also provide an optional comment explaining the approval decision.</p>"
    },
    "CancelPlanExecution":{
      "name":"CancelPlanExecution",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CancelPlanExecutionRequest"},
      "output":{"shape":"CancelPlanExecutionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Cancels an in-progress plan execution. This operation stops the execution of the plan and prevents any further steps from being processed.</p> <p>You must specify the plan ARN and execution ID. You can also provide an optional comment explaining why the execution was canceled.</p>"
    },
    "CreatePlan":{
      "name":"CreatePlan",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreatePlanRequest"},
      "output":{"shape":"CreatePlanResponse"},
      "documentation":"<p>Creates a new Region switch plan. A plan defines the steps required to shift traffic from one Amazon Web Services Region to another.</p> <p>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.</p>",
      "staticContextParams":{
        "UseControlPlaneEndpoint":{"value":true}
      }
    },
    "DeletePlan":{
      "name":"DeletePlan",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeletePlanRequest"},
      "output":{"shape":"DeletePlanResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"IllegalStateException"}
      ],
      "documentation":"<p>Deletes a Region switch plan. You must specify the ARN of the plan to delete.</p> <p>You cannot delete a plan that has an active execution in progress.</p>",
      "idempotent":true,
      "staticContextParams":{
        "UseControlPlaneEndpoint":{"value":true}
      }
    },
    "GetPlan":{
      "name":"GetPlan",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetPlanRequest"},
      "output":{"shape":"GetPlanResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Retrieves detailed information about a Region switch plan. You must specify the ARN of the plan.</p>",
      "readonly":true,
      "staticContextParams":{
        "UseControlPlaneEndpoint":{"value":true}
      }
    },
    "GetPlanEvaluationStatus":{
      "name":"GetPlanEvaluationStatus",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetPlanEvaluationStatusRequest"},
      "output":{"shape":"GetPlanEvaluationStatusResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>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.</p>",
      "readonly":true
    },
    "GetPlanExecution":{
      "name":"GetPlanExecution",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetPlanExecutionRequest"},
      "output":{"shape":"GetPlanExecutionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves detailed information about a specific plan execution. You must specify the plan ARN and execution ID.</p>",
      "readonly":true
    },
    "GetPlanInRegion":{
      "name":"GetPlanInRegion",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetPlanInRegionRequest"},
      "output":{"shape":"GetPlanInRegionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>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.</p>",
      "readonly":true
    },
    "ListPlanExecutionEvents":{
      "name":"ListPlanExecutionEvents",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListPlanExecutionEventsRequest"},
      "output":{"shape":"ListPlanExecutionEventsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists the events that occurred during a plan execution. These events provide a detailed timeline of the execution process.</p>",
      "readonly":true
    },
    "ListPlanExecutions":{
      "name":"ListPlanExecutions",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListPlanExecutionsRequest"},
      "output":{"shape":"ListPlanExecutionsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists the executions of a Region switch plan. This operation returns information about both current and historical executions.</p>",
      "readonly":true
    },
    "ListPlans":{
      "name":"ListPlans",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListPlansRequest"},
      "output":{"shape":"ListPlansResponse"},
      "documentation":"<p>Lists all Region switch plans in your Amazon Web Services account.</p>",
      "readonly":true,
      "staticContextParams":{
        "UseControlPlaneEndpoint":{"value":true}
      }
    },
    "ListPlansInRegion":{
      "name":"ListPlansInRegion",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListPlansInRegionRequest"},
      "output":{"shape":"ListPlansInRegionResponse"},
      "errors":[
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists all Region switch plans in your Amazon Web Services account that are available in the current Amazon Web Services Region.</p>",
      "readonly":true
    },
    "ListRoute53HealthChecks":{
      "name":"ListRoute53HealthChecks",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListRoute53HealthChecksRequest"},
      "output":{"shape":"ListRoute53HealthChecksResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"IllegalArgumentException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>List the Amazon Route 53 health checks.</p>",
      "readonly":true,
      "staticContextParams":{
        "UseControlPlaneEndpoint":{"value":true}
      }
    },
    "ListRoute53HealthChecksInRegion":{
      "name":"ListRoute53HealthChecksInRegion",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListRoute53HealthChecksInRegionRequest"},
      "output":{"shape":"ListRoute53HealthChecksInRegionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"IllegalArgumentException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>List the Amazon Route 53 health checks in a specific Amazon Web Services Region.</p>",
      "readonly":true
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists the tags attached to a Region switch resource.</p>",
      "readonly":true,
      "staticContextParams":{
        "UseControlPlaneEndpoint":{"value":true}
      }
    },
    "StartPlanExecution":{
      "name":"StartPlanExecution",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"StartPlanExecutionRequest"},
      "output":{"shape":"StartPlanExecutionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"IllegalStateException"},
        {"shape":"AccessDeniedException"},
        {"shape":"IllegalArgumentException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Starts the execution of a Region switch plan. You can execute a plan in either <code>graceful</code> or <code>ungraceful</code> mode.</p> <p>Specifing <code>ungraceful</code> mode either changes the behavior of the execution blocks in a workflow or skips specific execution blocks.</p>"
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>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.</p>",
      "staticContextParams":{
        "UseControlPlaneEndpoint":{"value":true}
      }
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Removes tags from a Region switch resource.</p>",
      "staticContextParams":{
        "UseControlPlaneEndpoint":{"value":true}
      }
    },
    "UpdatePlan":{
      "name":"UpdatePlan",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdatePlanRequest"},
      "output":{"shape":"UpdatePlanResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Updates an existing Region switch plan. You can modify the plan's description, workflows, execution role, recovery time objective, associated alarms, and triggers.</p>",
      "staticContextParams":{
        "UseControlPlaneEndpoint":{"value":true}
      }
    },
    "UpdatePlanExecution":{
      "name":"UpdatePlanExecution",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdatePlanExecutionRequest"},
      "output":{"shape":"UpdatePlanExecutionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"IllegalStateException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>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.</p>"
    },
    "UpdatePlanExecutionStep":{
      "name":"UpdatePlanExecutionStep",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdatePlanExecutionStepRequest"},
      "output":{"shape":"UpdatePlanExecutionStepResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates a specific step in an in-progress plan execution. This operation allows you to modify the step's comment or action.</p>"
    }
  },
  "shapes":{
    "AbbreviatedExecution":{
      "type":"structure",
      "required":[
        "planArn",
        "executionId",
        "startTime",
        "mode",
        "executionState",
        "executionAction",
        "executionRegion"
      ],
      "members":{
        "planArn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan.</p>"
        },
        "executionId":{
          "shape":"ExecutionId",
          "documentation":"<p>The execution identifier of a plan execution.</p>"
        },
        "version":{
          "shape":"String",
          "documentation":"<p>The version for the plan.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the plan execution was last updated.</p>"
        },
        "comment":{
          "shape":"String",
          "documentation":"<p>An optional comment about the plan execution.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the plan execution was started.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the plan execution was ended.</p>"
        },
        "mode":{
          "shape":"ExecutionMode",
          "documentation":"<p>The plan execution mode. Valid values are <code>graceful</code>, for graceful executions, or <code>ungraceful</code>, for ungraceful executions.</p>"
        },
        "executionState":{
          "shape":"ExecutionState",
          "documentation":"<p>The plan execution state. Provides the state of a plan execution, for example, In Progress or Paused by Operator.</p>"
        },
        "executionAction":{
          "shape":"ExecutionAction",
          "documentation":"<p>The plan execution action. Valid values are <code>activate</code>, to activate an Amazon Web Services Region, or <code>deactivate</code>, to deactivate a Region.</p>"
        },
        "executionRegion":{
          "shape":"String",
          "documentation":"<p>The Amazon Web Services Region for a plan execution.</p>"
        },
        "recoveryExecutionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the most recent recovery execution. Required when starting a post-recovery execution.</p>"
        },
        "actualRecoveryTime":{
          "shape":"Duration",
          "documentation":"<p>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.</p>"
        }
      },
      "documentation":"<p>A summarized representation of a plan execution. This structure contains key information about an execution without all the detailed step data.</p>"
    },
    "AbbreviatedExecutionsList":{
      "type":"list",
      "member":{"shape":"AbbreviatedExecution"}
    },
    "AbbreviatedPlan":{
      "type":"structure",
      "required":[
        "arn",
        "owner",
        "name",
        "regions",
        "recoveryApproach"
      ],
      "members":{
        "arn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Region switch plan.</p>"
        },
        "owner":{
          "shape":"AccountId",
          "documentation":"<p>The owner of a Region switch plan.</p>"
        },
        "name":{
          "shape":"PlanName",
          "documentation":"<p>The name of a Region switch plan.</p>"
        },
        "regions":{
          "shape":"RegionList",
          "documentation":"<p>The Amazon Web Services Region specified for a Region switch plan.</p>"
        },
        "recoveryApproach":{
          "shape":"RecoveryApproach",
          "documentation":"<p>The recovery approach for a Region switch plan, which can be active/active (activeActive) or active/passive (activePassive).</p>"
        },
        "primaryRegion":{
          "shape":"Region",
          "documentation":"<p>The primary Region for a plan.</p>"
        },
        "version":{
          "shape":"String",
          "documentation":"<p>The version for the plan.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the plan execution was last updated.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>The description of a Region switch plan.</p>"
        },
        "executionRole":{
          "shape":"String",
          "documentation":"<p>The execution role is a way to categorize a Region switch plan. </p>"
        },
        "activePlanExecution":{
          "shape":"ExecutionId",
          "documentation":"<p>Specifies if this is the active plan execution at this time.</p>"
        },
        "recoveryTimeObjectiveMinutes":{
          "shape":"AbbreviatedPlanRecoveryTimeObjectiveMinutesInteger",
          "documentation":"<p>The recovery time objective that you've specified.</p>"
        }
      },
      "documentation":"<p>A summarized representation of a Region switch plan. This structure contains key information about a plan without all the detailed workflow and step data.</p>"
    },
    "AbbreviatedPlanRecoveryTimeObjectiveMinutesInteger":{
      "type":"integer",
      "box":true,
      "max":10080,
      "min":1
    },
    "AccessDeniedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>You do not have sufficient access to perform this action.</p> <p>HTTP Status Code: 403</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AccountId":{
      "type":"string",
      "pattern":"\\d{12}"
    },
    "AlarmCondition":{
      "type":"string",
      "enum":[
        "red",
        "green"
      ]
    },
    "AlarmType":{
      "type":"string",
      "enum":[
        "applicationHealth",
        "trigger"
      ]
    },
    "Approval":{
      "type":"string",
      "enum":[
        "approve",
        "decline"
      ]
    },
    "ApprovePlanExecutionStepRequest":{
      "type":"structure",
      "required":[
        "planArn",
        "executionId",
        "stepName",
        "approval"
      ],
      "members":{
        "planArn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan.</p>"
        },
        "executionId":{
          "shape":"ExecutionId",
          "documentation":"<p>The execution identifier of a plan execution.</p>"
        },
        "stepName":{
          "shape":"StepName",
          "documentation":"<p>The name of a step in a plan execution.</p>"
        },
        "approval":{
          "shape":"Approval",
          "documentation":"<p>The status of approval for a plan execution step. </p>"
        },
        "comment":{
          "shape":"ExecutionComment",
          "documentation":"<p>A comment that you can enter about a plan execution.</p>"
        }
      }
    },
    "ApprovePlanExecutionStepResponse":{
      "type":"structure",
      "members":{}
    },
    "ArcRoutingControlConfiguration":{
      "type":"structure",
      "required":["regionAndRoutingControls"],
      "members":{
        "timeoutMinutes":{
          "shape":"ArcRoutingControlConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "regionAndRoutingControls":{
          "shape":"RegionAndRoutingControls",
          "documentation":"<p>The Region and ARC routing controls for the configuration.</p>"
        }
      },
      "documentation":"<p>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.</p>"
    },
    "ArcRoutingControlConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "ArcRoutingControlState":{
      "type":"structure",
      "required":[
        "routingControlArn",
        "state"
      ],
      "members":{
        "routingControlArn":{
          "shape":"RoutingControlArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of a routing control.</p>"
        },
        "state":{
          "shape":"RoutingControlStateChange",
          "documentation":"<p>The state of an ARC routing control, On or Off.</p>"
        }
      },
      "documentation":"<p>Represents the state of an ARC routing control.</p>"
    },
    "ArcRoutingControlStates":{
      "type":"list",
      "member":{"shape":"ArcRoutingControlState"}
    },
    "Asg":{
      "type":"structure",
      "members":{
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "arn":{
          "shape":"AsgArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the EC2 Auto Scaling group.</p>"
        }
      },
      "documentation":"<p>Configuration for an Amazon EC2 Auto Scaling group used in a Region switch plan.</p>"
    },
    "AsgArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:autoscaling:[a-z0-9-]+:\\d{12}:autoScalingGroup:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}:autoScalingGroupName/[\\S\\s]{1,255}"
    },
    "AsgList":{
      "type":"list",
      "member":{"shape":"Asg"},
      "max":2,
      "min":2
    },
    "AssociatedAlarm":{
      "type":"structure",
      "required":[
        "resourceIdentifier",
        "alarmType"
      ],
      "members":{
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "resourceIdentifier":{
          "shape":"String",
          "documentation":"<p>The resource identifier for alarms that you associate with a plan.</p>"
        },
        "alarmType":{
          "shape":"AlarmType",
          "documentation":"<p>The alarm type for an associated alarm. An associated CloudWatch alarm can be an application health alarm or a trigger alarm.</p>"
        }
      },
      "documentation":"<p>An Amazon CloudWatch alarm associated with a Region switch plan. These alarms can be used to trigger automatic execution of the plan.</p>"
    },
    "AssociatedAlarmMap":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"AssociatedAlarm"}
    },
    "AuroraClusterArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:rds:[a-z0-9-]+:\\d{12}:cluster:[A-Za-z][0-9A-Za-z-:._]*"
    },
    "AuroraClusterArns":{
      "type":"list",
      "member":{"shape":"AuroraClusterArn"}
    },
    "AuroraInstanceArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:rds:[a-z0-9-]+:\\d{12}:db:[A-Za-z][0-9A-Za-z-]{0,62}"
    },
    "AuroraProvisionedScalingConfiguration":{
      "type":"structure",
      "required":[
        "globalClusterIdentifier",
        "regionDatabaseClusterArns",
        "instanceArns"
      ],
      "members":{
        "timeoutMinutes":{
          "shape":"AuroraProvisionedScalingConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "globalClusterIdentifier":{
          "shape":"GlobalClusterIdentifier",
          "documentation":"<p>The global cluster identifier for a global database.</p>"
        },
        "regionDatabaseClusterArns":{
          "shape":"RegionAuroraClusterMap",
          "documentation":"<p>Per-Region configuration that maps each Region to the Aurora database cluster ARN for scaling.</p>"
        },
        "instanceArns":{
          "shape":"RegionAuroraInstanceArnMap",
          "documentation":"<p>Per-Region configuration that maps each Region to the Aurora database instance ARN for scaling.</p>"
        }
      },
      "documentation":"<p>Configuration for Amazon Aurora provisioned cluster scaling used in a Region switch plan.</p>"
    },
    "AuroraProvisionedScalingConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "AuroraServerlessScalingConfiguration":{
      "type":"structure",
      "required":[
        "globalClusterIdentifier",
        "regionDatabaseClusterArns"
      ],
      "members":{
        "timeoutMinutes":{
          "shape":"AuroraServerlessScalingConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "globalClusterIdentifier":{
          "shape":"GlobalClusterIdentifier",
          "documentation":"<p>The global cluster identifier for a global database.</p>"
        },
        "regionDatabaseClusterArns":{
          "shape":"RegionAuroraClusterMap",
          "documentation":"<p>Per-Region configuration that maps each Region to the Aurora database cluster ARN for scaling.</p>"
        },
        "targetPercent":{
          "shape":"Integer",
          "documentation":"<p>The target capacity percentage for Aurora Serverless scaling.</p>"
        }
      },
      "documentation":"<p>Configuration for Amazon Aurora Serverless scaling used in a Region switch plan.</p>"
    },
    "AuroraServerlessScalingConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "CancelPlanExecutionRequest":{
      "type":"structure",
      "required":[
        "planArn",
        "executionId"
      ],
      "members":{
        "planArn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan.</p>"
        },
        "executionId":{
          "shape":"ExecutionId",
          "documentation":"<p>The execution identifier of a plan execution.</p>"
        },
        "comment":{
          "shape":"ExecutionComment",
          "documentation":"<p>A comment that you can enter about canceling a plan execution step.</p>"
        }
      }
    },
    "CancelPlanExecutionResponse":{
      "type":"structure",
      "members":{}
    },
    "ConflictException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"},
        "resourceId":{
          "shape":"String",
          "documentation":"<p>The identifier of the resource involved in the client token conflict.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>The type of the resource involved in the client token conflict.</p>"
        }
      },
      "documentation":"<p>The client token was already used with different request parameters. A client token must map to the same parameters for every request. To retry this operation, provide a new client token.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "CreatePlanRequest":{
      "type":"structure",
      "required":[
        "workflows",
        "executionRole",
        "name",
        "regions",
        "recoveryApproach"
      ],
      "members":{
        "description":{
          "shape":"String",
          "documentation":"<p>The description of a Region switch plan.</p>"
        },
        "workflows":{
          "shape":"WorkflowList",
          "documentation":"<p>An array of workflows included in a Region switch plan.</p>"
        },
        "executionRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>An execution role is a way to categorize a Region switch plan.</p>"
        },
        "recoveryTimeObjectiveMinutes":{
          "shape":"CreatePlanRequestRecoveryTimeObjectiveMinutesInteger",
          "documentation":"<p>Optionally, you can specify an recovery time objective for a Region switch plan, in minutes.</p>"
        },
        "associatedAlarms":{
          "shape":"AssociatedAlarmMap",
          "documentation":"<p>The alarms associated with a Region switch plan.</p>"
        },
        "triggers":{
          "shape":"TriggerList",
          "documentation":"<p>The triggers associated with a Region switch plan.</p>"
        },
        "reportConfiguration":{"shape":"ReportConfiguration"},
        "name":{
          "shape":"PlanName",
          "documentation":"<p>The name of a Region switch plan.</p>"
        },
        "regions":{
          "shape":"RegionList",
          "documentation":"<p>An array that specifies the Amazon Web Services Regions for a Region switch plan. Specify two Regions.</p>"
        },
        "recoveryApproach":{
          "shape":"RecoveryApproach",
          "documentation":"<p>The recovery approach for a Region switch plan, which can be active/active (activeActive) or active/passive (activePassive).</p>"
        },
        "primaryRegion":{
          "shape":"Region",
          "documentation":"<p>The primary Amazon Web Services Region for the application. This is the Region where the application normally runs before any Region switch occurs.</p>"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p>The tags to apply to the Region switch plan.</p>"
        }
      }
    },
    "CreatePlanRequestRecoveryTimeObjectiveMinutesInteger":{
      "type":"integer",
      "box":true,
      "max":10080,
      "min":1
    },
    "CreatePlanResponse":{
      "type":"structure",
      "members":{
        "plan":{
          "shape":"Plan",
          "documentation":"<p>The details of the created Region switch plan.</p>"
        }
      }
    },
    "CustomActionLambdaConfiguration":{
      "type":"structure",
      "required":[
        "lambdas",
        "retryIntervalMinutes",
        "regionToRun"
      ],
      "members":{
        "timeoutMinutes":{
          "shape":"CustomActionLambdaConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "lambdas":{
          "shape":"LambdaList",
          "documentation":"<p>The Amazon Web Services Lambda functions for the execution block.</p>"
        },
        "retryIntervalMinutes":{
          "shape":"Float",
          "documentation":"<p>The retry interval specified.</p>"
        },
        "regionToRun":{
          "shape":"RegionToRunIn",
          "documentation":"<p>The Amazon Web Services Region for the function to run in. For recovery workflows use <code>activatingRegion</code> or <code>deactivatingRegion</code>. For post-recovery workflows, use <code>activeRegion</code> (the Region with customer traffic) or <code>inactiveRegion</code> (the Region with no customer traffic).</p>"
        },
        "ungraceful":{
          "shape":"LambdaUngraceful",
          "documentation":"<p>The settings for ungraceful execution.</p>"
        }
      },
      "documentation":"<p>Configuration for Amazon Web Services Lambda functions that perform custom actions during a Region switch.</p>"
    },
    "CustomActionLambdaConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "DeletePlanRequest":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "arn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan.</p>"
        }
      }
    },
    "DeletePlanResponse":{
      "type":"structure",
      "members":{}
    },
    "DocumentDbClusterArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:rds:[a-z0-9-]+:\\d{12}:cluster:[a-zA-Z0-9][a-zA-Z0-9-_]{0,99}"
    },
    "DocumentDbClusterArns":{
      "type":"list",
      "member":{"shape":"DocumentDbClusterArn"}
    },
    "DocumentDbConfiguration":{
      "type":"structure",
      "required":[
        "behavior",
        "globalClusterIdentifier",
        "databaseClusterArns"
      ],
      "members":{
        "timeoutMinutes":{
          "shape":"DocumentDbConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "behavior":{
          "shape":"DocumentDbDefaultBehavior",
          "documentation":"<p>The behavior for a global cluster, that is, only allow switchover or also allow failover.</p>"
        },
        "ungraceful":{
          "shape":"DocumentDbUngraceful",
          "documentation":"<p>The settings for ungraceful execution.</p>"
        },
        "globalClusterIdentifier":{
          "shape":"DocumentDbGlobalClusterIdentifier",
          "documentation":"<p>The global cluster identifier for a DocumentDB global cluster.</p>"
        },
        "databaseClusterArns":{
          "shape":"DocumentDbClusterArns",
          "documentation":"<p>The database cluster Amazon Resource Names (ARNs) for a DocumentDB global cluster.</p>"
        }
      },
      "documentation":"<p>Configuration for Amazon DocumentDB global clusters used in a Region switch plan.</p>"
    },
    "DocumentDbConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "DocumentDbDefaultBehavior":{
      "type":"string",
      "enum":[
        "switchoverOnly",
        "failover"
      ]
    },
    "DocumentDbGlobalClusterIdentifier":{
      "type":"string",
      "pattern":"[A-Za-z][0-9A-Za-z-:._]*"
    },
    "DocumentDbUngraceful":{
      "type":"structure",
      "members":{
        "ungraceful":{
          "shape":"DocumentDbUngracefulBehavior",
          "documentation":"<p>The settings for ungraceful execution.</p>"
        }
      },
      "documentation":"<p>Configuration for handling failures when performing operations on DocumentDB global clusters.</p>"
    },
    "DocumentDbUngracefulBehavior":{
      "type":"string",
      "enum":["failover"]
    },
    "Duration":{
      "type":"string",
      "pattern":"P(?!$)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?"
    },
    "Ec2AsgCapacityIncreaseConfiguration":{
      "type":"structure",
      "required":["asgs"],
      "members":{
        "timeoutMinutes":{
          "shape":"Ec2AsgCapacityIncreaseConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "asgs":{
          "shape":"AsgList",
          "documentation":"<p>The EC2 Auto Scaling groups for the configuration.</p>"
        },
        "ungraceful":{
          "shape":"Ec2Ungraceful",
          "documentation":"<p>The settings for ungraceful execution.</p>"
        },
        "targetPercent":{
          "shape":"Integer",
          "documentation":"<p>The target percentage that you specify for EC2 Auto Scaling groups. The default is 100.</p>"
        },
        "capacityMonitoringApproach":{
          "shape":"Ec2AsgCapacityMonitoringApproach",
          "documentation":"<p>The monitoring approach that you specify EC2 Auto Scaling groups for the configuration.</p>"
        }
      },
      "documentation":"<p>Configuration for increasing the capacity of Amazon EC2 Auto Scaling groups during a Region switch.</p>"
    },
    "Ec2AsgCapacityIncreaseConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "Ec2AsgCapacityMonitoringApproach":{
      "type":"string",
      "enum":[
        "sampledMaxInLast24Hours",
        "autoscalingMaxInLast24Hours"
      ]
    },
    "Ec2Ungraceful":{
      "type":"structure",
      "required":["minimumSuccessPercentage"],
      "members":{
        "minimumSuccessPercentage":{
          "shape":"Ec2UngracefulMinimumSuccessPercentageInteger",
          "documentation":"<p>The minimum success percentage that you specify for EC2 Auto Scaling groups.</p>"
        }
      },
      "documentation":"<p>Configuration for handling failures when performing operations on EC2 resources.</p>"
    },
    "Ec2UngracefulMinimumSuccessPercentageInteger":{
      "type":"integer",
      "box":true,
      "max":99,
      "min":0
    },
    "EcsCapacityIncreaseConfiguration":{
      "type":"structure",
      "required":["services"],
      "members":{
        "timeoutMinutes":{
          "shape":"EcsCapacityIncreaseConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "services":{
          "shape":"ServiceList",
          "documentation":"<p>The services specified for the configuration.</p>"
        },
        "ungraceful":{
          "shape":"EcsUngraceful",
          "documentation":"<p>The settings for ungraceful execution.</p>"
        },
        "targetPercent":{
          "shape":"Integer",
          "documentation":"<p>The target percentage specified for the configuration. The default is 100.</p>"
        },
        "capacityMonitoringApproach":{
          "shape":"EcsCapacityMonitoringApproach",
          "documentation":"<p>The monitoring approach specified for the configuration, for example, <code>Most_Recent</code>.</p>"
        }
      },
      "documentation":"<p>The configuration for an Amazon Web Services ECS capacity increase.</p>"
    },
    "EcsCapacityIncreaseConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "EcsCapacityMonitoringApproach":{
      "type":"string",
      "enum":[
        "sampledMaxInLast24Hours",
        "containerInsightsMaxInLast24Hours"
      ]
    },
    "EcsClusterArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:ecs:[a-z0-9-]+:\\d{12}:cluster/[a-zA-Z0-9_-]{1,255}"
    },
    "EcsServiceArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:ecs:[a-z0-9-]+:\\d{12}:service/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]{1,255}"
    },
    "EcsUngraceful":{
      "type":"structure",
      "required":["minimumSuccessPercentage"],
      "members":{
        "minimumSuccessPercentage":{
          "shape":"EcsUngracefulMinimumSuccessPercentageInteger",
          "documentation":"<p>The minimum success percentage specified for the configuration.</p>"
        }
      },
      "documentation":"<p>The settings for ungraceful execution.</p>"
    },
    "EcsUngracefulMinimumSuccessPercentageInteger":{
      "type":"integer",
      "box":true,
      "max":99,
      "min":0
    },
    "EksCapacityMonitoringApproach":{
      "type":"string",
      "enum":["sampledMaxInLast24Hours"]
    },
    "EksCluster":{
      "type":"structure",
      "required":["clusterArn"],
      "members":{
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "clusterArn":{
          "shape":"EksClusterArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an Amazon Web Services EKS cluster.</p>"
        }
      },
      "documentation":"<p>The Amazon Web Services EKS cluster execution block configuration.</p>"
    },
    "EksClusterArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:eks:[a-z0-9-]+:\\d{12}:cluster/[a-zA-Z0-9][a-zA-Z0-9-_]{0,99}"
    },
    "EksClusters":{
      "type":"list",
      "member":{"shape":"EksCluster"},
      "min":2
    },
    "EksResourceScalingConfiguration":{
      "type":"structure",
      "required":["kubernetesResourceType"],
      "members":{
        "timeoutMinutes":{
          "shape":"EksResourceScalingConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "kubernetesResourceType":{
          "shape":"KubernetesResourceType",
          "documentation":"<p>The Kubernetes resource type for the configuration.</p>"
        },
        "scalingResources":{
          "shape":"KubernetesScalingApps",
          "documentation":"<p>The scaling resources for the configuration.</p>"
        },
        "eksClusters":{
          "shape":"EksClusters",
          "documentation":"<p>The clusters for the configuration.</p>"
        },
        "ungraceful":{
          "shape":"EksResourceScalingUngraceful",
          "documentation":"<p>The settings for ungraceful execution.</p>"
        },
        "targetPercent":{
          "shape":"EksResourceScalingConfigurationTargetPercentInteger",
          "documentation":"<p>The target percentage for the configuration. The default is 100.</p>"
        },
        "capacityMonitoringApproach":{
          "shape":"EksCapacityMonitoringApproach",
          "documentation":"<p>The monitoring approach for the configuration, that is, whether it was sampled in the last 24 hours or autoscaled in the last 24 hours.</p>"
        }
      },
      "documentation":"<p>The Amazon Web Services EKS resource scaling configuration.</p>"
    },
    "EksResourceScalingConfigurationTargetPercentInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "EksResourceScalingConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "EksResourceScalingUngraceful":{
      "type":"structure",
      "required":["minimumSuccessPercentage"],
      "members":{
        "minimumSuccessPercentage":{
          "shape":"EksResourceScalingUngracefulMinimumSuccessPercentageInteger",
          "documentation":"<p>The minimum success percentage for the configuration.</p>"
        }
      },
      "documentation":"<p>The ungraceful settings for Amazon Web Services EKS resource scaling.</p>"
    },
    "EksResourceScalingUngracefulMinimumSuccessPercentageInteger":{
      "type":"integer",
      "box":true,
      "max":99,
      "min":0
    },
    "EvaluationStatus":{
      "type":"string",
      "enum":[
        "passed",
        "actionRequired",
        "pendingEvaluation",
        "unknown"
      ]
    },
    "EventSourceMapping":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "arn":{
          "shape":"EventSourceMappingArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Lambda event source mapping.</p>"
        }
      },
      "documentation":"<p>The Amazon Web Services Lambda event source mapping configuration, containing the resource ARN and optional cross-account configuration.</p>"
    },
    "EventSourceMappingAction":{
      "type":"string",
      "enum":[
        "enable",
        "disable"
      ]
    },
    "EventSourceMappingArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:lambda:[a-z0-9-]+:\\d{12}:event-source-mapping:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
    },
    "ExecutionAction":{
      "type":"string",
      "enum":[
        "activate",
        "deactivate",
        "postRecovery"
      ]
    },
    "ExecutionApprovalConfiguration":{
      "type":"structure",
      "required":["approvalRole"],
      "members":{
        "timeoutMinutes":{
          "shape":"ExecutionApprovalConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "approvalRole":{
          "shape":"RoleArn",
          "documentation":"<p>The IAM approval role for the configuration.</p>"
        }
      },
      "documentation":"<p>Configuration for approval steps in a Region switch plan execution. Approval steps require manual intervention before the execution can proceed.</p>"
    },
    "ExecutionApprovalConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "ExecutionBlockConfiguration":{
      "type":"structure",
      "members":{
        "customActionLambdaConfig":{
          "shape":"CustomActionLambdaConfiguration",
          "documentation":"<p>An Amazon Web Services Lambda execution block.</p>"
        },
        "ec2AsgCapacityIncreaseConfig":{
          "shape":"Ec2AsgCapacityIncreaseConfiguration",
          "documentation":"<p>An EC2 Auto Scaling group execution block.</p>"
        },
        "executionApprovalConfig":{
          "shape":"ExecutionApprovalConfiguration",
          "documentation":"<p>A manual approval execution block.</p>"
        },
        "arcRoutingControlConfig":{
          "shape":"ArcRoutingControlConfiguration",
          "documentation":"<p>An ARC routing control execution block.</p>"
        },
        "globalAuroraConfig":{
          "shape":"GlobalAuroraConfiguration",
          "documentation":"<p>An Aurora Global Database execution block.</p>"
        },
        "parallelConfig":{
          "shape":"ParallelExecutionBlockConfiguration",
          "documentation":"<p>A parallel configuration execution block.</p>"
        },
        "regionSwitchPlanConfig":{
          "shape":"RegionSwitchPlanConfiguration",
          "documentation":"<p>A Region switch plan execution block.</p>"
        },
        "ecsCapacityIncreaseConfig":{
          "shape":"EcsCapacityIncreaseConfiguration",
          "documentation":"<p>The capacity increase specified for the configuration.</p>"
        },
        "eksResourceScalingConfig":{
          "shape":"EksResourceScalingConfiguration",
          "documentation":"<p>An Amazon Web Services EKS resource scaling execution block.</p>"
        },
        "route53HealthCheckConfig":{
          "shape":"Route53HealthCheckConfiguration",
          "documentation":"<p>The Amazon Route 53 health check configuration.</p>"
        },
        "documentDbConfig":{"shape":"DocumentDbConfiguration"},
        "rdsPromoteReadReplicaConfig":{
          "shape":"RdsPromoteReadReplicaConfiguration",
          "documentation":"<p>An Amazon RDS promote read replica execution block.</p>"
        },
        "rdsCreateCrossRegionReadReplicaConfig":{
          "shape":"RdsCreateCrossRegionReplicaConfiguration",
          "documentation":"<p>An Amazon RDS create cross-Region replica execution block.</p>"
        },
        "lambdaEventSourceMappingConfig":{
          "shape":"LambdaEventSourceMappingConfiguration",
          "documentation":"<p>A Lambda event source mapping execution block.</p>"
        },
        "auroraServerlessScalingConfig":{
          "shape":"AuroraServerlessScalingConfiguration",
          "documentation":"<p>An Aurora Serverless scaling execution block.</p>"
        },
        "auroraProvisionedScalingConfig":{
          "shape":"AuroraProvisionedScalingConfiguration",
          "documentation":"<p>An Aurora provisioned cluster scaling execution block.</p>"
        },
        "neptuneGlobalDatabaseConfig":{
          "shape":"NeptuneGlobalDatabaseConfiguration",
          "documentation":"<p>A Neptune global database execution block.</p>"
        }
      },
      "documentation":"<p>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.</p>",
      "union":true
    },
    "ExecutionBlockType":{
      "type":"string",
      "enum":[
        "CustomActionLambda",
        "ManualApproval",
        "AuroraGlobalDatabase",
        "EC2AutoScaling",
        "ARCRoutingControl",
        "ARCRegionSwitchPlan",
        "Parallel",
        "ECSServiceScaling",
        "EKSResourceScaling",
        "Route53HealthCheck",
        "DocumentDb",
        "RdsPromoteReadReplica",
        "RdsCreateCrossRegionReplica",
        "LambdaEventSourceMapping",
        "AuroraServerlessScaling",
        "AuroraProvisionedScaling",
        "NeptuneGlobalDatabase"
      ]
    },
    "ExecutionComment":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "ExecutionEvent":{
      "type":"structure",
      "required":["eventId"],
      "members":{
        "timestamp":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp for an execution event.</p>"
        },
        "type":{
          "shape":"ExecutionEventType",
          "documentation":"<p>The type of an execution event.</p>"
        },
        "stepName":{
          "shape":"StepName",
          "documentation":"<p>The step name for an execution event.</p>"
        },
        "executionBlockType":{
          "shape":"ExecutionBlockType",
          "documentation":"<p>The execution block type for an execution event.</p>"
        },
        "resources":{
          "shape":"Resources",
          "documentation":"<p>The resources for an execution event.</p>"
        },
        "error":{
          "shape":"String",
          "documentation":"<p>Errors for an execution event.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>The description for an execution event.</p>"
        },
        "eventId":{
          "shape":"String",
          "documentation":"<p>The event ID for an execution event.</p>"
        },
        "previousEventId":{
          "shape":"String",
          "documentation":"<p>The event ID of the previous execution event.</p>"
        }
      },
      "documentation":"<p>Represents an event that occurred during a plan execution. These events provide a detailed timeline of the execution process.</p>"
    },
    "ExecutionEventList":{
      "type":"list",
      "member":{"shape":"ExecutionEvent"}
    },
    "ExecutionEventType":{
      "type":"string",
      "enum":[
        "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",
        "planEvaluationWarning"
      ]
    },
    "ExecutionId":{"type":"string"},
    "ExecutionMode":{
      "type":"string",
      "enum":[
        "graceful",
        "ungraceful"
      ]
    },
    "ExecutionState":{
      "type":"string",
      "enum":[
        "inProgress",
        "pausedByFailedStep",
        "pausedByOperator",
        "completed",
        "completedWithExceptions",
        "canceled",
        "planExecutionTimedOut",
        "pendingManualApproval",
        "failed",
        "pending",
        "completedMonitoringApplicationHealth"
      ]
    },
    "FailedReportErrorCode":{
      "type":"string",
      "enum":[
        "insufficientPermissions",
        "invalidResource",
        "configurationError"
      ]
    },
    "FailedReportOutput":{
      "type":"structure",
      "members":{
        "errorCode":{
          "shape":"FailedReportErrorCode",
          "documentation":"<p>The error code for the failed report generation.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>The error message for the failed report generation.</p>"
        }
      },
      "documentation":"<p>Information about a report generation that failed.</p>"
    },
    "Float":{
      "type":"float",
      "box":true
    },
    "GeneratedReport":{
      "type":"structure",
      "members":{
        "reportGenerationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the report was generated.</p>"
        },
        "reportOutput":{
          "shape":"ReportOutput",
          "documentation":"<p>The output location or cause of a failure in report generation.</p>"
        }
      },
      "documentation":"<p>Information about a generated execution report.</p>"
    },
    "GeneratedReportDetails":{
      "type":"list",
      "member":{"shape":"GeneratedReport"},
      "max":1,
      "min":0
    },
    "GetPlanEvaluationStatusRequest":{
      "type":"structure",
      "required":["planArn"],
      "members":{
        "planArn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Region switch plan to retrieve evaluation status for.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The number of objects that you want to return with this call.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        }
      }
    },
    "GetPlanEvaluationStatusResponse":{
      "type":"structure",
      "required":["planArn"],
      "members":{
        "planArn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan.</p>"
        },
        "lastEvaluationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time of the last time that Region switch ran an evaluation of the plan.</p>"
        },
        "lastEvaluatedVersion":{
          "shape":"String",
          "documentation":"<p>The version of the last evaluation of the plan.</p>"
        },
        "region":{
          "shape":"Region",
          "documentation":"<p>The Amazon Web Services Region for the plan.</p>"
        },
        "evaluationState":{
          "shape":"EvaluationStatus",
          "documentation":"<p>The evaluation state for the plan.</p>"
        },
        "warnings":{
          "shape":"PlanWarnings",
          "documentation":"<p>The current evaluation warnings for the plan. </p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        }
      }
    },
    "GetPlanExecutionRequest":{
      "type":"structure",
      "required":[
        "planArn",
        "executionId"
      ],
      "members":{
        "planArn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan with the execution to retrieve.</p>"
        },
        "executionId":{
          "shape":"ExecutionId",
          "documentation":"<p>The execution identifier of a plan execution.</p>"
        },
        "maxResults":{
          "shape":"GetPlanExecutionStepStatesMaxResults",
          "documentation":"<p>The number of objects that you want to return with this call.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        }
      }
    },
    "GetPlanExecutionResponse":{
      "type":"structure",
      "required":[
        "planArn",
        "executionId",
        "startTime",
        "mode",
        "executionState",
        "executionAction",
        "executionRegion"
      ],
      "members":{
        "planArn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan.</p>"
        },
        "executionId":{
          "shape":"ExecutionId",
          "documentation":"<p>The execution identifier of a plan execution.</p>"
        },
        "version":{
          "shape":"String",
          "documentation":"<p>The version for the plan.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the plan execution was last updated.</p>"
        },
        "comment":{
          "shape":"String",
          "documentation":"<p>A comment included on the plan execution.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time (UTC) when the plan execution started.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time (UTC) when the plan execution ended.</p>"
        },
        "mode":{
          "shape":"ExecutionMode",
          "documentation":"<p>The plan execution mode. Valid values are <code>graceful</code>, for graceful executions, or <code>ungraceful</code>, for ungraceful executions.</p>"
        },
        "executionState":{
          "shape":"ExecutionState",
          "documentation":"<p>The plan execution state. Provides the state of a plan execution, for example, In Progress or Paused by Operator.</p>"
        },
        "executionAction":{
          "shape":"ExecutionAction",
          "documentation":"<p>The plan execution action. Valid values are <code>activate</code>, to activate an Amazon Web Services Region, or <code>deactivate</code>, to deactivate a Region.</p>"
        },
        "executionRegion":{
          "shape":"String",
          "documentation":"<p>The Amazon Web Services Region for a plan execution.</p>"
        },
        "recoveryExecutionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the most recent recovery execution. Required when starting a post-recovery execution.</p>"
        },
        "stepStates":{
          "shape":"StepStates",
          "documentation":"<p>The states of the steps in the plan execution.</p>"
        },
        "plan":{
          "shape":"Plan",
          "documentation":"<p>The details of the Region switch plan.</p>"
        },
        "actualRecoveryTime":{
          "shape":"Duration",
          "documentation":"<p>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.</p>"
        },
        "generatedReportDetails":{
          "shape":"GeneratedReportDetails",
          "documentation":"<p>Information about the location of a generated report, or the cause of its failure.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        }
      }
    },
    "GetPlanExecutionStepStatesMaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "GetPlanInRegionRequest":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "arn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan in Region.</p>"
        }
      }
    },
    "GetPlanInRegionResponse":{
      "type":"structure",
      "members":{
        "plan":{
          "shape":"Plan",
          "documentation":"<p>The details of the Region switch plan.</p>"
        }
      }
    },
    "GetPlanRequest":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "arn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan.</p>"
        }
      }
    },
    "GetPlanResponse":{
      "type":"structure",
      "members":{
        "plan":{
          "shape":"Plan",
          "documentation":"<p>The detailed information about the requested Region switch plan.</p>"
        }
      }
    },
    "GlobalAuroraConfiguration":{
      "type":"structure",
      "required":[
        "behavior",
        "globalClusterIdentifier",
        "databaseClusterArns"
      ],
      "members":{
        "timeoutMinutes":{
          "shape":"GlobalAuroraConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "behavior":{
          "shape":"GlobalAuroraDefaultBehavior",
          "documentation":"<p>The behavior for a global database, that is, only allow switchover or also allow failover.</p>"
        },
        "ungraceful":{
          "shape":"GlobalAuroraUngraceful",
          "documentation":"<p>The settings for ungraceful execution.</p>"
        },
        "globalClusterIdentifier":{
          "shape":"GlobalClusterIdentifier",
          "documentation":"<p>The global cluster identifier for a global database.</p>"
        },
        "databaseClusterArns":{
          "shape":"AuroraClusterArns",
          "documentation":"<p>The database cluster Amazon Resource Names (ARNs) for a global database.</p>"
        }
      },
      "documentation":"<p>Configuration for Amazon Aurora global databases used in a Region switch plan.</p>"
    },
    "GlobalAuroraConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "GlobalAuroraDefaultBehavior":{
      "type":"string",
      "enum":[
        "switchoverOnly",
        "failover"
      ]
    },
    "GlobalAuroraUngraceful":{
      "type":"structure",
      "members":{
        "ungraceful":{
          "shape":"GlobalAuroraUngracefulBehavior",
          "documentation":"<p>The settings for ungraceful execution.</p>"
        }
      },
      "documentation":"<p>Configuration for handling failures when performing operations on Aurora global databases.</p>"
    },
    "GlobalAuroraUngracefulBehavior":{
      "type":"string",
      "enum":["failover"]
    },
    "GlobalClusterIdentifier":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[A-Za-z][0-9A-Za-z-:._]*"
    },
    "IamRoleArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z0-9-]*:iam::[0-9]{12}:role/.+"
    },
    "IllegalArgumentException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request processing has an invalid argument.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "IllegalStateException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The operation failed because the current state of the resource doesn't allow the operation to proceed.</p> <p>HTTP Status Code: 400</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServerException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request processing has failed because of an unknown error, exception, or failure.</p> <p>HTTP Status Code: 500</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "KubernetesNamespace":{
      "type":"string",
      "pattern":"[a-z0-9][a-z0-9-]{0,61}[a-z0-9]"
    },
    "KubernetesResourceType":{
      "type":"structure",
      "required":[
        "apiVersion",
        "kind"
      ],
      "members":{
        "apiVersion":{
          "shape":"String",
          "documentation":"<p>The API version type for the Kubernetes resource.</p>"
        },
        "kind":{
          "shape":"String",
          "documentation":"<p>The kind for the Kubernetes resource.</p>"
        }
      },
      "documentation":"<p>Defines the type of Kubernetes resource to scale in an Amazon EKS cluster.</p>"
    },
    "KubernetesScalingApplication":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"RegionalScalingResource"}
    },
    "KubernetesScalingApps":{
      "type":"list",
      "member":{"shape":"KubernetesScalingApplication"},
      "min":1
    },
    "KubernetesScalingResource":{
      "type":"structure",
      "required":[
        "namespace",
        "name"
      ],
      "members":{
        "namespace":{
          "shape":"KubernetesNamespace",
          "documentation":"<p>The namespace for the Kubernetes resource.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>The name for the Kubernetes resource.</p>"
        },
        "hpaName":{
          "shape":"String",
          "documentation":"<p>The hpaname for the Kubernetes resource.</p>"
        }
      },
      "documentation":"<p>Defines a Kubernetes resource to scale in an Amazon EKS cluster.</p>"
    },
    "LambdaArn":{"type":"string"},
    "LambdaEventSourceMappingConfiguration":{
      "type":"structure",
      "required":[
        "action",
        "regionEventSourceMappings"
      ],
      "members":{
        "timeoutMinutes":{
          "shape":"LambdaEventSourceMappingConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "action":{
          "shape":"EventSourceMappingAction",
          "documentation":"<p>The action to take - whether to <code>enable</code> or <code>disable</code> an event source mapping.</p>"
        },
        "regionEventSourceMappings":{
          "shape":"RegionEventSourceMappingMap",
          "documentation":"<p>Per-region configuration for which Lambda event source mapping to enable or disable when activating or deactivating a region.</p>"
        },
        "ungraceful":{
          "shape":"LambdaEventSourceMappingUngraceful",
          "documentation":"<p>The settings for ungraceful execution.</p>"
        }
      },
      "documentation":"<p>Configuration for Amazon Web Services Lambda event source mappings used in a Region switch plan.</p>"
    },
    "LambdaEventSourceMappingConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "LambdaEventSourceMappingUngraceful":{
      "type":"structure",
      "members":{
        "behavior":{
          "shape":"LambdaEventSourceMappingUngracefulBehavior",
          "documentation":"<p>Set to <code>skip</code> to skip executing this event source mapping step during an ungraceful execution.</p>"
        }
      },
      "documentation":"<p>Specifies whether to skip enabling or disabling an event source mapping during an ungraceful execution.</p>"
    },
    "LambdaEventSourceMappingUngracefulBehavior":{
      "type":"string",
      "enum":["skip"]
    },
    "LambdaList":{
      "type":"list",
      "member":{"shape":"Lambdas"},
      "max":2,
      "min":1
    },
    "LambdaUngraceful":{
      "type":"structure",
      "members":{
        "behavior":{
          "shape":"LambdaUngracefulBehavior",
          "documentation":"<p>The ungraceful behavior for a Lambda function, which must be set to <code>skip</code>.</p>"
        }
      },
      "documentation":"<p>Configuration for handling failures when invoking Lambda functions.</p>"
    },
    "LambdaUngracefulBehavior":{
      "type":"string",
      "enum":["skip"]
    },
    "Lambdas":{
      "type":"structure",
      "members":{
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "arn":{
          "shape":"LambdaArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Lambda function.</p>"
        }
      },
      "documentation":"<p>Configuration for Amazon Web Services Lambda functions used in a Region switch plan.</p>"
    },
    "ListExecutionEventsMaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListExecutionsMaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListPlanExecutionEventsRequest":{
      "type":"structure",
      "required":[
        "planArn",
        "executionId"
      ],
      "members":{
        "planArn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan.</p>"
        },
        "executionId":{
          "shape":"ExecutionId",
          "documentation":"<p>The execution identifier of a plan execution.</p>"
        },
        "maxResults":{
          "shape":"ListExecutionEventsMaxResults",
          "documentation":"<p>The number of objects that you want to return with this call.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        },
        "name":{
          "shape":"StepName",
          "documentation":"<p>The name of the plan execution event.</p>"
        }
      }
    },
    "ListPlanExecutionEventsResponse":{
      "type":"structure",
      "members":{
        "items":{
          "shape":"ExecutionEventList",
          "documentation":"<p>The items in the plan execution event.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        }
      }
    },
    "ListPlanExecutionsRequest":{
      "type":"structure",
      "required":["planArn"],
      "members":{
        "planArn":{
          "shape":"PlanArn",
          "documentation":"<p>The ARN for the plan.</p>"
        },
        "maxResults":{
          "shape":"ListExecutionsMaxResults",
          "documentation":"<p>The number of objects that you want to return with this call.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        },
        "state":{
          "shape":"ExecutionState",
          "documentation":"<p>The state of the plan execution. For example, the plan execution might be In Progress.</p>"
        }
      }
    },
    "ListPlanExecutionsResponse":{
      "type":"structure",
      "members":{
        "items":{
          "shape":"AbbreviatedExecutionsList",
          "documentation":"<p>The items in the plan execution to return.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        }
      }
    },
    "ListPlansInRegionRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The number of objects that you want to return with this call.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        }
      }
    },
    "ListPlansInRegionResponse":{
      "type":"structure",
      "members":{
        "plans":{
          "shape":"PlanList",
          "documentation":"<p>The plans that were requested.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        }
      }
    },
    "ListPlansRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The number of objects that you want to return with this call.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        }
      }
    },
    "ListPlansResponse":{
      "type":"structure",
      "members":{
        "plans":{
          "shape":"PlanList",
          "documentation":"<p>The plans that were requested.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        }
      }
    },
    "ListRoute53HealthChecksInRegionRequest":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "arn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Arc Region Switch Plan.</p>"
        },
        "hostedZoneId":{
          "shape":"Route53HostedZoneId",
          "documentation":"<p>The hosted zone ID for the health checks.</p>"
        },
        "recordName":{
          "shape":"Route53RecordName",
          "documentation":"<p>The record name for the health checks.</p>"
        },
        "maxResults":{
          "shape":"ListRoute53HealthChecksInRegionRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in the response.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        }
      }
    },
    "ListRoute53HealthChecksInRegionRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListRoute53HealthChecksInRegionResponse":{
      "type":"structure",
      "members":{
        "healthChecks":{
          "shape":"Route53HealthCheckList",
          "documentation":"<p>List of the health checks requested.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A pagination token. A response may contain no results while still including a <code>nextToken</code>. Continue paginating until <code>nextToken</code> is null to retrieve all results.</p>"
        }
      }
    },
    "ListRoute53HealthChecksRequest":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "arn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Amazon Route 53 health check request.</p>"
        },
        "hostedZoneId":{
          "shape":"Route53HostedZoneId",
          "documentation":"<p>The hosted zone ID for the health checks.</p>"
        },
        "recordName":{
          "shape":"Route53RecordName",
          "documentation":"<p>The record name for the health checks.</p>"
        },
        "maxResults":{
          "shape":"ListRoute53HealthChecksRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in the response.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> 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 <code>nextToken</code> response to request the next page of results.</p>"
        }
      }
    },
    "ListRoute53HealthChecksRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListRoute53HealthChecksResponse":{
      "type":"structure",
      "members":{
        "healthChecks":{
          "shape":"Route53HealthCheckList",
          "documentation":"<p>List of the health checks requested.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A pagination token. A response may contain no results while still including a <code>nextToken</code>. Continue paginating until <code>nextToken</code> is null to retrieve all results.</p>"
        }
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "arn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource.</p>"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "resourceTags":{
          "shape":"Tags",
          "documentation":"<p>The tags for a resource.</p>"
        }
      }
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "MinimalWorkflow":{
      "type":"structure",
      "members":{
        "action":{
          "shape":"ExecutionAction",
          "documentation":"<p>The action for a minimal workflow, which can be Activate or Deactivate.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>The name for a minimal workflow</p>"
        }
      },
      "documentation":"<p>A simplified representation of a workflow in a Region switch plan.</p>"
    },
    "NeptuneClusterArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:rds:[a-z0-9-]+:\\d{12}:cluster:[A-Za-z][0-9A-Za-z-]{0,62}"
    },
    "NeptuneDefaultBehavior":{
      "type":"string",
      "enum":[
        "switchoverOnly",
        "failover"
      ]
    },
    "NeptuneGlobalClusterIdentifier":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"[A-Za-z][0-9A-Za-z-]*"
    },
    "NeptuneGlobalDatabaseConfiguration":{
      "type":"structure",
      "required":[
        "behavior",
        "globalClusterIdentifier",
        "regionDatabaseClusterArns"
      ],
      "members":{
        "timeoutMinutes":{
          "shape":"NeptuneGlobalDatabaseConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "behavior":{
          "shape":"NeptuneDefaultBehavior",
          "documentation":"<p>The behavior for a global database, that is, only allow switchover or also allow failover.</p>"
        },
        "ungraceful":{
          "shape":"NeptuneUngraceful",
          "documentation":"<p>The settings for ungraceful execution.</p>"
        },
        "globalClusterIdentifier":{
          "shape":"NeptuneGlobalClusterIdentifier",
          "documentation":"<p>The global cluster identifier for a Neptune global database.</p>"
        },
        "regionDatabaseClusterArns":{
          "shape":"RegionNeptuneClusterArnMap",
          "documentation":"<p>The database cluster Amazon Resource Names (ARNs) for a Neptune global database.</p>"
        }
      },
      "documentation":"<p>Configuration for Amazon Neptune global databases used in a Region switch plan.</p>"
    },
    "NeptuneGlobalDatabaseConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "NeptuneUngraceful":{
      "type":"structure",
      "members":{
        "ungraceful":{
          "shape":"NeptuneUngracefulBehavior",
          "documentation":"<p>The settings for ungraceful execution.</p>"
        }
      },
      "documentation":"<p>Configuration for handling failures when performing operations on Neptune global databases.</p>"
    },
    "NeptuneUngracefulBehavior":{
      "type":"string",
      "enum":["failover"]
    },
    "NextToken":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "ParallelExecutionBlockConfiguration":{
      "type":"structure",
      "required":["steps"],
      "members":{
        "steps":{
          "shape":"Steps",
          "documentation":"<p>The steps for a parallel execution block.</p>"
        }
      },
      "documentation":"<p>Configuration for steps that should be executed in parallel during a Region switch.</p>"
    },
    "Plan":{
      "type":"structure",
      "required":[
        "arn",
        "workflows",
        "executionRole",
        "name",
        "regions",
        "recoveryApproach",
        "owner"
      ],
      "members":{
        "arn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>The description for a plan.</p>"
        },
        "workflows":{
          "shape":"WorkflowList",
          "documentation":"<p>The workflows for a plan.</p>"
        },
        "executionRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The execution role for a plan.</p>"
        },
        "recoveryTimeObjectiveMinutes":{
          "shape":"PlanRecoveryTimeObjectiveMinutesInteger",
          "documentation":"<p>The recovery time objective for a plan.</p>"
        },
        "associatedAlarms":{
          "shape":"AssociatedAlarmMap",
          "documentation":"<p>The associated application health alarms for a plan.</p>"
        },
        "triggers":{
          "shape":"TriggerList",
          "documentation":"<p>The triggers for a plan.</p>"
        },
        "reportConfiguration":{
          "shape":"ReportConfiguration",
          "documentation":"<p>The report configuration for a plan.</p>"
        },
        "name":{
          "shape":"PlanName",
          "documentation":"<p>The name for a plan.</p>"
        },
        "regions":{
          "shape":"RegionList",
          "documentation":"<p>The Amazon Web Services Regions for a plan.</p>"
        },
        "recoveryApproach":{
          "shape":"RecoveryApproach",
          "documentation":"<p>The recovery approach for a Region switch plan, which can be active/active (activeActive) or active/passive (activePassive).</p>"
        },
        "primaryRegion":{
          "shape":"Region",
          "documentation":"<p>The primary Region for a plan.</p>"
        },
        "owner":{
          "shape":"AccountId",
          "documentation":"<p>The owner of a plan.</p>"
        },
        "version":{
          "shape":"String",
          "documentation":"<p>The version for the plan.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the plan was last updated.</p>"
        }
      },
      "documentation":"<p>Represents a Region switch plan. A plan defines the steps required to shift traffic from one Amazon Web Services Region to another.</p>"
    },
    "PlanArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:arc-region-switch::[0-9]{12}:plan/([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,30}[a-zA-Z0-9])?):([a-z0-9]{6})"
    },
    "PlanList":{
      "type":"list",
      "member":{"shape":"AbbreviatedPlan"}
    },
    "PlanName":{
      "type":"string",
      "max":32,
      "min":1,
      "pattern":"[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,30}[a-zA-Z0-9])?"
    },
    "PlanRecoveryTimeObjectiveMinutesInteger":{
      "type":"integer",
      "box":true,
      "max":10080,
      "min":1
    },
    "PlanWarnings":{
      "type":"list",
      "member":{"shape":"ResourceWarning"}
    },
    "RdsCreateCrossRegionReplicaConfiguration":{
      "type":"structure",
      "required":["dbInstanceArnMap"],
      "members":{
        "timeoutMinutes":{
          "shape":"RdsCreateCrossRegionReplicaConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross-account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "dbInstanceArnMap":{
          "shape":"RdsDbInstanceArnMap",
          "documentation":"<p>A map of database instance ARNs for each Region in the plan.</p>"
        }
      },
      "documentation":"<p>Configuration for creating an Amazon RDS cross-Region read replica during post-recovery in a Region switch.</p>"
    },
    "RdsCreateCrossRegionReplicaConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "RdsDbInstanceArn":{
      "type":"string",
      "pattern":"arn:aws[a-zA-Z-]*:rds:[a-z0-9-]+:\\d{12}:db:[a-zA-Z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*"
    },
    "RdsDbInstanceArnMap":{
      "type":"map",
      "key":{"shape":"Region"},
      "value":{"shape":"RdsDbInstanceArn"}
    },
    "RdsPromoteReadReplicaConfiguration":{
      "type":"structure",
      "required":["dbInstanceArnMap"],
      "members":{
        "timeoutMinutes":{
          "shape":"RdsPromoteReadReplicaConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The timeout value specified for the configuration.</p>"
        },
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross-account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "dbInstanceArnMap":{
          "shape":"RdsDbInstanceArnMap",
          "documentation":"<p>A map of database instance ARNs for each Region in the plan.</p>"
        }
      },
      "documentation":"<p>Configuration for promoting an Amazon RDS read replica to a standalone database instance during a Region switch.</p>"
    },
    "RdsPromoteReadReplicaConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "RecoveryApproach":{
      "type":"string",
      "enum":[
        "activeActive",
        "activePassive"
      ]
    },
    "RecoveryExecutionId":{
      "type":"string",
      "pattern":"[a-z]{2}(-[a-z]+)+-[0-9]+/[0-9a-fA-F]{16}"
    },
    "Region":{
      "type":"string",
      "pattern":"[a-z]{2}-[a-z-]+-\\d+"
    },
    "RegionAndRoutingControls":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"ArcRoutingControlStates"}
    },
    "RegionAuroraClusterMap":{
      "type":"map",
      "key":{"shape":"Region"},
      "value":{"shape":"AuroraClusterArn"},
      "documentation":"<p>A map of Region to Aurora database cluster ARN for Aurora Serverless scaling configuration.</p>",
      "max":2,
      "min":2
    },
    "RegionAuroraInstanceArnMap":{
      "type":"map",
      "key":{"shape":"Region"},
      "value":{"shape":"AuroraInstanceArn"},
      "max":2,
      "min":1
    },
    "RegionEventSourceMappingMap":{
      "type":"map",
      "key":{"shape":"Region"},
      "value":{"shape":"EventSourceMapping"},
      "max":2,
      "min":1
    },
    "RegionList":{
      "type":"list",
      "member":{"shape":"Region"},
      "max":2,
      "min":2
    },
    "RegionNeptuneClusterArnMap":{
      "type":"map",
      "key":{"shape":"Region"},
      "value":{"shape":"NeptuneClusterArn"},
      "documentation":"<p>A map of Region to Neptune database cluster ARN for Neptune global database configuration.</p>",
      "max":2,
      "min":2
    },
    "RegionSwitchPlanConfiguration":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "arn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan configuration.</p>"
        }
      },
      "documentation":"<p>Configuration for nested Region switch plans. This allows one Region switch plan to trigger another plan as part of its execution.</p>"
    },
    "RegionToRunIn":{
      "type":"string",
      "enum":[
        "activatingRegion",
        "deactivatingRegion",
        "activeRegion",
        "inactiveRegion"
      ]
    },
    "RegionalScalingResource":{
      "type":"map",
      "key":{"shape":"Region"},
      "value":{"shape":"KubernetesScalingResource"}
    },
    "ReportConfiguration":{
      "type":"structure",
      "members":{
        "reportOutput":{
          "shape":"ReportOutputList",
          "documentation":"<p>The output configuration for the report.</p>"
        }
      },
      "documentation":"<p>Configuration for automatic report generation for plan executions. When configured, Region switch automatically generates a report after each plan execution that includes execution events, plan configuration, and CloudWatch alarm states.</p>"
    },
    "ReportOutput":{
      "type":"structure",
      "members":{
        "s3ReportOutput":{
          "shape":"S3ReportOutput",
          "documentation":"<p>Information about a report delivered to Amazon S3.</p>"
        },
        "failedReportOutput":{
          "shape":"FailedReportOutput",
          "documentation":"<p>The details about a failed report generation.</p>"
        }
      },
      "documentation":"<p>The output location or cause of a failure in report generation.</p>",
      "union":true
    },
    "ReportOutputConfiguration":{
      "type":"structure",
      "members":{
        "s3Configuration":{
          "shape":"S3ReportOutputConfiguration",
          "documentation":"<p>Configuration for delivering reports to an Amazon S3 bucket.</p>"
        }
      },
      "documentation":"<p>Configuration for report output destinations used in a Region switch plan.</p>",
      "union":true
    },
    "ReportOutputList":{
      "type":"list",
      "member":{"shape":"ReportOutputConfiguration"},
      "max":1,
      "min":1
    },
    "ResourceArn":{"type":"string"},
    "ResourceNotFoundException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified resource was not found.</p> <p>HTTP Status Code: 404</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ResourceWarning":{
      "type":"structure",
      "required":[
        "version",
        "warningStatus",
        "warningUpdatedTime",
        "warningMessage"
      ],
      "members":{
        "workflow":{
          "shape":"MinimalWorkflow",
          "documentation":"<p>The workflow for the resource warning.</p>"
        },
        "version":{
          "shape":"String",
          "documentation":"<p>The version for the resource warning.</p>"
        },
        "stepName":{
          "shape":"StepName",
          "documentation":"<p>The name of the step for the resource warning.</p>"
        },
        "resourceArn":{
          "shape":"ResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource.</p>"
        },
        "warningStatus":{
          "shape":"ResourceWarningStatus",
          "documentation":"<p>The status of the resource warning.</p>"
        },
        "warningUpdatedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the warning was last updated.</p>"
        },
        "warningMessage":{
          "shape":"String",
          "documentation":"<p>The warning message about what needs to be corrected.</p>"
        }
      },
      "documentation":"<p>Represents a warning about a resource in a Region switch plan.</p>"
    },
    "ResourceWarningStatus":{
      "type":"string",
      "enum":[
        "active",
        "resolved"
      ]
    },
    "Resources":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "RoleArn":{"type":"string"},
    "Route53HealthCheck":{
      "type":"structure",
      "required":[
        "hostedZoneId",
        "recordName",
        "region"
      ],
      "members":{
        "hostedZoneId":{
          "shape":"Route53HostedZoneId",
          "documentation":"<p>The Amazon Route 53 health check hosted zone ID.</p>"
        },
        "recordName":{
          "shape":"Route53RecordName",
          "documentation":"<p>The Amazon Route 53 record name.</p>"
        },
        "healthCheckId":{
          "shape":"Route53HealthCheckId",
          "documentation":"<p>The Amazon Route 53 health check ID.</p>"
        },
        "status":{
          "shape":"Route53HealthCheckStatus",
          "documentation":"<p>The Amazon Route 53 health check status.</p>"
        },
        "region":{
          "shape":"Region",
          "documentation":"<p>The Amazon Route 53 Region.</p>"
        }
      },
      "documentation":"<p>The Amazon Route 53 health check.</p>"
    },
    "Route53HealthCheckConfiguration":{
      "type":"structure",
      "required":[
        "hostedZoneId",
        "recordName"
      ],
      "members":{
        "timeoutMinutes":{
          "shape":"Route53HealthCheckConfigurationTimeoutMinutesInteger",
          "documentation":"<p>The Amazon Route 53 health check configuration time out (in minutes).</p>"
        },
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for the configuration.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the configuration.</p>"
        },
        "hostedZoneId":{
          "shape":"Route53HostedZoneId",
          "documentation":"<p>The Amazon Route 53 health check configuration hosted zone ID.</p>"
        },
        "recordName":{
          "shape":"Route53RecordName",
          "documentation":"<p>The Amazon Route 53 health check configuration record name.</p>"
        },
        "recordSets":{
          "shape":"Route53ResourceRecordSetList",
          "documentation":"<p>The Amazon Route 53 health check configuration record sets.</p>"
        }
      },
      "documentation":"<p>The Amazon Route 53 health check configuration.</p>"
    },
    "Route53HealthCheckConfigurationTimeoutMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "Route53HealthCheckId":{
      "type":"string",
      "max":64,
      "min":1
    },
    "Route53HealthCheckList":{
      "type":"list",
      "member":{"shape":"Route53HealthCheck"}
    },
    "Route53HealthCheckStatus":{
      "type":"string",
      "enum":[
        "healthy",
        "unhealthy",
        "unknown"
      ]
    },
    "Route53HostedZoneId":{
      "type":"string",
      "max":32,
      "min":1
    },
    "Route53RecordName":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "Route53ResourceRecordSet":{
      "type":"structure",
      "members":{
        "recordSetIdentifier":{
          "shape":"Route53ResourceRecordSetIdentifier",
          "documentation":"<p>The Amazon Route 53 record set identifier.</p>"
        },
        "region":{
          "shape":"Region",
          "documentation":"<p>The Amazon Route 53 record set Region.</p>"
        }
      },
      "documentation":"<p>The Amazon Route 53 record set.</p>"
    },
    "Route53ResourceRecordSetIdentifier":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "Route53ResourceRecordSetList":{
      "type":"list",
      "member":{"shape":"Route53ResourceRecordSet"}
    },
    "RoutingControlArn":{"type":"string"},
    "RoutingControlStateChange":{
      "type":"string",
      "enum":[
        "On",
        "Off"
      ]
    },
    "S3ReportOutput":{
      "type":"structure",
      "members":{
        "s3ObjectKey":{
          "shape":"String",
          "documentation":"<p>The S3 object key where the generated report is stored.</p>"
        }
      },
      "documentation":"<p>Information about a report delivered to Amazon S3.</p>"
    },
    "S3ReportOutputConfiguration":{
      "type":"structure",
      "members":{
        "bucketPath":{
          "shape":"S3ReportOutputConfigurationBucketPathString",
          "documentation":"<p>The S3 bucket name and optional prefix where reports are stored. Format: bucket-name or bucket-name/prefix.</p>"
        },
        "bucketOwner":{
          "shape":"AccountId",
          "documentation":"<p>The Amazon Web Services account ID that owns the S3 bucket. Required to ensure the bucket is still owned by the same expected owner at generation time.</p>"
        }
      },
      "documentation":"<p>Configuration for delivering generated reports to an Amazon S3 bucket.</p>"
    },
    "S3ReportOutputConfigurationBucketPathString":{
      "type":"string",
      "max":512,
      "min":3,
      "pattern":"(?:s3://)?[a-z0-9][a-z0-9-]{1,61}[a-z0-9](?:/[^/ ][^/]*)*/?"
    },
    "Service":{
      "type":"structure",
      "members":{
        "crossAccountRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The cross account role for a service.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>The external ID (secret key) for the service.</p>"
        },
        "clusterArn":{
          "shape":"EcsClusterArn",
          "documentation":"<p>The cluster Amazon Resource Name (ARN) for a service.</p>"
        },
        "serviceArn":{
          "shape":"EcsServiceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) for a service.</p>"
        }
      },
      "documentation":"<p>The service for a cross account role.</p>"
    },
    "ServiceList":{
      "type":"list",
      "member":{"shape":"Service"},
      "max":2,
      "min":2
    },
    "StartPlanExecutionRequest":{
      "type":"structure",
      "required":[
        "planArn",
        "targetRegion",
        "action"
      ],
      "members":{
        "planArn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan to execute.</p>"
        },
        "targetRegion":{
          "shape":"String",
          "documentation":"<p>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.</p>"
        },
        "action":{
          "shape":"ExecutionAction",
          "documentation":"<p>The action to perform. Valid values are <code>activate</code> (to shift traffic to the target Region) or <code>deactivate</code> (to shift traffic away from the target Region).</p>"
        },
        "mode":{
          "shape":"ExecutionMode",
          "documentation":"<p>The plan execution mode. Valid values are <code>graceful</code>, for starting the execution in graceful mode, or <code>ungraceful</code>, for starting the execution in ungraceful mode.</p>"
        },
        "comment":{
          "shape":"ExecutionComment",
          "documentation":"<p>An optional comment explaining why the plan execution is being started.</p>"
        },
        "latestVersion":{
          "shape":"String",
          "documentation":"<p>A boolean value indicating whether to use the latest version of the plan. If set to false, you must specify a specific version.</p>"
        },
        "recoveryExecutionId":{
          "shape":"RecoveryExecutionId",
          "documentation":"<p>The execution identifier of the recovery execution that ran in the opposite region post-recovery is ran in. Required when starting a post-recovery execution.</p>"
        },
        "clientToken":{
          "shape":"StartPlanExecutionRequestClientTokenString",
          "documentation":"<p>A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, the service ignores the request and returns the result of the original successful request. If you don't provide a client token, the service automatically generates one. For more information about idempotency, see <a href=\"https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/\">Making retries safe with idempotent APIs</a>.</p>",
          "idempotencyToken":true
        }
      }
    },
    "StartPlanExecutionRequestClientTokenString":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[\\x21-\\x7E]+"
    },
    "StartPlanExecutionResponse":{
      "type":"structure",
      "members":{
        "executionId":{
          "shape":"ExecutionId",
          "documentation":"<p>The execution identifier of a plan execution.</p>"
        },
        "plan":{
          "shape":"PlanArn",
          "documentation":"<p>The details of the Region switch plan.</p>"
        },
        "planVersion":{
          "shape":"String",
          "documentation":"<p>The version of the plan, a unique number generated by Region switch.</p>"
        },
        "activateRegion":{
          "shape":"String",
          "documentation":"<p>The Amazon Web Services Region to activate.</p>"
        },
        "deactivateRegion":{
          "shape":"String",
          "documentation":"<p>The Amazon Web Services Region to deactivate.</p>"
        }
      }
    },
    "Step":{
      "type":"structure",
      "required":[
        "name",
        "executionBlockConfiguration",
        "executionBlockType"
      ],
      "members":{
        "name":{
          "shape":"StepName",
          "documentation":"<p>The name of a step in a workflow.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>The description of a step in a workflow.</p>"
        },
        "executionBlockConfiguration":{
          "shape":"ExecutionBlockConfiguration",
          "documentation":"<p>The configuration for an execution block in a workflow.</p>"
        },
        "executionBlockType":{
          "shape":"ExecutionBlockType",
          "documentation":"<p>The type of an execution block in a workflow.</p>"
        }
      },
      "documentation":"<p>Represents a step in a Region switch plan workflow. Each step performs a specific action during the Region switch process.</p>"
    },
    "StepName":{"type":"string"},
    "StepState":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"StepName",
          "documentation":"<p>The name of a step in a workflow.</p>"
        },
        "status":{
          "shape":"StepStatus",
          "documentation":"<p>The status of a step in a workflow. For example, a status might be Completed or Pending Approval.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when a step started execution.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when a step endeded execution.</p>"
        },
        "stepMode":{
          "shape":"ExecutionMode",
          "documentation":"<p>The mode for a step execution. The mode can be Graceful or Ungraceful.</p>"
        }
      },
      "documentation":"<p>Represents the state of a step in a plan execution.</p>"
    },
    "StepStates":{
      "type":"list",
      "member":{"shape":"StepState"}
    },
    "StepStatus":{
      "type":"string",
      "enum":[
        "notStarted",
        "running",
        "failed",
        "completed",
        "canceled",
        "skipped",
        "pendingApproval"
      ]
    },
    "Steps":{
      "type":"list",
      "member":{"shape":"Step"}
    },
    "String":{"type":"string"},
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "TagKeys":{
      "type":"list",
      "member":{"shape":"TagKey"},
      "max":200,
      "min":0
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "arn",
        "tags"
      ],
      "members":{
        "arn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) for a tag that you add to a resource.</p>"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags that you add to a resource. You can add a maximum of 50 tags in Region switch.</p>"
        }
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0
    },
    "Tags":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"},
      "max":200,
      "min":0
    },
    "Timestamp":{"type":"timestamp"},
    "Trigger":{
      "type":"structure",
      "required":[
        "targetRegion",
        "action",
        "conditions",
        "minDelayMinutesBetweenExecutions"
      ],
      "members":{
        "description":{
          "shape":"String",
          "documentation":"<p>The description for a trigger.</p>"
        },
        "targetRegion":{
          "shape":"Region",
          "documentation":"<p>The Amazon Web Services Region for a trigger.</p>"
        },
        "action":{
          "shape":"WorkflowTargetAction",
          "documentation":"<p>The action to perform when the trigger fires. Valid values include <code>activate</code> and <code>deactivate</code>.</p>"
        },
        "conditions":{
          "shape":"TriggerConditionList",
          "documentation":"<p>The conditions that must be met for the trigger to fire.</p>"
        },
        "minDelayMinutesBetweenExecutions":{
          "shape":"Integer",
          "documentation":"<p>The minimum time, in minutes, that must elapse between automatic executions of the plan.</p>"
        }
      },
      "documentation":"<p>Defines a condition that can automatically trigger the execution of a Region switch plan.</p>"
    },
    "TriggerCondition":{
      "type":"structure",
      "required":[
        "associatedAlarmName",
        "condition"
      ],
      "members":{
        "associatedAlarmName":{
          "shape":"String",
          "documentation":"<p>The name of the CloudWatch alarm associated with the condition.</p>"
        },
        "condition":{
          "shape":"AlarmCondition",
          "documentation":"<p>The condition that must be met. Valid values include <code>green</code> and <code>red</code>.</p>"
        }
      },
      "documentation":"<p>Defines a condition that must be met for a trigger to fire.</p>"
    },
    "TriggerConditionList":{
      "type":"list",
      "member":{"shape":"TriggerCondition"},
      "max":10,
      "min":1
    },
    "TriggerList":{
      "type":"list",
      "member":{"shape":"Trigger"}
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "arn",
        "resourceTagKeys"
      ],
      "members":{
        "arn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) for a tag you remove a resource from.</p>"
        },
        "resourceTagKeys":{
          "shape":"TagKeys",
          "documentation":"<p>Tag keys that you remove from a resource.</p>"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "UpdatePlanExecutionAction":{
      "type":"string",
      "enum":[
        "switchToGraceful",
        "switchToUngraceful",
        "pause",
        "resume"
      ]
    },
    "UpdatePlanExecutionRequest":{
      "type":"structure",
      "required":[
        "planArn",
        "executionId",
        "action"
      ],
      "members":{
        "planArn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan with the execution to update.</p>"
        },
        "executionId":{
          "shape":"ExecutionId",
          "documentation":"<p>The execution identifier of a plan execution.</p>"
        },
        "action":{
          "shape":"UpdatePlanExecutionAction",
          "documentation":"<p>The action specified for a plan execution, for example, Switch to Graceful or Pause.</p>"
        },
        "comment":{
          "shape":"ExecutionComment",
          "documentation":"<p>An optional comment about the plan execution.</p>"
        }
      }
    },
    "UpdatePlanExecutionResponse":{
      "type":"structure",
      "members":{}
    },
    "UpdatePlanExecutionStepAction":{
      "type":"string",
      "enum":[
        "switchToUngraceful",
        "skip"
      ]
    },
    "UpdatePlanExecutionStepRequest":{
      "type":"structure",
      "required":[
        "planArn",
        "executionId",
        "comment",
        "stepName",
        "actionToTake"
      ],
      "members":{
        "planArn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan containing the execution step to update.</p>"
        },
        "executionId":{
          "shape":"ExecutionId",
          "documentation":"<p>The unique identifier of the plan execution containing the step to update.</p>"
        },
        "comment":{
          "shape":"ExecutionComment",
          "documentation":"<p>An optional comment about the plan execution.</p>"
        },
        "stepName":{
          "shape":"String",
          "documentation":"<p>The name of the execution step to update.</p>"
        },
        "actionToTake":{
          "shape":"UpdatePlanExecutionStepAction",
          "documentation":"<p>The updated action to take for the step. This can be used to skip or retry a step.</p>"
        }
      }
    },
    "UpdatePlanExecutionStepResponse":{
      "type":"structure",
      "members":{}
    },
    "UpdatePlanRequest":{
      "type":"structure",
      "required":[
        "arn",
        "workflows",
        "executionRole"
      ],
      "members":{
        "arn":{
          "shape":"PlanArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the plan.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>The updated description for the Region switch plan.</p>"
        },
        "workflows":{
          "shape":"WorkflowList",
          "documentation":"<p>The updated workflows for the Region switch plan.</p>"
        },
        "executionRole":{
          "shape":"IamRoleArn",
          "documentation":"<p>The updated IAM role ARN that grants Region switch the permissions needed to execute the plan steps.</p>"
        },
        "recoveryTimeObjectiveMinutes":{
          "shape":"UpdatePlanRequestRecoveryTimeObjectiveMinutesInteger",
          "documentation":"<p>The updated target recovery time objective (RTO) in minutes for the plan.</p>"
        },
        "associatedAlarms":{
          "shape":"AssociatedAlarmMap",
          "documentation":"<p>The updated CloudWatch alarms associated with the plan.</p>"
        },
        "triggers":{
          "shape":"TriggerList",
          "documentation":"<p>The updated conditions that can automatically trigger the execution of the plan.</p>"
        },
        "reportConfiguration":{
          "shape":"ReportConfiguration",
          "documentation":"<p>The updated report configuration for the plan.</p>"
        }
      }
    },
    "UpdatePlanRequestRecoveryTimeObjectiveMinutesInteger":{
      "type":"integer",
      "box":true,
      "max":10080,
      "min":1
    },
    "UpdatePlanResponse":{
      "type":"structure",
      "members":{
        "plan":{
          "shape":"Plan",
          "documentation":"<p>The details of the updated Region switch plan.</p>"
        }
      }
    },
    "Workflow":{
      "type":"structure",
      "required":["workflowTargetAction"],
      "members":{
        "steps":{
          "shape":"Steps",
          "documentation":"<p>The steps that make up the workflow.</p>"
        },
        "workflowTargetAction":{
          "shape":"WorkflowTargetAction",
          "documentation":"<p>The action that the workflow performs. Valid values include <code>activate</code> and <code>deactivate</code>.</p>"
        },
        "workflowTargetRegion":{
          "shape":"Region",
          "documentation":"<p>The Amazon Web Services Region that the workflow targets.</p>"
        },
        "workflowDescription":{
          "shape":"String",
          "documentation":"<p>The description of the workflow.</p>"
        }
      },
      "documentation":"<p>Represents a workflow in a Region switch plan. A workflow defines a sequence of steps to execute during a Region switch.</p>"
    },
    "WorkflowList":{
      "type":"list",
      "member":{"shape":"Workflow"}
    },
    "WorkflowTargetAction":{
      "type":"string",
      "enum":[
        "activate",
        "deactivate",
        "postRecovery"
      ]
    }
  },
  "documentation":"<p>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.</p> <p>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.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/r53recovery/latest/dg/region-switch.html\">Region switch in ARC</a> in the <i>Amazon Application Recovery Controller User Guide</i>.</p>"
}
