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

com.amazonaws.services.route53domains.AmazonRoute53DomainsClient 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.route53domains;

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.AmazonServiceException;

import com.amazonaws.services.route53domains.model.*;
import com.amazonaws.services.route53domains.model.transform.*;

/**
 * Client for accessing Amazon Route 53 Domains. All service calls made using this client are blocking, and will not
 * return until the service call completes.
 * 

* */ @ThreadSafe public class AmazonRoute53DomainsClient extends AmazonWebServiceClient implements AmazonRoute53Domains { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonRoute53Domains.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "route53domains"; /** Client configuration factory providing ClientConfigurations tailored to this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final SdkJsonProtocolFactory protocolFactory = new SdkJsonProtocolFactory(new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .withSupportsIon(false) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("DuplicateRequest").withModeledClass( com.amazonaws.services.route53domains.model.DuplicateRequestException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidInput").withModeledClass( com.amazonaws.services.route53domains.model.InvalidInputException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("TLDRulesViolation").withModeledClass( com.amazonaws.services.route53domains.model.TLDRulesViolationException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("DomainLimitExceeded").withModeledClass( com.amazonaws.services.route53domains.model.DomainLimitExceededException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("UnsupportedTLD").withModeledClass( com.amazonaws.services.route53domains.model.UnsupportedTLDException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("OperationLimitExceeded").withModeledClass( com.amazonaws.services.route53domains.model.OperationLimitExceededException.class)) .withBaseServiceExceptionClass(com.amazonaws.services.route53domains.model.AmazonRoute53DomainsException.class)); /** * Constructs a new client to invoke service methods on Amazon Route 53 Domains. 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 AmazonRoute53DomainsClient() { this(DefaultAWSCredentialsProviderChain.getInstance(), configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon Route 53 Domains. 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 Amazon Route 53 Domains (ex: * proxy settings, retry counts, etc.). * * @see DefaultAWSCredentialsProviderChain */ public AmazonRoute53DomainsClient(ClientConfiguration clientConfiguration) { this(DefaultAWSCredentialsProviderChain.getInstance(), clientConfiguration); } /** * Constructs a new client to invoke service methods on Amazon Route 53 Domains 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 AmazonRoute53DomainsClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon Route 53 Domains 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 Amazon Route 53 Domains (ex: * proxy settings, retry counts, etc.). */ public AmazonRoute53DomainsClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider(awsCredentials); init(); } /** * Constructs a new client to invoke service methods on Amazon Route 53 Domains 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 AmazonRoute53DomainsClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon Route 53 Domains 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 Amazon Route 53 Domains (ex: * proxy settings, retry counts, etc.). */ public AmazonRoute53DomainsClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on Amazon Route 53 Domains 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 Amazon Route 53 Domains (ex: * proxy settings, retry counts, etc.). * @param requestMetricCollector * optional request metric collector */ public AmazonRoute53DomainsClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; init(); } /** * Constructs a new client to invoke service methods on Amazon Route 53 Domains 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. */ AmazonRoute53DomainsClient(AwsSyncClientParams clientParams) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("https://route53domains.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/route53domains/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/route53domains/request.handler2s")); } /** *

* This operation checks the availability of one domain name. Note that if the availability status of a domain is * pending, you must submit another request to determine the availability of the domain name. *

* * @param checkDomainAvailabilityRequest * The CheckDomainAvailability request contains the following elements. * @return Result of the CheckDomainAvailability operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.CheckDomainAvailability */ @Override public CheckDomainAvailabilityResult checkDomainAvailability(CheckDomainAvailabilityRequest checkDomainAvailabilityRequest) { ExecutionContext executionContext = createExecutionContext(checkDomainAvailabilityRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CheckDomainAvailabilityRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(checkDomainAvailabilityRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CheckDomainAvailabilityResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation deletes the specified tags for a domain. *

*

* All tag operations are eventually consistent; subsequent operations may not immediately represent all issued * operations. *

* * @param deleteTagsForDomainRequest * The DeleteTagsForDomainRequest includes the following elements. * @return Result of the DeleteTagsForDomain operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.DeleteTagsForDomain */ @Override public DeleteTagsForDomainResult deleteTagsForDomain(DeleteTagsForDomainRequest deleteTagsForDomainRequest) { ExecutionContext executionContext = createExecutionContext(deleteTagsForDomainRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteTagsForDomainRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteTagsForDomainRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteTagsForDomainResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation disables automatic renewal of domain registration for the specified domain. *

* * @param disableDomainAutoRenewRequest * @return Result of the DisableDomainAutoRenew operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.DisableDomainAutoRenew */ @Override public DisableDomainAutoRenewResult disableDomainAutoRenew(DisableDomainAutoRenewRequest disableDomainAutoRenewRequest) { ExecutionContext executionContext = createExecutionContext(disableDomainAutoRenewRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisableDomainAutoRenewRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(disableDomainAutoRenewRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisableDomainAutoRenewResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation removes the transfer lock on the domain (specifically the clientTransferProhibited * status) to allow domain transfers. We recommend you refrain from performing this action unless you intend to * transfer the domain to a different registrar. Successful submission returns an operation ID that you can use to * track the progress and completion of the action. If the request is not completed successfully, the domain * registrant will be notified by email. *

* * @param disableDomainTransferLockRequest * The DisableDomainTransferLock request includes the following element. * @return Result of the DisableDomainTransferLock operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws DuplicateRequestException * The request is already in progress for the domain. * @throws TLDRulesViolationException * The top-level domain does not support this operation. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.DisableDomainTransferLock */ @Override public DisableDomainTransferLockResult disableDomainTransferLock(DisableDomainTransferLockRequest disableDomainTransferLockRequest) { ExecutionContext executionContext = createExecutionContext(disableDomainTransferLockRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisableDomainTransferLockRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(disableDomainTransferLockRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisableDomainTransferLockResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation configures Amazon Route 53 to automatically renew the specified domain before the domain * registration expires. The cost of renewing your domain registration is billed to your AWS account. *

*

* The period during which you can renew a domain name varies by TLD. For a list of TLDs and their renewal policies, * see * "Renewal, restoration, and deletion times" on the website for our registrar partner, Gandi. Route 53 requires * that you renew before the end of the renewal period that is listed on the Gandi website so we can complete * processing before the deadline. *

* * @param enableDomainAutoRenewRequest * @return Result of the EnableDomainAutoRenew operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @throws TLDRulesViolationException * The top-level domain does not support this operation. * @sample AmazonRoute53Domains.EnableDomainAutoRenew */ @Override public EnableDomainAutoRenewResult enableDomainAutoRenew(EnableDomainAutoRenewRequest enableDomainAutoRenewRequest) { ExecutionContext executionContext = createExecutionContext(enableDomainAutoRenewRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new EnableDomainAutoRenewRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(enableDomainAutoRenewRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new EnableDomainAutoRenewResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation sets the transfer lock on the domain (specifically the clientTransferProhibited * status) to prevent domain transfers. Successful submission returns an operation ID that you can use to track the * progress and completion of the action. If the request is not completed successfully, the domain registrant will * be notified by email. *

* * @param enableDomainTransferLockRequest * The EnableDomainTransferLock request includes the following element. * @return Result of the EnableDomainTransferLock operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws DuplicateRequestException * The request is already in progress for the domain. * @throws TLDRulesViolationException * The top-level domain does not support this operation. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.EnableDomainTransferLock */ @Override public EnableDomainTransferLockResult enableDomainTransferLock(EnableDomainTransferLockRequest enableDomainTransferLockRequest) { ExecutionContext executionContext = createExecutionContext(enableDomainTransferLockRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new EnableDomainTransferLockRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(enableDomainTransferLockRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new EnableDomainTransferLockResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* For operations that require confirmation that the email address for the registrant contact is valid, such as * registering a new domain, this operation returns information about whether the registrant contact has responded. *

*

* If you want us to resend the email, use the ResendContactReachabilityEmail operation. *

* * @param getContactReachabilityStatusRequest * @return Result of the GetContactReachabilityStatus operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.GetContactReachabilityStatus */ @Override public GetContactReachabilityStatusResult getContactReachabilityStatus(GetContactReachabilityStatusRequest getContactReachabilityStatusRequest) { ExecutionContext executionContext = createExecutionContext(getContactReachabilityStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetContactReachabilityStatusRequestMarshaller(protocolFactory).marshall(super .beforeMarshalling(getContactReachabilityStatusRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetContactReachabilityStatusResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation returns detailed information about the domain. The domain's contact information is also returned * as part of the output. *

* * @param getDomainDetailRequest * The GetDomainDetail request includes the following element. * @return Result of the GetDomainDetail operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.GetDomainDetail */ @Override public GetDomainDetailResult getDomainDetail(GetDomainDetailRequest getDomainDetailRequest) { ExecutionContext executionContext = createExecutionContext(getDomainDetailRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetDomainDetailRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(getDomainDetailRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetDomainDetailResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The GetDomainSuggestions operation returns a list of suggested domain names given a string, which can either be a * domain name or simply a word or phrase (without spaces). *

*

* Parameters: *

    *
  • DomainName (string): The basis for your domain suggestion search, a string with (or without) top-level domain * specified.
  • *
  • SuggestionCount (int): The number of domain suggestions to be returned, maximum 50, minimum 1.
  • *
  • OnlyAvailable (bool): If true, availability check will be performed on suggestion results, and only available * domains will be returned. If false, suggestions will be returned without checking whether the domain is actually * available, and caller will have to call checkDomainAvailability for each suggestion to determine availability for * registration.
  • *
*

* * @param getDomainSuggestionsRequest * @return Result of the GetDomainSuggestions operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.GetDomainSuggestions */ @Override public GetDomainSuggestionsResult getDomainSuggestions(GetDomainSuggestionsRequest getDomainSuggestionsRequest) { ExecutionContext executionContext = createExecutionContext(getDomainSuggestionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetDomainSuggestionsRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(getDomainSuggestionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetDomainSuggestionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation returns the current status of an operation that is not completed. *

* * @param getOperationDetailRequest * The GetOperationDetail request includes the following element. * @return Result of the GetOperationDetail operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @sample AmazonRoute53Domains.GetOperationDetail */ @Override public GetOperationDetailResult getOperationDetail(GetOperationDetailRequest getOperationDetailRequest) { ExecutionContext executionContext = createExecutionContext(getOperationDetailRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetOperationDetailRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(getOperationDetailRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetOperationDetailResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation returns all the domain names registered with Amazon Route 53 for the current AWS account. *

* * @param listDomainsRequest * The ListDomains request includes the following elements. * @return Result of the ListDomains operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @sample AmazonRoute53Domains.ListDomains */ @Override public ListDomainsResult listDomains(ListDomainsRequest listDomainsRequest) { ExecutionContext executionContext = createExecutionContext(listDomainsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListDomainsRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(listDomainsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListDomainsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ListDomainsResult listDomains() { return listDomains(new ListDomainsRequest()); } /** *

* This operation returns the operation IDs of operations that are not yet complete. *

* * @param listOperationsRequest * The ListOperations request includes the following elements. * @return Result of the ListOperations operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @sample AmazonRoute53Domains.ListOperations */ @Override public ListOperationsResult listOperations(ListOperationsRequest listOperationsRequest) { ExecutionContext executionContext = createExecutionContext(listOperationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListOperationsRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(listOperationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListOperationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ListOperationsResult listOperations() { return listOperations(new ListOperationsRequest()); } /** *

* This operation returns all of the tags that are associated with the specified domain. *

*

* All tag operations are eventually consistent; subsequent operations may not immediately represent all issued * operations. *

* * @param listTagsForDomainRequest * The ListTagsForDomainRequest includes the following elements. * @return Result of the ListTagsForDomain operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.ListTagsForDomain */ @Override public ListTagsForDomainResult listTagsForDomain(ListTagsForDomainRequest listTagsForDomainRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForDomainRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTagsForDomainRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(listTagsForDomainRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListTagsForDomainResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation registers a domain. Domains are registered by the AWS registrar partner, Gandi. For some top-level * domains (TLDs), this operation requires extra parameters. *

*

* When you register a domain, Amazon Route 53 does the following: *

*
    *
  • Creates a Amazon Route 53 hosted zone that has the same name as the domain. Amazon Route 53 assigns four name * servers to your hosted zone and automatically updates your domain registration with the names of these name * servers.
  • *
  • Enables autorenew, so your domain registration will renew automatically each year. We'll notify you in * advance of the renewal date so you can choose whether to renew the registration.
  • *
  • Optionally enables privacy protection, so WHOIS queries return contact information for our registrar partner, * Gandi, instead of the information you entered for registrant, admin, and tech contacts.
  • *
  • If registration is successful, returns an operation ID that you can use to track the progress and completion * of the action. If the request is not completed successfully, the domain registrant is notified by email.
  • *
  • Charges your AWS account an amount based on the top-level domain. For more information, see Amazon Route 53 Pricing.
  • *
* * @param registerDomainRequest * The RegisterDomain request includes the following elements. * @return Result of the RegisterDomain operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @throws DuplicateRequestException * The request is already in progress for the domain. * @throws TLDRulesViolationException * The top-level domain does not support this operation. * @throws DomainLimitExceededException * The number of domains has exceeded the allowed threshold for the account. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @sample AmazonRoute53Domains.RegisterDomain */ @Override public RegisterDomainResult registerDomain(RegisterDomainRequest registerDomainRequest) { ExecutionContext executionContext = createExecutionContext(registerDomainRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RegisterDomainRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(registerDomainRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new RegisterDomainResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation renews a domain for the specified number of years. The cost of renewing your domain is billed to * your AWS account. *

*

* We recommend that you renew your domain several weeks before the expiration date. Some TLD registries delete * domains before the expiration date if you haven't renewed far enough in advance. For more information about * renewing domain registration, see Renewing * Registration for a Domain in the Amazon Route 53 documentation. *

* * @param renewDomainRequest * A RenewDomain request includes the number of years that you want to renew for and the current * expiration year. * @return Result of the RenewDomain operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @throws DuplicateRequestException * The request is already in progress for the domain. * @throws TLDRulesViolationException * The top-level domain does not support this operation. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @sample AmazonRoute53Domains.RenewDomain */ @Override public RenewDomainResult renewDomain(RenewDomainRequest renewDomainRequest) { ExecutionContext executionContext = createExecutionContext(renewDomainRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RenewDomainRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(renewDomainRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new RenewDomainResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* For operations that require confirmation that the email address for the registrant contact is valid, such as * registering a new domain, this operation resends the confirmation email to the current email address for the * registrant contact. *

* * @param resendContactReachabilityEmailRequest * @return Result of the ResendContactReachabilityEmail operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.ResendContactReachabilityEmail */ @Override public ResendContactReachabilityEmailResult resendContactReachabilityEmail(ResendContactReachabilityEmailRequest resendContactReachabilityEmailRequest) { ExecutionContext executionContext = createExecutionContext(resendContactReachabilityEmailRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ResendContactReachabilityEmailRequestMarshaller(protocolFactory).marshall(super .beforeMarshalling(resendContactReachabilityEmailRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ResendContactReachabilityEmailResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation returns the AuthCode for the domain. To transfer a domain to another registrar, you provide this * value to the new registrar. *

* * @param retrieveDomainAuthCodeRequest * The RetrieveDomainAuthCode request includes the following element. * @return Result of the RetrieveDomainAuthCode operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.RetrieveDomainAuthCode */ @Override public RetrieveDomainAuthCodeResult retrieveDomainAuthCode(RetrieveDomainAuthCodeRequest retrieveDomainAuthCodeRequest) { ExecutionContext executionContext = createExecutionContext(retrieveDomainAuthCodeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RetrieveDomainAuthCodeRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(retrieveDomainAuthCodeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new RetrieveDomainAuthCodeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation transfers a domain from another registrar to Amazon Route 53. When the transfer is complete, the * domain is registered with the AWS registrar partner, Gandi. *

*

* For transfer requirements, a detailed procedure, and information about viewing the status of a domain transfer, * see Transferring * Registration for a Domain to Amazon Route 53 in the Amazon Route 53 Developer Guide. *

*

* If the registrar for your domain is also the DNS service provider for the domain, we highly recommend that you * consider transferring your DNS service to Amazon Route 53 or to another DNS service provider before you transfer * your registration. Some registrars provide free DNS service when you purchase a domain registration. When you * transfer the registration, the previous registrar will not renew your domain registration and could end your DNS * service at any time. *

* Caution! If the registrar for your domain is also the DNS service provider for the domain and you don't * transfer DNS service to another provider, your website, email, and the web applications associated with the * domain might become unavailable. *

* If the transfer is successful, this method returns an operation ID that you can use to track the progress and * completion of the action. If the transfer doesn't complete successfully, the domain registrant will be notified * by email. *

* * @param transferDomainRequest * The TransferDomain request includes the following elements. * @return Result of the TransferDomain operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @throws DuplicateRequestException * The request is already in progress for the domain. * @throws TLDRulesViolationException * The top-level domain does not support this operation. * @throws DomainLimitExceededException * The number of domains has exceeded the allowed threshold for the account. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @sample AmazonRoute53Domains.TransferDomain */ @Override public TransferDomainResult transferDomain(TransferDomainRequest transferDomainRequest) { ExecutionContext executionContext = createExecutionContext(transferDomainRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new TransferDomainRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(transferDomainRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TransferDomainResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation updates the contact information for a particular domain. Information for at least one contact * (registrant, administrator, or technical) must be supplied for update. *

*

* If the update is successful, this method returns an operation ID that you can use to track the progress and * completion of the action. If the request is not completed successfully, the domain registrant will be notified by * email. *

* * @param updateDomainContactRequest * The UpdateDomainContact request includes the following elements. * @return Result of the UpdateDomainContact operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws DuplicateRequestException * The request is already in progress for the domain. * @throws TLDRulesViolationException * The top-level domain does not support this operation. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.UpdateDomainContact */ @Override public UpdateDomainContactResult updateDomainContact(UpdateDomainContactRequest updateDomainContactRequest) { ExecutionContext executionContext = createExecutionContext(updateDomainContactRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateDomainContactRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateDomainContactRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateDomainContactResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation updates the specified domain contact's privacy setting. When the privacy option is enabled, * personal information such as postal or email address is hidden from the results of a public WHOIS query. The * privacy services are provided by the AWS registrar, Gandi. For more information, see the Gandi privacy features. *

*

* This operation only affects the privacy of the specified contact type (registrant, administrator, or tech). * Successful acceptance returns an operation ID that you can use with GetOperationDetail to track the progress and * completion of the action. If the request is not completed successfully, the domain registrant will be notified by * email. *

* * @param updateDomainContactPrivacyRequest * The UpdateDomainContactPrivacy request includes the following elements. * @return Result of the UpdateDomainContactPrivacy operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws DuplicateRequestException * The request is already in progress for the domain. * @throws TLDRulesViolationException * The top-level domain does not support this operation. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.UpdateDomainContactPrivacy */ @Override public UpdateDomainContactPrivacyResult updateDomainContactPrivacy(UpdateDomainContactPrivacyRequest updateDomainContactPrivacyRequest) { ExecutionContext executionContext = createExecutionContext(updateDomainContactPrivacyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateDomainContactPrivacyRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateDomainContactPrivacyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateDomainContactPrivacyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation replaces the current set of name servers for the domain with the specified set of name servers. If * you use Amazon Route 53 as your DNS service, specify the four name servers in the delegation set for the hosted * zone for the domain. *

*

* If successful, this operation returns an operation ID that you can use to track the progress and completion of * the action. If the request is not completed successfully, the domain registrant will be notified by email. *

* * @param updateDomainNameserversRequest * The UpdateDomainNameserver request includes the following elements. * @return Result of the UpdateDomainNameservers operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws DuplicateRequestException * The request is already in progress for the domain. * @throws TLDRulesViolationException * The top-level domain does not support this operation. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.UpdateDomainNameservers */ @Override public UpdateDomainNameserversResult updateDomainNameservers(UpdateDomainNameserversRequest updateDomainNameserversRequest) { ExecutionContext executionContext = createExecutionContext(updateDomainNameserversRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateDomainNameserversRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateDomainNameserversRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateDomainNameserversResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation adds or updates tags for a specified domain. *

*

* All tag operations are eventually consistent; subsequent operations may not immediately represent all issued * operations. *

* * @param updateTagsForDomainRequest * The UpdateTagsForDomainRequest includes the following elements. * @return Result of the UpdateTagsForDomain operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @throws OperationLimitExceededException * The number of operations or jobs running exceeded the allowed threshold for the account. * @throws UnsupportedTLDException * Amazon Route 53 does not support this top-level domain. * @sample AmazonRoute53Domains.UpdateTagsForDomain */ @Override public UpdateTagsForDomainResult updateTagsForDomain(UpdateTagsForDomainRequest updateTagsForDomainRequest) { ExecutionContext executionContext = createExecutionContext(updateTagsForDomainRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateTagsForDomainRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateTagsForDomainRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateTagsForDomainResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* This operation returns all the domain-related billing records for the current AWS account for a specified period *

* * @param viewBillingRequest * The ViewBilling request includes the following elements. * @return Result of the ViewBilling operation returned by the service. * @throws InvalidInputException * The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an * operation that is already completed. For a domain name, it may not be a valid domain name or belong to * the requester account. * @sample AmazonRoute53Domains.ViewBilling */ @Override public ViewBillingResult viewBilling(ViewBillingRequest viewBillingRequest) { ExecutionContext executionContext = createExecutionContext(viewBillingRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ViewBillingRequestMarshaller(protocolFactory).marshall(super.beforeMarshalling(viewBillingRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ViewBillingResultJsonUnmarshaller()); 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); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy