@SdkInternalApi
    final DBCluster executeFailoverDBCluster(FailoverDBClusterRequest failoverDBClusterRequest) {

        ExecutionContext executionContext = createExecutionContext(failoverDBClusterRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<FailoverDBClusterRequest> request = null;
        Response<DBCluster> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new FailoverDBClusterRequestMarshaller().marshall(super.beforeMarshalling(failoverDBClusterRequest));
                // Binds the request metrics to the current request.
                request.setAWSRequestMetrics(awsRequestMetrics);
                request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
                request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
                request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
                request.addHandlerContext(HandlerContextKey.SERVICE_ID, "RDS");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "FailoverDBCluster");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

            } finally {
                awsRequestMetrics.endEvent(Field.RequestMarshallTime);
            }

            StaxResponseHandler<DBCluster> responseHandler = new StaxResponseHandler<DBCluster>(new DBClusterStaxUnmarshaller());

            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Forces a failover for a DB cluster.
</p>
<p>
For an Aurora DB cluster, failover for a DB cluster promotes one of the Aurora Replicas (read-only instances) in
the DB cluster to be the primary DB instance (the cluster writer).
</p>
<p>
For a Multi-AZ DB cluster, after RDS terminates the primary DB instance, the internal monitoring system detects
that the primary DB instance is unhealthy and promotes a readable standby (read-only instances) in the DB cluster
to be the primary DB instance (the cluster writer). Failover times are typically less than 35 seconds.
</p>
<p>
An Amazon Aurora DB cluster automatically fails over to an Aurora Replica, if one exists, when the primary DB
instance fails. A Multi-AZ DB cluster automatically fails over to a readable standby DB instance when the primary
DB instance fails.
</p>
<p>
To simulate a failure of a primary instance for testing, you can force a failover. Because each instance in a DB
cluster has its own endpoint address, make sure to clean up and re-establish any existing connections that use
those endpoint addresses when the failover is complete.
</p>
<p>
For more information on Amazon Aurora DB clusters, see <a
href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What is Amazon
Aurora?</a> in the <i>Amazon Aurora User Guide</i>.
</p>
<p>
For more information on Multi-AZ DB clusters, see <a
href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html"> Multi-AZ DB
cluster deployments</a> in the <i>Amazon RDS User Guide</i>.
</p>

@param failoverDBClusterRequest
@return Result of the FailoverDBCluster operation returned by the service.
@throws DBClusterNotFoundException
        <code>DBClusterIdentifier</code> doesn't refer to an existing DB cluster.
@throws InvalidDBClusterStateException
        The requested operation can't be performed while the cluster is in this state.
@throws InvalidDBInstanceStateException
        The DB instance isn't in a valid state.
@sample AmazonRDS.FailoverDBCluster
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/FailoverDBCluster" target="_top">AWS API
     Documentation</a>
aws-java-sdk-rds/src/main/java/com/amazonaws/services/rds/AmazonRDSClient.java