com.amazonaws.services.route53domains.AmazonRoute53DomainsClient Maven / Gradle / Ivy
/*
* Copyright 2019-2024 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 javax.annotation.Generated;
import org.apache.commons.logging.*;
import com.amazonaws.*;
import com.amazonaws.annotation.SdkInternalApi;
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.client.builder.AdvancedConfig;
import com.amazonaws.services.route53domains.AmazonRoute53DomainsClientBuilder;
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.
*
*
* Amazon Route 53 API actions let you register domain names and perform related operations.
*
*/
@ThreadSafe
@Generated("com.amazonaws:aws-java-sdk-code-generator")
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 AdvancedConfig advancedConfig;
private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory(
new JsonClientMetadata()
.withProtocolVersion("1.1")
.withSupportsCbor(false)
.withSupportsIon(false)
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("DuplicateRequest").withExceptionUnmarshaller(
com.amazonaws.services.route53domains.model.transform.DuplicateRequestExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("UnsupportedTLD").withExceptionUnmarshaller(
com.amazonaws.services.route53domains.model.transform.UnsupportedTLDExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("OperationLimitExceeded").withExceptionUnmarshaller(
com.amazonaws.services.route53domains.model.transform.OperationLimitExceededExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("DnssecLimitExceeded").withExceptionUnmarshaller(
com.amazonaws.services.route53domains.model.transform.DnssecLimitExceededExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("InvalidInput").withExceptionUnmarshaller(
com.amazonaws.services.route53domains.model.transform.InvalidInputExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("TLDRulesViolation").withExceptionUnmarshaller(
com.amazonaws.services.route53domains.model.transform.TLDRulesViolationExceptionUnmarshaller.getInstance()))
.addErrorMetadata(
new JsonErrorShapeMetadata().withErrorCode("DomainLimitExceeded").withExceptionUnmarshaller(
com.amazonaws.services.route53domains.model.transform.DomainLimitExceededExceptionUnmarshaller.getInstance()))
.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
* @deprecated use {@link AmazonRoute53DomainsClientBuilder#defaultClient()}
*/
@Deprecated
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
* @deprecated use {@link AmazonRoute53DomainsClientBuilder#withClientConfiguration(ClientConfiguration)}
*/
@Deprecated
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.
* @deprecated use {@link AmazonRoute53DomainsClientBuilder#withCredentials(AWSCredentialsProvider)} for example:
* {@code AmazonRoute53DomainsClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCredentials)).build();}
*/
@Deprecated
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.).
* @deprecated use {@link AmazonRoute53DomainsClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AmazonRoute53DomainsClientBuilder#withClientConfiguration(ClientConfiguration)}
*/
@Deprecated
public AmazonRoute53DomainsClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) {
super(clientConfiguration);
this.awsCredentialsProvider = new StaticCredentialsProvider(awsCredentials);
this.advancedConfig = AdvancedConfig.EMPTY;
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.
* @deprecated use {@link AmazonRoute53DomainsClientBuilder#withCredentials(AWSCredentialsProvider)}
*/
@Deprecated
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.).
* @deprecated use {@link AmazonRoute53DomainsClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AmazonRoute53DomainsClientBuilder#withClientConfiguration(ClientConfiguration)}
*/
@Deprecated
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
* @deprecated use {@link AmazonRoute53DomainsClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AmazonRoute53DomainsClientBuilder#withClientConfiguration(ClientConfiguration)} and
* {@link AmazonRoute53DomainsClientBuilder#withMetricsCollector(RequestMetricCollector)}
*/
@Deprecated
public AmazonRoute53DomainsClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration,
RequestMetricCollector requestMetricCollector) {
super(clientConfiguration, requestMetricCollector);
this.awsCredentialsProvider = awsCredentialsProvider;
this.advancedConfig = AdvancedConfig.EMPTY;
init();
}
public static AmazonRoute53DomainsClientBuilder builder() {
return AmazonRoute53DomainsClientBuilder.standard();
}
/**
* 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) {
this(clientParams, false);
}
/**
* 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, boolean endpointDiscoveryEnabled) {
super(clientParams);
this.awsCredentialsProvider = clientParams.getCredentialsProvider();
this.advancedConfig = clientParams.getAdvancedConfig();
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"));
requestHandler2s.addAll(chainFactory.getGlobalHandlers());
}
/**
*
* Accepts the transfer of a domain from another Amazon Web Services account to the currentAmazon Web Services
* account. You initiate a transfer between Amazon Web Services accounts using TransferDomainToAnotherAwsAccount.
*
*
* If you use the CLI command at accept-domain-transfer-from-another-aws-account, use JSON format as input instead of text because otherwise
* CLI will throw an error from domain transfer input that includes single quotes.
*
*
* Use either ListOperations
* or
* GetOperationDetail to determine whether the operation succeeded. GetOperationDetail provides additional information, for example,
* Domain Transfer from Aws Account 111122223333 has been cancelled
.
*
*
* @param acceptDomainTransferFromAnotherAwsAccountRequest
* The AcceptDomainTransferFromAnotherAwsAccount request includes the following elements.
* @return Result of the AcceptDomainTransferFromAnotherAwsAccount operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws OperationLimitExceededException
* The number of operations or jobs running exceeded the allowed threshold for the account.
* @throws DomainLimitExceededException
* The number of domains has exceeded the allowed threshold for the account.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @sample AmazonRoute53Domains.AcceptDomainTransferFromAnotherAwsAccount
* @see AWS API Documentation
*/
@Override
public AcceptDomainTransferFromAnotherAwsAccountResult acceptDomainTransferFromAnotherAwsAccount(AcceptDomainTransferFromAnotherAwsAccountRequest request) {
request = beforeClientExecution(request);
return executeAcceptDomainTransferFromAnotherAwsAccount(request);
}
@SdkInternalApi
final AcceptDomainTransferFromAnotherAwsAccountResult executeAcceptDomainTransferFromAnotherAwsAccount(
AcceptDomainTransferFromAnotherAwsAccountRequest acceptDomainTransferFromAnotherAwsAccountRequest) {
ExecutionContext executionContext = createExecutionContext(acceptDomainTransferFromAnotherAwsAccountRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AcceptDomainTransferFromAnotherAwsAccountRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(acceptDomainTransferFromAnotherAwsAccountRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AcceptDomainTransferFromAnotherAwsAccount");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new AcceptDomainTransferFromAnotherAwsAccountResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a delegation signer (DS) record in the registry zone for this domain name.
*
*
* Note that creating DS record at the registry impacts DNSSEC validation of your DNS records. This action may
* render your domain name unavailable on the internet if the steps are completed in the wrong order, or with
* incorrect timing. For more information about DNSSEC signing, see Configuring DNSSEC
* signing in the Route 53 developer guide.
*
*
* @param associateDelegationSignerToDomainRequest
* @return Result of the AssociateDelegationSignerToDomain operation returned by the service.
* @throws DuplicateRequestException
* The request is already in progress for the domain.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws OperationLimitExceededException
* The number of operations or jobs running exceeded the allowed threshold for the account.
* @throws TLDRulesViolationException
* The top-level domain does not support this operation.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @throws DnssecLimitExceededException
* This error is returned if you call AssociateDelegationSignerToDomain
when the specified
* domain has reached the maximum number of DS records. You can't add any additional DS records unless you
* delete an existing one first.
* @sample AmazonRoute53Domains.AssociateDelegationSignerToDomain
* @see AWS API Documentation
*/
@Override
public AssociateDelegationSignerToDomainResult associateDelegationSignerToDomain(AssociateDelegationSignerToDomainRequest request) {
request = beforeClientExecution(request);
return executeAssociateDelegationSignerToDomain(request);
}
@SdkInternalApi
final AssociateDelegationSignerToDomainResult executeAssociateDelegationSignerToDomain(
AssociateDelegationSignerToDomainRequest associateDelegationSignerToDomainRequest) {
ExecutionContext executionContext = createExecutionContext(associateDelegationSignerToDomainRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AssociateDelegationSignerToDomainRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(associateDelegationSignerToDomainRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AssociateDelegationSignerToDomain");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new AssociateDelegationSignerToDomainResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Cancels the transfer of a domain from the current Amazon Web Services account to another Amazon Web Services
* account. You initiate a transfer betweenAmazon Web Services accounts using TransferDomainToAnotherAwsAccount.
*
*
*
* You must cancel the transfer before the other Amazon Web Services account accepts the transfer using AcceptDomainTransferFromAnotherAwsAccount.
*
*
*
* Use either ListOperations
* or
* GetOperationDetail to determine whether the operation succeeded. GetOperationDetail provides additional information, for example,
* Domain Transfer from Aws Account 111122223333 has been cancelled
.
*
*
* @param cancelDomainTransferToAnotherAwsAccountRequest
* The CancelDomainTransferToAnotherAwsAccount request includes the following element.
* @return Result of the CancelDomainTransferToAnotherAwsAccount operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.CancelDomainTransferToAnotherAwsAccount
* @see AWS API Documentation
*/
@Override
public CancelDomainTransferToAnotherAwsAccountResult cancelDomainTransferToAnotherAwsAccount(CancelDomainTransferToAnotherAwsAccountRequest request) {
request = beforeClientExecution(request);
return executeCancelDomainTransferToAnotherAwsAccount(request);
}
@SdkInternalApi
final CancelDomainTransferToAnotherAwsAccountResult executeCancelDomainTransferToAnotherAwsAccount(
CancelDomainTransferToAnotherAwsAccountRequest cancelDomainTransferToAnotherAwsAccountRequest) {
ExecutionContext executionContext = createExecutionContext(cancelDomainTransferToAnotherAwsAccountRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CancelDomainTransferToAnotherAwsAccountRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(cancelDomainTransferToAnotherAwsAccountRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CancelDomainTransferToAnotherAwsAccount");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CancelDomainTransferToAnotherAwsAccountResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @sample AmazonRoute53Domains.CheckDomainAvailability
* @see AWS API Documentation
*/
@Override
public CheckDomainAvailabilityResult checkDomainAvailability(CheckDomainAvailabilityRequest request) {
request = beforeClientExecution(request);
return executeCheckDomainAvailability(request);
}
@SdkInternalApi
final CheckDomainAvailabilityResult executeCheckDomainAvailability(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 CheckDomainAvailabilityRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(checkDomainAvailabilityRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CheckDomainAvailability");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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);
}
}
/**
*
* Checks whether a domain name can be transferred to Amazon Route 53.
*
*
* @param checkDomainTransferabilityRequest
* The CheckDomainTransferability request contains the following elements.
* @return Result of the CheckDomainTransferability operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @sample AmazonRoute53Domains.CheckDomainTransferability
* @see AWS API Documentation
*/
@Override
public CheckDomainTransferabilityResult checkDomainTransferability(CheckDomainTransferabilityRequest request) {
request = beforeClientExecution(request);
return executeCheckDomainTransferability(request);
}
@SdkInternalApi
final CheckDomainTransferabilityResult executeCheckDomainTransferability(CheckDomainTransferabilityRequest checkDomainTransferabilityRequest) {
ExecutionContext executionContext = createExecutionContext(checkDomainTransferabilityRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CheckDomainTransferabilityRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(checkDomainTransferabilityRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CheckDomainTransferability");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CheckDomainTransferabilityResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* This operation deletes the specified domain. This action is permanent. For more information, see Deleting a domain name
* registration.
*
*
* To transfer the domain registration to another registrar, use the transfer process that’s provided by the
* registrar to which you want to transfer the registration. Otherwise, the following apply:
*
*
* -
*
* You can’t get a refund for the cost of a deleted domain registration.
*
*
* -
*
* The registry for the top-level domain might hold the domain name for a brief time before releasing it for other
* users to register (varies by registry).
*
*
* -
*
* When the registration has been deleted, we'll send you a confirmation to the registrant contact. The email will
* come from [email protected]
or [email protected]
.
*
*
*
*
* @param deleteDomainRequest
* @return Result of the DeleteDomain operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws DuplicateRequestException
* The request is already in progress for the domain.
* @throws TLDRulesViolationException
* The top-level domain does not support this operation.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @sample AmazonRoute53Domains.DeleteDomain
* @see AWS
* API Documentation
*/
@Override
public DeleteDomainResult deleteDomain(DeleteDomainRequest request) {
request = beforeClientExecution(request);
return executeDeleteDomain(request);
}
@SdkInternalApi
final DeleteDomainResult executeDeleteDomain(DeleteDomainRequest deleteDomainRequest) {
ExecutionContext executionContext = createExecutionContext(deleteDomainRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteDomainRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteDomainRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteDomain");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteDomainResultJsonUnmarshaller());
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 might 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.DeleteTagsForDomain
* @see AWS API Documentation
*/
@Override
public DeleteTagsForDomainResult deleteTagsForDomain(DeleteTagsForDomainRequest request) {
request = beforeClientExecution(request);
return executeDeleteTagsForDomain(request);
}
@SdkInternalApi
final DeleteTagsForDomainResult executeDeleteTagsForDomain(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 DeleteTagsForDomainRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteTagsForDomainRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteTagsForDomain");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @sample AmazonRoute53Domains.DisableDomainAutoRenew
* @see AWS API Documentation
*/
@Override
public DisableDomainAutoRenewResult disableDomainAutoRenew(DisableDomainAutoRenewRequest request) {
request = beforeClientExecution(request);
return executeDisableDomainAutoRenew(request);
}
@SdkInternalApi
final DisableDomainAutoRenewResult executeDisableDomainAutoRenew(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 DisableDomainAutoRenewRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(disableDomainAutoRenewRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisableDomainAutoRenew");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.DisableDomainTransferLock
* @see AWS API Documentation
*/
@Override
public DisableDomainTransferLockResult disableDomainTransferLock(DisableDomainTransferLockRequest request) {
request = beforeClientExecution(request);
return executeDisableDomainTransferLock(request);
}
@SdkInternalApi
final DisableDomainTransferLockResult executeDisableDomainTransferLock(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 DisableDomainTransferLockRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(disableDomainTransferLockRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisableDomainTransferLock");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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);
}
}
/**
*
* Deletes a delegation signer (DS) record in the registry zone for this domain name.
*
*
* @param disassociateDelegationSignerFromDomainRequest
* @return Result of the DisassociateDelegationSignerFromDomain operation returned by the service.
* @throws DuplicateRequestException
* The request is already in progress for the domain.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws OperationLimitExceededException
* The number of operations or jobs running exceeded the allowed threshold for the account.
* @throws TLDRulesViolationException
* The top-level domain does not support this operation.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @sample AmazonRoute53Domains.DisassociateDelegationSignerFromDomain
* @see AWS API Documentation
*/
@Override
public DisassociateDelegationSignerFromDomainResult disassociateDelegationSignerFromDomain(DisassociateDelegationSignerFromDomainRequest request) {
request = beforeClientExecution(request);
return executeDisassociateDelegationSignerFromDomain(request);
}
@SdkInternalApi
final DisassociateDelegationSignerFromDomainResult executeDisassociateDelegationSignerFromDomain(
DisassociateDelegationSignerFromDomainRequest disassociateDelegationSignerFromDomainRequest) {
ExecutionContext executionContext = createExecutionContext(disassociateDelegationSignerFromDomainRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DisassociateDelegationSignerFromDomainRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(disassociateDelegationSignerFromDomainRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisassociateDelegationSignerFromDomain");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DisassociateDelegationSignerFromDomainResultJsonUnmarshaller());
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 Amazon Web Services
* account.
*
*
* The period during which you can renew a domain name varies by TLD. For a list of TLDs and their renewal policies,
* see Domains That You
* Can Register with Amazon Route 53 in the Amazon Route 53 Developer Guide. Route 53 requires that you
* renew before the end of the renewal period 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @throws TLDRulesViolationException
* The top-level domain does not support this operation.
* @sample AmazonRoute53Domains.EnableDomainAutoRenew
* @see AWS API Documentation
*/
@Override
public EnableDomainAutoRenewResult enableDomainAutoRenew(EnableDomainAutoRenewRequest request) {
request = beforeClientExecution(request);
return executeEnableDomainAutoRenew(request);
}
@SdkInternalApi
final EnableDomainAutoRenewResult executeEnableDomainAutoRenew(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 EnableDomainAutoRenewRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(enableDomainAutoRenewRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "EnableDomainAutoRenew");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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
* A request to set the transfer lock for the specified domain.
* @return Result of the EnableDomainTransferLock operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.EnableDomainTransferLock
* @see AWS API Documentation
*/
@Override
public EnableDomainTransferLockResult enableDomainTransferLock(EnableDomainTransferLockRequest request) {
request = beforeClientExecution(request);
return executeEnableDomainTransferLock(request);
}
@SdkInternalApi
final EnableDomainTransferLockResult executeEnableDomainTransferLock(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 EnableDomainTransferLockRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(enableDomainTransferLockRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "EnableDomainTransferLock");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.GetContactReachabilityStatus
* @see AWS API Documentation
*/
@Override
public GetContactReachabilityStatusResult getContactReachabilityStatus(GetContactReachabilityStatusRequest request) {
request = beforeClientExecution(request);
return executeGetContactReachabilityStatus(request);
}
@SdkInternalApi
final GetContactReachabilityStatusResult executeGetContactReachabilityStatus(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 GetContactReachabilityStatusRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(getContactReachabilityStatusRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetContactReachabilityStatus");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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 a specified domain that is associated with the current Amazon
* Web Services account. Contact information for the domain 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @sample AmazonRoute53Domains.GetDomainDetail
* @see AWS
* API Documentation
*/
@Override
public GetDomainDetailResult getDomainDetail(GetDomainDetailRequest request) {
request = beforeClientExecution(request);
return executeGetDomainDetail(request);
}
@SdkInternalApi
final GetDomainDetailResult executeGetDomainDetail(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 GetDomainDetailRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getDomainDetailRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetDomainDetail");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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.
*
*
* @param getDomainSuggestionsRequest
* @return Result of the GetDomainSuggestions operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @sample AmazonRoute53Domains.GetDomainSuggestions
* @see AWS API Documentation
*/
@Override
public GetDomainSuggestionsResult getDomainSuggestions(GetDomainSuggestionsRequest request) {
request = beforeClientExecution(request);
return executeGetDomainSuggestions(request);
}
@SdkInternalApi
final GetDomainSuggestionsResult executeGetDomainSuggestions(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 GetDomainSuggestionsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getDomainSuggestionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetDomainSuggestions");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @sample AmazonRoute53Domains.GetOperationDetail
* @see AWS API Documentation
*/
@Override
public GetOperationDetailResult getOperationDetail(GetOperationDetailRequest request) {
request = beforeClientExecution(request);
return executeGetOperationDetail(request);
}
@SdkInternalApi
final GetOperationDetailResult executeGetOperationDetail(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 GetOperationDetailRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getOperationDetailRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetOperationDetail");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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 Amazon Web Services
* account if no filtering conditions are used.
*
*
* @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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @sample AmazonRoute53Domains.ListDomains
* @see AWS API
* Documentation
*/
@Override
public ListDomainsResult listDomains(ListDomainsRequest request) {
request = beforeClientExecution(request);
return executeListDomains(request);
}
@SdkInternalApi
final ListDomainsResult executeListDomains(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 ListDomainsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listDomainsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListDomains");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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());
}
/**
*
* Returns information about all of the operations that return an operation ID and that have ever been performed on
* domains that were registered by the current account.
*
*
* This command runs only in the us-east-1 Region.
*
*
* @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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @sample AmazonRoute53Domains.ListOperations
* @see AWS
* API Documentation
*/
@Override
public ListOperationsResult listOperations(ListOperationsRequest request) {
request = beforeClientExecution(request);
return executeListOperations(request);
}
@SdkInternalApi
final ListOperationsResult executeListOperations(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 ListOperationsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listOperationsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListOperations");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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());
}
/**
*
* Lists the following prices for either all the TLDs supported by Route 53, or the specified TLD:
*
*
* -
*
* Registration
*
*
* -
*
* Transfer
*
*
* -
*
* Owner change
*
*
* -
*
* Domain renewal
*
*
* -
*
* Domain restoration
*
*
*
*
* @param listPricesRequest
* @return Result of the ListPrices operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @sample AmazonRoute53Domains.ListPrices
* @see AWS API
* Documentation
*/
@Override
public ListPricesResult listPrices(ListPricesRequest request) {
request = beforeClientExecution(request);
return executeListPrices(request);
}
@SdkInternalApi
final ListPricesResult executeListPrices(ListPricesRequest listPricesRequest) {
ExecutionContext executionContext = createExecutionContext(listPricesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListPricesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listPricesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListPrices");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata()
.withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListPricesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* This operation returns all of the tags that are associated with the specified domain.
*
*
* All tag operations are eventually consistent; subsequent operations might 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.ListTagsForDomain
* @see AWS API Documentation
*/
@Override
public ListTagsForDomainResult listTagsForDomain(ListTagsForDomainRequest request) {
request = beforeClientExecution(request);
return executeListTagsForDomain(request);
}
@SdkInternalApi
final ListTagsForDomainResult executeListTagsForDomain(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 ListTagsForDomainRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listTagsForDomainRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListTagsForDomain");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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);
}
}
/**
*
* Moves a domain from Amazon Web Services to another registrar.
*
*
* Supported actions:
*
*
* -
*
* Changes the IPS tags of a .uk domain, and pushes it to transit. Transit means that the domain is ready to be
* transferred to another registrar.
*
*
*
*
* @param pushDomainRequest
* @return Result of the PushDomain operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.PushDomain
* @see AWS API
* Documentation
*/
@Override
public PushDomainResult pushDomain(PushDomainRequest request) {
request = beforeClientExecution(request);
return executePushDomain(request);
}
@SdkInternalApi
final PushDomainResult executePushDomain(PushDomainRequest pushDomainRequest) {
ExecutionContext executionContext = createExecutionContext(pushDomainRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PushDomainRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(pushDomainRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PushDomain");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata()
.withPayloadJson(true).withHasStreamingSuccessResponse(false), new PushDomainResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* This operation registers a domain. For some top-level domains (TLDs), this operation requires extra parameters.
*
*
* When you register a domain, Amazon Route 53 does the following:
*
*
* -
*
* Creates a Route 53 hosted zone that has the same name as the domain. Route 53 assigns four name servers to your
* hosted zone and automatically updates your domain registration with the names of these name servers.
*
*
* -
*
* Enables auto renew, 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 for the registrar or the phrase
* "REDACTED FOR PRIVACY", or "On behalf of <domain name> owner." If you don't enable privacy protection,
* WHOIS queries return the information that you entered for the administrative, registrant, and technical contacts.
*
*
*
* While some domains may allow different privacy settings per contact, we recommend specifying the same privacy
* setting for all 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 Amazon Web Services 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @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
* @see AWS
* API Documentation
*/
@Override
public RegisterDomainResult registerDomain(RegisterDomainRequest request) {
request = beforeClientExecution(request);
return executeRegisterDomain(request);
}
@SdkInternalApi
final RegisterDomainResult executeRegisterDomain(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 RegisterDomainRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(registerDomainRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "RegisterDomain");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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);
}
}
/**
*
* Rejects the transfer of a domain from another Amazon Web Services account to the current Amazon Web Services
* account. You initiate a transfer betweenAmazon Web Services accounts using TransferDomainToAnotherAwsAccount.
*
*
* Use either ListOperations
* or
* GetOperationDetail to determine whether the operation succeeded. GetOperationDetail provides additional information, for example,
* Domain Transfer from Aws Account 111122223333 has been cancelled
.
*
*
* @param rejectDomainTransferFromAnotherAwsAccountRequest
* The RejectDomainTransferFromAnotherAwsAccount request includes the following element.
* @return Result of the RejectDomainTransferFromAnotherAwsAccount operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.RejectDomainTransferFromAnotherAwsAccount
* @see AWS API Documentation
*/
@Override
public RejectDomainTransferFromAnotherAwsAccountResult rejectDomainTransferFromAnotherAwsAccount(RejectDomainTransferFromAnotherAwsAccountRequest request) {
request = beforeClientExecution(request);
return executeRejectDomainTransferFromAnotherAwsAccount(request);
}
@SdkInternalApi
final RejectDomainTransferFromAnotherAwsAccountResult executeRejectDomainTransferFromAnotherAwsAccount(
RejectDomainTransferFromAnotherAwsAccountRequest rejectDomainTransferFromAnotherAwsAccountRequest) {
ExecutionContext executionContext = createExecutionContext(rejectDomainTransferFromAnotherAwsAccountRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RejectDomainTransferFromAnotherAwsAccountRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(rejectDomainTransferFromAnotherAwsAccountRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "RejectDomainTransferFromAnotherAwsAccount");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new RejectDomainTransferFromAnotherAwsAccountResultJsonUnmarshaller());
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 Amazon Web Services 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 Developer Guide.
*
*
* @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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @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
* @see AWS API
* Documentation
*/
@Override
public RenewDomainResult renewDomain(RenewDomainRequest request) {
request = beforeClientExecution(request);
return executeRenewDomain(request);
}
@SdkInternalApi
final RenewDomainResult executeRenewDomain(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 RenewDomainRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(renewDomainRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "RenewDomain");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.ResendContactReachabilityEmail
* @see AWS API Documentation
*/
@Override
public ResendContactReachabilityEmailResult resendContactReachabilityEmail(ResendContactReachabilityEmailRequest request) {
request = beforeClientExecution(request);
return executeResendContactReachabilityEmail(request);
}
@SdkInternalApi
final ResendContactReachabilityEmailResult executeResendContactReachabilityEmail(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 ResendContactReachabilityEmailRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(resendContactReachabilityEmailRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ResendContactReachabilityEmail");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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);
}
}
/**
*
* Resend the form of authorization email for this operation.
*
*
* @param resendOperationAuthorizationRequest
* @return Result of the ResendOperationAuthorization operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @sample AmazonRoute53Domains.ResendOperationAuthorization
* @see AWS API Documentation
*/
@Override
public ResendOperationAuthorizationResult resendOperationAuthorization(ResendOperationAuthorizationRequest request) {
request = beforeClientExecution(request);
return executeResendOperationAuthorization(request);
}
@SdkInternalApi
final ResendOperationAuthorizationResult executeResendOperationAuthorization(ResendOperationAuthorizationRequest resendOperationAuthorizationRequest) {
ExecutionContext executionContext = createExecutionContext(resendOperationAuthorizationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ResendOperationAuthorizationRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(resendOperationAuthorizationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ResendOperationAuthorization");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ResendOperationAuthorizationResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* This operation returns the authorization code for the domain. To transfer a domain to another registrar, you
* provide this value to the new registrar.
*
*
* @param retrieveDomainAuthCodeRequest
* A request for the authorization code for the specified domain. To transfer a domain to another registrar,
* you provide this value to the new registrar.
* @return Result of the RetrieveDomainAuthCode operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @sample AmazonRoute53Domains.RetrieveDomainAuthCode
* @see AWS API Documentation
*/
@Override
public RetrieveDomainAuthCodeResult retrieveDomainAuthCode(RetrieveDomainAuthCodeRequest request) {
request = beforeClientExecution(request);
return executeRetrieveDomainAuthCode(request);
}
@SdkInternalApi
final RetrieveDomainAuthCodeResult executeRetrieveDomainAuthCode(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 RetrieveDomainAuthCodeRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(retrieveDomainAuthCodeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "RetrieveDomainAuthCode");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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);
}
}
/**
*
* Transfers a domain from another registrar to Amazon Route 53.
*
*
* For more information about transferring domains, see the following topics:
*
*
* -
*
* For transfer requirements, a detailed procedure, and information about viewing the status of a domain that you're
* transferring to Route 53, see Transferring
* Registration for a Domain to Amazon Route 53 in the Amazon Route 53 Developer Guide.
*
*
* -
*
* For information about how to transfer a domain from one Amazon Web Services account to another, see TransferDomainToAnotherAwsAccount.
*
*
* -
*
* For information about how to transfer a domain to another domain registrar, see Transferring
* a Domain from Amazon Route 53 to Another Registrar in the Amazon Route 53 Developer Guide.
*
*
*
*
*
* During the transfer of any country code top-level domains (ccTLDs) to Route 53, except for .cc and .tv, updates
* to the owner contact are ignored and the owner contact data from the registry is used. You can update the owner
* contact after the transfer is complete. For more information, see UpdateDomainContact.
*
*
*
* If the registrar for your domain is also the DNS service provider for the domain, we highly recommend that you
* transfer your DNS service to 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.
*
*
*
* 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @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
* @see AWS
* API Documentation
*/
@Override
public TransferDomainResult transferDomain(TransferDomainRequest request) {
request = beforeClientExecution(request);
return executeTransferDomain(request);
}
@SdkInternalApi
final TransferDomainResult executeTransferDomain(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 TransferDomainRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(transferDomainRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "TransferDomain");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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);
}
}
/**
*
* Transfers a domain from the current Amazon Web Services account to another Amazon Web Services account. Note the
* following:
*
*
* -
*
* The Amazon Web Services account that you're transferring the domain to must accept the transfer. If the other
* account doesn't accept the transfer within 3 days, we cancel the transfer. See AcceptDomainTransferFromAnotherAwsAccount.
*
*
* -
*
* You can cancel the transfer before the other account accepts it. See CancelDomainTransferToAnotherAwsAccount.
*
*
* -
*
* The other account can reject the transfer. See RejectDomainTransferFromAnotherAwsAccount.
*
*
*
*
*
* When you transfer a domain from one Amazon Web Services account to another, Route 53 doesn't transfer the hosted
* zone that is associated with the domain. DNS resolution isn't affected if the domain and the hosted zone are
* owned by separate accounts, so transferring the hosted zone is optional. For information about transferring the
* hosted zone to another Amazon Web Services account, see Migrating a Hosted
* Zone to a Different Amazon Web Services Account in the Amazon Route 53 Developer Guide.
*
*
*
* Use either ListOperations
* or
* GetOperationDetail to determine whether the operation succeeded. GetOperationDetail provides additional information, for example,
* Domain Transfer from Aws Account 111122223333 has been cancelled
.
*
*
* @param transferDomainToAnotherAwsAccountRequest
* The TransferDomainToAnotherAwsAccount request includes the following elements.
* @return Result of the TransferDomainToAnotherAwsAccount operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @throws OperationLimitExceededException
* The number of operations or jobs running exceeded the allowed threshold for the account.
* @throws DuplicateRequestException
* The request is already in progress for the domain.
* @throws UnsupportedTLDException
* Amazon Route 53 does not support this top-level domain (TLD).
* @sample AmazonRoute53Domains.TransferDomainToAnotherAwsAccount
* @see AWS API Documentation
*/
@Override
public TransferDomainToAnotherAwsAccountResult transferDomainToAnotherAwsAccount(TransferDomainToAnotherAwsAccountRequest request) {
request = beforeClientExecution(request);
return executeTransferDomainToAnotherAwsAccount(request);
}
@SdkInternalApi
final TransferDomainToAnotherAwsAccountResult executeTransferDomainToAnotherAwsAccount(
TransferDomainToAnotherAwsAccountRequest transferDomainToAnotherAwsAccountRequest) {
ExecutionContext executionContext = createExecutionContext(transferDomainToAnotherAwsAccountRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new TransferDomainToAnotherAwsAccountRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(transferDomainToAnotherAwsAccountRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "TransferDomainToAnotherAwsAccount");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new TransferDomainToAnotherAwsAccountResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* This operation updates the contact information for a particular domain. You must specify information for at least
* one contact: registrant, administrator, or technical.
*
*
* If the update is successful, this method returns an operation ID that you can use to track the progress and
* completion of the operation. 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.UpdateDomainContact
* @see AWS API Documentation
*/
@Override
public UpdateDomainContactResult updateDomainContact(UpdateDomainContactRequest request) {
request = beforeClientExecution(request);
return executeUpdateDomainContact(request);
}
@SdkInternalApi
final UpdateDomainContactResult executeUpdateDomainContact(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 UpdateDomainContactRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateDomainContactRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateDomainContact");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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 privacy protection is enabled, your
* contact information is replaced with contact information for the registrar or with the phrase
* "REDACTED FOR PRIVACY", or "On behalf of <domain name> owner."
*
*
*
* While some domains may allow different privacy settings per contact, we recommend specifying the same privacy
* setting for all contacts.
*
*
*
* This operation affects only the contact information for the specified contact type (administrative, registrant,
* or technical). If the request succeeds, Amazon Route 53 returns an operation ID that you can use with GetOperationDetail to track the progress and completion of the action. If the request doesn't complete
* successfully, the domain registrant will be notified by email.
*
*
*
* By disabling the privacy service via API, you consent to the publication of the contact information provided for
* this domain via the public WHOIS database. You certify that you are the registrant of this domain name and have
* the authority to make this decision. You may withdraw your consent at any time by enabling privacy protection
* using either UpdateDomainContactPrivacy
or the Route 53 console. Enabling privacy protection removes
* the contact information provided for this domain from the WHOIS database. For more information on our privacy
* practices, see https://aws.amazon.com/privacy/.
*
*
*
* @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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.UpdateDomainContactPrivacy
* @see AWS API Documentation
*/
@Override
public UpdateDomainContactPrivacyResult updateDomainContactPrivacy(UpdateDomainContactPrivacyRequest request) {
request = beforeClientExecution(request);
return executeUpdateDomainContactPrivacy(request);
}
@SdkInternalApi
final UpdateDomainContactPrivacyResult executeUpdateDomainContactPrivacy(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 UpdateDomainContactPrivacyRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(updateDomainContactPrivacyRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateDomainContactPrivacy");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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
* 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.
* @return Result of the UpdateDomainNameservers operation returned by the service.
* @throws InvalidInputException
* The requested item is not acceptable. For example, for APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.UpdateDomainNameservers
* @see AWS API Documentation
*/
@Override
public UpdateDomainNameserversResult updateDomainNameservers(UpdateDomainNameserversRequest request) {
request = beforeClientExecution(request);
return executeUpdateDomainNameservers(request);
}
@SdkInternalApi
final UpdateDomainNameserversResult executeUpdateDomainNameservers(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 UpdateDomainNameserversRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(updateDomainNameserversRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateDomainNameservers");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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 might 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @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 (TLD).
* @sample AmazonRoute53Domains.UpdateTagsForDomain
* @see AWS API Documentation
*/
@Override
public UpdateTagsForDomainResult updateTagsForDomain(UpdateTagsForDomainRequest request) {
request = beforeClientExecution(request);
return executeUpdateTagsForDomain(request);
}
@SdkInternalApi
final UpdateTagsForDomainResult executeUpdateTagsForDomain(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 UpdateTagsForDomainRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateTagsForDomainRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateTagsForDomain");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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);
}
}
/**
*
* Returns all the domain-related billing records for the current Amazon Web Services 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 APIs that accept a domain name, the request might
* specify a domain name that doesn't belong to the account that submitted the request. For
* AcceptDomainTransferFromAnotherAwsAccount
, the password might be invalid.
* @sample AmazonRoute53Domains.ViewBilling
* @see AWS API
* Documentation
*/
@Override
public ViewBillingResult viewBilling(ViewBillingRequest request) {
request = beforeClientExecution(request);
return executeViewBilling(request);
}
@SdkInternalApi
final ViewBillingResult executeViewBilling(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 ViewBillingRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(viewBillingRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route 53 Domains");
request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ViewBilling");
request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
} 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) {
return invoke(request, responseHandler, executionContext, null, null);
}
/**
* Normal invoke with authentication. Credentials are required and may be overriden at the request level.
**/
private Response invoke(Request request, HttpResponseHandler> responseHandler,
ExecutionContext executionContext, URI cachedEndpoint, URI uriFromEndpointTrait) {
executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider));
return doInvoke(request, responseHandler, executionContext, cachedEndpoint, uriFromEndpointTrait);
}
/**
* 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, null, null);
}
/**
* 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, URI discoveredEndpoint, URI uriFromEndpointTrait) {
if (discoveredEndpoint != null) {
request.setEndpoint(discoveredEndpoint);
request.getOriginalRequest().getRequestClientOptions().appendUserAgent("endpoint-discovery");
} else if (uriFromEndpointTrait != null) {
request.setEndpoint(uriFromEndpointTrait);
} else {
request.setEndpoint(endpoint);
}
request.setTimeOffset(timeOffset);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata());
return client.execute(request, responseHandler, errorResponseHandler, executionContext);
}
@com.amazonaws.annotation.SdkInternalApi
static com.amazonaws.protocol.json.SdkJsonProtocolFactory getProtocolFactory() {
return protocolFactory;
}
@Override
public void shutdown() {
super.shutdown();
}
}