
com.amazonaws.services.route53.AmazonRoute53Client Maven / Gradle / Ivy
Show all versions of aws-java-sdk-route53 Show documentation
/*
* Copyright 2011-2016 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.
*/
package com.amazonaws.services.route53;
import org.w3c.dom.*;
import java.net.*;
import java.util.*;
import java.util.Map.Entry;
import org.apache.commons.logging.*;
import com.amazonaws.*;
import com.amazonaws.auth.*;
import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
import com.amazonaws.internal.auth.*;
import com.amazonaws.metrics.*;
import com.amazonaws.regions.*;
import com.amazonaws.transform.*;
import com.amazonaws.util.*;
import com.amazonaws.protocol.json.*;
import com.amazonaws.util.AWSRequestMetrics.Field;
import com.amazonaws.annotation.ThreadSafe;
import com.amazonaws.client.AwsSyncClientParams;
import com.amazonaws.services.route53.waiters.AmazonRoute53Waiters;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.services.route53.model.*;
import com.amazonaws.services.route53.model.transform.*;
/**
* Client for accessing Route 53. All service calls made using this client are
* blocking, and will not return until the service call completes.
*
*
*/
@ThreadSafe
public class AmazonRoute53Client extends AmazonWebServiceClient implements
AmazonRoute53 {
/** Provider for AWS credentials. */
private final AWSCredentialsProvider awsCredentialsProvider;
private static final Log log = LogFactory.getLog(AmazonRoute53.class);
/** Default signing name for the service. */
private static final String DEFAULT_SIGNING_NAME = "route53";
private volatile AmazonRoute53Waiters waiters;
/**
* Client configuration factory providing ClientConfigurations tailored to
* this client
*/
protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory();
/**
* List of exception unmarshallers for all modeled exceptions
*/
protected final List> exceptionUnmarshallers = new ArrayList>();
/**
* Constructs a new client to invoke service methods on Route 53. A
* credentials provider chain will be used that searches for credentials in
* this order:
*
* - Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
* - Java System Properties - aws.accessKeyId and aws.secretKey
* - Instance profile credentials delivered through the Amazon EC2
* metadata service
*
*
*
* All service calls made using this new client object are blocking, and
* will not return until the service call completes.
*
* @see DefaultAWSCredentialsProviderChain
*/
public AmazonRoute53Client() {
this(new DefaultAWSCredentialsProviderChain(), configFactory
.getConfig());
}
/**
* Constructs a new client to invoke service methods on Route 53. A
* credentials provider chain will be used that searches for credentials in
* this order:
*
* - Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
* - Java System Properties - aws.accessKeyId and aws.secretKey
* - Instance profile credentials delivered through the Amazon EC2
* metadata service
*
*
*
* All service calls made using this new client object are blocking, and
* will not return until the service call completes.
*
* @param clientConfiguration
* The client configuration options controlling how this client
* connects to Route 53 (ex: proxy settings, retry counts, etc.).
*
* @see DefaultAWSCredentialsProviderChain
*/
public AmazonRoute53Client(ClientConfiguration clientConfiguration) {
this(new DefaultAWSCredentialsProviderChain(), clientConfiguration);
}
/**
* Constructs a new client to invoke service methods on Route 53 using the
* specified AWS account credentials.
*
*
* All service calls made using this new client object are blocking, and
* will not return until the service call completes.
*
* @param awsCredentials
* The AWS credentials (access key ID and secret key) to use when
* authenticating with AWS services.
*/
public AmazonRoute53Client(AWSCredentials awsCredentials) {
this(awsCredentials, configFactory.getConfig());
}
/**
* Constructs a new client to invoke service methods on Route 53 using the
* specified AWS account credentials and client configuration options.
*
*
* All service calls made using this new client object are blocking, and
* will not return until the service call completes.
*
* @param awsCredentials
* The AWS credentials (access key ID and secret key) to use when
* authenticating with AWS services.
* @param clientConfiguration
* The client configuration options controlling how this client
* connects to Route 53 (ex: proxy settings, retry counts, etc.).
*/
public AmazonRoute53Client(AWSCredentials awsCredentials,
ClientConfiguration clientConfiguration) {
super(clientConfiguration);
this.awsCredentialsProvider = new StaticCredentialsProvider(
awsCredentials);
init();
}
/**
* Constructs a new client to invoke service methods on Route 53 using the
* specified AWS account credentials provider.
*
*
* All service calls made using this new client object are blocking, and
* will not return until the service call completes.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to
* authenticate requests with AWS services.
*/
public AmazonRoute53Client(AWSCredentialsProvider awsCredentialsProvider) {
this(awsCredentialsProvider, configFactory.getConfig());
}
/**
* Constructs a new client to invoke service methods on Route 53 using the
* specified AWS account credentials provider and client configuration
* options.
*
*
* All service calls made using this new client object are blocking, and
* will not return until the service call completes.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to
* authenticate requests with AWS services.
* @param clientConfiguration
* The client configuration options controlling how this client
* connects to Route 53 (ex: proxy settings, retry counts, etc.).
*/
public AmazonRoute53Client(AWSCredentialsProvider awsCredentialsProvider,
ClientConfiguration clientConfiguration) {
this(awsCredentialsProvider, clientConfiguration, null);
}
/**
* Constructs a new client to invoke service methods on Route 53 using the
* specified AWS account credentials provider, client configuration options,
* and request metric collector.
*
*
* All service calls made using this new client object are blocking, and
* will not return until the service call completes.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to
* authenticate requests with AWS services.
* @param clientConfiguration
* The client configuration options controlling how this client
* connects to Route 53 (ex: proxy settings, retry counts, etc.).
* @param requestMetricCollector
* optional request metric collector
*/
public AmazonRoute53Client(AWSCredentialsProvider awsCredentialsProvider,
ClientConfiguration clientConfiguration,
RequestMetricCollector requestMetricCollector) {
super(clientConfiguration, requestMetricCollector);
this.awsCredentialsProvider = awsCredentialsProvider;
init();
}
/**
* Constructs a new client to invoke service methods on Route 53 using the
* specified parameters.
*
*
* All service calls made using this new client object are blocking, and
* will not return until the service call completes.
*
* @param clientParams
* Object providing client parameters.
*/
AmazonRoute53Client(AwsSyncClientParams clientParams) {
super(clientParams);
this.awsCredentialsProvider = clientParams.getCredentialsProvider();
init();
}
private void init() {
exceptionUnmarshallers
.add(new HostedZoneNotEmptyExceptionUnmarshaller());
exceptionUnmarshallers
.add(new ConcurrentModificationExceptionUnmarshaller());
exceptionUnmarshallers
.add(new InvalidDomainNameExceptionUnmarshaller());
exceptionUnmarshallers
.add(new TooManyHealthChecksExceptionUnmarshaller());
exceptionUnmarshallers
.add(new IncompatibleVersionExceptionUnmarshaller());
exceptionUnmarshallers.add(new HealthCheckInUseExceptionUnmarshaller());
exceptionUnmarshallers
.add(new InvalidChangeBatchExceptionUnmarshaller());
exceptionUnmarshallers
.add(new HostedZoneAlreadyExistsExceptionUnmarshaller());
exceptionUnmarshallers
.add(new InvalidTrafficPolicyDocumentExceptionUnmarshaller());
exceptionUnmarshallers
.add(new NoSuchTrafficPolicyExceptionUnmarshaller());
exceptionUnmarshallers.add(new ThrottlingExceptionUnmarshaller());
exceptionUnmarshallers
.add(new TooManyTrafficPoliciesExceptionUnmarshaller());
exceptionUnmarshallers
.add(new TrafficPolicyAlreadyExistsExceptionUnmarshaller());
exceptionUnmarshallers
.add(new DelegationSetAlreadyCreatedExceptionUnmarshaller());
exceptionUnmarshallers
.add(new DelegationSetAlreadyReusableExceptionUnmarshaller());
exceptionUnmarshallers.add(new InvalidVPCIdExceptionUnmarshaller());
exceptionUnmarshallers
.add(new TrafficPolicyInUseExceptionUnmarshaller());
exceptionUnmarshallers.add(new NoSuchHostedZoneExceptionUnmarshaller());
exceptionUnmarshallers
.add(new TooManyHostedZonesExceptionUnmarshaller());
exceptionUnmarshallers
.add(new VPCAssociationNotFoundExceptionUnmarshaller());
exceptionUnmarshallers
.add(new PublicZoneVPCAssociationExceptionUnmarshaller());
exceptionUnmarshallers
.add(new NoSuchGeoLocationExceptionUnmarshaller());
exceptionUnmarshallers
.add(new TrafficPolicyInstanceAlreadyExistsExceptionUnmarshaller());
exceptionUnmarshallers.add(new NoSuchChangeExceptionUnmarshaller());
exceptionUnmarshallers.add(new ConflictingTypesExceptionUnmarshaller());
exceptionUnmarshallers
.add(new LastVPCAssociationExceptionUnmarshaller());
exceptionUnmarshallers
.add(new DelegationSetNotReusableExceptionUnmarshaller());
exceptionUnmarshallers
.add(new PriorRequestNotCompleteExceptionUnmarshaller());
exceptionUnmarshallers
.add(new HostedZoneNotFoundExceptionUnmarshaller());
exceptionUnmarshallers.add(new InvalidArgumentExceptionUnmarshaller());
exceptionUnmarshallers
.add(new HealthCheckVersionMismatchExceptionUnmarshaller());
exceptionUnmarshallers.add(new InvalidInputExceptionUnmarshaller());
exceptionUnmarshallers
.add(new ConflictingDomainExistsExceptionUnmarshaller());
exceptionUnmarshallers
.add(new HealthCheckAlreadyExistsExceptionUnmarshaller());
exceptionUnmarshallers
.add(new DelegationSetInUseExceptionUnmarshaller());
exceptionUnmarshallers
.add(new NoSuchDelegationSetExceptionUnmarshaller());
exceptionUnmarshallers
.add(new NoSuchHealthCheckExceptionUnmarshaller());
exceptionUnmarshallers
.add(new TooManyTrafficPolicyInstancesExceptionUnmarshaller());
exceptionUnmarshallers.add(new LimitsExceededExceptionUnmarshaller());
exceptionUnmarshallers
.add(new DelegationSetNotAvailableExceptionUnmarshaller());
exceptionUnmarshallers
.add(new NoSuchTrafficPolicyInstanceExceptionUnmarshaller());
exceptionUnmarshallers
.add(new StandardErrorUnmarshaller(
com.amazonaws.services.route53.model.AmazonRoute53Exception.class));
setServiceNameIntern(DEFAULT_SIGNING_NAME);
setEndpointPrefix(ENDPOINT_PREFIX);
// calling this.setEndPoint(...) will also modify the signer accordingly
this.setEndpoint("https://route53.amazonaws.com");
HandlerChainFactory chainFactory = new HandlerChainFactory();
requestHandler2s
.addAll(chainFactory
.newRequestHandlerChain("/com/amazonaws/services/route53/request.handlers"));
requestHandler2s
.addAll(chainFactory
.newRequestHandler2Chain("/com/amazonaws/services/route53/request.handler2s"));
}
/**
*
* Associates an Amazon VPC with a private hosted zone.
*
*
*
* The VPC and the hosted zone must already exist, and you must have created
* a private hosted zone. You cannot convert a public hosted zone into a
* private hosted zone.
*
*
*
* Send a POST
request to the
* /Amazon Route 53 API version/hostedzone/hosted zone ID/associatevpc
* resource. The request body must include an XML document with a
* AssociateVPCWithHostedZoneRequest
element. The response
* returns the AssociateVPCWithHostedZoneResponse
element.
*
*
*
* If you used different accounts to create the hosted zone and to create
* the Amazon VPCs that you want to associate with the hosted zone, we need
* to update account permissions for you. For more information, see Associating Amazon VPCs and Private Hosted Zones That You Create with
* Different AWS Accounts in the Amazon Route 53 Developer Guide.
*
*
*
* @param associateVPCWithHostedZoneRequest
* A complex type that contains information about the VPC and the
* hosted zone that you want to associate.
* @return Result of the AssociateVPCWithHostedZone operation returned by
* the service.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws InvalidVPCIdException
* The hosted zone you are trying to create for your VPC_ID does not
* belong to you. Amazon Route 53 returns this error when the VPC
* specified by VPCId
does not belong to you.
* @throws InvalidInputException
* The input is not valid.
* @throws PublicZoneVPCAssociationException
* The hosted zone specified in HostedZoneId
is a
* public hosted zone.
* @throws ConflictingDomainExistsException
* @throws LimitsExceededException
* The limits specified for a resource have been exceeded.
* @sample AmazonRoute53.AssociateVPCWithHostedZone
*/
@Override
public AssociateVPCWithHostedZoneResult associateVPCWithHostedZone(
AssociateVPCWithHostedZoneRequest associateVPCWithHostedZoneRequest) {
ExecutionContext executionContext = createExecutionContext(associateVPCWithHostedZoneRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AssociateVPCWithHostedZoneRequestMarshaller()
.marshall(super
.beforeMarshalling(associateVPCWithHostedZoneRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new AssociateVPCWithHostedZoneResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Create, change, update, or delete authoritative DNS information on all
* Amazon Route 53 servers. Send a POST
request to:
*
*
* /2013-04-01/hostedzone/Amazon Route 53 hosted Zone ID/rrset
* resource.
*
*
* The request body must include a document with a
* ChangeResourceRecordSetsRequest
element. The request body
* contains a list of change items, known as a change batch. Change batches
* are considered transactional changes. When using the Amazon Route 53 API
* to change resource record sets, Amazon Route 53 either makes all or none
* of the changes in a change batch request. This ensures that Amazon Route
* 53 never partially implements the intended changes to the resource record
* sets in a hosted zone.
*
*
* For example, a change batch request that deletes the CNAME
* record for www.example.com and creates an alias resource record set for
* www.example.com. Amazon Route 53 deletes the first resource record set
* and creates the second resource record set in a single operation. If
* either the DELETE
or the CREATE
action fails,
* then both changes (plus any other changes in the batch) fail, and the
* original CNAME
record continues to exist.
*
*
*
* Due to the nature of transactional changes, you cannot delete the same
* resource record set more than once in a single change batch. If you
* attempt to delete the same change batch more than once, Amazon Route 53
* returns an InvalidChangeBatch
error.
*
*
*
* To create resource record sets for complex routing configurations, use
* either the traffic flow visual editor in the Amazon Route 53 console or
* the API actions for traffic policies and traffic policy instances. Save
* the configuration as a traffic policy, then associate the traffic policy
* with one or more domain names (such as example.com) or subdomain names
* (such as www.example.com), in the same hosted zone or in multiple hosted
* zones. You can roll back the updates if the new configuration isn't
* performing as expected. For more information, see Using Traffic Flow to Route DNS Traffic in the Amazon Route 53 API
* Reference or Actions on Traffic Policies and Traffic Policy Instances in this
* guide.
*
*
*
* Use ChangeResourceRecordsSetsRequest
to perform the
* following actions:
*
*
* -
*
* CREATE
:Creates a resource record set that has the specified
* values.
*
*
* -
*
* DELETE
: Deletes an existing resource record set that has the
* specified values for Name
, Type
,
* Set Identifier
(for code latency, weighted, geolocation, and
* failover resource record sets), and TTL
(except alias
* resource record sets, for which the TTL is determined by the AWS resource
* you're routing queries to).
*
*
* -
*
* UPSERT
: If a resource record set does not already exist, AWS
* creates it. If a resource set does exist, Amazon Route 53 updates it with
* the values in the request. Amazon Route 53 can update an existing
* resource record set only when all of the following values match:
* Name
, Type
, and Set Identifier
* (for weighted, latency, geolocation, and failover resource record sets).
*
*
*
*
* In response to a ChangeResourceRecordSets
request, the DNS
* data is changed on all Amazon Route 53 DNS servers. Initially, the status
* of a change is PENDING
, meaning the change has not yet
* propagated to all the authoritative Amazon Route 53 DNS servers. When the
* change is propagated to all hosts, the change returns a status of
* INSYNC
.
*
*
* After sending a change request, confirm your change has propagated to all
* Amazon Route 53 DNS servers. Changes generally propagate to all Amazon
* Route 53 name servers in a few minutes. In rare circumstances,
* propagation can take up to 30 minutes. For more information, see
* GetChange.
*
*
* Note the following limitations on a ChangeResourceRecordSets
* request:
*
*
* -
*
* A request cannot contain more than 100 Change elements.
*
*
* -
*
* A request cannot contain more than 1000 ResourceRecord elements.
*
*
* -
*
* The sum of the number of characters (including spaces) in all
* Value
elements in a request cannot exceed 32,000 characters.
*
*
*
*
* If the value of the Action element in a ChangeResourceRecordSets request
* is UPSERT
and the resource record set already exists, Amazon
* Route 53 automatically performs a DELETE
request and a
* CREATE
request. When Amazon Route 53 calculates the number
* of characters in the Value elements of a change batch request, it adds
* the number of characters in the Value element of the resource record set
* being deleted and the number of characters in the Value element of the
* resource record set being created.
*
*
* -
*
* The same resource cannot be deleted more than once in a single batch.
*
*
*
*
*
* If the value of the Action element in a ChangeResourceRecordSets request
* is UPSERT
and the resource record set already exists, Amazon
* Route 53 automatically performs a DELETE
request and a
* CREATE
request. When Amazon Route 53 calculates the number
* of characters in the Value elements of a change batch request, it adds
* the number of characters in the Value element of the resource record set
* being deleted and the number of characters in the Value element of the
* resource record set being created.
*
*
*
* For more information on transactional changes, see
* ChangeResourceRecordSets.
*
*
* @param changeResourceRecordSetsRequest
* A complex type that contains change information for the resource
* record set.
* @return Result of the ChangeResourceRecordSets operation returned by the
* service.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws NoSuchHealthCheckException
* No health check exists with the ID that you specified in the
* DeleteHealthCheck
request.
* @throws InvalidChangeBatchException
* This exception contains a list of messages that might contain one
* or more error messages. Each error message indicates one error in
* the change batch.
* @throws InvalidInputException
* The input is not valid.
* @throws PriorRequestNotCompleteException
* If Amazon Route 53 can't process a request before the next
* request arrives, it will reject subsequent requests for the same
* hosted zone and return an HTTP 400 error
(
* Bad request
). If Amazon Route 53 returns this error
* repeatedly for the same request, we recommend that you wait, in
* intervals of increasing duration, before you try the request
* again.
* @sample AmazonRoute53.ChangeResourceRecordSets
*/
@Override
public ChangeResourceRecordSetsResult changeResourceRecordSets(
ChangeResourceRecordSetsRequest changeResourceRecordSetsRequest) {
ExecutionContext executionContext = createExecutionContext(changeResourceRecordSetsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ChangeResourceRecordSetsRequestMarshaller()
.marshall(super
.beforeMarshalling(changeResourceRecordSetsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ChangeResourceRecordSetsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* @param changeTagsForResourceRequest
* A complex type that contains information about the tags that you
* want to add, edit, or delete.
* @return Result of the ChangeTagsForResource operation returned by the
* service.
* @throws InvalidInputException
* The input is not valid.
* @throws NoSuchHealthCheckException
* No health check exists with the ID that you specified in the
* DeleteHealthCheck
request.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws PriorRequestNotCompleteException
* If Amazon Route 53 can't process a request before the next
* request arrives, it will reject subsequent requests for the same
* hosted zone and return an HTTP 400 error
(
* Bad request
). If Amazon Route 53 returns this error
* repeatedly for the same request, we recommend that you wait, in
* intervals of increasing duration, before you try the request
* again.
* @throws ThrottlingException
* @sample AmazonRoute53.ChangeTagsForResource
*/
@Override
public ChangeTagsForResourceResult changeTagsForResource(
ChangeTagsForResourceRequest changeTagsForResourceRequest) {
ExecutionContext executionContext = createExecutionContext(changeTagsForResourceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ChangeTagsForResourceRequestMarshaller()
.marshall(super
.beforeMarshalling(changeTagsForResourceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ChangeTagsForResourceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a new health check.
*
*
* To create a new health check, send a POST
request to the
* /2013-04-01/healthcheck
resource. The request body must
* include an XML document with a CreateHealthCheckRequest
* element. The response returns the CreateHealthCheckResponse
* element, containing the health check ID specified when adding health
* check to a resource record set. For information about adding health
* checks to resource record sets, see
* ResourceRecordSet$HealthCheckId in
* ChangeResourceRecordSets.
*
*
* If you are registering Amazon EC2 instances with an Elastic Load
* Balancing (ELB) load balancer, do not create Amazon Route 53 health
* checks for the Amazon EC2 instances. When you register an Amazon EC2
* instance with a load balancer, you configure settings for an ELB health
* check, which performs a similar function to an Amazon Route 53 health
* check.
*
*
* You can associate health checks with failover resource record sets in a
* private hosted zone. Note the following:
*
*
* -
*
* Amazon Route 53 health checkers are outside the VPC. To check the health
* of an endpoint within a VPC by IP address, you must assign a public IP
* address to the instance in the VPC.
*
*
* -
*
* You can configure a health checker to check the health of an external
* resource that the instance relies on, such as a database server.
*
*
* -
*
* You can create a CloudWatch metric, associate an alarm with the metric,
* and then create a health check that is based on the state of the alarm.
* For example, you might create a CloudWatch metric that checks the status
* of the Amazon EC2 StatusCheckFailed
metric, add an alarm to
* the metric, and then create a health check that is based on the state of
* the alarm. For information about creating CloudWatch metrics and alarms
* by using the CloudWatch console, see the Amazon CloudWatch Developer Guide.
*
*
*
*
* @param createHealthCheckRequest
* A complex type that contains the health check request information.
* @return Result of the CreateHealthCheck operation returned by the
* service.
* @throws TooManyHealthChecksException
* @throws HealthCheckAlreadyExistsException
* The health check you're attempting to create already exists.
*
* Amazon Route 53 returns this error when a health check has
* already been created with the specified value for
* CallerReference
.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.CreateHealthCheck
*/
@Override
public CreateHealthCheckResult createHealthCheck(
CreateHealthCheckRequest createHealthCheckRequest) {
ExecutionContext executionContext = createExecutionContext(createHealthCheckRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateHealthCheckRequestMarshaller()
.marshall(super
.beforeMarshalling(createHealthCheckRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new CreateHealthCheckResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a new public hosted zone, used to specify how the Domain Name
* System (DNS) routes traffic on the Internet for a domain, such as
* example.com, and its subdomains.
*
*
*
* Public hosted zones cannot be converted to a private hosted zone or vice
* versa. Instead, create a new hosted zone with the same name and create
* new resource record sets.
*
*
*
* Send a POST
request to the
* /Amazon Route 53 API version/hostedzone
resource. The
* request body must include an XML document with a
* CreateHostedZoneRequest
element. The response returns the
* CreateHostedZoneResponse
element containing metadata about
* the hosted zone.
*
*
* Fore more information about charges for hosted zones, see AmazonAmazon Route 53 Pricing.
*
*
* Note the following:
*
*
* -
*
* You cannot create a hosted zone for a top-level domain (TLD).
*
*
* -
*
* Amazon Route 53 automatically creates a default SOA record and four NS
* records for the zone. For more information about SOA and NS records, see
* NS and SOA Records that Amazon Route 53 Creates for a Hosted Zone in
* the Amazon Route 53 Developer Guide.
*
*
* -
*
* If your domain is registered with a registrar other than Amazon Route 53,
* you must update the name servers with your registrar to make Amazon Route
* 53 your DNS service. For more information, see Configuring Amazon Route 53 as your DNS Service in the Amazon
* Route 53 Developer's Guide.
*
*
*
*
* After creating a zone, its initial status is PENDING
. This
* means that it is not yet available on all DNS servers. The status of the
* zone changes to INSYNC
when the NS and SOA records are
* available on all Amazon Route 53 DNS servers.
*
*
* When trying to create a hosted zone using a reusable delegation set,
* specify an optional DelegationSetId, and Amazon Route 53 would assign
* those 4 NS records for the zone, instead of alloting a new one.
*
*
* @param createHostedZoneRequest
* A complex type containing the hosted zone request information.
* @return Result of the CreateHostedZone operation returned by the service.
* @throws InvalidDomainNameException
* The specified domain name is not valid.
* @throws HostedZoneAlreadyExistsException
* The hosted zone you are trying to create already exists. Amazon
* Route 53 returns this error when a hosted zone has already been
* created with the specified CallerReference
.
* @throws TooManyHostedZonesException
* This hosted zone cannot be created because the hosted zone limit
* is exceeded. To request a limit increase, go to the Amazon Route
* 53 Contact
* Us page.
* @throws InvalidVPCIdException
* The hosted zone you are trying to create for your VPC_ID does not
* belong to you. Amazon Route 53 returns this error when the VPC
* specified by VPCId
does not belong to you.
* @throws InvalidInputException
* The input is not valid.
* @throws DelegationSetNotAvailableException
* You can create a hosted zone that has the same name as an
* existing hosted zone (example.com is common), but there is a
* limit to the number of hosted zones that have the same name. If
* you get this error, Amazon Route 53 has reached that limit. If
* you own the domain name and Amazon Route 53 generates this error,
* contact Customer Support.
* @throws ConflictingDomainExistsException
* @throws NoSuchDelegationSetException
* A reusable delegation set with the specified ID does not exist.
* @throws DelegationSetNotReusableException
* A reusable delegation set with the specified ID does not exist.
* @sample AmazonRoute53.CreateHostedZone
*/
@Override
public CreateHostedZoneResult createHostedZone(
CreateHostedZoneRequest createHostedZoneRequest) {
ExecutionContext executionContext = createExecutionContext(createHostedZoneRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateHostedZoneRequestMarshaller()
.marshall(super
.beforeMarshalling(createHostedZoneRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new CreateHostedZoneResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a delegation set (a group of four anem servers) that can be
* reused by multiple hosted zones. If a hosted zoned ID is specified,
* CreateReusableDelegationSet
marks the delegation set
* associated with that zone as reusable
*
*
* Send a POST
request to the
* /Amazon Route 53 API version/delegationset
resource.
* The request body must include an XML document with a
* CreateReusableDelegationSetRequest
element.
*
*
*
* A reusable delegation set cannot be associated with a private hosted
* zone/
*
*
*
* For more information, including a procedure on how to create and
* configure a reusable delegation set (also known as white label name
* servers), see Configuring White Label Name Servers.
*
*
* @param createReusableDelegationSetRequest
* @return Result of the CreateReusableDelegationSet operation returned by
* the service.
* @throws DelegationSetAlreadyCreatedException
* A delegation set with the same owner and caller reference
* combination has already been created.
* @throws LimitsExceededException
* The limits specified for a resource have been exceeded.
* @throws HostedZoneNotFoundException
* The specified HostedZone cannot be found.
* @throws InvalidArgumentException
* Parameter name and problem.
* @throws InvalidInputException
* The input is not valid.
* @throws DelegationSetNotAvailableException
* You can create a hosted zone that has the same name as an
* existing hosted zone (example.com is common), but there is a
* limit to the number of hosted zones that have the same name. If
* you get this error, Amazon Route 53 has reached that limit. If
* you own the domain name and Amazon Route 53 generates this error,
* contact Customer Support.
* @throws DelegationSetAlreadyReusableException
* The specified delegation set has already been marked as reusable.
* @sample AmazonRoute53.CreateReusableDelegationSet
*/
@Override
public CreateReusableDelegationSetResult createReusableDelegationSet(
CreateReusableDelegationSetRequest createReusableDelegationSetRequest) {
ExecutionContext executionContext = createExecutionContext(createReusableDelegationSetRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateReusableDelegationSetRequestMarshaller()
.marshall(super
.beforeMarshalling(createReusableDelegationSetRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new CreateReusableDelegationSetResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a traffic policy, which you use to create multiple DNS resource
* record sets for one domain name (such as example.com) or one subdomain
* name (such as www.example.com).
*
*
* Send a POST
request to the
* /Amazon Route 53 API version/trafficpolicy
resource.
* The request body must include a document with a
* CreateTrafficPolicyRequest
element. The response includes
* the CreateTrafficPolicyResponse
element, which contains
* information about the new traffic policy.
*
*
* @param createTrafficPolicyRequest
* A complex type that contains information about the traffic policy
* that you want to create.
* @return Result of the CreateTrafficPolicy operation returned by the
* service.
* @throws InvalidInputException
* The input is not valid.
* @throws TooManyTrafficPoliciesException
* You've created the maximum number of traffic policies that can be
* created for the current AWS account. You can request an increase
* to the limit on the Contact Us
* page.
* @throws TrafficPolicyAlreadyExistsException
* A traffic policy that has the same value for Name
* already exists.
* @throws InvalidTrafficPolicyDocumentException
* The format of the traffic policy document that you specified in
* the Document
element is invalid.
* @sample AmazonRoute53.CreateTrafficPolicy
*/
@Override
public CreateTrafficPolicyResult createTrafficPolicy(
CreateTrafficPolicyRequest createTrafficPolicyRequest) {
ExecutionContext executionContext = createExecutionContext(createTrafficPolicyRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateTrafficPolicyRequestMarshaller()
.marshall(super
.beforeMarshalling(createTrafficPolicyRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new CreateTrafficPolicyResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates resource record sets in a specified hosted zone based on the
* settings in a specified traffic policy version. In addition,
* CreateTrafficPolicyInstance
associates the resource record
* sets with a specified domain name (such as example.com) or subdomain name
* (such as www.example.com). Amazon Route 53 responds to DNS queries for
* the domain or subdomain name by using the resource record sets that
* CreateTrafficPolicyInstance
created.
*
*
* Send a POST
request to the
* /Amazon Route 53 API version/trafficpolicyinstance
* resource. The request body must include a document with a
* CreateTrafficPolicyRequest
element. The response returns the
* CreateTrafficPolicyInstanceResponse
element, which contains
* information about the traffic policy instance.
*
*
* @param createTrafficPolicyInstanceRequest
* A complex type that contains information about the resource record
* sets that you want to create based on a specified traffic policy.
* @return Result of the CreateTrafficPolicyInstance operation returned by
* the service.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws InvalidInputException
* The input is not valid.
* @throws TooManyTrafficPolicyInstancesException
* You've created the maximum number of traffic policy instances
* that can be created for the current AWS account. You can request
* an increase to the limit on the Contact Us
* page.
* @throws NoSuchTrafficPolicyException
* No traffic policy exists with the specified ID.
* @throws TrafficPolicyInstanceAlreadyExistsException
* Traffic policy instance with given Id already exists.
* @sample AmazonRoute53.CreateTrafficPolicyInstance
*/
@Override
public CreateTrafficPolicyInstanceResult createTrafficPolicyInstance(
CreateTrafficPolicyInstanceRequest createTrafficPolicyInstanceRequest) {
ExecutionContext executionContext = createExecutionContext(createTrafficPolicyInstanceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateTrafficPolicyInstanceRequestMarshaller()
.marshall(super
.beforeMarshalling(createTrafficPolicyInstanceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new CreateTrafficPolicyInstanceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a new version of an existing traffic policy. When you create a
* new version of a traffic policy, you specify the ID of the traffic policy
* that you want to update and a JSON-formatted document that describes the
* new version. You use traffic policies to create multiple DNS resource
* record sets for one domain name (such as example.com) or one subdomain
* name (such as www.example.com). You can create a maximum of 1000 versions
* of a traffic policy. If you reach the limit and need to create another
* version, you'll need to start a new traffic policy.
*
*
* Send a POST
request to the
* /Amazon Route 53 version/trafficpolicy/
resource. The
* request body includes a document with a
* CreateTrafficPolicyVersionRequest
element. The response
* returns the CreateTrafficPolicyVersionResponse
element,
* which contains information about the new version of the traffic policy.
*
*
* @param createTrafficPolicyVersionRequest
* A complex type that contains information about the traffic policy
* for which you want to create a new version.
* @return Result of the CreateTrafficPolicyVersion operation returned by
* the service.
* @throws NoSuchTrafficPolicyException
* No traffic policy exists with the specified ID.
* @throws InvalidInputException
* The input is not valid.
* @throws ConcurrentModificationException
* Another user submitted a request to update the object at the same
* time that you did. Retry the request.
* @throws InvalidTrafficPolicyDocumentException
* The format of the traffic policy document that you specified in
* the Document
element is invalid.
* @sample AmazonRoute53.CreateTrafficPolicyVersion
*/
@Override
public CreateTrafficPolicyVersionResult createTrafficPolicyVersion(
CreateTrafficPolicyVersionRequest createTrafficPolicyVersionRequest) {
ExecutionContext executionContext = createExecutionContext(createTrafficPolicyVersionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateTrafficPolicyVersionRequestMarshaller()
.marshall(super
.beforeMarshalling(createTrafficPolicyVersionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new CreateTrafficPolicyVersionResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a health check. Send a DELETE
request to the
* /2013-04-01/healthcheck/health check ID
resource.
*
*
*
* Amazon Route 53 does not prevent you from deleting a health check even if
* the health check is associated with one or more resource record sets. If
* you delete a health check and you don't update the associated resource
* record sets, the future status of the health check cannot be predicted
* and may change. This will affect the routing of DNS queries for your DNS
* failover configuration. For more information, see Replacing and Deleting Health Checks in the Amazon Route 53
* Developer Guide.
*
*
*
* @param deleteHealthCheckRequest
* This action deletes a health check. Send a DELETE
* request to the /2013-04-01/DeleteHealthCheckRequest
* resource.
* @return Result of the DeleteHealthCheck operation returned by the
* service.
* @throws NoSuchHealthCheckException
* No health check exists with the ID that you specified in the
* DeleteHealthCheck
request.
* @throws HealthCheckInUseException
* The health check ID for this health check is referenced in the
* HealthCheckId
element in one of the resource record
* sets in one of the hosted zones that are owned by the current AWS
* account.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.DeleteHealthCheck
*/
@Override
public DeleteHealthCheckResult deleteHealthCheck(
DeleteHealthCheckRequest deleteHealthCheckRequest) {
ExecutionContext executionContext = createExecutionContext(deleteHealthCheckRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteHealthCheckRequestMarshaller()
.marshall(super
.beforeMarshalling(deleteHealthCheckRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new DeleteHealthCheckResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a hosted zone. Send a DELETE
request to the
* /Amazon Route 53 API version/hostedzone/hosted zone ID
* resource.
*
*
*
* Delete a hosted zone only if there are no resource record sets other than
* the default SOA record and NS resource record sets. If the hosted zone
* contains other resource record sets, delete them before deleting the
* hosted zone. If you try to delete a hosted zone that contains other
* resource record sets, Amazon Route 53 denies your request with a
* HostedZoneNotEmpty
error. For information about deleting
* records from your hosted zone, see ChangeResourceRecordSets.
*
*
*
* @param deleteHostedZoneRequest
* A complex type that contains information about the hosted zone
* that you want to delete.
* @return Result of the DeleteHostedZone operation returned by the service.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws HostedZoneNotEmptyException
* The hosted zone contains resource records that are not SOA or NS
* records.
* @throws PriorRequestNotCompleteException
* If Amazon Route 53 can't process a request before the next
* request arrives, it will reject subsequent requests for the same
* hosted zone and return an HTTP 400 error
(
* Bad request
). If Amazon Route 53 returns this error
* repeatedly for the same request, we recommend that you wait, in
* intervals of increasing duration, before you try the request
* again.
* @throws InvalidInputException
* The input is not valid.
* @throws InvalidDomainNameException
* The specified domain name is not valid.
* @sample AmazonRoute53.DeleteHostedZone
*/
@Override
public DeleteHostedZoneResult deleteHostedZone(
DeleteHostedZoneRequest deleteHostedZoneRequest) {
ExecutionContext executionContext = createExecutionContext(deleteHostedZoneRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteHostedZoneRequestMarshaller()
.marshall(super
.beforeMarshalling(deleteHostedZoneRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new DeleteHostedZoneResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a reusable delegation set. Send a DELETE
request to
* the /2013-04-01/delegationset/delegation set ID
* resource.
*
*
*
* You can delete a reusable delegation set only if there are no associated
* hosted zones.
*
*
*
* To verify that the reusable delegation set is not associated with any
* hosted zones, run the GetReusableDelegationSet action and specify
* the ID of the reusable delegation set that you want to delete.
*
*
* @param deleteReusableDelegationSetRequest
* A complex type containing the information for the delete request.
* @return Result of the DeleteReusableDelegationSet operation returned by
* the service.
* @throws NoSuchDelegationSetException
* A reusable delegation set with the specified ID does not exist.
* @throws DelegationSetInUseException
* The specified delegation contains associated hosted zones which
* must be deleted before the reusable delegation set can be
* deleted.
* @throws DelegationSetNotReusableException
* A reusable delegation set with the specified ID does not exist.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.DeleteReusableDelegationSet
*/
@Override
public DeleteReusableDelegationSetResult deleteReusableDelegationSet(
DeleteReusableDelegationSetRequest deleteReusableDelegationSetRequest) {
ExecutionContext executionContext = createExecutionContext(deleteReusableDelegationSetRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteReusableDelegationSetRequestMarshaller()
.marshall(super
.beforeMarshalling(deleteReusableDelegationSetRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new DeleteReusableDelegationSetResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a traffic policy.
*
*
* Send a DELETE
request to the
* /Amazon Route 53 API version/trafficpolicy
resource.
*
*
* @param deleteTrafficPolicyRequest
* A request to delete a specified traffic policy version.
* @return Result of the DeleteTrafficPolicy operation returned by the
* service.
* @throws NoSuchTrafficPolicyException
* No traffic policy exists with the specified ID.
* @throws InvalidInputException
* The input is not valid.
* @throws TrafficPolicyInUseException
* One or more traffic policy instances were created by using the
* specified traffic policy.
* @throws ConcurrentModificationException
* Another user submitted a request to update the object at the same
* time that you did. Retry the request.
* @sample AmazonRoute53.DeleteTrafficPolicy
*/
@Override
public DeleteTrafficPolicyResult deleteTrafficPolicy(
DeleteTrafficPolicyRequest deleteTrafficPolicyRequest) {
ExecutionContext executionContext = createExecutionContext(deleteTrafficPolicyRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteTrafficPolicyRequestMarshaller()
.marshall(super
.beforeMarshalling(deleteTrafficPolicyRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new DeleteTrafficPolicyResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a traffic policy instance and all of the resource record sets
* that Amazon Route 53 created when you created the instance.
*
*
* Send a DELETE
request to the
* /Amazon Route 53 API version/trafficpolicy/traffic policy instance ID
* resource.
*
*
*
* In the Amazon Route 53 console, traffic policy instances are known as
* policy records.
*
*
*
* @param deleteTrafficPolicyInstanceRequest
* A complex type that contains information about the traffic policy
* instance that you want to delete.
* @return Result of the DeleteTrafficPolicyInstance operation returned by
* the service.
* @throws NoSuchTrafficPolicyInstanceException
* No traffic policy instance exists with the specified ID.
* @throws InvalidInputException
* The input is not valid.
* @throws PriorRequestNotCompleteException
* If Amazon Route 53 can't process a request before the next
* request arrives, it will reject subsequent requests for the same
* hosted zone and return an HTTP 400 error
(
* Bad request
). If Amazon Route 53 returns this error
* repeatedly for the same request, we recommend that you wait, in
* intervals of increasing duration, before you try the request
* again.
* @sample AmazonRoute53.DeleteTrafficPolicyInstance
*/
@Override
public DeleteTrafficPolicyInstanceResult deleteTrafficPolicyInstance(
DeleteTrafficPolicyInstanceRequest deleteTrafficPolicyInstanceRequest) {
ExecutionContext executionContext = createExecutionContext(deleteTrafficPolicyInstanceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteTrafficPolicyInstanceRequestMarshaller()
.marshall(super
.beforeMarshalling(deleteTrafficPolicyInstanceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new DeleteTrafficPolicyInstanceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Disassociates a VPC from a Amazon Route 53 private hosted zone.
*
*
* Send a POST
request to the
* /Amazon Route 53 API version/hostedzone/hosted zone ID/disassociatevpc
* resource. The request body must include an XML document with a
* DisassociateVPCFromHostedZoneRequest
element. The response
* returns the DisassociateVPCFromHostedZoneResponse
element.
*
*
*
* You can only disassociate a VPC from a private hosted zone when two or
* more VPCs are associated with that hosted zone. You cannot convert a
* private hosted zone into a public hosted zone.
*
*
*
* @param disassociateVPCFromHostedZoneRequest
* A complex type that contains information about the VPC and the
* hosted zone that you want to disassociate.
* @return Result of the DisassociateVPCFromHostedZone operation returned by
* the service.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws InvalidVPCIdException
* The hosted zone you are trying to create for your VPC_ID does not
* belong to you. Amazon Route 53 returns this error when the VPC
* specified by VPCId
does not belong to you.
* @throws VPCAssociationNotFoundException
* The specified VPC and hosted zone are not currently associated.
* @throws LastVPCAssociationException
* Only one VPC is currently associated with the hosted zone. You
* cannot convert a private hosted zone into a public hosted zone by
* disassociating the last VPC from a hosted zone.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.DisassociateVPCFromHostedZone
*/
@Override
public DisassociateVPCFromHostedZoneResult disassociateVPCFromHostedZone(
DisassociateVPCFromHostedZoneRequest disassociateVPCFromHostedZoneRequest) {
ExecutionContext executionContext = createExecutionContext(disassociateVPCFromHostedZoneRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DisassociateVPCFromHostedZoneRequestMarshaller()
.marshall(super
.beforeMarshalling(disassociateVPCFromHostedZoneRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new DisassociateVPCFromHostedZoneResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns the current status of a change batch request. The status is one
* of the following values:
*
*
* -
*
* PENDING
indicates that the changes in this request have not
* replicated to all Amazon Route 53 DNS servers. This is the initial status
* of all change batch requests.
*
*
* -
*
* INSYNC
indicates that the changes have replicated to all
* Amazon Route 53 DNS servers.
*
*
*
*
* @param getChangeRequest
* The input for a GetChange request.
* @return Result of the GetChange operation returned by the service.
* @throws NoSuchChangeException
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.GetChange
*/
@Override
public GetChangeResult getChange(GetChangeRequest getChangeRequest) {
ExecutionContext executionContext = createExecutionContext(getChangeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetChangeRequestMarshaller().marshall(super
.beforeMarshalling(getChangeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetChangeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns the status and changes of a change batch request.
*
*
* @param getChangeDetailsRequest
* The input for a GetChangeDetails
request.
* @return Result of the GetChangeDetails operation returned by the service.
* @throws NoSuchChangeException
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.GetChangeDetails
*/
@Override
@Deprecated
public GetChangeDetailsResult getChangeDetails(
GetChangeDetailsRequest getChangeDetailsRequest) {
ExecutionContext executionContext = createExecutionContext(getChangeDetailsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetChangeDetailsRequestMarshaller()
.marshall(super
.beforeMarshalling(getChangeDetailsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetChangeDetailsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Retrieves a list of the IP ranges used by Amazon Route 53 health checkers
* to check the health of your resources. Send a GET
request to
* the /Amazon Route 53 API version/checkeripranges
* resource. Use these IP addresses to configure router and firewall rules
* to allow health checkers to check the health of your resources.
*
*
* @param getCheckerIpRangesRequest
* Empty request.
* @return Result of the GetCheckerIpRanges operation returned by the
* service.
* @sample AmazonRoute53.GetCheckerIpRanges
*/
@Override
public GetCheckerIpRangesResult getCheckerIpRanges(
GetCheckerIpRangesRequest getCheckerIpRangesRequest) {
ExecutionContext executionContext = createExecutionContext(getCheckerIpRangesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetCheckerIpRangesRequestMarshaller()
.marshall(super
.beforeMarshalling(getCheckerIpRangesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetCheckerIpRangesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public GetCheckerIpRangesResult getCheckerIpRanges() {
return getCheckerIpRanges(new GetCheckerIpRangesRequest());
}
/**
*
* Retrieves a single geo location. Send a GET
request to the
* /2013-04-01/geolocation
resource with one of these options:
* continentcode | countrycode | countrycode and subdivisioncode.
*
*
* @param getGeoLocationRequest
* A complex type that contains information about the request to get
* a geo location.
* @return Result of the GetGeoLocation operation returned by the service.
* @throws NoSuchGeoLocationException
* Amazon Route 53 doesn't support the specified geolocation.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.GetGeoLocation
*/
@Override
public GetGeoLocationResult getGeoLocation(
GetGeoLocationRequest getGeoLocationRequest) {
ExecutionContext executionContext = createExecutionContext(getGeoLocationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetGeoLocationRequestMarshaller().marshall(super
.beforeMarshalling(getGeoLocationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetGeoLocationResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public GetGeoLocationResult getGeoLocation() {
return getGeoLocation(new GetGeoLocationRequest());
}
/**
*
* Gets information about a specified health check. Send a GET
* request to the
* /2013-04-01/healthcheck/health check ID
resource.
* For more information about using the console to perform this operation,
* see Amazon Route 53 Health Checks and DNS Failover in the Amazon Route
* 53 Developer Guide.
*
*
* @param getHealthCheckRequest
* This action gets information about a specified health check.
*
* Send a GET
request to the
* /Amazon Route 53 API version/gethealthcheckrequest
* resource.
*
*
* For information about getting information about a health check
* using the Amazon Route 53 console, see Amazon Route 53 Health Checks and DNS Failover in the
* Amazon Route 53 Developer Guide.
* @return Result of the GetHealthCheck operation returned by the service.
* @throws NoSuchHealthCheckException
* No health check exists with the ID that you specified in the
* DeleteHealthCheck
request.
* @throws InvalidInputException
* The input is not valid.
* @throws IncompatibleVersionException
* The resource you are trying to access is unsupported on this
* Amazon Route 53 endpoint. Please consider using a newer endpoint
* or a tool that does so.
* @sample AmazonRoute53.GetHealthCheck
*/
@Override
public GetHealthCheckResult getHealthCheck(
GetHealthCheckRequest getHealthCheckRequest) {
ExecutionContext executionContext = createExecutionContext(getHealthCheckRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetHealthCheckRequestMarshaller().marshall(super
.beforeMarshalling(getHealthCheckRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetHealthCheckResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* To retrieve a count of all your health checks, send a GET
* request to the /2013-04-01/healthcheckcount
resource.
*
*
* @param getHealthCheckCountRequest
* To retrieve a count of all your health checks, send a
* GET
request to the
* /2013-04-01/healthcheckcount
resource.
* @return Result of the GetHealthCheckCount operation returned by the
* service.
* @sample AmazonRoute53.GetHealthCheckCount
*/
@Override
public GetHealthCheckCountResult getHealthCheckCount(
GetHealthCheckCountRequest getHealthCheckCountRequest) {
ExecutionContext executionContext = createExecutionContext(getHealthCheckCountRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetHealthCheckCountRequestMarshaller()
.marshall(super
.beforeMarshalling(getHealthCheckCountRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetHealthCheckCountResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public GetHealthCheckCountResult getHealthCheckCount() {
return getHealthCheckCount(new GetHealthCheckCountRequest());
}
/**
*
* If you want to learn why a health check is currently failing or why it
* failed most recently (if at all), you can get the failure reason for the
* most recent failure. Send a GET
request to the
* /Amazon Route 53 API version/healthcheck/health check ID/lastfailurereason
* resource.
*
*
* @param getHealthCheckLastFailureReasonRequest
* This action gets the reason that a specified health check failed
* most recently.
*
* To get the reason for the last failure of a health check, send a
* GET request to the /2013-04-01/healthcheck/health check
* ID/lastfailurereason resource.
*
*
* For information about viewing the last failure reason for a health
* check using the Amazon Route 53 console, see Viewing Health Check Status and the Reason for Health Check
* Failures in the Amazon Route 53 Developer Guide.
* @return Result of the GetHealthCheckLastFailureReason operation returned
* by the service.
* @throws NoSuchHealthCheckException
* No health check exists with the ID that you specified in the
* DeleteHealthCheck
request.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.GetHealthCheckLastFailureReason
*/
@Override
public GetHealthCheckLastFailureReasonResult getHealthCheckLastFailureReason(
GetHealthCheckLastFailureReasonRequest getHealthCheckLastFailureReasonRequest) {
ExecutionContext executionContext = createExecutionContext(getHealthCheckLastFailureReasonRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetHealthCheckLastFailureReasonRequestMarshaller()
.marshall(super
.beforeMarshalling(getHealthCheckLastFailureReasonRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetHealthCheckLastFailureReasonResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets status of a specified health check. Send a GET
request
* to the /2013-04-01/healthcheck/health check ID/status
* resource. You can use this call to get a health check's current status.
*
*
* @param getHealthCheckStatusRequest
* A complex type that contains information about the request to get
* health check status for a health check.
* @return Result of the GetHealthCheckStatus operation returned by the
* service.
* @throws NoSuchHealthCheckException
* No health check exists with the ID that you specified in the
* DeleteHealthCheck
request.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.GetHealthCheckStatus
*/
@Override
public GetHealthCheckStatusResult getHealthCheckStatus(
GetHealthCheckStatusRequest getHealthCheckStatusRequest) {
ExecutionContext executionContext = createExecutionContext(getHealthCheckStatusRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetHealthCheckStatusRequestMarshaller()
.marshall(super
.beforeMarshalling(getHealthCheckStatusRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetHealthCheckStatusResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Retrieves the delegation set for a hosted zone, including the four name
* servers assigned to the hosted zone. Send a GET
request to
* the
* /Amazon Route 53 API version/hostedzone/hosted zone ID
* resource.
*
*
* @param getHostedZoneRequest
* The input for a GetHostedZone request.
* @return Result of the GetHostedZone operation returned by the service.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.GetHostedZone
*/
@Override
public GetHostedZoneResult getHostedZone(
GetHostedZoneRequest getHostedZoneRequest) {
ExecutionContext executionContext = createExecutionContext(getHostedZoneRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetHostedZoneRequestMarshaller().marshall(super
.beforeMarshalling(getHostedZoneRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetHostedZoneResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Retrieves a count of all your hosted zones. Send a GET
* request to the /2013-04-01/hostedzonecount
resource.
*
*
* @param getHostedZoneCountRequest
* To retrieve a count of all your hosted zones, send a
* GET
request to the
* /2013-04-01/hostedzonecount
resource.
* @return Result of the GetHostedZoneCount operation returned by the
* service.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.GetHostedZoneCount
*/
@Override
public GetHostedZoneCountResult getHostedZoneCount(
GetHostedZoneCountRequest getHostedZoneCountRequest) {
ExecutionContext executionContext = createExecutionContext(getHostedZoneCountRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetHostedZoneCountRequestMarshaller()
.marshall(super
.beforeMarshalling(getHostedZoneCountRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetHostedZoneCountResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public GetHostedZoneCountResult getHostedZoneCount() {
return getHostedZoneCount(new GetHostedZoneCountRequest());
}
/**
*
* Retrieves the reusable delegation set. Send a GET
request to
* the /2013-04-01/delegationset/delegation set ID
* resource.
*
*
* @param getReusableDelegationSetRequest
* The input for a GetReusableDelegationSet
request.
* @return Result of the GetReusableDelegationSet operation returned by the
* service.
* @throws NoSuchDelegationSetException
* A reusable delegation set with the specified ID does not exist.
* @throws DelegationSetNotReusableException
* A reusable delegation set with the specified ID does not exist.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.GetReusableDelegationSet
*/
@Override
public GetReusableDelegationSetResult getReusableDelegationSet(
GetReusableDelegationSetRequest getReusableDelegationSetRequest) {
ExecutionContext executionContext = createExecutionContext(getReusableDelegationSetRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetReusableDelegationSetRequestMarshaller()
.marshall(super
.beforeMarshalling(getReusableDelegationSetRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetReusableDelegationSetResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about a specific traffic policy version.
*
*
* Send a GET
request to the
* /Amazon Route 53 API version/trafficpolicy
resource.
*
*
* @param getTrafficPolicyRequest
* Gets information about a specific traffic policy version. To get
* the information, send a GET request to the
* /2013-04-01/trafficpolicy resource, and specify the ID and the
* version of the traffic policy.
* @return Result of the GetTrafficPolicy operation returned by the service.
* @throws NoSuchTrafficPolicyException
* No traffic policy exists with the specified ID.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.GetTrafficPolicy
*/
@Override
public GetTrafficPolicyResult getTrafficPolicy(
GetTrafficPolicyRequest getTrafficPolicyRequest) {
ExecutionContext executionContext = createExecutionContext(getTrafficPolicyRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetTrafficPolicyRequestMarshaller()
.marshall(super
.beforeMarshalling(getTrafficPolicyRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetTrafficPolicyResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about a specified traffic policy instance.
*
*
* Send a GET
request to the
* /Amazon Route 53 API version/trafficpolicyinstance
* resource.
*
*
*
* After you submit a CreateTrafficPolicyInstance
or an
* UpdateTrafficPolicyInstance
request, there's a brief delay
* while Amazon Route 53 creates the resource record sets that are specified
* in the traffic policy definition. For more information, see the
* State
response element.
*
*
*
* In the Amazon Route 53 console, traffic policy instances are known as
* policy records.
*
*
*
* @param getTrafficPolicyInstanceRequest
* Gets information about a specified traffic policy instance.
*
* To get information about a traffic policy instance, send a
* GET
request to the
* /Amazon Route 53 API version/trafficpolicyinstance/Id
* resource.
* @return Result of the GetTrafficPolicyInstance operation returned by the
* service.
* @throws NoSuchTrafficPolicyInstanceException
* No traffic policy instance exists with the specified ID.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.GetTrafficPolicyInstance
*/
@Override
public GetTrafficPolicyInstanceResult getTrafficPolicyInstance(
GetTrafficPolicyInstanceRequest getTrafficPolicyInstanceRequest) {
ExecutionContext executionContext = createExecutionContext(getTrafficPolicyInstanceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetTrafficPolicyInstanceRequestMarshaller()
.marshall(super
.beforeMarshalling(getTrafficPolicyInstanceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetTrafficPolicyInstanceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets the number of traffic policy instances that are associated with the
* current AWS account.
*
*
* To get the number of traffic policy instances, send a GET
* request to the /2013-04-01/trafficpolicyinstancecount
* resource.
*
*
* @param getTrafficPolicyInstanceCountRequest
* To retrieve a count of all your traffic policy instances, send a
* GET
request to the
* /2013-04-01/trafficpolicyinstancecount
resource.
* @return Result of the GetTrafficPolicyInstanceCount operation returned by
* the service.
* @sample AmazonRoute53.GetTrafficPolicyInstanceCount
*/
@Override
public GetTrafficPolicyInstanceCountResult getTrafficPolicyInstanceCount(
GetTrafficPolicyInstanceCountRequest getTrafficPolicyInstanceCountRequest) {
ExecutionContext executionContext = createExecutionContext(getTrafficPolicyInstanceCountRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetTrafficPolicyInstanceCountRequestMarshaller()
.marshall(super
.beforeMarshalling(getTrafficPolicyInstanceCountRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new GetTrafficPolicyInstanceCountResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public GetTrafficPolicyInstanceCountResult getTrafficPolicyInstanceCount() {
return getTrafficPolicyInstanceCount(new GetTrafficPolicyInstanceCountRequest());
}
/**
*
* Gets the list of ChangeBatches in a given time period for a given hosted
* zone.
*
*
* @param listChangeBatchesByHostedZoneRequest
* The input for a ListChangeBatchesByHostedZone request.
* @return Result of the ListChangeBatchesByHostedZone operation returned by
* the service.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.ListChangeBatchesByHostedZone
*/
@Override
@Deprecated
public ListChangeBatchesByHostedZoneResult listChangeBatchesByHostedZone(
ListChangeBatchesByHostedZoneRequest listChangeBatchesByHostedZoneRequest) {
ExecutionContext executionContext = createExecutionContext(listChangeBatchesByHostedZoneRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListChangeBatchesByHostedZoneRequestMarshaller()
.marshall(super
.beforeMarshalling(listChangeBatchesByHostedZoneRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListChangeBatchesByHostedZoneResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets the list of ChangeBatches in a given time period for a given hosted
* zone and RRSet.
*
*
* @param listChangeBatchesByRRSetRequest
* The input for a ListChangeBatchesByRRSet request.
* @return Result of the ListChangeBatchesByRRSet operation returned by the
* service.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.ListChangeBatchesByRRSet
*/
@Override
@Deprecated
public ListChangeBatchesByRRSetResult listChangeBatchesByRRSet(
ListChangeBatchesByRRSetRequest listChangeBatchesByRRSetRequest) {
ExecutionContext executionContext = createExecutionContext(listChangeBatchesByRRSetRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListChangeBatchesByRRSetRequestMarshaller()
.marshall(super
.beforeMarshalling(listChangeBatchesByRRSetRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListChangeBatchesByRRSetResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Retrieves a list of supported geo locations. Send a GET
* request to the /2013-04-01/geolocations
resource. The
* response to this request includes a GeoLocationDetailsList
* element for each location that Amazon Route 53 supports.
*
*
* Countries are listed first, and continents are listed last. If Amazon
* Route 53 supports subdivisions for a country (for example, states or
* provinces), the subdivisions for that country are listed in alphabetical
* order immediately after the corresponding country.
*
*
* @param listGeoLocationsRequest
* To get a list of geographic locations that Amazon Route 53
* supports for geolocation, send a GET
request to the
* /Amazon Route 53 API version/geolocations
* resource. The response to this request includes a
* GeoLocationDetails
element for each location that
* Amazon Route 53 supports.
*
* Countries are listed first, and continents are listed last. If
* Amazon Route 53 supports subdivisions for a country (for example,
* states or provinces), the subdivisions for that country are listed
* in alphabetical order immediately after the corresponding country.
* @return Result of the ListGeoLocations operation returned by the service.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.ListGeoLocations
*/
@Override
public ListGeoLocationsResult listGeoLocations(
ListGeoLocationsRequest listGeoLocationsRequest) {
ExecutionContext executionContext = createExecutionContext(listGeoLocationsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListGeoLocationsRequestMarshaller()
.marshall(super
.beforeMarshalling(listGeoLocationsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListGeoLocationsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ListGeoLocationsResult listGeoLocations() {
return listGeoLocations(new ListGeoLocationsRequest());
}
/**
*
* Retrieve a list of your health checks. Send a GET
request to
* the /2013-04-01/healthcheck
resource. The response to this
* request includes a HealthChecks
element with zero or more
* HealthCheck
child elements. By default, the list of health
* checks is displayed on a single page. You can control the length of the
* page that is displayed by using the MaxItems
parameter. You
* can use the Marker
parameter to control the health check
* that the list begins with.
*
*
* For information about listing health checks using the Amazon Route 53
* console, see Amazon Route 53 Health Checks and DNS Failover.
*
*
* @param listHealthChecksRequest
* To retrieve a list of your health checks, send a GET
* request to the /2013-04-01/healthcheck
resource. The
* response to this request includes a HealthChecks
* element with zero or more HealthCheck
child elements.
* By default, the list of health checks is displayed on a single
* page. You can control the length of the page that is displayed by
* using the MaxItems
parameter. You can use the
* Marker
parameter to control the health check that the
* list begins with.
*
* Amazon Route 53 returns a maximum of 100 items. If you set
* MaxItems
to a value greater than 100, Amazon Route 53
* returns only the first 100.
*
* @return Result of the ListHealthChecks operation returned by the service.
* @throws InvalidInputException
* The input is not valid.
* @throws IncompatibleVersionException
* The resource you are trying to access is unsupported on this
* Amazon Route 53 endpoint. Please consider using a newer endpoint
* or a tool that does so.
* @sample AmazonRoute53.ListHealthChecks
*/
@Override
public ListHealthChecksResult listHealthChecks(
ListHealthChecksRequest listHealthChecksRequest) {
ExecutionContext executionContext = createExecutionContext(listHealthChecksRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListHealthChecksRequestMarshaller()
.marshall(super
.beforeMarshalling(listHealthChecksRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListHealthChecksResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ListHealthChecksResult listHealthChecks() {
return listHealthChecks(new ListHealthChecksRequest());
}
/**
*
* To retrieve a list of your public and private hosted zones, send a
* GET
request to the /2013-04-01/hostedzone
* resource. The response to this request includes a
* HostedZones
child element for each hosted zone created by
* the current AWS account.
*
*
* Amazon Route 53 returns a maximum of 100 items in each response. If you
* have a lot of hosted zones, you can use the maxitems
* parameter to list them in groups of up to 100. The response includes four
* values that help navigate from one group of maxitems
hosted
* zones to the next:
*
*
* -
*
* MaxItems
is the value specified for the maxitems
* parameter in the request that produced the current response.
*
*
* -
*
* If the value of IsTruncated
in the response is true, there
* are more hosted zones associated with the current AWS account.
*
*
* -
*
* NextMarker
is the hosted zone ID of the next hosted zone that
* is associated with the current AWS account. If you want to list more
* hosted zones, make another call to ListHostedZones
, and
* specify the value of the NextMarker
element in the marker
* parameter.
*
*
* If IsTruncated
is false, the NextMarker
element
* is omitted from the response.
*
*
* -
*
* If you're making the second or subsequent call to
* ListHostedZones
, the Marker
element matches the
* value that you specified in the marker
parameter in the
* previous request.
*
*
*
*
* @param listHostedZonesRequest
* To retrieve a list of your public and private hosted zones, send a
* GET
request to the
* /2013-04-01/hostedzone
resource. The response to this
* request includes a HostedZone child element for each hosted zone
* that was created by the current AWS account.
*
* Amazon Route 53 returns a maximum of 100 items in each response.
* If you have a lot of hosted zones, you can use the maxitems
* parameter to list them in groups of up to 100. The response
* includes four values that help you navigate from one group of
* maxitems hosted zones to the next:
*
*
* -
*
* MaxItems
is the value that you specified for the
* maxitems
parameter in the request that produced the
* current response.
*
*
* -
*
* If the value of IsTruncated
in the response is
* true
, there are more hosted zones associated with the
* current AWS account.
*
*
* If IsTruncated
is false
, this response
* includes the last hosted zone that is associated with the current
* account.
*
*
* -
*
* NextMarker
is the hosted zone ID of the next hosted
* zone that is associated with the current AWS account. If you want
* to list more hosted zones, make another call to
* ListHostedZones
, and specify the value of the
* NextMarker
element in the marker parameter.
*
*
* If IsTruncated
is false
, the
* NextMarker
element is omitted from the response.
*
*
* -
*
* If you're making the second or subsequent call to
* ListHostedZones
, the Marker
element
* matches the value that you specified in the marker
* parameter in the previous request.
*
*
* @return Result of the ListHostedZones operation returned by the service.
* @throws InvalidInputException
* The input is not valid.
* @throws NoSuchDelegationSetException
* A reusable delegation set with the specified ID does not exist.
* @throws DelegationSetNotReusableException
* A reusable delegation set with the specified ID does not exist.
* @sample AmazonRoute53.ListHostedZones
*/
@Override
public ListHostedZonesResult listHostedZones(
ListHostedZonesRequest listHostedZonesRequest) {
ExecutionContext executionContext = createExecutionContext(listHostedZonesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListHostedZonesRequestMarshaller().marshall(super
.beforeMarshalling(listHostedZonesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListHostedZonesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ListHostedZonesResult listHostedZones() {
return listHostedZones(new ListHostedZonesRequest());
}
/**
*
* Retrieves a list of your hosted zones in lexicographic order. Send a
* GET
request to the
* /2013-04-01/hostedzonesbyname
resource. The response
* includes a HostedZones
child element for each hosted zone
* created by the current AWS account.
*
*
* ListHostedZonesByName
sorts hosted zones by name with the
* labels reversed. For example:
*
*
* -
*
* com.example.www.
*
*
*
*
* Note the trailing dot, which can change the sort order in some
* circumstances.
*
*
* If the domain name includes escape characters or Punycode,
* ListHostedZonesByName
alphabetizes the domain name using the
* escaped or Punycoded value, which is the format that Amazon Route 53
* saves in its database. For example, to create a hosted zone for
* example.com, specify ex\344mple.com for the domain name.
* ListHostedZonesByName
alphabetizes it as:
*
*
* -
*
* com.ex\344mple.
*
*
*
*
* The labels are reversed and alphabetized using the escaped value. For
* more information about valid domain name formats, including
* internationalized domain names, see DNS Domain Name Format in the Amazon Route 53 Developer Guide.
*
*
* Amazon Route 53 returns up to 100 items in each response. If you have a
* lot of hosted zones, use the MaxItems
parameter to list them
* in groups of up to 100. The response includes values that help navigate
* from one group of MaxItems
hosted zones to the next:
*
*
* -
*
* The DNSName
and HostedZoneId
elements in the
* response contain the values, if any, specified for the
* dnsname
and hostedzoneid
parameters in the
* request that produced the current response.
*
*
* -
*
* The MaxItems
element in the response contains the value, if
* any, that you specified for the maxitems
parameter in the
* request that produced the current response.
*
*
* -
*
* If the value of IsTruncated
in the response is true, there
* are more hosted zones associated with the current AWS account.
*
*
* If IsTruncated
is false, this response includes the last
* hosted zone that is associated with the current account. The
* NextDNSName
element and NextHostedZoneId
* elements are omitted from the response.
*
*
* -
*
* The NextDNSName
and NextHostedZoneId
elements
* in the response contain the domain name and the hosted zone ID of the
* next hosted zone that is associated with the current AWS account. If you
* want to list more hosted zones, make another call to
* ListHostedZonesByName
, and specify the value of
* NextDNSName
and NextHostedZoneId
in the
* dnsname
and hostedzoneid
parameters,
* respectively.
*
*
*
*
* @param listHostedZonesByNameRequest
* To retrieve a list of your public and private hosted zones in
* ASCII order by domain name, send a GET
request to the
* /Amazon Route 53 API version/hostedzonesbyname
* resource. The response to this request includes a
* HostedZone
child element for each hosted zone that
* was created by the current AWS account.
* ListHostedZonesByName
sorts hosted zones by name with
* the labels reversed, for example:
*
* com.example.www.
*
*
* Note the trailing dot, which can change the sort order in some
* circumstances.
*
*
* If the domain name includes escape characters or Punycode,
* ListHostedZonesByName
alphabetizes the domain name
* using the escaped or Punycoded value, which is the format that
* Amazon Route 53 saves in its database. For example, to create a
* hosted zone for exämple.com, you specify
* ex\344mple.com
for the domain name.
* ListHostedZonesByName
alphabetizes it as:
* com.ex\344mple
. The labels are reversed, and it's
* alphabetized using the escaped value. For more information about
* valid domain name formats, including internationalized domain
* names, see DNS Domain Name Format in the Amazon Route 53 Developer
* Guide.
*
*
* Amazon Route 53 returns up to 100 items in each response. If you
* have a lot of hosted zones, you can use the MaxItems
* parameter to list them in groups of up to 100. The response
* includes values that help you navigate from one group of
* MaxItems
hosted zones to the next:
*
*
* -
*
* The DNSName
and HostedZoneId
elements in
* the response contain the values, if any, that you specified for
* the dnsname
and hostedzoneid
parameters
* in the request that produced the current response.
*
*
* -
*
* The MaxItems
element in the response contains the
* value, if any, that you specified for the maxitems
* parameter in the request that produced the current response.
*
*
* -
*
* If the value of IsTruncated
in the response is true,
* there are more hosted zones associated with the current Amazon
* Route 53 account.
*
*
* If IsTruncated
is false
, this response
* includes the last hosted zone that is associated with the current
* account. The NextDNSName
element and
* NextHostedZoneId
elements are omitted from the
* response.
*
*
* -
*
* The NextDNSName
and NextHostedZoneId
* elements in the response contain the domain name and the hosted
* zone ID of the next hosted zone that is associated with the
* current AWS account. If you want to list more hosted zones, make
* another call to ListHostedZonesByName
, and specify
* the value of NextDNSName
and
* NextHostedZoneId
in the dnsname
and
* hostedzoneid
parameters, respectively.
*
*
* @return Result of the ListHostedZonesByName operation returned by the
* service.
* @throws InvalidInputException
* The input is not valid.
* @throws InvalidDomainNameException
* The specified domain name is not valid.
* @sample AmazonRoute53.ListHostedZonesByName
*/
@Override
public ListHostedZonesByNameResult listHostedZonesByName(
ListHostedZonesByNameRequest listHostedZonesByNameRequest) {
ExecutionContext executionContext = createExecutionContext(listHostedZonesByNameRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListHostedZonesByNameRequestMarshaller()
.marshall(super
.beforeMarshalling(listHostedZonesByNameRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListHostedZonesByNameResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ListHostedZonesByNameResult listHostedZonesByName() {
return listHostedZonesByName(new ListHostedZonesByNameRequest());
}
/**
* @param listResourceRecordSetsRequest
* The input for a ListResourceRecordSets request.
* @return Result of the ListResourceRecordSets operation returned by the
* service.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.ListResourceRecordSets
*/
@Override
public ListResourceRecordSetsResult listResourceRecordSets(
ListResourceRecordSetsRequest listResourceRecordSetsRequest) {
ExecutionContext executionContext = createExecutionContext(listResourceRecordSetsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListResourceRecordSetsRequestMarshaller()
.marshall(super
.beforeMarshalling(listResourceRecordSetsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListResourceRecordSetsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* To retrieve a list of your reusable delegation sets, send a
* GET
request to the /2013-04-01/delegationset
* resource. The response to this request includes a
* DelegationSets
element with zero, one, or multiple
* DelegationSet
child elements. By default, the list of
* delegation sets is displayed on a single page. You can control the length
* of the page that is displayed by using the MaxItems
* parameter. You can use the Marker
parameter to control the
* delegation set that the list begins with.
*
*
*
* Amazon Route 53 returns a maximum of 100 items. If you set MaxItems to a
* value greater than 100, Amazon Route 53 returns only the first 100.
*
*
*
* @param listReusableDelegationSetsRequest
* To retrieve a list of your reusable delegation sets, send a
* GET
request to the
* /2013-04-01/delegationset
resource. The response to
* this request includes a DelegationSets
element with
* zero or more DelegationSet
child elements. By
* default, the list of reusable delegation sets is displayed on a
* single page. You can control the length of the page that is
* displayed by using the MaxItems
parameter. You can
* use the Marker
parameter to control the delegation
* set that the list begins with.
*
* Amazon Route 53 returns a maximum of 100 items. If you set
* MaxItems
to a value greater than 100, Amazon Route 53
* returns only the first 100.
*
* @return Result of the ListReusableDelegationSets operation returned by
* the service.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.ListReusableDelegationSets
*/
@Override
public ListReusableDelegationSetsResult listReusableDelegationSets(
ListReusableDelegationSetsRequest listReusableDelegationSetsRequest) {
ExecutionContext executionContext = createExecutionContext(listReusableDelegationSetsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListReusableDelegationSetsRequestMarshaller()
.marshall(super
.beforeMarshalling(listReusableDelegationSetsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListReusableDelegationSetsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ListReusableDelegationSetsResult listReusableDelegationSets() {
return listReusableDelegationSets(new ListReusableDelegationSetsRequest());
}
/**
* @param listTagsForResourceRequest
* A complex type containing information about a request for a list
* of the tags that are associated with an individual resource.
* @return Result of the ListTagsForResource operation returned by the
* service.
* @throws InvalidInputException
* The input is not valid.
* @throws NoSuchHealthCheckException
* No health check exists with the ID that you specified in the
* DeleteHealthCheck
request.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws PriorRequestNotCompleteException
* If Amazon Route 53 can't process a request before the next
* request arrives, it will reject subsequent requests for the same
* hosted zone and return an HTTP 400 error
(
* Bad request
). If Amazon Route 53 returns this error
* repeatedly for the same request, we recommend that you wait, in
* intervals of increasing duration, before you try the request
* again.
* @throws ThrottlingException
* @sample AmazonRoute53.ListTagsForResource
*/
@Override
public ListTagsForResourceResult listTagsForResource(
ListTagsForResourceRequest listTagsForResourceRequest) {
ExecutionContext executionContext = createExecutionContext(listTagsForResourceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListTagsForResourceRequestMarshaller()
.marshall(super
.beforeMarshalling(listTagsForResourceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListTagsForResourceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* @param listTagsForResourcesRequest
* A complex type that contains information about the health checks
* or hosted zones for which you want to list tags.
* @return Result of the ListTagsForResources operation returned by the
* service.
* @throws InvalidInputException
* The input is not valid.
* @throws NoSuchHealthCheckException
* No health check exists with the ID that you specified in the
* DeleteHealthCheck
request.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws PriorRequestNotCompleteException
* If Amazon Route 53 can't process a request before the next
* request arrives, it will reject subsequent requests for the same
* hosted zone and return an HTTP 400 error
(
* Bad request
). If Amazon Route 53 returns this error
* repeatedly for the same request, we recommend that you wait, in
* intervals of increasing duration, before you try the request
* again.
* @throws ThrottlingException
* @sample AmazonRoute53.ListTagsForResources
*/
@Override
public ListTagsForResourcesResult listTagsForResources(
ListTagsForResourcesRequest listTagsForResourcesRequest) {
ExecutionContext executionContext = createExecutionContext(listTagsForResourcesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListTagsForResourcesRequestMarshaller()
.marshall(super
.beforeMarshalling(listTagsForResourcesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListTagsForResourcesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the latest version for every traffic policy that
* is associated with the current AWS account. Send a GET
* request to the
* /Amazon Route 53 API version/trafficpolicy
resource.
*
*
* Amazon Route 53 returns a maximum of 100 items in each response. If you
* have a lot of traffic policies, you can use the maxitems
* parameter to list them in groups of up to 100.
*
*
* The response includes three values that help you navigate from one group
* of maxitems
traffic policies to the next:
*
*
* -
*
* IsTruncated
*
*
* If the value of IsTruncated
in the response is
* true
, there are more traffic policies associated with the
* current AWS account.
*
*
* If IsTruncated
is false
, this response includes
* the last traffic policy that is associated with the current account.
*
*
* -
*
* TrafficPolicyIdMarker
*
*
* If IsTruncated
is true
,
* TrafficPolicyIdMarker
is the ID of the first traffic policy
* in the next group of MaxItems
traffic policies. If you want
* to list more traffic policies, make another call to
* ListTrafficPolicies
, and specify the value of the
* TrafficPolicyIdMarker
element from the response in the
* TrafficPolicyIdMarker
request parameter.
*
*
* If IsTruncated
is false
, the
* TrafficPolicyIdMarker
element is omitted from the response.
*
*
* -
*
* MaxItems
*
*
* The value that you specified for the MaxItems
parameter in
* the request that produced the current response.
*
*
*
*
* @param listTrafficPoliciesRequest
* A complex type that contains the information about the request to
* list the traffic policies that are associated with the current AWS
* account.
* @return Result of the ListTrafficPolicies operation returned by the
* service.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.ListTrafficPolicies
*/
@Override
public ListTrafficPoliciesResult listTrafficPolicies(
ListTrafficPoliciesRequest listTrafficPoliciesRequest) {
ExecutionContext executionContext = createExecutionContext(listTrafficPoliciesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListTrafficPoliciesRequestMarshaller()
.marshall(super
.beforeMarshalling(listTrafficPoliciesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListTrafficPoliciesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ListTrafficPoliciesResult listTrafficPolicies() {
return listTrafficPolicies(new ListTrafficPoliciesRequest());
}
/**
*
* Gets information about the traffic policy instances that you created by
* using the current AWS account.
*
*
*
* After you submit an UpdateTrafficPolicyInstance
request,
* there's a brief delay while Amazon Route 53 creates the resource record
* sets that are specified in the traffic policy definition. For more
* information, see the State
response element.
*
*
*
* Send a GET
request to the
* /Amazon Route 53 API version/trafficpolicyinstance
* resource.
*
*
* Amazon Route 53 returns a maximum of 100 items in each response. If you
* have a lot of traffic policy instances, you can use the
* MaxItems
parameter to list them in groups of up to 100.
*
*
* The response includes five values that help you navigate from one group
* of MaxItems
traffic policy instances to the next:
*
*
* -
*
* IsTruncated
*
*
* If the value of IsTruncated
in the response is
* true
, there are more traffic policy instances associated
* with the current AWS account.
*
*
* If IsTruncated
is false
, this response includes
* the last traffic policy instance that is associated with the current
* account.
*
*
* -
*
* MaxItems
*
*
* The value that you specified for the MaxItems
parameter in
* the request that produced the current response.
*
*
* -
*
* HostedZoneIdMarker, TrafficPolicyInstanceNameMarker, and
* TrafficPolicyInstanceTypeMarker
*
*
* If IsTruncated
is true
, these three values in
* the response represent the first traffic policy instance in the next
* group of MaxItems
traffic policy instances. To list more
* traffic policy instances, make another call to
* ListTrafficPolicyInstances
, and specify these values in the
* corresponding request parameters.
*
*
* If IsTruncated
is false
, all three elements are
* omitted from the response.
*
*
*
*
* @param listTrafficPolicyInstancesRequest
* A complex type that contains the information about the request to
* list your traffic policy instances.
* @return Result of the ListTrafficPolicyInstances operation returned by
* the service.
* @throws InvalidInputException
* The input is not valid.
* @throws NoSuchTrafficPolicyInstanceException
* No traffic policy instance exists with the specified ID.
* @sample AmazonRoute53.ListTrafficPolicyInstances
*/
@Override
public ListTrafficPolicyInstancesResult listTrafficPolicyInstances(
ListTrafficPolicyInstancesRequest listTrafficPolicyInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(listTrafficPolicyInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListTrafficPolicyInstancesRequestMarshaller()
.marshall(super
.beforeMarshalling(listTrafficPolicyInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListTrafficPolicyInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ListTrafficPolicyInstancesResult listTrafficPolicyInstances() {
return listTrafficPolicyInstances(new ListTrafficPolicyInstancesRequest());
}
/**
*
* Gets information about the traffic policy instances that you created in a
* specified hosted zone.
*
*
*
* After you submit an UpdateTrafficPolicyInstance
request,
* there's a brief delay while Amazon Route 53 creates the resource record
* sets that are specified in the traffic policy definition. For more
* information, see the State
response element.
*
*
*
* Send a GET
request to the
* /Amazon Route 53 API version/trafficpolicyinstance
* resource and include the ID of the hosted zone.
*
*
* Amazon Route 53 returns a maximum of 100 items in each response. If you
* have a lot of traffic policy instances, you can use the
* MaxItems
parameter to list them in groups of up to 100.
*
*
* The response includes four values that help you navigate from one group
* of MaxItems
traffic policy instances to the next:
*
*
* -
*
* IsTruncated
*
*
* If the value of
IsTruncated in the response is true
,
* there are more traffic policy instances associated with the current AWS
* account.
*
*
* If IsTruncated
is false
, this response includes
* the last traffic policy instance that is associated with the current
* account.
*
*
* -
*
* MaxItems
*
*
* The value that you specified for the MaxItems
parameter in
* the request that produced the current response.
*
*
* -
*
* TrafficPolicyInstanceNameMarker and
* TrafficPolicyInstanceTypeMarker
*
*
* If IsTruncated
is true
, these two values in the
* response represent the first traffic policy instance in the next group of
* MaxItems
traffic policy instances. To list more traffic
* policy instances, make another call to
* ListTrafficPolicyInstancesByHostedZone
, and specify these
* values in the corresponding request parameters.
*
*
* If IsTruncated
is false
, all three elements are
* omitted from the response.
*
*
*
*
* @param listTrafficPolicyInstancesByHostedZoneRequest
* A request for the traffic policy instances that you created in a
* specified hosted zone.
* @return Result of the ListTrafficPolicyInstancesByHostedZone operation
* returned by the service.
* @throws InvalidInputException
* The input is not valid.
* @throws NoSuchTrafficPolicyInstanceException
* No traffic policy instance exists with the specified ID.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @sample AmazonRoute53.ListTrafficPolicyInstancesByHostedZone
*/
@Override
public ListTrafficPolicyInstancesByHostedZoneResult listTrafficPolicyInstancesByHostedZone(
ListTrafficPolicyInstancesByHostedZoneRequest listTrafficPolicyInstancesByHostedZoneRequest) {
ExecutionContext executionContext = createExecutionContext(listTrafficPolicyInstancesByHostedZoneRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListTrafficPolicyInstancesByHostedZoneRequestMarshaller()
.marshall(super
.beforeMarshalling(listTrafficPolicyInstancesByHostedZoneRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListTrafficPolicyInstancesByHostedZoneResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the traffic policy instances that you created by
* using a specify traffic policy version.
*
*
*
* After you submit a CreateTrafficPolicyInstance
or an
* UpdateTrafficPolicyInstance
request, there's a brief delay
* while Amazon Route 53 creates the resource record sets that are specified
* in the traffic policy definition. For more information, see the
* State
response element.
*
*
*
* Send a GET
request to the
* /Route 53 API version/trafficpolicyinstance
resource
* and include the ID and version of the traffic policy.
*
*
* Amazon Route 53 returns a maximum of 100 items in each response. If you
* have a lot of traffic policy instances, you can use the
* MaxItems
parameter to list them in groups of up to 100.
*
*
* The response includes five values that help you navigate from one group
* of MaxItems
traffic policy instances to the next:
*
*
* -
*
* IsTruncated
*
*
* If the value of IsTruncated
in the response is
* true
, there are more traffic policy instances associated
* with the specified traffic policy.
*
*
* If IsTruncated
is false
, this response includes
* the last traffic policy instance that is associated with the specified
* traffic policy.
*
*
* -
*
* MaxItems
*
*
* The value that you specified for the MaxItems
parameter in
* the request that produced the current response.
*
*
* -
*
* HostedZoneIdMarker, TrafficPolicyInstanceNameMarker, and
* TrafficPolicyInstanceTypeMarker
*
*
* If IsTruncated
is true
, these values in the
* response represent the first traffic policy instance in the next group of
* MaxItems
traffic policy instances. To list more traffic
* policy instances, make another call to
* ListTrafficPolicyInstancesByPolicy
, and specify these values
* in the corresponding request parameters.
*
*
* If IsTruncated
is false
, all three elements are
* omitted from the response.
*
*
*
*
* @param listTrafficPolicyInstancesByPolicyRequest
* A complex type that contains the information about the request to
* list your traffic policy instances.
* @return Result of the ListTrafficPolicyInstancesByPolicy operation
* returned by the service.
* @throws InvalidInputException
* The input is not valid.
* @throws NoSuchTrafficPolicyInstanceException
* No traffic policy instance exists with the specified ID.
* @throws NoSuchTrafficPolicyException
* No traffic policy exists with the specified ID.
* @sample AmazonRoute53.ListTrafficPolicyInstancesByPolicy
*/
@Override
public ListTrafficPolicyInstancesByPolicyResult listTrafficPolicyInstancesByPolicy(
ListTrafficPolicyInstancesByPolicyRequest listTrafficPolicyInstancesByPolicyRequest) {
ExecutionContext executionContext = createExecutionContext(listTrafficPolicyInstancesByPolicyRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListTrafficPolicyInstancesByPolicyRequestMarshaller()
.marshall(super
.beforeMarshalling(listTrafficPolicyInstancesByPolicyRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListTrafficPolicyInstancesByPolicyResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about all of the versions for a specified traffic
* policy.
*
*
* Send a GET
request to the
* /Amazon Route 53 API version/trafficpolicy
resource
* and specify the ID of the traffic policy for which you want to list
* versions.
*
*
* Amazon Route 53 returns a maximum of 100 items in each response. If you
* have a lot of traffic policies, you can use the maxitems
* parameter to list them in groups of up to 100.
*
*
* The response includes three values that help you navigate from one group
* of maxitems
maxitems traffic policies to the next:
*
*
* -
*
* IsTruncated
*
*
* If the value of IsTruncated
in the response is
* true
, there are more traffic policy versions associated with
* the specified traffic policy.
*
*
* If IsTruncated
is false
, this response includes
* the last traffic policy version that is associated with the specified
* traffic policy.
*
*
* -
*
* TrafficPolicyVersionMarker
*
*
* The ID of the next traffic policy version that is associated with the
* current AWS account. If you want to list more traffic policies, make
* another call to ListTrafficPolicyVersions
, and specify the
* value of the TrafficPolicyVersionMarker
element in the
* TrafficPolicyVersionMarker
request parameter.
*
*
* If IsTruncated
is false
, Amazon Route 53 omits
* the TrafficPolicyVersionMarker
element from the response.
*
*
* -
*
* MaxItems
*
*
* The value that you specified for the MaxItems
parameter in
* the request that produced the current response.
*
*
*
*
* @param listTrafficPolicyVersionsRequest
* A complex type that contains the information about the request to
* list your traffic policies.
* @return Result of the ListTrafficPolicyVersions operation returned by the
* service.
* @throws InvalidInputException
* The input is not valid.
* @throws NoSuchTrafficPolicyException
* No traffic policy exists with the specified ID.
* @sample AmazonRoute53.ListTrafficPolicyVersions
*/
@Override
public ListTrafficPolicyVersionsResult listTrafficPolicyVersions(
ListTrafficPolicyVersionsRequest listTrafficPolicyVersionsRequest) {
ExecutionContext executionContext = createExecutionContext(listTrafficPolicyVersionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListTrafficPolicyVersionsRequestMarshaller()
.marshall(super
.beforeMarshalling(listTrafficPolicyVersionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new ListTrafficPolicyVersionsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* @param testDNSAnswerRequest
* Gets the value that Amazon Route 53 returns in response to a DNS
* request for a specified record name and type. You can optionally
* specify the IP address of a DNS resolver, an EDNS0 client subnet
* IP address, and a subnet mask.
*
* Parameters
*
*
* - hostedzoneid
* -
*
* The ID of the hosted zone that you want Amazon Route 53 to
* simulate a query for.
*
*
* - recordname
* -
*
* The name of the resource record set that you want Amazon Route 53
* to simulate a query for.
*
*
* - recordtype
* -
*
* The type of the resource record set.
*
*
* - resolverip (optional)
* -
*
* If you want to simulate a request from a specific DNS resolver,
* specify the IP address for that resolver. If you omit this value,
* TestDNSAnswer
uses the IP address of a DNS resolver
* in the AWS US East region.
*
*
* - edns0clientsubnetip (optional)
* -
*
* If the resolver that you specified for resolverip
* supports EDNS0, specify the IP address of a client in the
* applicable location.
*
*
* - edns0clientsubnetmask (optional)
* -
*
* If you specify an IP address for edns0clientsubnetip
,
* you can optionally specify the number of bits of the IP address
* that you want the checking tool to include in the DNS query. For
* example, if you specify 192.0.2.44
for
* edns0clientsubnetip
and 24
for
* edns0clientsubnetmask
, the checking tool will
* simulate a request from 192.0.2.0/24
. The default
* value is 24 bits.
*
*
* @return Result of the TestDNSAnswer operation returned by the service.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.TestDNSAnswer
*/
@Override
public TestDNSAnswerResult testDNSAnswer(
TestDNSAnswerRequest testDNSAnswerRequest) {
ExecutionContext executionContext = createExecutionContext(testDNSAnswerRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new TestDNSAnswerRequestMarshaller().marshall(super
.beforeMarshalling(testDNSAnswerRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new TestDNSAnswerResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Updates an existing health check.
*
*
* Send a POST
request to the
* /Amazon Route 53 API version/healthcheck/health check ID
* resource. The request body must include an XML document with an
* UpdateHealthCheckRequest
element. For more information about
* updating health checks, see Creating, Updating, and Deleting Health Checks in the Amazon Route
* 53 Developer Guide.
*
*
* @param updateHealthCheckRequest
* A complex type that contains the health check request information.
* @return Result of the UpdateHealthCheck operation returned by the
* service.
* @throws NoSuchHealthCheckException
* No health check exists with the ID that you specified in the
* DeleteHealthCheck
request.
* @throws InvalidInputException
* The input is not valid.
* @throws HealthCheckVersionMismatchException
* @sample AmazonRoute53.UpdateHealthCheck
*/
@Override
public UpdateHealthCheckResult updateHealthCheck(
UpdateHealthCheckRequest updateHealthCheckRequest) {
ExecutionContext executionContext = createExecutionContext(updateHealthCheckRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdateHealthCheckRequestMarshaller()
.marshall(super
.beforeMarshalling(updateHealthCheckRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new UpdateHealthCheckResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Updates the hosted zone comment. Send a POST
request to the
* /2013-04-01/hostedzone/hosted zone ID
resource.
*
*
* @param updateHostedZoneCommentRequest
* A complex type that contains the hosted zone request information.
* @return Result of the UpdateHostedZoneComment operation returned by the
* service.
* @throws NoSuchHostedZoneException
* No hosted zone exists with the ID that you specified.
* @throws InvalidInputException
* The input is not valid.
* @sample AmazonRoute53.UpdateHostedZoneComment
*/
@Override
public UpdateHostedZoneCommentResult updateHostedZoneComment(
UpdateHostedZoneCommentRequest updateHostedZoneCommentRequest) {
ExecutionContext executionContext = createExecutionContext(updateHostedZoneCommentRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdateHostedZoneCommentRequestMarshaller()
.marshall(super
.beforeMarshalling(updateHostedZoneCommentRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new UpdateHostedZoneCommentResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Updates the comment for a specified traffic policy version.
*
*
* Send a POST
request to the
* /Amazon Route 53 API version/trafficpolicy/
resource.
*
*
* The request body must include a document with an
* UpdateTrafficPolicyCommentRequest
element.
*
*
* @param updateTrafficPolicyCommentRequest
* A complex type that contains information about the traffic policy
* for which you want to update the comment.
* @return Result of the UpdateTrafficPolicyComment operation returned by
* the service.
* @throws InvalidInputException
* The input is not valid.
* @throws NoSuchTrafficPolicyException
* No traffic policy exists with the specified ID.
* @throws ConcurrentModificationException
* Another user submitted a request to update the object at the same
* time that you did. Retry the request.
* @sample AmazonRoute53.UpdateTrafficPolicyComment
*/
@Override
public UpdateTrafficPolicyCommentResult updateTrafficPolicyComment(
UpdateTrafficPolicyCommentRequest updateTrafficPolicyCommentRequest) {
ExecutionContext executionContext = createExecutionContext(updateTrafficPolicyCommentRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdateTrafficPolicyCommentRequestMarshaller()
.marshall(super
.beforeMarshalling(updateTrafficPolicyCommentRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new UpdateTrafficPolicyCommentResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Updates the resource record sets in a specified hosted zone that were
* created based on the settings in a specified traffic policy version.
*
*
* Send a POST
request to the
* /Amazon Route 53 API version/trafficpolicyinstance/traffic policy ID
* resource. The request body must include a document with an
* UpdateTrafficPolicyInstanceRequest
element.
*
*
* When you update a traffic policy instance, Amazon Route 53 continues to
* respond to DNS queries for the root resource record set name (such as
* example.com) while it replaces one group of resource record sets with
* another. Amazon Route 53 performs the following operations:
*
*
* -
*
* Amazon Route 53 creates a new group of resource record sets based on the
* specified traffic policy. This is true regardless of how substantial the
* differences are between the existing resource record sets and the new
* resource record sets.
*
*
* -
*
* When all of the new resource record sets have been created, Amazon Route
* 53 starts to respond to DNS queries for the root resource record set name
* (such as example.com) by using the new resource record sets.
*
*
* -
*
* Amazon Route 53 deletes the old group of resource record sets that are
* associated with the root resource record set name.
*
*
*
*
* @param updateTrafficPolicyInstanceRequest
* A complex type that contains information about the resource record
* sets that you want to update based on a specified traffic policy
* instance.
* @return Result of the UpdateTrafficPolicyInstance operation returned by
* the service.
* @throws InvalidInputException
* The input is not valid.
* @throws NoSuchTrafficPolicyException
* No traffic policy exists with the specified ID.
* @throws NoSuchTrafficPolicyInstanceException
* No traffic policy instance exists with the specified ID.
* @throws PriorRequestNotCompleteException
* If Amazon Route 53 can't process a request before the next
* request arrives, it will reject subsequent requests for the same
* hosted zone and return an HTTP 400 error
(
* Bad request
). If Amazon Route 53 returns this error
* repeatedly for the same request, we recommend that you wait, in
* intervals of increasing duration, before you try the request
* again.
* @throws ConflictingTypesException
* You tried to update a traffic policy instance by using a traffic
* policy version that has a different DNS type than the current
* type for the instance. You specified the type in the JSON
* document in the CreateTrafficPolicy
or
* CreateTrafficPolicyVersion
request.
* @sample AmazonRoute53.UpdateTrafficPolicyInstance
*/
@Override
public UpdateTrafficPolicyInstanceResult updateTrafficPolicyInstance(
UpdateTrafficPolicyInstanceRequest updateTrafficPolicyInstanceRequest) {
ExecutionContext executionContext = createExecutionContext(updateTrafficPolicyInstanceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdateTrafficPolicyInstanceRequestMarshaller()
.marshall(super
.beforeMarshalling(updateTrafficPolicyInstanceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler responseHandler = new StaxResponseHandler(
new UpdateTrafficPolicyInstanceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* Returns additional metadata for a previously executed successful,
* request, typically used for debugging issues where a service isn't acting
* as expected. This data isn't considered part of the result data returned
* by an operation, so it's available through this separate, diagnostic
* interface.
*
* Response metadata is only cached for a limited period of time, so if you
* need to access this extra diagnostic information for an executed request,
* you should use this method to retrieve it as soon as possible after
* executing the request.
*
* @param request
* The originally executed request
*
* @return The response metadata for the specified request, or null if none
* is available.
*/
public ResponseMetadata getCachedResponseMetadata(
AmazonWebServiceRequest request) {
return client.getResponseMetadataForRequest(request);
}
/**
* Normal invoke with authentication. Credentials are required and may be
* overriden at the request level.
**/
private Response invoke(
Request request,
HttpResponseHandler> responseHandler,
ExecutionContext executionContext) {
executionContext.setCredentialsProvider(CredentialUtils
.getCredentialsProvider(request.getOriginalRequest(),
awsCredentialsProvider));
return doInvoke(request, responseHandler, executionContext);
}
/**
* Invoke with no authentication. Credentials are not required and any
* credentials set on the client or request will be ignored for this
* operation.
**/
private Response anonymousInvoke(
Request request,
HttpResponseHandler> responseHandler,
ExecutionContext executionContext) {
return doInvoke(request, responseHandler, executionContext);
}
/**
* Invoke the request using the http client. Assumes credentials (or lack
* thereof) have been configured in the ExecutionContext beforehand.
**/
private Response doInvoke(
Request request,
HttpResponseHandler> responseHandler,
ExecutionContext executionContext) {
request.setEndpoint(endpoint);
request.setTimeOffset(timeOffset);
DefaultErrorResponseHandler errorResponseHandler = new DefaultErrorResponseHandler(
exceptionUnmarshallers);
return client.execute(request, responseHandler, errorResponseHandler,
executionContext);
}
public AmazonRoute53Waiters waiters() {
if (waiters == null) {
synchronized (this) {
if (waiters == null) {
waiters = new AmazonRoute53Waiters(this);
}
}
}
return waiters;
}
}