All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.route53.AmazonRoute53Client Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon Route53 module holds the client classes that are used for communicating with Amazon Route53 Service

There is a newer version: 1.11.98
Show newest version
/*
 * 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: *

*
    *
  • *

    * MaxItemsis 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. *

    *
  • *
  • *

    * NextMarkeris 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 maxitemsmaxitems 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: *

      *
        *
      1. *

        * 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. *

        *
      2. *
      3. *

        * 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. *

        *
      4. *
      5. *

        * Amazon Route 53 deletes the old group of resource record sets that are * associated with the root resource record set name. *

        *
      6. *
      * * @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 * CreateTrafficPolicyVersionrequest. * @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; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy