/**
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0.
 */
#pragma once
#include  Welcome to the Routing Control (Recovery Cluster) API Reference Guide for
   * Amazon Route 53 Application Recovery Controller. With Route 53 ARC, you
   * can use routing control with extreme reliability to recover applications by
   * rerouting traffic across Availability Zones or Amazon Web Services Regions.
   * Routing controls are simple on/off switches hosted on a highly available cluster
   * in Route 53 ARC. A cluster provides a set of five redundant Regional endpoints
   * against which you can run API calls to get or update the state of routing
   * controls. To implement failover, you set one routing control On and another one
   * Off, to reroute traffic from one Availability Zone or Amazon Web Services Region
   * to another.   Be aware that you must specify a Regional endpoint for a
   * cluster when you work with API cluster operations to get or update routing
   * control states in Route 53 ARC. In addition, you must specify the US West
   * (Oregon) Region for Route 53 ARC API calls. For example, use the parameter
   *  This API guide includes
   * information about the API operations for how to get and update routing control
   * states in Route 53 ARC. To work with routing control in Route 53 ARC, you must
   * first create the required components (clusters, control panels, and routing
   * controls) using the recovery cluster configuration API. For more
   * information about working with routing control in Route 53 ARC, see the
   * following: Create clusters, control panels, and routing
   * controls by using API operations. For more information, see the Recovery Control
   * Configuration API Reference Guide for Amazon Route 53 Application Recovery
   * Controller. Learn about the components in recovery
   * control, including clusters, routing controls, and control panels, and how to
   * work with Route 53 ARC in the Amazon Web Services console. For more information,
   * see 
   * Recovery control components in the Amazon Route 53 Application Recovery
   * Controller Developer Guide. Route 53 ARC also provides
   * readiness checks that continually audit resources to help make sure that your
   * applications are scaled and ready to handle failover traffic. For more
   * information about the related API operations, see the Recovery
   * Readiness API Reference Guide for Amazon Route 53 Application Recovery
   * Controller. For more information about creating resilient
   * applications and preparing for recovery readiness with Route 53 ARC, see the Amazon Route 53
   * Application Recovery Controller Developer Guide. Get the state for a routing control. A routing control is a simple on/off
         * switch that you can use to route traffic to cells. When a routing control state
         * is On, traffic flows to a cell. When the state is Off, traffic does not flow.
         *  Before you can create a routing control, you must first create a
         * cluster, and then host the control in a control panel on the cluster. For more
         * information, see 
         * Create routing control structures in the Amazon Route 53 Application
         * Recovery Controller Developer Guide. You access one of the endpoints for the
         * cluster to get or update the routing control state to redirect traffic for your
         * application.   You must specify Regional endpoints when you work with
         * API cluster operations to get or update routing control states in Route 53
         * ARC.  To see a code example for getting a routing control state,
         * including accessing Regional cluster endpoints in sequence, see API
         * examples in the Amazon Route 53 Application Recovery Controller Developer
         * Guide. Learn more about working with routing controls in the following
         * topics in the Amazon Route 53 Application Recovery Controller Developer
         * Guide:--region us-west-2 with AWS CLI commands. For more information, see
   * 
   * Get and update routing control states using the API in the Amazon Route 53
   * Application Recovery Controller Developer Guide. 
   */
  class AWS_ROUTE53RECOVERYCLUSTER_API Route53RecoveryClusterClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethodsSee Also:
 
         * AWS
         * API Reference
List routing control names and Amazon Resource Names (ARNs), as well as the * routing control state for each routing control, along with the control panel * name and control panel ARN for the routing controls. If you specify a control * panel ARN, this call lists the routing controls in the control panel. Otherwise, * it lists all the routing controls in the cluster.
A routing control is a * simple on/off switch in Route 53 ARC that you can use to route traffic to cells. * When a routing control state is On, traffic flows to a cell. When the state is * Off, traffic does not flow.
Before you can create a routing control, you * must first create a cluster, and then host the control in a control panel on the * cluster. For more information, see * Create routing control structures in the Amazon Route 53 Application * Recovery Controller Developer Guide. You access one of the endpoints for the * cluster to get or update the routing control state to redirect traffic for your * application.
You must specify Regional endpoints when you work with * API cluster operations to use this API operation to list routing controls in * Route 53 ARC.
Learn more about working with routing controls in the * following topics in the Amazon Route 53 Application Recovery Controller * Developer Guide:
Set the state of the routing control to reroute traffic. You can set the * value to be On or Off. When the state is On, traffic flows to a cell. When the * state is Off, traffic does not flow.
With Route 53 ARC, you can add * safety rules for routing controls, which are safeguards for routing control * state updates that help prevent unexpected outcomes, like fail open traffic * routing. However, there are scenarios when you might want to bypass the routing * control safeguards that are enforced with safety rules that you've configured. * For example, you might want to fail over quickly for disaster recovery, and one * or more safety rules might be unexpectedly preventing you from updating a * routing control state to reroute traffic. In a "break glass" scenario like this, * you can override one or more safety rules to change a routing control state and * fail over your application.
The SafetyRulesToOverride
         * property enables you override one or more safety rules and update routing
         * control states. For more information, see 
         * Override safety rules to reroute traffic in the Amazon Route 53 Application
         * Recovery Controller Developer Guide.
You must specify Regional * endpoints when you work with API cluster operations to get or update routing * control states in Route 53 ARC.
To see a code example for getting a * routing control state, including accessing Regional cluster endpoints in * sequence, see API * examples in the Amazon Route 53 Application Recovery Controller Developer * Guide.
Set multiple routing control states. You can set the value for each state to * be On or Off. When the state is On, traffic flows to a cell. When it's Off, * traffic does not flow.
With Route 53 ARC, you can add safety rules for * routing controls, which are safeguards for routing control state updates that * help prevent unexpected outcomes, like fail open traffic routing. However, there * are scenarios when you might want to bypass the routing control safeguards that * are enforced with safety rules that you've configured. For example, you might * want to fail over quickly for disaster recovery, and one or more safety rules * might be unexpectedly preventing you from updating a routing control state to * reroute traffic. In a "break glass" scenario like this, you can override one or * more safety rules to change a routing control state and fail over your * application.
The SafetyRulesToOverride property enables you
         * override one or more safety rules and update routing control states. For more
         * information, see 
         * Override safety rules to reroute traffic in the Amazon Route 53 Application
         * Recovery Controller Developer Guide.
You must specify Regional * endpoints when you work with API cluster operations to get or update routing * control states in Route 53 ARC.
To see a code example for getting a * routing control state, including accessing Regional cluster endpoints in * sequence, see API * examples in the Amazon Route 53 Application Recovery Controller Developer * Guide.