/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the route53-recovery-cluster-2019-12-02.normal.json service model.
*/
using System;
using System.Runtime.ExceptionServices;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Net;
using Amazon.Route53RecoveryCluster.Model;
using Amazon.Route53RecoveryCluster.Model.Internal.MarshallTransformations;
using Amazon.Route53RecoveryCluster.Internal;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
using Amazon.Runtime.Internal.Auth;
using Amazon.Runtime.Internal.Transform;
namespace Amazon.Route53RecoveryCluster
{
///
/// Implementation for accessing Route53RecoveryCluster
///
/// 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 --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.
///
///
///
/// 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.
///
///
///
public partial class AmazonRoute53RecoveryClusterClient : AmazonServiceClient, IAmazonRoute53RecoveryCluster
{
private static IServiceMetadata serviceMetadata = new AmazonRoute53RecoveryClusterMetadata();
private IRoute53RecoveryClusterPaginatorFactory _paginators;
///
/// Paginators for the service
///
public IRoute53RecoveryClusterPaginatorFactory Paginators
{
get
{
if (this._paginators == null)
{
this._paginators = new Route53RecoveryClusterPaginatorFactory(this);
}
return this._paginators;
}
}
#region Constructors
///
/// Constructs AmazonRoute53RecoveryClusterClient with the credentials loaded from the application's
/// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
///
/// Example App.config with credentials set.
///
/// <?xml version="1.0" encoding="utf-8" ?>
/// <configuration>
/// <appSettings>
/// <add key="AWSProfileName" value="AWS Default"/>
/// </appSettings>
/// </configuration>
///
///
///
public AmazonRoute53RecoveryClusterClient()
: base(FallbackCredentialsFactory.GetCredentials(), new AmazonRoute53RecoveryClusterConfig()) { }
///
/// Constructs AmazonRoute53RecoveryClusterClient with the credentials loaded from the application's
/// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
///
/// Example App.config with credentials set.
///
/// <?xml version="1.0" encoding="utf-8" ?>
/// <configuration>
/// <appSettings>
/// <add key="AWSProfileName" value="AWS Default"/>
/// </appSettings>
/// </configuration>
///
///
///
/// The region to connect.
public AmazonRoute53RecoveryClusterClient(RegionEndpoint region)
: base(FallbackCredentialsFactory.GetCredentials(), new AmazonRoute53RecoveryClusterConfig{RegionEndpoint = region}) { }
///
/// Constructs AmazonRoute53RecoveryClusterClient with the credentials loaded from the application's
/// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
///
/// Example App.config with credentials set.
///
/// <?xml version="1.0" encoding="utf-8" ?>
/// <configuration>
/// <appSettings>
/// <add key="AWSProfileName" value="AWS Default"/>
/// </appSettings>
/// </configuration>
///
///
///
/// The AmazonRoute53RecoveryClusterClient Configuration Object
public AmazonRoute53RecoveryClusterClient(AmazonRoute53RecoveryClusterConfig config)
: base(FallbackCredentialsFactory.GetCredentials(config), config){}
///
/// Constructs AmazonRoute53RecoveryClusterClient with AWS Credentials
///
/// AWS Credentials
public AmazonRoute53RecoveryClusterClient(AWSCredentials credentials)
: this(credentials, new AmazonRoute53RecoveryClusterConfig())
{
}
///
/// Constructs AmazonRoute53RecoveryClusterClient with AWS Credentials
///
/// AWS Credentials
/// The region to connect.
public AmazonRoute53RecoveryClusterClient(AWSCredentials credentials, RegionEndpoint region)
: this(credentials, new AmazonRoute53RecoveryClusterConfig{RegionEndpoint = region})
{
}
///
/// Constructs AmazonRoute53RecoveryClusterClient with AWS Credentials and an
/// AmazonRoute53RecoveryClusterClient Configuration object.
///
/// AWS Credentials
/// The AmazonRoute53RecoveryClusterClient Configuration Object
public AmazonRoute53RecoveryClusterClient(AWSCredentials credentials, AmazonRoute53RecoveryClusterConfig clientConfig)
: base(credentials, clientConfig)
{
}
///
/// Constructs AmazonRoute53RecoveryClusterClient with AWS Access Key ID and AWS Secret Key
///
/// AWS Access Key ID
/// AWS Secret Access Key
public AmazonRoute53RecoveryClusterClient(string awsAccessKeyId, string awsSecretAccessKey)
: this(awsAccessKeyId, awsSecretAccessKey, new AmazonRoute53RecoveryClusterConfig())
{
}
///
/// Constructs AmazonRoute53RecoveryClusterClient with AWS Access Key ID and AWS Secret Key
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// The region to connect.
public AmazonRoute53RecoveryClusterClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region)
: this(awsAccessKeyId, awsSecretAccessKey, new AmazonRoute53RecoveryClusterConfig() {RegionEndpoint=region})
{
}
///
/// Constructs AmazonRoute53RecoveryClusterClient with AWS Access Key ID, AWS Secret Key and an
/// AmazonRoute53RecoveryClusterClient Configuration object.
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// The AmazonRoute53RecoveryClusterClient Configuration Object
public AmazonRoute53RecoveryClusterClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonRoute53RecoveryClusterConfig clientConfig)
: base(awsAccessKeyId, awsSecretAccessKey, clientConfig)
{
}
///
/// Constructs AmazonRoute53RecoveryClusterClient with AWS Access Key ID and AWS Secret Key
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// AWS Session Token
public AmazonRoute53RecoveryClusterClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken)
: this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonRoute53RecoveryClusterConfig())
{
}
///
/// Constructs AmazonRoute53RecoveryClusterClient with AWS Access Key ID and AWS Secret Key
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// AWS Session Token
/// The region to connect.
public AmazonRoute53RecoveryClusterClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region)
: this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonRoute53RecoveryClusterConfig{RegionEndpoint = region})
{
}
///
/// Constructs AmazonRoute53RecoveryClusterClient with AWS Access Key ID, AWS Secret Key and an
/// AmazonRoute53RecoveryClusterClient Configuration object.
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// AWS Session Token
/// The AmazonRoute53RecoveryClusterClient Configuration Object
public AmazonRoute53RecoveryClusterClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonRoute53RecoveryClusterConfig clientConfig)
: base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig)
{
}
#endregion
#region Overrides
///
/// Creates the signer for the service.
///
protected override AbstractAWSSigner CreateSigner()
{
return new AWS4Signer();
}
///
/// Customize the pipeline
///
///
protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline)
{
pipeline.RemoveHandler();
pipeline.AddHandlerAfter(new AmazonRoute53RecoveryClusterEndpointResolver());
}
///
/// Capture metadata for the service.
///
protected override IServiceMetadata ServiceMetadata
{
get
{
return serviceMetadata;
}
}
#endregion
#region Dispose
///
/// Disposes the service client.
///
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
#endregion
#region GetRoutingControlState
///
/// 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:
///
///
///
/// Container for the necessary parameters to execute the GetRoutingControlState service method.
///
/// The response from the GetRoutingControlState service method, as returned by Route53RecoveryCluster.
///
/// You don't have sufficient permissions to perform this action.
///
///
/// The cluster endpoint isn't available. Try another cluster endpoint.
///
///
/// There was an unexpected error during processing of the request.
///
///
/// The request references a routing control or control panel that was not found.
///
///
/// The request was denied because of request throttling.
///
///
/// There was a validation error on the request.
///
/// REST API Reference for GetRoutingControlState Operation
public virtual GetRoutingControlStateResponse GetRoutingControlState(GetRoutingControlStateRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = GetRoutingControlStateRequestMarshaller.Instance;
options.ResponseUnmarshaller = GetRoutingControlStateResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// 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:
///
///
///
/// Container for the necessary parameters to execute the GetRoutingControlState service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the GetRoutingControlState service method, as returned by Route53RecoveryCluster.
///
/// You don't have sufficient permissions to perform this action.
///
///
/// The cluster endpoint isn't available. Try another cluster endpoint.
///
///
/// There was an unexpected error during processing of the request.
///
///
/// The request references a routing control or control panel that was not found.
///
///
/// The request was denied because of request throttling.
///
///
/// There was a validation error on the request.
///
/// REST API Reference for GetRoutingControlState Operation
public virtual Task GetRoutingControlStateAsync(GetRoutingControlStateRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = GetRoutingControlStateRequestMarshaller.Instance;
options.ResponseUnmarshaller = GetRoutingControlStateResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region ListRoutingControls
///
/// 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:
///
///
///
/// Container for the necessary parameters to execute the ListRoutingControls service method.
///
/// The response from the ListRoutingControls service method, as returned by Route53RecoveryCluster.
///
/// You don't have sufficient permissions to perform this action.
///
///
/// The cluster endpoint isn't available. Try another cluster endpoint.
///
///
/// There was an unexpected error during processing of the request.
///
///
/// The request references a routing control or control panel that was not found.
///
///
/// The request was denied because of request throttling.
///
///
/// There was a validation error on the request.
///
/// REST API Reference for ListRoutingControls Operation
public virtual ListRoutingControlsResponse ListRoutingControls(ListRoutingControlsRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = ListRoutingControlsRequestMarshaller.Instance;
options.ResponseUnmarshaller = ListRoutingControlsResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// 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:
///
///
///
/// Container for the necessary parameters to execute the ListRoutingControls service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the ListRoutingControls service method, as returned by Route53RecoveryCluster.
///
/// You don't have sufficient permissions to perform this action.
///
///
/// The cluster endpoint isn't available. Try another cluster endpoint.
///
///
/// There was an unexpected error during processing of the request.
///
///
/// The request references a routing control or control panel that was not found.
///
///
/// The request was denied because of request throttling.
///
///
/// There was a validation error on the request.
///
/// REST API Reference for ListRoutingControls Operation
public virtual Task ListRoutingControlsAsync(ListRoutingControlsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = ListRoutingControlsRequestMarshaller.Instance;
options.ResponseUnmarshaller = ListRoutingControlsResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region UpdateRoutingControlState
///
/// 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.
///
///
///
/// Container for the necessary parameters to execute the UpdateRoutingControlState service method.
///
/// The response from the UpdateRoutingControlState service method, as returned by Route53RecoveryCluster.
///
/// You don't have sufficient permissions to perform this action.
///
///
/// There was a conflict with this request. Try again.
///
///
/// The cluster endpoint isn't available. Try another cluster endpoint.
///
///
/// There was an unexpected error during processing of the request.
///
///
/// The request references a routing control or control panel that was not found.
///
///
/// The request was denied because of request throttling.
///
///
/// There was a validation error on the request.
///
/// REST API Reference for UpdateRoutingControlState Operation
public virtual UpdateRoutingControlStateResponse UpdateRoutingControlState(UpdateRoutingControlStateRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = UpdateRoutingControlStateRequestMarshaller.Instance;
options.ResponseUnmarshaller = UpdateRoutingControlStateResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// 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.
///
///
///
/// Container for the necessary parameters to execute the UpdateRoutingControlState service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the UpdateRoutingControlState service method, as returned by Route53RecoveryCluster.
///
/// You don't have sufficient permissions to perform this action.
///
///
/// There was a conflict with this request. Try again.
///
///
/// The cluster endpoint isn't available. Try another cluster endpoint.
///
///
/// There was an unexpected error during processing of the request.
///
///
/// The request references a routing control or control panel that was not found.
///
///
/// The request was denied because of request throttling.
///
///
/// There was a validation error on the request.
///
/// REST API Reference for UpdateRoutingControlState Operation
public virtual Task UpdateRoutingControlStateAsync(UpdateRoutingControlStateRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = UpdateRoutingControlStateRequestMarshaller.Instance;
options.ResponseUnmarshaller = UpdateRoutingControlStateResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region UpdateRoutingControlStates
///
/// 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.
///
///
///
/// Container for the necessary parameters to execute the UpdateRoutingControlStates service method.
///
/// The response from the UpdateRoutingControlStates service method, as returned by Route53RecoveryCluster.
///
/// You don't have sufficient permissions to perform this action.
///
///
/// There was a conflict with this request. Try again.
///
///
/// The cluster endpoint isn't available. Try another cluster endpoint.
///
///
/// There was an unexpected error during processing of the request.
///
///
/// The request references a routing control or control panel that was not found.
///
///
/// The request can't update that many routing control states at the same time. Try again
/// with fewer routing control states.
///
///
/// The request was denied because of request throttling.
///
///
/// There was a validation error on the request.
///
/// REST API Reference for UpdateRoutingControlStates Operation
public virtual UpdateRoutingControlStatesResponse UpdateRoutingControlStates(UpdateRoutingControlStatesRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = UpdateRoutingControlStatesRequestMarshaller.Instance;
options.ResponseUnmarshaller = UpdateRoutingControlStatesResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// 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.
///
///
///
/// Container for the necessary parameters to execute the UpdateRoutingControlStates service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the UpdateRoutingControlStates service method, as returned by Route53RecoveryCluster.
///
/// You don't have sufficient permissions to perform this action.
///
///
/// There was a conflict with this request. Try again.
///
///
/// The cluster endpoint isn't available. Try another cluster endpoint.
///
///
/// There was an unexpected error during processing of the request.
///
///
/// The request references a routing control or control panel that was not found.
///
///
/// The request can't update that many routing control states at the same time. Try again
/// with fewer routing control states.
///
///
/// The request was denied because of request throttling.
///
///
/// There was a validation error on the request.
///
/// REST API Reference for UpdateRoutingControlStates Operation
public virtual Task UpdateRoutingControlStatesAsync(UpdateRoutingControlStatesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = UpdateRoutingControlStatesRequestMarshaller.Instance;
options.ResponseUnmarshaller = UpdateRoutingControlStatesResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
}
}