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(DefaultAWSCredentialsProviderChain.getInstance(), 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(DefaultAWSCredentialsProviderChain.getInstance(), 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 /2013-04-01/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 * You specified an Amazon VPC that you're already using for another hosted zone, and the domain that you * specified for one of the hosted zones is a subdomain of the domain that you specified for the other * hosted zone. For example, you cannot use the same Amazon VPC for the hosted zones for example.com and * test.example.com. * @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 Developer 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. *

*

* For information about the limits on a ChangeResourceRecordSets request, see Limits in the Amazon * Route 53 Developer Guide. *

* * @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); } } /** *

* Adds, edits, or deletes tags for a health check or a hosted zone. *

*

* For information about using tags for cost allocation, see Using Cost Allocation * Tags in the AWS Billing and Cost Management User Guide. *

* * @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 * You have reached the maximum number of active health checks for an AWS account. The default limit is 100. * To request a higher limit, create a case with the AWS * Support Center. * @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 /2013-04-01/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 Amazon * 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 allotting 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 * You specified an Amazon VPC that you're already using for another hosted zone, and the domain that you * specified for one of the hosted zones is a subdomain of the domain that you specified for the other * hosted zone. For example, you cannot use the same Amazon VPC for the hosted zones for example.com and * test.example.com. * @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 name 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 /2013-04-01/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 /2013-04-01/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 /2013-04-01/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 /2013-04-01/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 /2013-04-01/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 * A change with the specified change ID does not exist. * @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 * A change with the specified change ID does not exist. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.GetChangeDetails */ @Override @Deprecated public GetChangeDetailsResult getChangeDetails(GetChangeDetailsRequest getChangeDetailsRequest) { ExecutionContext executionContext = createExecutionContext(getChangeDetailsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetChangeDetailsRequestMarshaller().marshall(super.beforeMarshalling(getChangeDetailsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetChangeDetailsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves a list of the IP ranges used by Amazon Route 53 health checkers to check the health of your resources. * Send a GET request to the /Amazon Route 53 API version/checkeripranges resource. * Use these IP addresses to configure router and firewall rules to allow health checkers to check the health of * your resources. *

* * @param getCheckerIpRangesRequest * Empty request. * @return Result of the GetCheckerIpRanges operation returned by the service. * @sample AmazonRoute53.GetCheckerIpRanges */ @Override public GetCheckerIpRangesResult getCheckerIpRanges(GetCheckerIpRangesRequest getCheckerIpRangesRequest) { ExecutionContext executionContext = createExecutionContext(getCheckerIpRangesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetCheckerIpRangesRequestMarshaller().marshall(super.beforeMarshalling(getCheckerIpRangesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetCheckerIpRangesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public GetCheckerIpRangesResult getCheckerIpRanges() { return getCheckerIpRanges(new GetCheckerIpRangesRequest()); } /** *

* Retrieves a single geo location. Send a GET request to the /2013-04-01/geolocation * resource with one of these options: continentcode | countrycode | countrycode and subdivisioncode. *

* * @param getGeoLocationRequest * A complex type that contains information about the request to get a geo location. * @return Result of the GetGeoLocation operation returned by the service. * @throws NoSuchGeoLocationException * Amazon Route 53 doesn't support the specified geolocation. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.GetGeoLocation */ @Override public GetGeoLocationResult getGeoLocation(GetGeoLocationRequest getGeoLocationRequest) { ExecutionContext executionContext = createExecutionContext(getGeoLocationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetGeoLocationRequestMarshaller().marshall(super.beforeMarshalling(getGeoLocationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetGeoLocationResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public GetGeoLocationResult getGeoLocation() { return getGeoLocation(new GetGeoLocationRequest()); } /** *

* Gets information about a specified health check. Send a GET request to the * /2013-04-01/healthcheck/health check ID resource. For more information about using the * console to perform this operation, see Amazon Route 53 Health Checks * and DNS Failover in the Amazon Route 53 Developer Guide. *

* * @param getHealthCheckRequest * This action gets information about a specified health check.

*

* Send a GET request to the * /Amazon Route 53 API version/gethealthcheckrequest resource. *

*

* For information about getting information about a health check using the Amazon Route 53 console, see Amazon Route 53 Health * Checks and DNS Failover in the Amazon Route 53 Developer Guide. * @return Result of the GetHealthCheck operation returned by the service. * @throws NoSuchHealthCheckException * No health check exists with the ID that you specified in the DeleteHealthCheck request. * @throws InvalidInputException * The input is not valid. * @throws IncompatibleVersionException * The resource you are trying to access is unsupported on this Amazon Route 53 endpoint. Please consider * using a newer endpoint or a tool that does so. * @sample AmazonRoute53.GetHealthCheck */ @Override public GetHealthCheckResult getHealthCheck(GetHealthCheckRequest getHealthCheckRequest) { ExecutionContext executionContext = createExecutionContext(getHealthCheckRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetHealthCheckRequestMarshaller().marshall(super.beforeMarshalling(getHealthCheckRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetHealthCheckResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* To retrieve a count of all your health checks, send a GET request to the * /2013-04-01/healthcheckcount resource. *

* * @param getHealthCheckCountRequest * To retrieve a count of all your health checks, send a GET request to the * /2013-04-01/healthcheckcount resource. * @return Result of the GetHealthCheckCount operation returned by the service. * @sample AmazonRoute53.GetHealthCheckCount */ @Override public GetHealthCheckCountResult getHealthCheckCount(GetHealthCheckCountRequest getHealthCheckCountRequest) { ExecutionContext executionContext = createExecutionContext(getHealthCheckCountRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetHealthCheckCountRequestMarshaller().marshall(super.beforeMarshalling(getHealthCheckCountRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetHealthCheckCountResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public GetHealthCheckCountResult getHealthCheckCount() { return getHealthCheckCount(new GetHealthCheckCountRequest()); } /** *

* If you want to learn why a health check is currently failing or why it failed most recently (if at all), you can * get the failure reason for the most recent failure. Send a GET request to the * /Amazon Route 53 API version/healthcheck/health check ID/lastfailurereason resource. *

* * @param getHealthCheckLastFailureReasonRequest * This action gets the reason that a specified health check failed most recently.

*

* To get the reason for the last failure of a health check, send a GET request to the * /2013-04-01/healthcheck/health check ID/lastfailurereason resource. *

*

* For information about viewing the last failure reason for a health check using the Amazon Route 53 * console, see Viewing Health Check Status and the Reason for Health Check Failures in the Amazon Route 53 * Developer Guide. * @return Result of the GetHealthCheckLastFailureReason operation returned by the service. * @throws NoSuchHealthCheckException * No health check exists with the ID that you specified in the DeleteHealthCheck request. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.GetHealthCheckLastFailureReason */ @Override public GetHealthCheckLastFailureReasonResult getHealthCheckLastFailureReason(GetHealthCheckLastFailureReasonRequest getHealthCheckLastFailureReasonRequest) { ExecutionContext executionContext = createExecutionContext(getHealthCheckLastFailureReasonRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetHealthCheckLastFailureReasonRequestMarshaller().marshall(super.beforeMarshalling(getHealthCheckLastFailureReasonRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetHealthCheckLastFailureReasonResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets status of a specified health check. Send a GET request to the * /2013-04-01/healthcheck/health check ID/status resource. You can use this call to get a * health check's current status. *

* * @param getHealthCheckStatusRequest * A complex type that contains information about the request to get health check status for a health check. * @return Result of the GetHealthCheckStatus operation returned by the service. * @throws NoSuchHealthCheckException * No health check exists with the ID that you specified in the DeleteHealthCheck request. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.GetHealthCheckStatus */ @Override public GetHealthCheckStatusResult getHealthCheckStatus(GetHealthCheckStatusRequest getHealthCheckStatusRequest) { ExecutionContext executionContext = createExecutionContext(getHealthCheckStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetHealthCheckStatusRequestMarshaller().marshall(super.beforeMarshalling(getHealthCheckStatusRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetHealthCheckStatusResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the delegation set for a hosted zone, including the four name servers assigned to the hosted zone. Send * a GET request to the * /Amazon Route 53 API version/hostedzone/hosted zone ID resource. *

* * @param getHostedZoneRequest * The input for a GetHostedZone request. * @return Result of the GetHostedZone operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.GetHostedZone */ @Override public GetHostedZoneResult getHostedZone(GetHostedZoneRequest getHostedZoneRequest) { ExecutionContext executionContext = createExecutionContext(getHostedZoneRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetHostedZoneRequestMarshaller().marshall(super.beforeMarshalling(getHostedZoneRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler(new GetHostedZoneResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves a count of all your hosted zones. Send a GET request to the * /2013-04-01/hostedzonecount resource. *

* * @param getHostedZoneCountRequest * To retrieve a count of all your hosted zones, send a GET request to the * /2013-04-01/hostedzonecount resource. * @return Result of the GetHostedZoneCount operation returned by the service. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.GetHostedZoneCount */ @Override public GetHostedZoneCountResult getHostedZoneCount(GetHostedZoneCountRequest getHostedZoneCountRequest) { ExecutionContext executionContext = createExecutionContext(getHostedZoneCountRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetHostedZoneCountRequestMarshaller().marshall(super.beforeMarshalling(getHostedZoneCountRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetHostedZoneCountResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public GetHostedZoneCountResult getHostedZoneCount() { return getHostedZoneCount(new GetHostedZoneCountRequest()); } /** *

* Retrieves the reusable delegation set. Send a GET request to the * /2013-04-01/delegationset/delegation set ID resource. *

* * @param getReusableDelegationSetRequest * The input for a GetReusableDelegationSet request. * @return Result of the GetReusableDelegationSet operation returned by the service. * @throws NoSuchDelegationSetException * A reusable delegation set with the specified ID does not exist. * @throws DelegationSetNotReusableException * A reusable delegation set with the specified ID does not exist. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.GetReusableDelegationSet */ @Override public GetReusableDelegationSetResult getReusableDelegationSet(GetReusableDelegationSetRequest getReusableDelegationSetRequest) { ExecutionContext executionContext = createExecutionContext(getReusableDelegationSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetReusableDelegationSetRequestMarshaller().marshall(super.beforeMarshalling(getReusableDelegationSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetReusableDelegationSetResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about a specific traffic policy version. *

*

* Send a GET request to the /Amazon Route 53 API version/trafficpolicy resource. *

* * @param getTrafficPolicyRequest * Gets information about a specific traffic policy version. To get the information, send a GET request to * the /2013-04-01/trafficpolicy resource, and specify the ID and the version of the traffic policy. * @return Result of the GetTrafficPolicy operation returned by the service. * @throws NoSuchTrafficPolicyException * No traffic policy exists with the specified ID. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.GetTrafficPolicy */ @Override public GetTrafficPolicyResult getTrafficPolicy(GetTrafficPolicyRequest getTrafficPolicyRequest) { ExecutionContext executionContext = createExecutionContext(getTrafficPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetTrafficPolicyRequestMarshaller().marshall(super.beforeMarshalling(getTrafficPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetTrafficPolicyResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about a specified traffic policy instance. *

*

* Send a GET request to the /Amazon Route 53 API version/trafficpolicyinstance * resource. *

* *

* After you submit a CreateTrafficPolicyInstance or an UpdateTrafficPolicyInstance * request, there's a brief delay while Amazon Route 53 creates the resource record sets that are specified in the * traffic policy definition. For more information, see the State response element. *

*
*

* In the Amazon Route 53 console, traffic policy instances are known as policy records. *

*
* * @param getTrafficPolicyInstanceRequest * Gets information about a specified traffic policy instance.

*

* To get information about a traffic policy instance, send a GET request to the * /Amazon Route 53 API version/trafficpolicyinstance/Id resource. * @return Result of the GetTrafficPolicyInstance operation returned by the service. * @throws NoSuchTrafficPolicyInstanceException * No traffic policy instance exists with the specified ID. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.GetTrafficPolicyInstance */ @Override public GetTrafficPolicyInstanceResult getTrafficPolicyInstance(GetTrafficPolicyInstanceRequest getTrafficPolicyInstanceRequest) { ExecutionContext executionContext = createExecutionContext(getTrafficPolicyInstanceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetTrafficPolicyInstanceRequestMarshaller().marshall(super.beforeMarshalling(getTrafficPolicyInstanceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetTrafficPolicyInstanceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets the number of traffic policy instances that are associated with the current AWS account. *

*

* To get the number of traffic policy instances, send a GET request to the * /2013-04-01/trafficpolicyinstancecount resource. *

* * @param getTrafficPolicyInstanceCountRequest * To retrieve a count of all your traffic policy instances, send a GET request to the * /2013-04-01/trafficpolicyinstancecount resource. * @return Result of the GetTrafficPolicyInstanceCount operation returned by the service. * @sample AmazonRoute53.GetTrafficPolicyInstanceCount */ @Override public GetTrafficPolicyInstanceCountResult getTrafficPolicyInstanceCount(GetTrafficPolicyInstanceCountRequest getTrafficPolicyInstanceCountRequest) { ExecutionContext executionContext = createExecutionContext(getTrafficPolicyInstanceCountRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetTrafficPolicyInstanceCountRequestMarshaller().marshall(super.beforeMarshalling(getTrafficPolicyInstanceCountRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetTrafficPolicyInstanceCountResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public GetTrafficPolicyInstanceCountResult getTrafficPolicyInstanceCount() { return getTrafficPolicyInstanceCount(new GetTrafficPolicyInstanceCountRequest()); } /** *

* Gets the list of ChangeBatches in a given time period for a given hosted zone. *

* * @param listChangeBatchesByHostedZoneRequest * The input for a ListChangeBatchesByHostedZone request. * @return Result of the ListChangeBatchesByHostedZone operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.ListChangeBatchesByHostedZone */ @Override @Deprecated public ListChangeBatchesByHostedZoneResult listChangeBatchesByHostedZone(ListChangeBatchesByHostedZoneRequest listChangeBatchesByHostedZoneRequest) { ExecutionContext executionContext = createExecutionContext(listChangeBatchesByHostedZoneRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListChangeBatchesByHostedZoneRequestMarshaller().marshall(super.beforeMarshalling(listChangeBatchesByHostedZoneRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListChangeBatchesByHostedZoneResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets the list of ChangeBatches in a given time period for a given hosted zone and RRSet. *

* * @param listChangeBatchesByRRSetRequest * The input for a ListChangeBatchesByRRSet request. * @return Result of the ListChangeBatchesByRRSet operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.ListChangeBatchesByRRSet */ @Override @Deprecated public ListChangeBatchesByRRSetResult listChangeBatchesByRRSet(ListChangeBatchesByRRSetRequest listChangeBatchesByRRSetRequest) { ExecutionContext executionContext = createExecutionContext(listChangeBatchesByRRSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListChangeBatchesByRRSetRequestMarshaller().marshall(super.beforeMarshalling(listChangeBatchesByRRSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListChangeBatchesByRRSetResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves a list of supported geo locations. Send a GET request to the * /2013-04-01/geolocations resource. The response to this request includes a * GeoLocationDetailsList element for each location that Amazon Route 53 supports. *

*

* Countries are listed first, and continents are listed last. If Amazon Route 53 supports subdivisions for a * country (for example, states or provinces), the subdivisions for that country are listed in alphabetical order * immediately after the corresponding country. *

* * @param listGeoLocationsRequest * To get a list of geographic locations that Amazon Route 53 supports for geolocation, send a * GET request to the /Amazon Route 53 API version/geolocations resource. * The response to this request includes a GeoLocationDetails element for each location that * Amazon Route 53 supports.

*

* Countries are listed first, and continents are listed last. If Amazon Route 53 supports subdivisions for a * country (for example, states or provinces), the subdivisions for that country are listed in alphabetical * order immediately after the corresponding country. * @return Result of the ListGeoLocations operation returned by the service. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.ListGeoLocations */ @Override public ListGeoLocationsResult listGeoLocations(ListGeoLocationsRequest listGeoLocationsRequest) { ExecutionContext executionContext = createExecutionContext(listGeoLocationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListGeoLocationsRequestMarshaller().marshall(super.beforeMarshalling(listGeoLocationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListGeoLocationsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ListGeoLocationsResult listGeoLocations() { return listGeoLocations(new ListGeoLocationsRequest()); } /** *

* Retrieve a list of your health checks. Send a GET request to the * /2013-04-01/healthcheck resource. The response to this request includes a HealthChecks * element with zero or more HealthCheck child elements. By default, the list of health checks is * displayed on a single page. You can control the length of the page that is displayed by using the * MaxItems parameter. You can use the Marker parameter to control the health check that * the list begins with. *

*

* For information about listing health checks using the Amazon Route 53 console, see Amazon Route 53 Health Checks * and DNS Failover. *

* * @param listHealthChecksRequest * To retrieve a list of your health checks, send a GET request to the * /2013-04-01/healthcheck resource. The response to this request includes a * HealthChecks element with zero or more HealthCheck child elements. By default, * the list of health checks is displayed on a single page. You can control the length of the page that is * displayed by using the MaxItems parameter. You can use the Marker parameter to * control the health check that the list begins with.

*

* Amazon Route 53 returns a maximum of 100 items. If you set MaxItems to a value greater than * 100, Amazon Route 53 returns only the first 100. *

* @return Result of the ListHealthChecks operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws IncompatibleVersionException * The resource you are trying to access is unsupported on this Amazon Route 53 endpoint. Please consider * using a newer endpoint or a tool that does so. * @sample AmazonRoute53.ListHealthChecks */ @Override public ListHealthChecksResult listHealthChecks(ListHealthChecksRequest listHealthChecksRequest) { ExecutionContext executionContext = createExecutionContext(listHealthChecksRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListHealthChecksRequestMarshaller().marshall(super.beforeMarshalling(listHealthChecksRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListHealthChecksResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ListHealthChecksResult listHealthChecks() { return listHealthChecks(new ListHealthChecksRequest()); } /** *

* To retrieve a list of your public and private hosted zones, send a GET request to the * /2013-04-01/hostedzone resource. The response to this request includes a HostedZones * child element for each hosted zone created by the current AWS account. *

*

* Amazon Route 53 returns a maximum of 100 items in each response. If you have a lot of hosted zones, you can use * the maxitems parameter to list them in groups of up to 100. The response includes four values that * help navigate from one group of maxitems hosted zones to the next: *

*
    *
  • *

    * MaxItems is the value specified for the maxitems parameter in the request that produced * the current response. *

    *
  • *
  • *

    * If the value of IsTruncated in the response is true, there are more hosted zones associated with the * current AWS account. *

    *
  • *
  • *

    * NextMarker is the hosted zone ID of the next hosted zone that is associated with the current AWS * account. If you want to list more hosted zones, make another call to ListHostedZones, and specify * the value of the NextMarker element in the marker parameter. *

    *

    * If IsTruncated is false, the NextMarker element is omitted from the response. *

    *
  • *
  • *

    * If you're making the second or subsequent call to ListHostedZones, the Marker element * matches the value that you specified in the marker parameter in the previous request. *

    *
  • *
* * @param listHostedZonesRequest * To retrieve a list of your public and private hosted zones, send a GET request to the * /2013-04-01/hostedzone resource. The response to this request includes a HostedZone child * element for each hosted zone that was created by the current AWS account.

*

* Amazon Route 53 returns a maximum of 100 items in each response. If you have a lot of hosted zones, you * can use the maxitems parameter to list them in groups of up to 100. The response includes four values that * help you navigate from one group of maxitems hosted zones to the next: *

*
    *
  • *

    * MaxItems is the value that you specified for the maxitems parameter in the * request that produced the current response. *

    *
  • *
  • *

    * If the value of IsTruncated in the response is true, there are more hosted zones * associated with the current AWS account. *

    *

    * If IsTruncated is false, this response includes the last hosted zone that is * associated with the current account. *

    *
  • *
  • *

    * NextMarker is the hosted zone ID of the next hosted zone that is associated with the current * AWS account. If you want to list more hosted zones, make another call to ListHostedZones, and * specify the value of the NextMarker element in the marker parameter. *

    *

    * If IsTruncated is false, the NextMarker element is omitted from the * response. *

    *
  • *
  • *

    * If you're making the second or subsequent call to ListHostedZones, the Marker * element matches the value that you specified in the marker parameter in the previous request. *

    *
  • * @return Result of the ListHostedZones operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchDelegationSetException * A reusable delegation set with the specified ID does not exist. * @throws DelegationSetNotReusableException * A reusable delegation set with the specified ID does not exist. * @sample AmazonRoute53.ListHostedZones */ @Override public ListHostedZonesResult listHostedZones(ListHostedZonesRequest listHostedZonesRequest) { ExecutionContext executionContext = createExecutionContext(listHostedZonesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListHostedZonesRequestMarshaller().marshall(super.beforeMarshalling(listHostedZonesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListHostedZonesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ListHostedZonesResult listHostedZones() { return listHostedZones(new ListHostedZonesRequest()); } /** *

    * Retrieves a list of your hosted zones in lexicographic order. Send a GET request to the * /2013-04-01/hostedzonesbyname resource. The response includes a HostedZones child * element for each hosted zone created by the current AWS account. *

    *

    * ListHostedZonesByName sorts hosted zones by name with the labels reversed. For example: *

    *
      *
    • *

      * com.example.www. *

      *
    • *
    *

    * Note the trailing dot, which can change the sort order in some circumstances. *

    *

    * If the domain name includes escape characters or Punycode, ListHostedZonesByName alphabetizes the * domain name using the escaped or Punycoded value, which is the format that Amazon Route 53 saves in its database. * For example, to create a hosted zone for example.com, specify ex\344mple.com for the domain name. * ListHostedZonesByName alphabetizes it as: *

    *
      *
    • *

      * com.ex\344mple. *

      *
    • *
    *

    * The labels are reversed and alphabetized using the escaped value. For more information about valid domain name * formats, including internationalized domain names, see DNS Domain Name Format * in the Amazon Route 53 Developer Guide. *

    *

    * Amazon Route 53 returns up to 100 items in each response. If you have a lot of hosted zones, use the * MaxItems parameter to list them in groups of up to 100. The response includes values that help * navigate from one group of MaxItems hosted zones to the next: *

    *
      *
    • *

      * The DNSName and HostedZoneId elements in the response contain the values, if any, * specified for the dnsname and hostedzoneid parameters in the request that produced the * current response. *

      *
    • *
    • *

      * The MaxItems element in the response contains the value, if any, that you specified for the * maxitems parameter in the request that produced the current response. *

      *
    • *
    • *

      * If the value of IsTruncated in the response is true, there are more hosted zones associated with the * current AWS account. *

      *

      * If IsTruncated is false, this response includes the last hosted zone that is associated with the * current account. The NextDNSName element and NextHostedZoneId elements are omitted from * the response. *

      *
    • *
    • *

      * The NextDNSName and NextHostedZoneId elements in the response contain the domain name * and the hosted zone ID of the next hosted zone that is associated with the current AWS account. If you want to * list more hosted zones, make another call to ListHostedZonesByName, and specify the value of * NextDNSName and NextHostedZoneId in the dnsname and * hostedzoneid parameters, respectively. *

      *
    • *
    * * @param listHostedZonesByNameRequest * To retrieve a list of your public and private hosted zones in ASCII order by domain name, send a * GET request to the /Amazon Route 53 API version/hostedzonesbyname * resource. The response to this request includes a HostedZone child element for each hosted * zone that was created by the current AWS account. ListHostedZonesByName sorts hosted zones by * name with the labels reversed, for example:

    *

    * com.example.www. *

    *

    * Note the trailing dot, which can change the sort order in some circumstances. *

    *

    * If the domain name includes escape characters or Punycode, ListHostedZonesByName alphabetizes * the domain name using the escaped or Punycoded value, which is the format that Amazon Route 53 saves in * its database. For example, to create a hosted zone for exämple.com, you specify * ex\344mple.com for the domain name. ListHostedZonesByName alphabetizes it as: * com.ex\344mple. The labels are reversed, and it's alphabetized using the escaped value. For * more information about valid domain name formats, including internationalized domain names, see DNS Domain Name * Format in the Amazon Route 53 Developer Guide. *

    *

    * Amazon Route 53 returns up to 100 items in each response. If you have a lot of hosted zones, you can use * the MaxItems parameter to list them in groups of up to 100. The response includes values that * help you navigate from one group of MaxItems hosted zones to the next: *

    *
      *
    • *

      * The DNSName and HostedZoneId elements in the response contain the values, if * any, that you specified for the dnsname and hostedzoneid parameters in the * request that produced the current response. *

      *
    • *
    • *

      * The MaxItems element in the response contains the value, if any, that you specified for the * maxitems parameter in the request that produced the current response. *

      *
    • *
    • *

      * If the value of IsTruncated in the response is true, there are more hosted zones associated * with the current Amazon Route 53 account. *

      *

      * If IsTruncated is false, this response includes the last hosted zone that is * associated with the current account. The NextDNSName element and * NextHostedZoneId elements are omitted from the response. *

      *
    • *
    • *

      * The NextDNSName and NextHostedZoneId elements in the response contain the domain * name and the hosted zone ID of the next hosted zone that is associated with the current AWS account. If * you want to list more hosted zones, make another call to ListHostedZonesByName, and specify * the value of NextDNSName and NextHostedZoneId in the dnsname and * hostedzoneid parameters, respectively. *

      *
    • * @return Result of the ListHostedZonesByName operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws InvalidDomainNameException * The specified domain name is not valid. * @sample AmazonRoute53.ListHostedZonesByName */ @Override public ListHostedZonesByNameResult listHostedZonesByName(ListHostedZonesByNameRequest listHostedZonesByNameRequest) { ExecutionContext executionContext = createExecutionContext(listHostedZonesByNameRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListHostedZonesByNameRequestMarshaller().marshall(super.beforeMarshalling(listHostedZonesByNameRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListHostedZonesByNameResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ListHostedZonesByNameResult listHostedZonesByName() { return listHostedZonesByName(new ListHostedZonesByNameRequest()); } /** *

      * Lists the resource record sets in a specified hosted zone. *

      *

      * ListResourceRecordSets returns up to 100 resource record sets at a time in ASCII order, beginning at * a position specified by the name and type elements. The action sorts results first by * DNS name with the labels reversed, for example: *

      *

      * com.example.www. *

      *

      * Note the trailing dot, which can change the sort order in some circumstances. *

      *

      * When multiple records have the same DNS name, the action sorts results by the record type. *

      *

      * You can use the name and type elements to adjust the beginning position of the list of resource record sets * returned: *

      *
      *
      If you do not specify Name or Type
      *
      *

      * The results begin with the first resource record set that the hosted zone contains. *

      *
      *
      If you specify Name but not Type
      *
      *

      * The results begin with the first resource record set in the list whose name is greater than or equal to * Name. *

      *
      *
      If you specify Type but not Name
      *
      *

      * Amazon Route 53 returns the InvalidInput error. *

      *
      *
      If you specify both Name and Type
      *
      *

      * The results begin with the first resource record set in the list whose name is greater than or equal to * Name, and whose type is greater than or equal to Type. *

      *
      *
      *

      * This action returns the most current version of the records. This includes records that are PENDING, * and that are not yet available on all Amazon Route 53 DNS servers. *

      *

      * To ensure that you get an accurate listing of the resource record sets for a hosted zone at a point in time, do * not submit a ChangeResourceRecordSets request while you're paging through the results of a * ListResourceRecordSets request. If you do, some pages may display results without the latest changes * while other pages display results with the latest changes. *

      * * @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()); } /** *

      * Lists tags for one health check or hosted zone. *

      *

      * For information about using tags for cost allocation, see Using Cost Allocation * Tags in the AWS Billing and Cost Management User Guide. *

      * * @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); } } /** *

      * Lists tags for up to 10 health checks or hosted zones. *

      *

      * For information about using tags for cost allocation, see Using Cost Allocation * Tags in the AWS Billing and Cost Management User Guide. *

      * * @param listTagsForResourcesRequest * A complex type that contains information about the health checks or hosted zones for which you want to * list tags. * @return Result of the ListTagsForResources operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchHealthCheckException * No health check exists with the ID that you specified in the DeleteHealthCheck request. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws PriorRequestNotCompleteException * If Amazon Route 53 can't process a request before the next request arrives, it will reject subsequent * requests for the same hosted zone and return an HTTP 400 error (Bad request). * If Amazon Route 53 returns this error repeatedly for the same request, we recommend that you wait, in * intervals of increasing duration, before you try the request again. * @throws ThrottlingException * @sample AmazonRoute53.ListTagsForResources */ @Override public ListTagsForResourcesResult listTagsForResources(ListTagsForResourcesRequest listTagsForResourcesRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForResourcesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTagsForResourcesRequestMarshaller().marshall(super.beforeMarshalling(listTagsForResourcesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListTagsForResourcesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

      * Gets information about the latest version for every traffic policy that is associated with the current AWS * account. Send a GET request to the /Amazon Route 53 API version/trafficpolicy * resource. *

      *

      * Amazon Route 53 returns a maximum of 100 items in each response. If you have a lot of traffic policies, you can * use the maxitems parameter to list them in groups of up to 100. *

      *

      * The response includes three values that help you navigate from one group of maxitems traffic * policies to the next: *

      *
        *
      • *

        * IsTruncated *

        *

        * If the value of IsTruncated in the response is true, there are more traffic policies * associated with the current AWS account. *

        *

        * If IsTruncated is false, this response includes the last traffic policy that is * associated with the current account. *

        *
      • *
      • *

        * TrafficPolicyIdMarker *

        *

        * If IsTruncated is true, TrafficPolicyIdMarker is the ID of the first * traffic policy in the next group of MaxItems traffic policies. If you want to list more traffic * policies, make another call to ListTrafficPolicies, and specify the value of the * TrafficPolicyIdMarker element from the response in the TrafficPolicyIdMarker request * parameter. *

        *

        * If IsTruncated is false, the TrafficPolicyIdMarker element is omitted from * the response. *

        *
      • *
      • *

        * MaxItems *

        *

        * The value that you specified for the MaxItems parameter in the request that produced the current * response. *

        *
      • *
      * * @param listTrafficPoliciesRequest * A complex type that contains the information about the request to list the traffic policies that are * associated with the current AWS account. * @return Result of the ListTrafficPolicies operation returned by the service. * @throws InvalidInputException * The input is not valid. * @sample AmazonRoute53.ListTrafficPolicies */ @Override public ListTrafficPoliciesResult listTrafficPolicies(ListTrafficPoliciesRequest listTrafficPoliciesRequest) { ExecutionContext executionContext = createExecutionContext(listTrafficPoliciesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTrafficPoliciesRequestMarshaller().marshall(super.beforeMarshalling(listTrafficPoliciesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListTrafficPoliciesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ListTrafficPoliciesResult listTrafficPolicies() { return listTrafficPolicies(new ListTrafficPoliciesRequest()); } /** *

      * Gets information about the traffic policy instances that you created by using the current AWS account. *

      * *

      * After you submit an UpdateTrafficPolicyInstance request, there's a brief delay while Amazon Route 53 * creates the resource record sets that are specified in the traffic policy definition. For more information, see * the State response element. *

      *
      *

      * Send a GET request to the /Amazon Route 53 API version/trafficpolicyinstance * resource. *

      *

      * Amazon Route 53 returns a maximum of 100 items in each response. If you have a lot of traffic policy instances, * you can use the MaxItems parameter to list them in groups of up to 100. *

      *

      * The response includes five values that help you navigate from one group of MaxItems traffic policy * instances to the next: *

      *
        *
      • *

        * IsTruncated *

        *

        * If the value of IsTruncated in the response is true, there are more traffic policy * instances associated with the current AWS account. *

        *

        * If IsTruncated is false, this response includes the last traffic policy instance that * is associated with the current account. *

        *
      • *
      • *

        * MaxItems *

        *

        * The value that you specified for the MaxItems parameter in the request that produced the current * response. *

        *
      • *
      • *

        * HostedZoneIdMarker, TrafficPolicyInstanceNameMarker, and TrafficPolicyInstanceTypeMarker *

        *

        * If IsTruncated is true, these three values in the response represent the first traffic * policy instance in the next group of MaxItems traffic policy instances. To list more traffic policy * instances, make another call to ListTrafficPolicyInstances, and specify these values in the * corresponding request parameters. *

        *

        * If IsTruncated is false, all three elements are omitted from the response. *

        *
      • *
      * * @param listTrafficPolicyInstancesRequest * A complex type that contains the information about the request to list your traffic policy instances. * @return Result of the ListTrafficPolicyInstances operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchTrafficPolicyInstanceException * No traffic policy instance exists with the specified ID. * @sample AmazonRoute53.ListTrafficPolicyInstances */ @Override public ListTrafficPolicyInstancesResult listTrafficPolicyInstances(ListTrafficPolicyInstancesRequest listTrafficPolicyInstancesRequest) { ExecutionContext executionContext = createExecutionContext(listTrafficPolicyInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTrafficPolicyInstancesRequestMarshaller().marshall(super.beforeMarshalling(listTrafficPolicyInstancesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListTrafficPolicyInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ListTrafficPolicyInstancesResult listTrafficPolicyInstances() { return listTrafficPolicyInstances(new ListTrafficPolicyInstancesRequest()); } /** *

      * Gets information about the traffic policy instances that you created in a specified hosted zone. *

      * *

      * After you submit an UpdateTrafficPolicyInstance request, there's a brief delay while Amazon Route 53 * creates the resource record sets that are specified in the traffic policy definition. For more information, see * the State response element. *

      *
      *

      * Send a GET request to the /Amazon Route 53 API version/trafficpolicyinstance * resource and include the ID of the hosted zone. *

      *

      * Amazon Route 53 returns a maximum of 100 items in each response. If you have a lot of traffic policy instances, * you can use the MaxItems parameter to list them in groups of up to 100. *

      *

      * The response includes four values that help you navigate from one group of MaxItems traffic policy * instances to the next: *

      *
        *
      • *

        * IsTruncated *

        *

        * If the value of IsTruncated in the response is true, there are more traffic policy instances * associated with the current AWS account. *

        *

        * If IsTruncated is false, this response includes the last traffic policy instance that * is associated with the current account. *

        *
      • *
      • *

        * MaxItems *

        *

        * The value that you specified for the MaxItems parameter in the request that produced the current * response. *

        *
      • *
      • *

        * TrafficPolicyInstanceNameMarker and TrafficPolicyInstanceTypeMarker *

        *

        * If IsTruncated is true, these two values in the response represent the first traffic * policy instance in the next group of MaxItems traffic policy instances. To list more traffic policy * instances, make another call to ListTrafficPolicyInstancesByHostedZone, and specify these values in * the corresponding request parameters. *

        *

        * If IsTruncated is false, all three elements are omitted from the response. *

        *
      • *
      * * @param listTrafficPolicyInstancesByHostedZoneRequest * A request for the traffic policy instances that you created in a specified hosted zone. * @return Result of the ListTrafficPolicyInstancesByHostedZone operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchTrafficPolicyInstanceException * No traffic policy instance exists with the specified ID. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @sample AmazonRoute53.ListTrafficPolicyInstancesByHostedZone */ @Override public ListTrafficPolicyInstancesByHostedZoneResult listTrafficPolicyInstancesByHostedZone( ListTrafficPolicyInstancesByHostedZoneRequest listTrafficPolicyInstancesByHostedZoneRequest) { ExecutionContext executionContext = createExecutionContext(listTrafficPolicyInstancesByHostedZoneRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTrafficPolicyInstancesByHostedZoneRequestMarshaller().marshall(super .beforeMarshalling(listTrafficPolicyInstancesByHostedZoneRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListTrafficPolicyInstancesByHostedZoneResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

      * Gets information about the traffic policy instances that you created by using a specify traffic policy version. *

      * *

      * After you submit a CreateTrafficPolicyInstance or an UpdateTrafficPolicyInstance * request, there's a brief delay while Amazon Route 53 creates the resource record sets that are specified in the * traffic policy definition. For more information, see the State response element. *

      *
      *

      * Send a GET request to the /Route 53 API version/trafficpolicyinstance resource * and include the ID and version of the traffic policy. *

      *

      * Amazon Route 53 returns a maximum of 100 items in each response. If you have a lot of traffic policy instances, * you can use the MaxItems parameter to list them in groups of up to 100. *

      *

      * The response includes five values that help you navigate from one group of MaxItems traffic policy * instances to the next: *

      *
        *
      • *

        * IsTruncated *

        *

        * If the value of IsTruncated in the response is true, there are more traffic policy * instances associated with the specified traffic policy. *

        *

        * If IsTruncated is false, this response includes the last traffic policy instance that * is associated with the specified traffic policy. *

        *
      • *
      • *

        * MaxItems *

        *

        * The value that you specified for the MaxItems parameter in the request that produced the current * response. *

        *
      • *
      • *

        * HostedZoneIdMarker, TrafficPolicyInstanceNameMarker, and TrafficPolicyInstanceTypeMarker *

        *

        * If IsTruncated is true, these values in the response represent the first traffic policy * instance in the next group of MaxItems traffic policy instances. To list more traffic policy * instances, make another call to ListTrafficPolicyInstancesByPolicy, and specify these values in the * corresponding request parameters. *

        *

        * If IsTruncated is false, all three elements are omitted from the response. *

        *
      • *
      * * @param listTrafficPolicyInstancesByPolicyRequest * A complex type that contains the information about the request to list your traffic policy instances. * @return Result of the ListTrafficPolicyInstancesByPolicy operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchTrafficPolicyInstanceException * No traffic policy instance exists with the specified ID. * @throws NoSuchTrafficPolicyException * No traffic policy exists with the specified ID. * @sample AmazonRoute53.ListTrafficPolicyInstancesByPolicy */ @Override public ListTrafficPolicyInstancesByPolicyResult listTrafficPolicyInstancesByPolicy( ListTrafficPolicyInstancesByPolicyRequest listTrafficPolicyInstancesByPolicyRequest) { ExecutionContext executionContext = createExecutionContext(listTrafficPolicyInstancesByPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTrafficPolicyInstancesByPolicyRequestMarshaller() .marshall(super.beforeMarshalling(listTrafficPolicyInstancesByPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListTrafficPolicyInstancesByPolicyResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

      * Gets information about all of the versions for a specified traffic policy. *

      *

      * Send a GET request to the /Amazon Route 53 API version/trafficpolicy resource * and specify the ID of the traffic policy for which you want to list versions. *

      *

      * Amazon Route 53 returns a maximum of 100 items in each response. If you have a lot of traffic policies, you can * use the maxitems parameter to list them in groups of up to 100. *

      *

      * The response includes three values that help you navigate from one group of maxitems 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); } } /** *

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

      * * @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 /2013-04-01/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 * The value of HealthCheckVersion in the request doesn't match the value of * HealthCheckVersion in the health check. * @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 /2013-04-01/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 /2013-04-01/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