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

software.amazon.awssdk.services.route53.DefaultRoute53Client Maven / Gradle / Ivy

Go to download

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

There is a newer version: 2.28.4
Show newest version
/*
 * Copyright 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 software.amazon.awssdk.services.route53;

import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.awscore.internal.AwsProtocolMetadata;
import software.amazon.awssdk.awscore.internal.AwsServiceProtocol;
import software.amazon.awssdk.awscore.retry.AwsRetryStrategy;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
import software.amazon.awssdk.core.Response;
import software.amazon.awssdk.core.SdkPlugin;
import software.amazon.awssdk.core.SdkRequest;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientOption;
import software.amazon.awssdk.core.client.handler.ClientExecutionParams;
import software.amazon.awssdk.core.client.handler.SyncClientHandler;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.metrics.CoreMetric;
import software.amazon.awssdk.core.retry.RetryMode;
import software.amazon.awssdk.metrics.MetricCollector;
import software.amazon.awssdk.metrics.MetricPublisher;
import software.amazon.awssdk.metrics.NoOpMetricCollector;
import software.amazon.awssdk.protocols.core.ExceptionMetadata;
import software.amazon.awssdk.protocols.xml.AwsXmlProtocolFactory;
import software.amazon.awssdk.protocols.xml.XmlOperationMetadata;
import software.amazon.awssdk.retries.api.RetryStrategy;
import software.amazon.awssdk.services.route53.internal.Route53ServiceClientConfigurationBuilder;
import software.amazon.awssdk.services.route53.model.ActivateKeySigningKeyRequest;
import software.amazon.awssdk.services.route53.model.ActivateKeySigningKeyResponse;
import software.amazon.awssdk.services.route53.model.AssociateVpcWithHostedZoneRequest;
import software.amazon.awssdk.services.route53.model.AssociateVpcWithHostedZoneResponse;
import software.amazon.awssdk.services.route53.model.ChangeCidrCollectionRequest;
import software.amazon.awssdk.services.route53.model.ChangeCidrCollectionResponse;
import software.amazon.awssdk.services.route53.model.ChangeResourceRecordSetsRequest;
import software.amazon.awssdk.services.route53.model.ChangeResourceRecordSetsResponse;
import software.amazon.awssdk.services.route53.model.ChangeTagsForResourceRequest;
import software.amazon.awssdk.services.route53.model.ChangeTagsForResourceResponse;
import software.amazon.awssdk.services.route53.model.CidrBlockInUseException;
import software.amazon.awssdk.services.route53.model.CidrCollectionAlreadyExistsException;
import software.amazon.awssdk.services.route53.model.CidrCollectionInUseException;
import software.amazon.awssdk.services.route53.model.CidrCollectionVersionMismatchException;
import software.amazon.awssdk.services.route53.model.ConcurrentModificationException;
import software.amazon.awssdk.services.route53.model.ConflictingDomainExistsException;
import software.amazon.awssdk.services.route53.model.ConflictingTypesException;
import software.amazon.awssdk.services.route53.model.CreateCidrCollectionRequest;
import software.amazon.awssdk.services.route53.model.CreateCidrCollectionResponse;
import software.amazon.awssdk.services.route53.model.CreateHealthCheckRequest;
import software.amazon.awssdk.services.route53.model.CreateHealthCheckResponse;
import software.amazon.awssdk.services.route53.model.CreateHostedZoneRequest;
import software.amazon.awssdk.services.route53.model.CreateHostedZoneResponse;
import software.amazon.awssdk.services.route53.model.CreateKeySigningKeyRequest;
import software.amazon.awssdk.services.route53.model.CreateKeySigningKeyResponse;
import software.amazon.awssdk.services.route53.model.CreateQueryLoggingConfigRequest;
import software.amazon.awssdk.services.route53.model.CreateQueryLoggingConfigResponse;
import software.amazon.awssdk.services.route53.model.CreateReusableDelegationSetRequest;
import software.amazon.awssdk.services.route53.model.CreateReusableDelegationSetResponse;
import software.amazon.awssdk.services.route53.model.CreateTrafficPolicyInstanceRequest;
import software.amazon.awssdk.services.route53.model.CreateTrafficPolicyInstanceResponse;
import software.amazon.awssdk.services.route53.model.CreateTrafficPolicyRequest;
import software.amazon.awssdk.services.route53.model.CreateTrafficPolicyResponse;
import software.amazon.awssdk.services.route53.model.CreateTrafficPolicyVersionRequest;
import software.amazon.awssdk.services.route53.model.CreateTrafficPolicyVersionResponse;
import software.amazon.awssdk.services.route53.model.CreateVpcAssociationAuthorizationRequest;
import software.amazon.awssdk.services.route53.model.CreateVpcAssociationAuthorizationResponse;
import software.amazon.awssdk.services.route53.model.DeactivateKeySigningKeyRequest;
import software.amazon.awssdk.services.route53.model.DeactivateKeySigningKeyResponse;
import software.amazon.awssdk.services.route53.model.DelegationSetAlreadyCreatedException;
import software.amazon.awssdk.services.route53.model.DelegationSetAlreadyReusableException;
import software.amazon.awssdk.services.route53.model.DelegationSetInUseException;
import software.amazon.awssdk.services.route53.model.DelegationSetNotAvailableException;
import software.amazon.awssdk.services.route53.model.DelegationSetNotReusableException;
import software.amazon.awssdk.services.route53.model.DeleteCidrCollectionRequest;
import software.amazon.awssdk.services.route53.model.DeleteCidrCollectionResponse;
import software.amazon.awssdk.services.route53.model.DeleteHealthCheckRequest;
import software.amazon.awssdk.services.route53.model.DeleteHealthCheckResponse;
import software.amazon.awssdk.services.route53.model.DeleteHostedZoneRequest;
import software.amazon.awssdk.services.route53.model.DeleteHostedZoneResponse;
import software.amazon.awssdk.services.route53.model.DeleteKeySigningKeyRequest;
import software.amazon.awssdk.services.route53.model.DeleteKeySigningKeyResponse;
import software.amazon.awssdk.services.route53.model.DeleteQueryLoggingConfigRequest;
import software.amazon.awssdk.services.route53.model.DeleteQueryLoggingConfigResponse;
import software.amazon.awssdk.services.route53.model.DeleteReusableDelegationSetRequest;
import software.amazon.awssdk.services.route53.model.DeleteReusableDelegationSetResponse;
import software.amazon.awssdk.services.route53.model.DeleteTrafficPolicyInstanceRequest;
import software.amazon.awssdk.services.route53.model.DeleteTrafficPolicyInstanceResponse;
import software.amazon.awssdk.services.route53.model.DeleteTrafficPolicyRequest;
import software.amazon.awssdk.services.route53.model.DeleteTrafficPolicyResponse;
import software.amazon.awssdk.services.route53.model.DeleteVpcAssociationAuthorizationRequest;
import software.amazon.awssdk.services.route53.model.DeleteVpcAssociationAuthorizationResponse;
import software.amazon.awssdk.services.route53.model.DisableHostedZoneDnssecRequest;
import software.amazon.awssdk.services.route53.model.DisableHostedZoneDnssecResponse;
import software.amazon.awssdk.services.route53.model.DisassociateVpcFromHostedZoneRequest;
import software.amazon.awssdk.services.route53.model.DisassociateVpcFromHostedZoneResponse;
import software.amazon.awssdk.services.route53.model.DnssecNotFoundException;
import software.amazon.awssdk.services.route53.model.EnableHostedZoneDnssecRequest;
import software.amazon.awssdk.services.route53.model.EnableHostedZoneDnssecResponse;
import software.amazon.awssdk.services.route53.model.GetAccountLimitRequest;
import software.amazon.awssdk.services.route53.model.GetAccountLimitResponse;
import software.amazon.awssdk.services.route53.model.GetChangeRequest;
import software.amazon.awssdk.services.route53.model.GetChangeResponse;
import software.amazon.awssdk.services.route53.model.GetCheckerIpRangesRequest;
import software.amazon.awssdk.services.route53.model.GetCheckerIpRangesResponse;
import software.amazon.awssdk.services.route53.model.GetDnssecRequest;
import software.amazon.awssdk.services.route53.model.GetDnssecResponse;
import software.amazon.awssdk.services.route53.model.GetGeoLocationRequest;
import software.amazon.awssdk.services.route53.model.GetGeoLocationResponse;
import software.amazon.awssdk.services.route53.model.GetHealthCheckCountRequest;
import software.amazon.awssdk.services.route53.model.GetHealthCheckCountResponse;
import software.amazon.awssdk.services.route53.model.GetHealthCheckLastFailureReasonRequest;
import software.amazon.awssdk.services.route53.model.GetHealthCheckLastFailureReasonResponse;
import software.amazon.awssdk.services.route53.model.GetHealthCheckRequest;
import software.amazon.awssdk.services.route53.model.GetHealthCheckResponse;
import software.amazon.awssdk.services.route53.model.GetHealthCheckStatusRequest;
import software.amazon.awssdk.services.route53.model.GetHealthCheckStatusResponse;
import software.amazon.awssdk.services.route53.model.GetHostedZoneCountRequest;
import software.amazon.awssdk.services.route53.model.GetHostedZoneCountResponse;
import software.amazon.awssdk.services.route53.model.GetHostedZoneLimitRequest;
import software.amazon.awssdk.services.route53.model.GetHostedZoneLimitResponse;
import software.amazon.awssdk.services.route53.model.GetHostedZoneRequest;
import software.amazon.awssdk.services.route53.model.GetHostedZoneResponse;
import software.amazon.awssdk.services.route53.model.GetQueryLoggingConfigRequest;
import software.amazon.awssdk.services.route53.model.GetQueryLoggingConfigResponse;
import software.amazon.awssdk.services.route53.model.GetReusableDelegationSetLimitRequest;
import software.amazon.awssdk.services.route53.model.GetReusableDelegationSetLimitResponse;
import software.amazon.awssdk.services.route53.model.GetReusableDelegationSetRequest;
import software.amazon.awssdk.services.route53.model.GetReusableDelegationSetResponse;
import software.amazon.awssdk.services.route53.model.GetTrafficPolicyInstanceCountRequest;
import software.amazon.awssdk.services.route53.model.GetTrafficPolicyInstanceCountResponse;
import software.amazon.awssdk.services.route53.model.GetTrafficPolicyInstanceRequest;
import software.amazon.awssdk.services.route53.model.GetTrafficPolicyInstanceResponse;
import software.amazon.awssdk.services.route53.model.GetTrafficPolicyRequest;
import software.amazon.awssdk.services.route53.model.GetTrafficPolicyResponse;
import software.amazon.awssdk.services.route53.model.HealthCheckAlreadyExistsException;
import software.amazon.awssdk.services.route53.model.HealthCheckVersionMismatchException;
import software.amazon.awssdk.services.route53.model.HostedZoneAlreadyExistsException;
import software.amazon.awssdk.services.route53.model.HostedZoneNotEmptyException;
import software.amazon.awssdk.services.route53.model.HostedZoneNotFoundException;
import software.amazon.awssdk.services.route53.model.HostedZoneNotPrivateException;
import software.amazon.awssdk.services.route53.model.HostedZonePartiallyDelegatedException;
import software.amazon.awssdk.services.route53.model.IncompatibleVersionException;
import software.amazon.awssdk.services.route53.model.InsufficientCloudWatchLogsResourcePolicyException;
import software.amazon.awssdk.services.route53.model.InvalidArgumentException;
import software.amazon.awssdk.services.route53.model.InvalidChangeBatchException;
import software.amazon.awssdk.services.route53.model.InvalidDomainNameException;
import software.amazon.awssdk.services.route53.model.InvalidInputException;
import software.amazon.awssdk.services.route53.model.InvalidKeySigningKeyNameException;
import software.amazon.awssdk.services.route53.model.InvalidKeySigningKeyStatusException;
import software.amazon.awssdk.services.route53.model.InvalidKmsArnException;
import software.amazon.awssdk.services.route53.model.InvalidPaginationTokenException;
import software.amazon.awssdk.services.route53.model.InvalidSigningStatusException;
import software.amazon.awssdk.services.route53.model.InvalidTrafficPolicyDocumentException;
import software.amazon.awssdk.services.route53.model.InvalidVpcIdException;
import software.amazon.awssdk.services.route53.model.KeySigningKeyAlreadyExistsException;
import software.amazon.awssdk.services.route53.model.KeySigningKeyInParentDsRecordException;
import software.amazon.awssdk.services.route53.model.KeySigningKeyInUseException;
import software.amazon.awssdk.services.route53.model.KeySigningKeyWithActiveStatusNotFoundException;
import software.amazon.awssdk.services.route53.model.LastVpcAssociationException;
import software.amazon.awssdk.services.route53.model.LimitsExceededException;
import software.amazon.awssdk.services.route53.model.ListCidrBlocksRequest;
import software.amazon.awssdk.services.route53.model.ListCidrBlocksResponse;
import software.amazon.awssdk.services.route53.model.ListCidrCollectionsRequest;
import software.amazon.awssdk.services.route53.model.ListCidrCollectionsResponse;
import software.amazon.awssdk.services.route53.model.ListCidrLocationsRequest;
import software.amazon.awssdk.services.route53.model.ListCidrLocationsResponse;
import software.amazon.awssdk.services.route53.model.ListGeoLocationsRequest;
import software.amazon.awssdk.services.route53.model.ListGeoLocationsResponse;
import software.amazon.awssdk.services.route53.model.ListHealthChecksRequest;
import software.amazon.awssdk.services.route53.model.ListHealthChecksResponse;
import software.amazon.awssdk.services.route53.model.ListHostedZonesByNameRequest;
import software.amazon.awssdk.services.route53.model.ListHostedZonesByNameResponse;
import software.amazon.awssdk.services.route53.model.ListHostedZonesByVpcRequest;
import software.amazon.awssdk.services.route53.model.ListHostedZonesByVpcResponse;
import software.amazon.awssdk.services.route53.model.ListHostedZonesRequest;
import software.amazon.awssdk.services.route53.model.ListHostedZonesResponse;
import software.amazon.awssdk.services.route53.model.ListQueryLoggingConfigsRequest;
import software.amazon.awssdk.services.route53.model.ListQueryLoggingConfigsResponse;
import software.amazon.awssdk.services.route53.model.ListResourceRecordSetsRequest;
import software.amazon.awssdk.services.route53.model.ListResourceRecordSetsResponse;
import software.amazon.awssdk.services.route53.model.ListReusableDelegationSetsRequest;
import software.amazon.awssdk.services.route53.model.ListReusableDelegationSetsResponse;
import software.amazon.awssdk.services.route53.model.ListTagsForResourceRequest;
import software.amazon.awssdk.services.route53.model.ListTagsForResourceResponse;
import software.amazon.awssdk.services.route53.model.ListTagsForResourcesRequest;
import software.amazon.awssdk.services.route53.model.ListTagsForResourcesResponse;
import software.amazon.awssdk.services.route53.model.ListTrafficPoliciesRequest;
import software.amazon.awssdk.services.route53.model.ListTrafficPoliciesResponse;
import software.amazon.awssdk.services.route53.model.ListTrafficPolicyInstancesByHostedZoneRequest;
import software.amazon.awssdk.services.route53.model.ListTrafficPolicyInstancesByHostedZoneResponse;
import software.amazon.awssdk.services.route53.model.ListTrafficPolicyInstancesByPolicyRequest;
import software.amazon.awssdk.services.route53.model.ListTrafficPolicyInstancesByPolicyResponse;
import software.amazon.awssdk.services.route53.model.ListTrafficPolicyInstancesRequest;
import software.amazon.awssdk.services.route53.model.ListTrafficPolicyInstancesResponse;
import software.amazon.awssdk.services.route53.model.ListTrafficPolicyVersionsRequest;
import software.amazon.awssdk.services.route53.model.ListTrafficPolicyVersionsResponse;
import software.amazon.awssdk.services.route53.model.ListVpcAssociationAuthorizationsRequest;
import software.amazon.awssdk.services.route53.model.ListVpcAssociationAuthorizationsResponse;
import software.amazon.awssdk.services.route53.model.NoSuchChangeException;
import software.amazon.awssdk.services.route53.model.NoSuchCidrCollectionException;
import software.amazon.awssdk.services.route53.model.NoSuchCidrLocationException;
import software.amazon.awssdk.services.route53.model.NoSuchCloudWatchLogsLogGroupException;
import software.amazon.awssdk.services.route53.model.NoSuchDelegationSetException;
import software.amazon.awssdk.services.route53.model.NoSuchGeoLocationException;
import software.amazon.awssdk.services.route53.model.NoSuchHealthCheckException;
import software.amazon.awssdk.services.route53.model.NoSuchHostedZoneException;
import software.amazon.awssdk.services.route53.model.NoSuchKeySigningKeyException;
import software.amazon.awssdk.services.route53.model.NoSuchQueryLoggingConfigException;
import software.amazon.awssdk.services.route53.model.NoSuchTrafficPolicyException;
import software.amazon.awssdk.services.route53.model.NoSuchTrafficPolicyInstanceException;
import software.amazon.awssdk.services.route53.model.NotAuthorizedException;
import software.amazon.awssdk.services.route53.model.PriorRequestNotCompleteException;
import software.amazon.awssdk.services.route53.model.PublicZoneVpcAssociationException;
import software.amazon.awssdk.services.route53.model.QueryLoggingConfigAlreadyExistsException;
import software.amazon.awssdk.services.route53.model.Route53Exception;
import software.amazon.awssdk.services.route53.model.TestDnsAnswerRequest;
import software.amazon.awssdk.services.route53.model.TestDnsAnswerResponse;
import software.amazon.awssdk.services.route53.model.ThrottlingException;
import software.amazon.awssdk.services.route53.model.TooManyHealthChecksException;
import software.amazon.awssdk.services.route53.model.TooManyHostedZonesException;
import software.amazon.awssdk.services.route53.model.TooManyKeySigningKeysException;
import software.amazon.awssdk.services.route53.model.TooManyTrafficPoliciesException;
import software.amazon.awssdk.services.route53.model.TooManyTrafficPolicyInstancesException;
import software.amazon.awssdk.services.route53.model.TooManyTrafficPolicyVersionsForCurrentPolicyException;
import software.amazon.awssdk.services.route53.model.TooManyVpcAssociationAuthorizationsException;
import software.amazon.awssdk.services.route53.model.TrafficPolicyAlreadyExistsException;
import software.amazon.awssdk.services.route53.model.TrafficPolicyInUseException;
import software.amazon.awssdk.services.route53.model.TrafficPolicyInstanceAlreadyExistsException;
import software.amazon.awssdk.services.route53.model.UpdateHealthCheckRequest;
import software.amazon.awssdk.services.route53.model.UpdateHealthCheckResponse;
import software.amazon.awssdk.services.route53.model.UpdateHostedZoneCommentRequest;
import software.amazon.awssdk.services.route53.model.UpdateHostedZoneCommentResponse;
import software.amazon.awssdk.services.route53.model.UpdateTrafficPolicyCommentRequest;
import software.amazon.awssdk.services.route53.model.UpdateTrafficPolicyCommentResponse;
import software.amazon.awssdk.services.route53.model.UpdateTrafficPolicyInstanceRequest;
import software.amazon.awssdk.services.route53.model.UpdateTrafficPolicyInstanceResponse;
import software.amazon.awssdk.services.route53.model.VpcAssociationAuthorizationNotFoundException;
import software.amazon.awssdk.services.route53.model.VpcAssociationNotFoundException;
import software.amazon.awssdk.services.route53.transform.ActivateKeySigningKeyRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.AssociateVpcWithHostedZoneRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ChangeCidrCollectionRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ChangeResourceRecordSetsRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ChangeTagsForResourceRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.CreateCidrCollectionRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.CreateHealthCheckRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.CreateHostedZoneRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.CreateKeySigningKeyRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.CreateQueryLoggingConfigRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.CreateReusableDelegationSetRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.CreateTrafficPolicyInstanceRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.CreateTrafficPolicyRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.CreateTrafficPolicyVersionRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.CreateVpcAssociationAuthorizationRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.DeactivateKeySigningKeyRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.DeleteCidrCollectionRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.DeleteHealthCheckRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.DeleteHostedZoneRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.DeleteKeySigningKeyRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.DeleteQueryLoggingConfigRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.DeleteReusableDelegationSetRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.DeleteTrafficPolicyInstanceRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.DeleteTrafficPolicyRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.DeleteVpcAssociationAuthorizationRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.DisableHostedZoneDnssecRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.DisassociateVpcFromHostedZoneRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.EnableHostedZoneDnssecRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetAccountLimitRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetChangeRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetCheckerIpRangesRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetDnssecRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetGeoLocationRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetHealthCheckCountRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetHealthCheckLastFailureReasonRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetHealthCheckRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetHealthCheckStatusRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetHostedZoneCountRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetHostedZoneLimitRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetHostedZoneRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetQueryLoggingConfigRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetReusableDelegationSetLimitRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetReusableDelegationSetRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetTrafficPolicyInstanceCountRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetTrafficPolicyInstanceRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.GetTrafficPolicyRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListCidrBlocksRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListCidrCollectionsRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListCidrLocationsRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListGeoLocationsRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListHealthChecksRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListHostedZonesByNameRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListHostedZonesByVpcRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListHostedZonesRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListQueryLoggingConfigsRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListResourceRecordSetsRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListReusableDelegationSetsRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListTagsForResourceRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListTagsForResourcesRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListTrafficPoliciesRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListTrafficPolicyInstancesByHostedZoneRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListTrafficPolicyInstancesByPolicyRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListTrafficPolicyInstancesRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListTrafficPolicyVersionsRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.ListVpcAssociationAuthorizationsRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.TestDnsAnswerRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.UpdateHealthCheckRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.UpdateHostedZoneCommentRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.UpdateTrafficPolicyCommentRequestMarshaller;
import software.amazon.awssdk.services.route53.transform.UpdateTrafficPolicyInstanceRequestMarshaller;
import software.amazon.awssdk.services.route53.waiters.Route53Waiter;
import software.amazon.awssdk.utils.Logger;

/**
 * Internal implementation of {@link Route53Client}.
 *
 * @see Route53Client#builder()
 */
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultRoute53Client implements Route53Client {
    private static final Logger log = Logger.loggerFor(DefaultRoute53Client.class);

    private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder()
            .serviceProtocol(AwsServiceProtocol.REST_XML).build();

    private final SyncClientHandler clientHandler;

    private final AwsXmlProtocolFactory protocolFactory;

    private final SdkClientConfiguration clientConfiguration;

    protected DefaultRoute53Client(SdkClientConfiguration clientConfiguration) {
        this.clientHandler = new AwsSyncClientHandler(clientConfiguration);
        this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build();
        this.protocolFactory = init();
    }

    /**
     * 

* Activates a key-signing key (KSK) so that it can be used for signing by DNSSEC. This operation changes the KSK * status to ACTIVE. *

* * @param activateKeySigningKeyRequest * @return Result of the ActivateKeySigningKey operation returned by the service. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws NoSuchKeySigningKeyException * The specified key-signing key (KSK) doesn't exist. * @throws InvalidKeySigningKeyStatusException * The key-signing key (KSK) status isn't valid or another KSK has the status INTERNAL_FAILURE. * @throws InvalidSigningStatusException * Your hosted zone status isn't valid for this operation. In the hosted zone, change the status to enable * DNSSEC or disable DNSSEC. * @throws InvalidKmsArnException * The KeyManagementServiceArn that you specified isn't valid to use with DNSSEC signing. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ActivateKeySigningKey * @see AWS * API Documentation */ @Override public ActivateKeySigningKeyResponse activateKeySigningKey(ActivateKeySigningKeyRequest activateKeySigningKeyRequest) throws ConcurrentModificationException, NoSuchKeySigningKeyException, InvalidKeySigningKeyStatusException, InvalidSigningStatusException, InvalidKmsArnException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ActivateKeySigningKeyResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(activateKeySigningKeyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, activateKeySigningKeyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ActivateKeySigningKey"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ActivateKeySigningKey").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(activateKeySigningKeyRequest) .withMarshaller(new ActivateKeySigningKeyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Associates an Amazon VPC with a private hosted zone. *

* *

* To perform the association, the VPC and the private hosted zone must already exist. You can't convert a public * hosted zone into a private hosted zone. *

*
*

* If you want to associate a VPC that was created by using one Amazon Web Services account with a private hosted * zone that was created by using a different account, the Amazon Web Services account that created the private * hosted zone must first submit a CreateVPCAssociationAuthorization request. Then the account that * created the VPC must submit an AssociateVPCWithHostedZone request. *

*
*

* When granting access, the hosted zone and the Amazon VPC must belong to the same partition. A partition is a * group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one partition. *

*

* The following are the supported partitions: *

*
    *
  • *

    * aws - Amazon Web Services Regions *

    *
  • *
  • *

    * aws-cn - China Regions *

    *
  • *
  • *

    * aws-us-gov - Amazon Web Services GovCloud (US) Region *

    *
  • *
*

* For more information, see Access Management in the * Amazon Web Services General Reference. *

*
* * @param associateVpcWithHostedZoneRequest * A complex type that contains information about the request to associate a VPC with a private hosted zone. * @return Result of the AssociateVPCWithHostedZone operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws NotAuthorizedException * Associating the specified VPC with the specified hosted zone has not been authorized. * @throws InvalidVpcIdException * The VPC ID that you specified either isn't a valid ID or the current account is not authorized to access * this VPC. * @throws InvalidInputException * The input is not valid. * @throws PublicZoneVpcAssociationException * You're trying to associate a VPC with a public hosted zone. Amazon Route 53 doesn't support associating a * VPC with a public hosted zone. * @throws ConflictingDomainExistsException * The cause of this error depends on the operation that you're performing:

*
    *
  • *

    * Create a public hosted zone: Two hosted zones that have the same name or that have a parent/child * relationship (example.com and test.example.com) can't have any common name servers. You tried to create a * hosted zone that has the same name as an existing hosted zone or that's the parent or child of an * existing hosted zone, and you specified a delegation set that shares one or more name servers with the * existing hosted zone. For more information, see CreateReusableDelegationSet. *

    *
  • *
  • *

    * Create a private hosted zone: A hosted zone with the specified name already exists and is already * associated with the Amazon VPC that you specified. *

    *
  • *
  • *

    * Associate VPCs with a private hosted zone: The VPC that you specified is already associated with * another hosted zone that has the same name. *

    *
  • * @throws LimitsExceededException * This operation can't be completed because the current account has reached the limit on the resource you * are trying to create. To request a higher limit, create a * case with the Amazon Web Services Support Center. * @throws PriorRequestNotCompleteException * If Amazon Route 53 can't process a request before the next request arrives, it will reject subsequent * requests for the same hosted zone and return an HTTP 400 error (Bad request). * If Route 53 returns this error repeatedly for the same request, we recommend that you wait, in intervals * of increasing duration, before you try the request again. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.AssociateVPCWithHostedZone * @see AWS API Documentation */ @Override public AssociateVpcWithHostedZoneResponse associateVPCWithHostedZone( AssociateVpcWithHostedZoneRequest associateVpcWithHostedZoneRequest) throws NoSuchHostedZoneException, NotAuthorizedException, InvalidVpcIdException, InvalidInputException, PublicZoneVpcAssociationException, ConflictingDomainExistsException, LimitsExceededException, PriorRequestNotCompleteException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(AssociateVpcWithHostedZoneResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(associateVpcWithHostedZoneRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, associateVpcWithHostedZoneRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AssociateVPCWithHostedZone"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("AssociateVPCWithHostedZone").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(associateVpcWithHostedZoneRequest) .withMarshaller(new AssociateVpcWithHostedZoneRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

    * Creates, changes, or deletes CIDR blocks within a collection. Contains authoritative IP information mapping * blocks to one or multiple locations. *

    *

    * A change request can update multiple locations in a collection at a time, which is helpful if you want to move * one or more CIDR blocks from one location to another in one transaction, without downtime. *

    *

    * Limits *

    *

    * The max number of CIDR blocks included in the request is 1000. As a result, big updates require multiple API * calls. *

    *

    * PUT and DELETE_IF_EXISTS *

    *

    * Use ChangeCidrCollection to perform the following actions: *

    *
      *
    • *

      * PUT: Create a CIDR block within the specified collection. *

      *
    • *
    • *

      * DELETE_IF_EXISTS: Delete an existing CIDR block from the collection. *

      *
    • *
    * * @param changeCidrCollectionRequest * @return Result of the ChangeCidrCollection operation returned by the service. * @throws NoSuchCidrCollectionException * The CIDR collection you specified, doesn't exist. * @throws CidrCollectionVersionMismatchException * The CIDR collection version you provided, doesn't match the one in the ListCidrCollections * operation. * @throws InvalidInputException * The input is not valid. * @throws CidrBlockInUseException * This CIDR block is already in use. * @throws LimitsExceededException * This operation can't be completed because the current account has reached the limit on the resource you * are trying to create. To request a higher limit, create a * case with the Amazon Web Services Support Center. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ChangeCidrCollection * @see AWS * API Documentation */ @Override public ChangeCidrCollectionResponse changeCidrCollection(ChangeCidrCollectionRequest changeCidrCollectionRequest) throws NoSuchCidrCollectionException, CidrCollectionVersionMismatchException, InvalidInputException, CidrBlockInUseException, LimitsExceededException, ConcurrentModificationException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ChangeCidrCollectionResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(changeCidrCollectionRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, changeCidrCollectionRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ChangeCidrCollection"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ChangeCidrCollection").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(changeCidrCollectionRequest) .withMarshaller(new ChangeCidrCollectionRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

    * Creates, changes, or deletes a resource record set, which contains authoritative DNS information for a specified * domain name or subdomain name. For example, you can use ChangeResourceRecordSets to create a * resource record set that routes traffic for test.example.com to a web server that has an IP address of * 192.0.2.44. *

    *

    * Deleting Resource Record Sets *

    *

    * To delete a resource record set, you must specify all the same values that you specified when you created it. *

    *

    * Change Batches and Transactional Changes *

    *

    * The request body must include a document with a ChangeResourceRecordSetsRequest element. The request * body contains a list of change items, known as a change batch. Change batches are considered transactional * changes. Route 53 validates the changes in the request and then either makes all or none of the changes in the * change batch request. This ensures that DNS routing isn't adversely affected by partial changes to the resource * record sets in a hosted zone. *

    *

    * For example, suppose a change batch request contains two changes: it deletes the CNAME resource * record set for www.example.com and creates an alias resource record set for www.example.com. If validation for * both records succeeds, Route 53 deletes the first resource record set and creates the second resource record set * in a single operation. If validation for either the DELETE or the CREATE action fails, * then the request is canceled, and the original CNAME record continues to exist. *

    * *

    * If you try to delete the same resource record set more than once in a single change batch, Route 53 returns an * InvalidChangeBatch error. *

    *
    *

    * Traffic Flow *

    *

    * To create resource record sets for complex routing configurations, use either the traffic flow visual editor in * the Route 53 console or the API actions for traffic policies and traffic policy instances. Save the configuration * as a traffic policy, then associate the traffic policy with one or more domain names (such as example.com) or * subdomain names (such as www.example.com), in the same hosted zone or in multiple hosted zones. You can roll back * the updates if the new configuration isn't performing as expected. For more information, see Using Traffic Flow to Route * DNS Traffic in the Amazon Route 53 Developer Guide. *

    *

    * Create, Delete, and Upsert *

    *

    * Use ChangeResourceRecordsSetsRequest to perform the following actions: *

    *
      *
    • *

      * CREATE: Creates a resource record set that has the specified values. *

      *
    • *
    • *

      * DELETE: Deletes an existing resource record set that has the specified values. *

      *
    • *
    • *

      * UPSERT: If a resource set doesn't exist, Route 53 creates it. If a resource set exists Route 53 * updates it with the values in the request. *

      *
    • *
    *

    * Syntaxes for Creating, Updating, and Deleting Resource Record Sets *

    *

    * The syntax for a request depends on the type of resource record set that you want to create, delete, or update, * such as weighted, alias, or failover. The XML elements in your request must appear in the order listed in the * syntax. *

    *

    * For an example for each type of resource record set, see "Examples." *

    *

    * Don't refer to the syntax in the "Parameter Syntax" section, which includes all of the elements for every kind of * resource record set that you can create, delete, or update by using ChangeResourceRecordSets. *

    *

    * Change Propagation to Route 53 DNS Servers *

    *

    * When you submit a ChangeResourceRecordSets request, Route 53 propagates your changes to all of the * Route 53 authoritative DNS servers managing the hosted zone. While your changes are propagating, * GetChange returns a status of PENDING. When propagation is complete, * GetChange returns a status of INSYNC. Changes generally propagate to all Route 53 name * servers managing the hosted zone within 60 seconds. For more information, see GetChange. *

    *

    * Limits on ChangeResourceRecordSets Requests *

    *

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

    * * @param changeResourceRecordSetsRequest * A complex type that contains change information for the resource record set. * @return Result of the ChangeResourceRecordSets operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws NoSuchHealthCheckException * No health check exists with the specified ID. * @throws InvalidChangeBatchException * This exception contains a list of messages that might contain one or more error messages. Each error * message indicates one error in the change batch. * @throws InvalidInputException * The input is not valid. * @throws PriorRequestNotCompleteException * If Amazon Route 53 can't process a request before the next request arrives, it will reject subsequent * requests for the same hosted zone and return an HTTP 400 error (Bad request). * If Route 53 returns this error repeatedly for the same request, we recommend that you wait, in intervals * of increasing duration, before you try the request again. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ChangeResourceRecordSets * @see AWS API Documentation */ @Override public ChangeResourceRecordSetsResponse changeResourceRecordSets( ChangeResourceRecordSetsRequest changeResourceRecordSetsRequest) throws NoSuchHostedZoneException, NoSuchHealthCheckException, InvalidChangeBatchException, InvalidInputException, PriorRequestNotCompleteException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ChangeResourceRecordSetsResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(changeResourceRecordSetsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, changeResourceRecordSetsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ChangeResourceRecordSets"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ChangeResourceRecordSets").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(changeResourceRecordSetsRequest) .withMarshaller(new ChangeResourceRecordSetsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

    *

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

    * * @param changeTagsForResourceRequest * A complex type that contains information about the tags that you want to add, edit, or delete. * @return Result of the ChangeTagsForResource operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchHealthCheckException * No health check exists with the specified ID. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws PriorRequestNotCompleteException * If Amazon Route 53 can't process a request before the next request arrives, it will reject subsequent * requests for the same hosted zone and return an HTTP 400 error (Bad request). * If Route 53 returns this error repeatedly for the same request, we recommend that you wait, in intervals * of increasing duration, before you try the request again. * @throws ThrottlingException * The limit on the number of requests per second was exceeded. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ChangeTagsForResource * @see AWS * API Documentation */ @Override public ChangeTagsForResourceResponse changeTagsForResource(ChangeTagsForResourceRequest changeTagsForResourceRequest) throws InvalidInputException, NoSuchHealthCheckException, NoSuchHostedZoneException, PriorRequestNotCompleteException, ThrottlingException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ChangeTagsForResourceResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(changeTagsForResourceRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, changeTagsForResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ChangeTagsForResource"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ChangeTagsForResource").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(changeTagsForResourceRequest) .withMarshaller(new ChangeTagsForResourceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

    * Creates a CIDR collection in the current Amazon Web Services account. *

    * * @param createCidrCollectionRequest * @return Result of the CreateCidrCollection operation returned by the service. * @throws LimitsExceededException * This operation can't be completed because the current account has reached the limit on the resource you * are trying to create. To request a higher limit, create a * case with the Amazon Web Services Support Center. * @throws InvalidInputException * The input is not valid. * @throws CidrCollectionAlreadyExistsException * A CIDR collection with this name and a different caller reference already exists in this account. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.CreateCidrCollection * @see AWS * API Documentation */ @Override public CreateCidrCollectionResponse createCidrCollection(CreateCidrCollectionRequest createCidrCollectionRequest) throws LimitsExceededException, InvalidInputException, CidrCollectionAlreadyExistsException, ConcurrentModificationException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(CreateCidrCollectionResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createCidrCollectionRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createCidrCollectionRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateCidrCollection"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateCidrCollection").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(createCidrCollectionRequest) .withMarshaller(new CreateCidrCollectionRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

    * Creates a new health check. *

    *

    * For information about adding health checks to resource record sets, see HealthCheckId in ChangeResourceRecordSets. *

    *

    * ELB Load Balancers *

    *

    * If you're registering EC2 instances with an Elastic Load Balancing (ELB) load balancer, do not create Amazon * Route 53 health checks for the EC2 instances. When you register an EC2 instance with a load balancer, you * configure settings for an ELB health check, which performs a similar function to a Route 53 health check. *

    *

    * Private Hosted Zones *

    *

    * You can associate health checks with failover resource record sets in a private hosted zone. Note the following: *

    *
      *
    • *

      * Route 53 health checkers are outside the VPC. To check the health of an endpoint within a VPC by IP address, you * must assign a public IP address to the instance in the VPC. *

      *
    • *
    • *

      * You can configure a health checker to check the health of an external resource that the instance relies on, such * as a database server. *

      *
    • *
    • *

      * You can create a CloudWatch metric, associate an alarm with the metric, and then create a health check that is * based on the state of the alarm. For example, you might create a CloudWatch metric that checks the status of the * Amazon EC2 StatusCheckFailed metric, add an alarm to the metric, and then create a health check that * is based on the state of the alarm. For information about creating CloudWatch metrics and alarms by using the * CloudWatch console, see the Amazon CloudWatch * User Guide. *

      *
    • *
    * * @param createHealthCheckRequest * A complex type that contains the health check request information. * @return Result of the CreateHealthCheck operation returned by the service. * @throws TooManyHealthChecksException * This health check can't be created because the current account has reached the limit on the number of * active health checks.

    *

    * For information about default limits, see Limits in the * Amazon Route 53 Developer Guide. *

    *

    * For information about how to get the current limit for an account, see GetAccountLimit. To request a higher limit, create a * case with the Amazon Web Services Support Center. *

    *

    * You have reached the maximum number of active health checks for an Amazon Web Services account. To * request a higher limit, create a case with the Amazon * Web Services Support Center. * @throws HealthCheckAlreadyExistsException * The health check you're attempting to create already exists. Amazon Route 53 returns this error when you * submit a request that has the following values: *

    *
      *
    • *

      * The same value for CallerReference as an existing health check, and one or more values that * differ from the existing health check that has the same caller reference. *

      *
    • *
    • *

      * The same value for CallerReference as a health check that you created and later deleted, * regardless of the other settings in the request. *

      *
    • * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.CreateHealthCheck * @see AWS API * Documentation */ @Override public CreateHealthCheckResponse createHealthCheck(CreateHealthCheckRequest createHealthCheckRequest) throws TooManyHealthChecksException, HealthCheckAlreadyExistsException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( CreateHealthCheckResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createHealthCheckRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createHealthCheckRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateHealthCheck"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateHealthCheck").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(createHealthCheckRequest) .withMarshaller(new CreateHealthCheckRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

      * Creates a new public or private hosted zone. You create records in a public hosted zone to define how you want to * route traffic on the internet for a domain, such as example.com, and its subdomains (apex.example.com, * acme.example.com). You create records in a private hosted zone to define how you want to route traffic for a * domain and its subdomains within one or more Amazon Virtual Private Clouds (Amazon VPCs). *

      * *

      * You can't convert a public hosted zone to a private hosted zone or vice versa. Instead, you must create a new * hosted zone with the same name and create new resource record sets. *

      *
      *

      * For more information about charges for hosted zones, see Amazon * Route 53 Pricing. *

      *

      * Note the following: *

      *
        *
      • *

        * You can't create a hosted zone for a top-level domain (TLD) such as .com. *

        *
      • *
      • *

        * For public hosted zones, Route 53 automatically creates a default SOA record and four NS records for the zone. * For more information about SOA and NS records, see NS and SOA Records that * Route 53 Creates for a Hosted Zone in the Amazon Route 53 Developer Guide. *

        *

        * If you want to use the same name servers for multiple public hosted zones, you can optionally associate a * reusable delegation set with the hosted zone. See the DelegationSetId element. *

        *
      • *
      • *

        * If your domain is registered with a registrar other than Route 53, you must update the name servers with your * registrar to make Route 53 the DNS service for the domain. For more information, see Migrating DNS Service for an * Existing Domain to Amazon Route 53 in the Amazon Route 53 Developer Guide. *

        *
      • *
      *

      * When you submit a CreateHostedZone request, the initial status of the hosted zone is * PENDING. For public hosted zones, this means that the NS and SOA records are not yet available on * all Route 53 DNS servers. When the NS and SOA records are available, the status of the zone changes to * INSYNC. *

      *

      * The CreateHostedZone request requires the caller to have an ec2:DescribeVpcs * permission. *

      * *

      * When creating private hosted zones, the Amazon VPC must belong to the same partition where the hosted zone is * created. A partition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one * partition. *

      *

      * The following are the supported partitions: *

      *
        *
      • *

        * aws - Amazon Web Services Regions *

        *
      • *
      • *

        * aws-cn - China Regions *

        *
      • *
      • *

        * aws-us-gov - Amazon Web Services GovCloud (US) Region *

        *
      • *
      *

      * For more information, see Access Management in the * Amazon Web Services General Reference. *

      *
      * * @param createHostedZoneRequest * A complex type that contains information about the request to create a public or private hosted zone. * @return Result of the CreateHostedZone operation returned by the service. * @throws InvalidDomainNameException * The specified domain name is not valid. * @throws HostedZoneAlreadyExistsException * The hosted zone you're trying to create already exists. Amazon Route 53 returns this error when a hosted * zone has already been created with the specified CallerReference. * @throws TooManyHostedZonesException * This operation can't be completed either because the current account has reached the limit on the number * of hosted zones or because you've reached the limit on the number of hosted zones that can be associated * with a reusable delegation set.

      *

      * For information about default limits, see Limits in the * Amazon Route 53 Developer Guide. *

      *

      * To get the current limit on hosted zones that can be created by an account, see GetAccountLimit. *

      *

      * To get the current limit on hosted zones that can be associated with a reusable delegation set, see * GetReusableDelegationSetLimit. *

      *

      * To request a higher limit, create a case with the * Amazon Web Services Support Center. * @throws InvalidVpcIdException * The VPC ID that you specified either isn't a valid ID or the current account is not authorized to access * this VPC. * @throws InvalidInputException * The input is not valid. * @throws DelegationSetNotAvailableException * You can create a hosted zone that has the same name as an existing hosted zone (example.com is common), * but there is a limit to the number of hosted zones that have the same name. If you get this error, Amazon * Route 53 has reached that limit. If you own the domain name and Route 53 generates this error, contact * Customer Support. * @throws ConflictingDomainExistsException * The cause of this error depends on the operation that you're performing: *

      *
        *
      • *

        * Create a public hosted zone: Two hosted zones that have the same name or that have a parent/child * relationship (example.com and test.example.com) can't have any common name servers. You tried to create a * hosted zone that has the same name as an existing hosted zone or that's the parent or child of an * existing hosted zone, and you specified a delegation set that shares one or more name servers with the * existing hosted zone. For more information, see CreateReusableDelegationSet. *

        *
      • *
      • *

        * Create a private hosted zone: A hosted zone with the specified name already exists and is already * associated with the Amazon VPC that you specified. *

        *
      • *
      • *

        * Associate VPCs with a private hosted zone: The VPC that you specified is already associated with * another hosted zone that has the same name. *

        *
      • * @throws NoSuchDelegationSetException * A reusable delegation set with the specified ID does not exist. * @throws DelegationSetNotReusableException * A reusable delegation set with the specified ID does not exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.CreateHostedZone * @see AWS API * Documentation */ @Override public CreateHostedZoneResponse createHostedZone(CreateHostedZoneRequest createHostedZoneRequest) throws InvalidDomainNameException, HostedZoneAlreadyExistsException, TooManyHostedZonesException, InvalidVpcIdException, InvalidInputException, DelegationSetNotAvailableException, ConflictingDomainExistsException, NoSuchDelegationSetException, DelegationSetNotReusableException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( CreateHostedZoneResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createHostedZoneRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createHostedZoneRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateHostedZone"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateHostedZone").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(createHostedZoneRequest) .withMarshaller(new CreateHostedZoneRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

        * Creates a new key-signing key (KSK) associated with a hosted zone. You can only have two KSKs per hosted zone. *

        * * @param createKeySigningKeyRequest * @return Result of the CreateKeySigningKey operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidArgumentException * Parameter name is not valid. * @throws InvalidInputException * The input is not valid. * @throws InvalidKmsArnException * The KeyManagementServiceArn that you specified isn't valid to use with DNSSEC signing. * @throws InvalidKeySigningKeyStatusException * The key-signing key (KSK) status isn't valid or another KSK has the status INTERNAL_FAILURE. * @throws InvalidSigningStatusException * Your hosted zone status isn't valid for this operation. In the hosted zone, change the status to enable * DNSSEC or disable DNSSEC. * @throws InvalidKeySigningKeyNameException * The key-signing key (KSK) name that you specified isn't a valid name. * @throws KeySigningKeyAlreadyExistsException * You've already created a key-signing key (KSK) with this name or with the same customer managed key ARN. * @throws TooManyKeySigningKeysException * You've reached the limit for the number of key-signing keys (KSKs). Remove at least one KSK, and then try * again. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.CreateKeySigningKey * @see AWS * API Documentation */ @Override public CreateKeySigningKeyResponse createKeySigningKey(CreateKeySigningKeyRequest createKeySigningKeyRequest) throws NoSuchHostedZoneException, InvalidArgumentException, InvalidInputException, InvalidKmsArnException, InvalidKeySigningKeyStatusException, InvalidSigningStatusException, InvalidKeySigningKeyNameException, KeySigningKeyAlreadyExistsException, TooManyKeySigningKeysException, ConcurrentModificationException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(CreateKeySigningKeyResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createKeySigningKeyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createKeySigningKeyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateKeySigningKey"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateKeySigningKey").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(createKeySigningKeyRequest) .withMarshaller(new CreateKeySigningKeyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

        * Creates a configuration for DNS query logging. After you create a query logging configuration, Amazon Route 53 * begins to publish log data to an Amazon CloudWatch Logs log group. *

        *

        * DNS query logs contain information about the queries that Route 53 receives for a specified public hosted zone, * such as the following: *

        *
          *
        • *

          * Route 53 edge location that responded to the DNS query *

          *
        • *
        • *

          * Domain or subdomain that was requested *

          *
        • *
        • *

          * DNS record type, such as A or AAAA *

          *
        • *
        • *

          * DNS response code, such as NoError or ServFail *

          *
        • *
        *
        *
        Log Group and Resource Policy
        *
        *

        * Before you create a query logging configuration, perform the following operations. *

        * *

        * If you create a query logging configuration using the Route 53 console, Route 53 performs these operations * automatically. *

        *
        *
          *
        1. *

          * Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a query logging * configuration. Note the following: *

          *
            *
          • *

            * You must create the log group in the us-east-1 region. *

            *
          • *
          • *

            * You must use the same Amazon Web Services account to create the log group and the hosted zone that you want to * configure query logging for. *

            *
          • *
          • *

            * When you create log groups for query logging, we recommend that you use a consistent prefix, for example: *

            *

            * /aws/route53/hosted zone name *

            *

            * In the next step, you'll create a resource policy, which controls access to one or more log groups and the * associated Amazon Web Services resources, such as Route 53 hosted zones. There's a limit on the number of * resource policies that you can create, so we recommend that you use a consistent prefix so you can use the same * resource policy for all the log groups that you create for query logging. *

            *
          • *
          *
        2. *
        3. *

          * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to create log streams * and to send query logs to log streams. For the value of Resource, specify the ARN for the log group * that you created in the previous step. To use the same resource policy for all the CloudWatch Logs log groups * that you created for query logging configurations, replace the hosted zone name with *, for example: *

          *

          * arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/* *

          *

          * To avoid the confused deputy problem, a security issue where an entity without a permission for an action can * coerce a more-privileged entity to perform it, you can optionally limit the permissions that a service has to a * resource in a resource-based policy by supplying the following values: *

          *
            *
          • *

            * For aws:SourceArn, supply the hosted zone ARN used in creating the query logging configuration. For * example, aws:SourceArn: arn:aws:route53:::hostedzone/hosted zone ID. *

            *
          • *
          • *

            * For aws:SourceAccount, supply the account ID for the account that creates the query logging * configuration. For example, aws:SourceAccount:111111111111. *

            *
          • *
          *

          * For more information, see The * confused deputy problem in the Amazon Web Services IAM User Guide. *

          * *

          * You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of * the Amazon Web Services SDKs, or the CLI. *

          *
        4. *
        *
        *
        Log Streams and Edge Locations
        *
        *

        * When Route 53 finishes creating the configuration for DNS query logging, it does the following: *

        *
          *
        • *

          * Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the * specified hosted zone. That log stream is used to log all queries that Route 53 responds to for that edge * location. *

          *
        • *
        • *

          * Begins to send query logs to the applicable log stream. *

          *
        • *
        *

        * The name of each log stream is in the following format: *

        *

        * hosted zone ID/edge location code *

        *

        * The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The * three-letter code typically corresponds with the International Air Transport Association airport code for an * airport near the edge location. (These abbreviations might change in the future.) For a list of edge locations, * see "The Route 53 Global Network" on the Route 53 Product * Details page. *

        *
        *
        Queries That Are Logged
        *
        *

        * Query logs contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has already cached * the response to a query (such as the IP address for a load balancer for example.com), the resolver will continue * to return the cached response. It doesn't forward another query to Route 53 until the TTL for the corresponding * resource record set expires. Depending on how many DNS queries are submitted for a resource record set, and * depending on the TTL for that resource record set, query logs might contain information about only one query out * of every several thousand queries that are submitted to DNS. For more information about how DNS works, see Routing Internet * Traffic to Your Website or Web Application in the Amazon Route 53 Developer Guide. *

        *
        *
        Log File Format
        *
        *

        * For a list of the values in each query log and the format of each value, see Logging DNS Queries in the * Amazon Route 53 Developer Guide. *

        *
        *
        Pricing
        *
        *

        * For information about charges for query logs, see Amazon * CloudWatch Pricing. *

        *
        *
        How to Stop Logging
        *
        *

        * If you want Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For * more information, see DeleteQueryLoggingConfig. *

        *
        *
        * * @param createQueryLoggingConfigRequest * @return Result of the CreateQueryLoggingConfig operation returned by the service. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws NoSuchCloudWatchLogsLogGroupException * There is no CloudWatch Logs log group with the specified ARN. * @throws InvalidInputException * The input is not valid. * @throws QueryLoggingConfigAlreadyExistsException * You can create only one query logging configuration for a hosted zone, and a query logging configuration * already exists for this hosted zone. * @throws InsufficientCloudWatchLogsResourcePolicyException * Amazon Route 53 doesn't have the permissions required to create log streams and send query logs to log * streams. Possible causes include the following:

        *
          *
        • *

          * There is no resource policy that specifies the log group ARN in the value for Resource. *

          *
        • *
        • *

          * The resource policy that includes the log group ARN in the value for Resource doesn't have * the necessary permissions. *

          *
        • *
        • *

          * The resource policy hasn't finished propagating yet. *

          *
        • *
        • *

          * The Key management service (KMS) key you specified doesn’t exist or it can’t be used with the log group * associated with query log. Update or provide a resource policy to grant permissions for the KMS key. *

          *
        • *
        • *

          * The Key management service (KMS) key you specified is marked as disabled for the log group associated * with query log. Update or provide a resource policy to grant permissions for the KMS key. *

          *
        • * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.CreateQueryLoggingConfig * @see AWS API Documentation */ @Override public CreateQueryLoggingConfigResponse createQueryLoggingConfig( CreateQueryLoggingConfigRequest createQueryLoggingConfigRequest) throws ConcurrentModificationException, NoSuchHostedZoneException, NoSuchCloudWatchLogsLogGroupException, InvalidInputException, QueryLoggingConfigAlreadyExistsException, InsufficientCloudWatchLogsResourcePolicyException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(CreateQueryLoggingConfigResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createQueryLoggingConfigRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createQueryLoggingConfigRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateQueryLoggingConfig"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateQueryLoggingConfig").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(createQueryLoggingConfigRequest) .withMarshaller(new CreateQueryLoggingConfigRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Creates a delegation set (a group of four name servers) that can be reused by multiple hosted zones that were * created by the same Amazon Web Services account. *

          *

          * You can also create a reusable delegation set that uses the four name servers that are associated with an * existing hosted zone. Specify the hosted zone ID in the CreateReusableDelegationSet request. *

          * *

          * You can't associate a reusable delegation set with a private hosted zone. *

          *
          *

          * For information about using a reusable delegation set to configure white label name servers, see Configuring White * Label Name Servers. *

          *

          * The process for migrating existing hosted zones to use a reusable delegation set is comparable to the process for * configuring white label name servers. You need to perform the following steps: *

          *
            *
          1. *

            * Create a reusable delegation set. *

            *
          2. *
          3. *

            * Recreate hosted zones, and reduce the TTL to 60 seconds or less. *

            *
          4. *
          5. *

            * Recreate resource record sets in the new hosted zones. *

            *
          6. *
          7. *

            * Change the registrar's name servers to use the name servers for the new hosted zones. *

            *
          8. *
          9. *

            * Monitor traffic for the website or application. *

            *
          10. *
          11. *

            * Change TTLs back to their original values. *

            *
          12. *
          *

          * If you want to migrate existing hosted zones to use a reusable delegation set, the existing hosted zones can't * use any of the name servers that are assigned to the reusable delegation set. If one or more hosted zones do use * one or more name servers that are assigned to the reusable delegation set, you can do one of the following: *

          *
            *
          • *

            * For small numbers of hosted zones—up to a few hundred—it's relatively easy to create reusable delegation sets * until you get one that has four name servers that don't overlap with any of the name servers in your hosted * zones. *

            *
          • *
          • *

            * For larger numbers of hosted zones, the easiest solution is to use more than one reusable delegation set. *

            *
          • *
          • *

            * For larger numbers of hosted zones, you can also migrate hosted zones that have overlapping name servers to * hosted zones that don't have overlapping name servers, then migrate the hosted zones again to use the reusable * delegation set. *

            *
          • *
          * * @param createReusableDelegationSetRequest * @return Result of the CreateReusableDelegationSet operation returned by the service. * @throws DelegationSetAlreadyCreatedException * A delegation set with the same owner and caller reference combination has already been created. * @throws LimitsExceededException * This operation can't be completed because the current account has reached the limit on the resource you * are trying to create. To request a higher limit, create a * case with the Amazon Web Services Support Center. * @throws HostedZoneNotFoundException * The specified HostedZone can't be found. * @throws InvalidArgumentException * Parameter name is not valid. * @throws InvalidInputException * The input is not valid. * @throws DelegationSetNotAvailableException * You can create a hosted zone that has the same name as an existing hosted zone (example.com is common), * but there is a limit to the number of hosted zones that have the same name. If you get this error, Amazon * Route 53 has reached that limit. If you own the domain name and Route 53 generates this error, contact * Customer Support. * @throws DelegationSetAlreadyReusableException * The specified delegation set has already been marked as reusable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.CreateReusableDelegationSet * @see AWS API Documentation */ @Override public CreateReusableDelegationSetResponse createReusableDelegationSet( CreateReusableDelegationSetRequest createReusableDelegationSetRequest) throws DelegationSetAlreadyCreatedException, LimitsExceededException, HostedZoneNotFoundException, InvalidArgumentException, InvalidInputException, DelegationSetNotAvailableException, DelegationSetAlreadyReusableException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(CreateReusableDelegationSetResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createReusableDelegationSetRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createReusableDelegationSetRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateReusableDelegationSet"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateReusableDelegationSet").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(createReusableDelegationSetRequest) .withMarshaller(new CreateReusableDelegationSetRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Creates a traffic policy, which you use to create multiple DNS resource record sets for one domain name (such as * example.com) or one subdomain name (such as www.example.com). *

          * * @param createTrafficPolicyRequest * A complex type that contains information about the traffic policy that you want to create. * @return Result of the CreateTrafficPolicy operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws TooManyTrafficPoliciesException * This traffic policy can't be created because the current account has reached the limit on the number of * traffic policies.

          *

          * For information about default limits, see Limits in the * Amazon Route 53 Developer Guide. *

          *

          * To get the current limit for an account, see GetAccountLimit. *

          *

          * To request a higher limit, create a case with the * Amazon Web Services Support Center. * @throws TrafficPolicyAlreadyExistsException * A traffic policy that has the same value for Name already exists. * @throws InvalidTrafficPolicyDocumentException * The format of the traffic policy document that you specified in the Document element is not * valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.CreateTrafficPolicy * @see AWS * API Documentation */ @Override public CreateTrafficPolicyResponse createTrafficPolicy(CreateTrafficPolicyRequest createTrafficPolicyRequest) throws InvalidInputException, TooManyTrafficPoliciesException, TrafficPolicyAlreadyExistsException, InvalidTrafficPolicyDocumentException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(CreateTrafficPolicyResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createTrafficPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createTrafficPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateTrafficPolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateTrafficPolicy").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(createTrafficPolicyRequest) .withMarshaller(new CreateTrafficPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Creates resource record sets in a specified hosted zone based on the settings in a specified traffic policy * version. In addition, CreateTrafficPolicyInstance associates the resource record sets with a * specified domain name (such as example.com) or subdomain name (such as www.example.com). Amazon Route 53 responds * to DNS queries for the domain or subdomain name by using the resource record sets that * CreateTrafficPolicyInstance created. *

          * *

          * After you submit an CreateTrafficPolicyInstance request, there's a brief delay while Amazon Route 53 * creates the resource record sets that are specified in the traffic policy definition. Use * GetTrafficPolicyInstance with the id of new traffic policy instance to confirm that the * CreateTrafficPolicyInstance request completed successfully. For more information, see the * State response element. *

          *
          * * @param createTrafficPolicyInstanceRequest * A complex type that contains information about the resource record sets that you want to create based on a * specified traffic policy. * @return Result of the CreateTrafficPolicyInstance operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidInputException * The input is not valid. * @throws TooManyTrafficPolicyInstancesException * This traffic policy instance can't be created because the current account has reached the limit on the * number of traffic policy instances.

          *

          * For information about default limits, see Limits in the * Amazon Route 53 Developer Guide. *

          *

          * For information about how to get the current limit for an account, see GetAccountLimit. *

          *

          * To request a higher limit, create a case with the * Amazon Web Services Support Center. * @throws NoSuchTrafficPolicyException * No traffic policy exists with the specified ID. * @throws TrafficPolicyInstanceAlreadyExistsException * There is already a traffic policy instance with the specified ID. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.CreateTrafficPolicyInstance * @see AWS API Documentation */ @Override public CreateTrafficPolicyInstanceResponse createTrafficPolicyInstance( CreateTrafficPolicyInstanceRequest createTrafficPolicyInstanceRequest) throws NoSuchHostedZoneException, InvalidInputException, TooManyTrafficPolicyInstancesException, NoSuchTrafficPolicyException, TrafficPolicyInstanceAlreadyExistsException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(CreateTrafficPolicyInstanceResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createTrafficPolicyInstanceRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createTrafficPolicyInstanceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateTrafficPolicyInstance"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateTrafficPolicyInstance").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(createTrafficPolicyInstanceRequest) .withMarshaller(new CreateTrafficPolicyInstanceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Creates a new version of an existing traffic policy. When you create a new version of a traffic policy, you * specify the ID of the traffic policy that you want to update and a JSON-formatted document that describes the new * version. You use traffic policies to create multiple DNS resource record sets for one domain name (such as * example.com) or one subdomain name (such as www.example.com). You can create a maximum of 1000 versions of a * traffic policy. If you reach the limit and need to create another version, you'll need to start a new traffic * policy. *

          * * @param createTrafficPolicyVersionRequest * A complex type that contains information about the traffic policy that you want to create a new version * for. * @return Result of the CreateTrafficPolicyVersion operation returned by the service. * @throws NoSuchTrafficPolicyException * No traffic policy exists with the specified ID. * @throws InvalidInputException * The input is not valid. * @throws TooManyTrafficPolicyVersionsForCurrentPolicyException * This traffic policy version can't be created because you've reached the limit of 1000 on the number of * versions that you can create for the current traffic policy.

          *

          * To create more traffic policy versions, you can use GetTrafficPolicy to get the traffic policy document for a specified traffic policy version, and then * use * CreateTrafficPolicy to create a new traffic policy using the traffic policy document. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws InvalidTrafficPolicyDocumentException * The format of the traffic policy document that you specified in the Document element is not * valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.CreateTrafficPolicyVersion * @see AWS API Documentation */ @Override public CreateTrafficPolicyVersionResponse createTrafficPolicyVersion( CreateTrafficPolicyVersionRequest createTrafficPolicyVersionRequest) throws NoSuchTrafficPolicyException, InvalidInputException, TooManyTrafficPolicyVersionsForCurrentPolicyException, ConcurrentModificationException, InvalidTrafficPolicyDocumentException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(CreateTrafficPolicyVersionResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createTrafficPolicyVersionRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createTrafficPolicyVersionRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateTrafficPolicyVersion"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateTrafficPolicyVersion").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(createTrafficPolicyVersionRequest) .withMarshaller(new CreateTrafficPolicyVersionRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Authorizes the Amazon Web Services account that created a specified VPC to submit an * AssociateVPCWithHostedZone request to associate the VPC with a specified hosted zone that was * created by a different account. To submit a CreateVPCAssociationAuthorization request, you must use * the account that created the hosted zone. After you authorize the association, use the account that created the * VPC to submit an AssociateVPCWithHostedZone request. *

          * *

          * If you want to associate multiple VPCs that you created by using one account with a hosted zone that you created * by using a different account, you must submit one authorization request for each VPC. *

          *
          * * @param createVpcAssociationAuthorizationRequest * A complex type that contains information about the request to authorize associating a VPC with your * private hosted zone. Authorization is only required when a private hosted zone and a VPC were created by * using different accounts. * @return Result of the CreateVPCAssociationAuthorization operation returned by the service. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws TooManyVpcAssociationAuthorizationsException * You've created the maximum number of authorizations that can be created for the specified hosted zone. To * authorize another VPC to be associated with the hosted zone, submit a * DeleteVPCAssociationAuthorization request to remove an existing authorization. To get a list * of existing authorizations, submit a ListVPCAssociationAuthorizations request. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidVpcIdException * The VPC ID that you specified either isn't a valid ID or the current account is not authorized to access * this VPC. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.CreateVPCAssociationAuthorization * @see AWS API Documentation */ @Override public CreateVpcAssociationAuthorizationResponse createVPCAssociationAuthorization( CreateVpcAssociationAuthorizationRequest createVpcAssociationAuthorizationRequest) throws ConcurrentModificationException, TooManyVpcAssociationAuthorizationsException, NoSuchHostedZoneException, InvalidVpcIdException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(CreateVpcAssociationAuthorizationResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createVpcAssociationAuthorizationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createVpcAssociationAuthorizationRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateVPCAssociationAuthorization"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("CreateVPCAssociationAuthorization").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(createVpcAssociationAuthorizationRequest) .withMarshaller(new CreateVpcAssociationAuthorizationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Deactivates a key-signing key (KSK) so that it will not be used for signing by DNSSEC. This operation changes the * KSK status to INACTIVE. *

          * * @param deactivateKeySigningKeyRequest * @return Result of the DeactivateKeySigningKey operation returned by the service. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws NoSuchKeySigningKeyException * The specified key-signing key (KSK) doesn't exist. * @throws InvalidKeySigningKeyStatusException * The key-signing key (KSK) status isn't valid or another KSK has the status INTERNAL_FAILURE. * @throws InvalidSigningStatusException * Your hosted zone status isn't valid for this operation. In the hosted zone, change the status to enable * DNSSEC or disable DNSSEC. * @throws KeySigningKeyInUseException * The key-signing key (KSK) that you specified can't be deactivated because it's the only KSK for a * currently-enabled DNSSEC. Disable DNSSEC signing, or add or enable another KSK. * @throws KeySigningKeyInParentDsRecordException * The key-signing key (KSK) is specified in a parent DS record. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.DeactivateKeySigningKey * @see AWS API Documentation */ @Override public DeactivateKeySigningKeyResponse deactivateKeySigningKey(DeactivateKeySigningKeyRequest deactivateKeySigningKeyRequest) throws ConcurrentModificationException, NoSuchKeySigningKeyException, InvalidKeySigningKeyStatusException, InvalidSigningStatusException, KeySigningKeyInUseException, KeySigningKeyInParentDsRecordException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(DeactivateKeySigningKeyResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deactivateKeySigningKeyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deactivateKeySigningKeyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeactivateKeySigningKey"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DeactivateKeySigningKey").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(deactivateKeySigningKeyRequest) .withMarshaller(new DeactivateKeySigningKeyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Deletes a CIDR collection in the current Amazon Web Services account. The collection must be empty before it can * be deleted. *

          * * @param deleteCidrCollectionRequest * @return Result of the DeleteCidrCollection operation returned by the service. * @throws NoSuchCidrCollectionException * The CIDR collection you specified, doesn't exist. * @throws CidrCollectionInUseException * This CIDR collection is in use, and isn't empty. * @throws InvalidInputException * The input is not valid. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.DeleteCidrCollection * @see AWS * API Documentation */ @Override public DeleteCidrCollectionResponse deleteCidrCollection(DeleteCidrCollectionRequest deleteCidrCollectionRequest) throws NoSuchCidrCollectionException, CidrCollectionInUseException, InvalidInputException, ConcurrentModificationException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(DeleteCidrCollectionResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteCidrCollectionRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteCidrCollectionRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteCidrCollection"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteCidrCollection").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(deleteCidrCollectionRequest) .withMarshaller(new DeleteCidrCollectionRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Deletes a health check. *

          * *

          * Amazon Route 53 does not prevent you from deleting a health check even if the health check is associated with one * or more resource record sets. If you delete a health check and you don't update the associated resource record * sets, the future status of the health check can't be predicted and may change. This will affect the routing of * DNS queries for your DNS failover configuration. For more information, see Replacing and Deleting Health Checks in the Amazon Route 53 Developer Guide. *

          *
          *

          * If you're using Cloud Map and you configured Cloud Map to create a Route 53 health check when you register an * instance, you can't use the Route 53 DeleteHealthCheck command to delete the health check. The * health check is deleted automatically when you deregister the instance; there can be a delay of several hours * before the health check is deleted from Route 53. *

          * * @param deleteHealthCheckRequest * This action deletes a health check. * @return Result of the DeleteHealthCheck operation returned by the service. * @throws NoSuchHealthCheckException * No health check exists with the specified ID. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.DeleteHealthCheck * @see AWS API * Documentation */ @Override public DeleteHealthCheckResponse deleteHealthCheck(DeleteHealthCheckRequest deleteHealthCheckRequest) throws NoSuchHealthCheckException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( DeleteHealthCheckResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteHealthCheckRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteHealthCheckRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteHealthCheck"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteHealthCheck").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(deleteHealthCheckRequest) .withMarshaller(new DeleteHealthCheckRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Deletes a hosted zone. *

          *

          * If the hosted zone was created by another service, such as Cloud Map, see Deleting Public Hosted Zones That Were Created by Another Service in the Amazon Route 53 Developer * Guide for information about how to delete it. (The process is the same for public and private hosted zones * that were created by another service.) *

          *

          * If you want to keep your domain registration but you want to stop routing internet traffic to your website or web * application, we recommend that you delete resource record sets in the hosted zone instead of deleting the hosted * zone. *

          * *

          * If you delete a hosted zone, you can't undelete it. You must create a new hosted zone and update the name servers * for your domain registration, which can require up to 48 hours to take effect. (If you delegated responsibility * for a subdomain to a hosted zone and you delete the child hosted zone, you must update the name servers in the * parent hosted zone.) In addition, if you delete a hosted zone, someone could hijack the domain and route traffic * to their own resources using your domain name. *

          *
          *

          * If you want to avoid the monthly charge for the hosted zone, you can transfer DNS service for the domain to a * free DNS service. When you transfer DNS service, you have to update the name servers for the domain registration. * If the domain is registered with Route 53, see UpdateDomainNameservers for information about how to replace Route 53 name servers with name servers for the * new DNS service. If the domain is registered with another registrar, use the method provided by the registrar to * update name servers for the domain registration. For more information, perform an internet search on * "free DNS service." *

          *

          * You can delete a hosted zone only if it contains only the default SOA record and NS resource record sets. If the * hosted zone contains other resource record sets, you must delete them before you can delete the hosted zone. If * you try to delete a hosted zone that contains other resource record sets, the request fails, and Route 53 returns * a HostedZoneNotEmpty error. For information about deleting records from your hosted zone, see * ChangeResourceRecordSets. *

          *

          * To verify that the hosted zone has been deleted, do one of the following: *

          *
            *
          • *

            * Use the GetHostedZone action to request information about the hosted zone. *

            *
          • *
          • *

            * Use the ListHostedZones action to get a list of the hosted zones associated with the current Amazon * Web Services account. *

            *
          • *
          * * @param deleteHostedZoneRequest * A request to delete a hosted zone. * @return Result of the DeleteHostedZone operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws HostedZoneNotEmptyException * The hosted zone contains resource records that are not SOA or NS records. * @throws PriorRequestNotCompleteException * If Amazon Route 53 can't process a request before the next request arrives, it will reject subsequent * requests for the same hosted zone and return an HTTP 400 error (Bad request). * If Route 53 returns this error repeatedly for the same request, we recommend that you wait, in intervals * of increasing duration, before you try the request again. * @throws InvalidInputException * The input is not valid. * @throws InvalidDomainNameException * The specified domain name is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.DeleteHostedZone * @see AWS API * Documentation */ @Override public DeleteHostedZoneResponse deleteHostedZone(DeleteHostedZoneRequest deleteHostedZoneRequest) throws NoSuchHostedZoneException, HostedZoneNotEmptyException, PriorRequestNotCompleteException, InvalidInputException, InvalidDomainNameException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( DeleteHostedZoneResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteHostedZoneRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteHostedZoneRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteHostedZone"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteHostedZone").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(deleteHostedZoneRequest) .withMarshaller(new DeleteHostedZoneRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Deletes a key-signing key (KSK). Before you can delete a KSK, you must deactivate it. The KSK must be deactivated * before you can delete it regardless of whether the hosted zone is enabled for DNSSEC signing. *

          *

          * You can use * DeactivateKeySigningKey to deactivate the key before you delete it. *

          *

          * Use GetDNSSEC to verify * that the KSK is in an INACTIVE status. *

          * * @param deleteKeySigningKeyRequest * @return Result of the DeleteKeySigningKey operation returned by the service. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws NoSuchKeySigningKeyException * The specified key-signing key (KSK) doesn't exist. * @throws InvalidKeySigningKeyStatusException * The key-signing key (KSK) status isn't valid or another KSK has the status INTERNAL_FAILURE. * @throws InvalidSigningStatusException * Your hosted zone status isn't valid for this operation. In the hosted zone, change the status to enable * DNSSEC or disable DNSSEC. * @throws InvalidKmsArnException * The KeyManagementServiceArn that you specified isn't valid to use with DNSSEC signing. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.DeleteKeySigningKey * @see AWS * API Documentation */ @Override public DeleteKeySigningKeyResponse deleteKeySigningKey(DeleteKeySigningKeyRequest deleteKeySigningKeyRequest) throws ConcurrentModificationException, NoSuchKeySigningKeyException, InvalidKeySigningKeyStatusException, InvalidSigningStatusException, InvalidKmsArnException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(DeleteKeySigningKeyResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteKeySigningKeyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteKeySigningKeyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteKeySigningKey"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteKeySigningKey").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(deleteKeySigningKeyRequest) .withMarshaller(new DeleteKeySigningKeyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Deletes a configuration for DNS query logging. If you delete a configuration, Amazon Route 53 stops sending query * logs to CloudWatch Logs. Route 53 doesn't delete any logs that are already in CloudWatch Logs. *

          *

          * For more information about DNS query logs, see CreateQueryLoggingConfig. *

          * * @param deleteQueryLoggingConfigRequest * @return Result of the DeleteQueryLoggingConfig operation returned by the service. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws NoSuchQueryLoggingConfigException * There is no DNS query logging configuration with the specified ID. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.DeleteQueryLoggingConfig * @see AWS API Documentation */ @Override public DeleteQueryLoggingConfigResponse deleteQueryLoggingConfig( DeleteQueryLoggingConfigRequest deleteQueryLoggingConfigRequest) throws ConcurrentModificationException, NoSuchQueryLoggingConfigException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(DeleteQueryLoggingConfigResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteQueryLoggingConfigRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteQueryLoggingConfigRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteQueryLoggingConfig"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteQueryLoggingConfig").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(deleteQueryLoggingConfigRequest) .withMarshaller(new DeleteQueryLoggingConfigRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Deletes a reusable delegation set. *

          * *

          * You can delete a reusable delegation set only if it isn't associated with any hosted zones. *

          *
          *

          * To verify that the reusable delegation set is not associated with any hosted zones, submit a GetReusableDelegationSet request and specify the ID of the reusable delegation set that you want to delete. *

          * * @param deleteReusableDelegationSetRequest * A request to delete a reusable delegation set. * @return Result of the DeleteReusableDelegationSet operation returned by the service. * @throws NoSuchDelegationSetException * A reusable delegation set with the specified ID does not exist. * @throws DelegationSetInUseException * The specified delegation contains associated hosted zones which must be deleted before the reusable * delegation set can be deleted. * @throws DelegationSetNotReusableException * A reusable delegation set with the specified ID does not exist. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.DeleteReusableDelegationSet * @see AWS API Documentation */ @Override public DeleteReusableDelegationSetResponse deleteReusableDelegationSet( DeleteReusableDelegationSetRequest deleteReusableDelegationSetRequest) throws NoSuchDelegationSetException, DelegationSetInUseException, DelegationSetNotReusableException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(DeleteReusableDelegationSetResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteReusableDelegationSetRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteReusableDelegationSetRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteReusableDelegationSet"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteReusableDelegationSet").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(deleteReusableDelegationSetRequest) .withMarshaller(new DeleteReusableDelegationSetRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Deletes a traffic policy. *

          *

          * When you delete a traffic policy, Route 53 sets a flag on the policy to indicate that it has been deleted. * However, Route 53 never fully deletes the traffic policy. Note the following: *

          *
            *
          • *

            * Deleted traffic policies aren't listed if you run ListTrafficPolicies. *

            *
          • *
          • *

            * There's no way to get a list of deleted policies. *

            *
          • *
          • *

            * If you retain the ID of the policy, you can get information about the policy, including the traffic policy * document, by running GetTrafficPolicy. *

            *
          • *
          * * @param deleteTrafficPolicyRequest * A request to delete a specified traffic policy version. * @return Result of the DeleteTrafficPolicy operation returned by the service. * @throws NoSuchTrafficPolicyException * No traffic policy exists with the specified ID. * @throws InvalidInputException * The input is not valid. * @throws TrafficPolicyInUseException * One or more traffic policy instances were created by using the specified traffic policy. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.DeleteTrafficPolicy * @see AWS * API Documentation */ @Override public DeleteTrafficPolicyResponse deleteTrafficPolicy(DeleteTrafficPolicyRequest deleteTrafficPolicyRequest) throws NoSuchTrafficPolicyException, InvalidInputException, TrafficPolicyInUseException, ConcurrentModificationException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(DeleteTrafficPolicyResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteTrafficPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteTrafficPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteTrafficPolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteTrafficPolicy").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(deleteTrafficPolicyRequest) .withMarshaller(new DeleteTrafficPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Deletes a traffic policy instance and all of the resource record sets that Amazon Route 53 created when you * created the instance. *

          * *

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

          *
          * * @param deleteTrafficPolicyInstanceRequest * A request to delete a specified traffic policy instance. * @return Result of the DeleteTrafficPolicyInstance operation returned by the service. * @throws NoSuchTrafficPolicyInstanceException * No traffic policy instance exists with the specified ID. * @throws InvalidInputException * The input is not valid. * @throws PriorRequestNotCompleteException * If Amazon Route 53 can't process a request before the next request arrives, it will reject subsequent * requests for the same hosted zone and return an HTTP 400 error (Bad request). * If Route 53 returns this error repeatedly for the same request, we recommend that you wait, in intervals * of increasing duration, before you try the request again. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.DeleteTrafficPolicyInstance * @see AWS API Documentation */ @Override public DeleteTrafficPolicyInstanceResponse deleteTrafficPolicyInstance( DeleteTrafficPolicyInstanceRequest deleteTrafficPolicyInstanceRequest) throws NoSuchTrafficPolicyInstanceException, InvalidInputException, PriorRequestNotCompleteException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(DeleteTrafficPolicyInstanceResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteTrafficPolicyInstanceRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteTrafficPolicyInstanceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteTrafficPolicyInstance"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteTrafficPolicyInstance").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(deleteTrafficPolicyInstanceRequest) .withMarshaller(new DeleteTrafficPolicyInstanceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Removes authorization to submit an AssociateVPCWithHostedZone request to associate a specified VPC * with a hosted zone that was created by a different account. You must use the account that created the hosted zone * to submit a DeleteVPCAssociationAuthorization request. *

          * *

          * Sending this request only prevents the Amazon Web Services account that created the VPC from associating the VPC * with the Amazon Route 53 hosted zone in the future. If the VPC is already associated with the hosted zone, * DeleteVPCAssociationAuthorization won't disassociate the VPC from the hosted zone. If you want to * delete an existing association, use DisassociateVPCFromHostedZone. *

          *
          * * @param deleteVpcAssociationAuthorizationRequest * A complex type that contains information about the request to remove authorization to associate a VPC that * was created by one Amazon Web Services account with a hosted zone that was created with a different Amazon * Web Services account. * @return Result of the DeleteVPCAssociationAuthorization operation returned by the service. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws VpcAssociationAuthorizationNotFoundException * The VPC that you specified is not authorized to be associated with the hosted zone. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidVpcIdException * The VPC ID that you specified either isn't a valid ID or the current account is not authorized to access * this VPC. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.DeleteVPCAssociationAuthorization * @see AWS API Documentation */ @Override public DeleteVpcAssociationAuthorizationResponse deleteVPCAssociationAuthorization( DeleteVpcAssociationAuthorizationRequest deleteVpcAssociationAuthorizationRequest) throws ConcurrentModificationException, VpcAssociationAuthorizationNotFoundException, NoSuchHostedZoneException, InvalidVpcIdException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(DeleteVpcAssociationAuthorizationResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteVpcAssociationAuthorizationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteVpcAssociationAuthorizationRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteVPCAssociationAuthorization"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DeleteVPCAssociationAuthorization").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(deleteVpcAssociationAuthorizationRequest) .withMarshaller(new DeleteVpcAssociationAuthorizationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Disables DNSSEC signing in a specific hosted zone. This action does not deactivate any key-signing keys (KSKs) * that are active in the hosted zone. *

          * * @param disableHostedZoneDnssecRequest * @return Result of the DisableHostedZoneDNSSEC operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidArgumentException * Parameter name is not valid. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws KeySigningKeyInParentDsRecordException * The key-signing key (KSK) is specified in a parent DS record. * @throws DnssecNotFoundException * The hosted zone doesn't have any DNSSEC resources. * @throws InvalidKeySigningKeyStatusException * The key-signing key (KSK) status isn't valid or another KSK has the status INTERNAL_FAILURE. * @throws InvalidKmsArnException * The KeyManagementServiceArn that you specified isn't valid to use with DNSSEC signing. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.DisableHostedZoneDNSSEC * @see AWS API Documentation */ @Override public DisableHostedZoneDnssecResponse disableHostedZoneDNSSEC(DisableHostedZoneDnssecRequest disableHostedZoneDnssecRequest) throws NoSuchHostedZoneException, InvalidArgumentException, ConcurrentModificationException, KeySigningKeyInParentDsRecordException, DnssecNotFoundException, InvalidKeySigningKeyStatusException, InvalidKmsArnException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(DisableHostedZoneDnssecResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(disableHostedZoneDnssecRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, disableHostedZoneDnssecRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DisableHostedZoneDNSSEC"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DisableHostedZoneDNSSEC").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(disableHostedZoneDnssecRequest) .withMarshaller(new DisableHostedZoneDnssecRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Disassociates an Amazon Virtual Private Cloud (Amazon VPC) from an Amazon Route 53 private hosted zone. Note the * following: *

          *
            *
          • *

            * You can't disassociate the last Amazon VPC from a private hosted zone. *

            *
          • *
          • *

            * You can't convert a private hosted zone into a public hosted zone. *

            *
          • *
          • *

            * You can submit a DisassociateVPCFromHostedZone request using either the account that created the * hosted zone or the account that created the Amazon VPC. *

            *
          • *
          • *

            * Some services, such as Cloud Map and Amazon Elastic File System (Amazon EFS) automatically create hosted zones * and associate VPCs with the hosted zones. A service can create a hosted zone using your account or using its own * account. You can disassociate a VPC from a hosted zone only if the service created the hosted zone using your * account. *

            *

            * When you run * DisassociateVPCFromHostedZone, if the hosted zone has a value for OwningAccount, you can use * DisassociateVPCFromHostedZone. If the hosted zone has a value for OwningService, you * can't use DisassociateVPCFromHostedZone. *

            *
          • *
          * *

          * When revoking access, the hosted zone and the Amazon VPC must belong to the same partition. A partition is a * group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one partition. *

          *

          * The following are the supported partitions: *

          *
            *
          • *

            * aws - Amazon Web Services Regions *

            *
          • *
          • *

            * aws-cn - China Regions *

            *
          • *
          • *

            * aws-us-gov - Amazon Web Services GovCloud (US) Region *

            *
          • *
          *

          * For more information, see Access Management in the * Amazon Web Services General Reference. *

          *
          * * @param disassociateVpcFromHostedZoneRequest * A complex type that contains information about the VPC that you want to disassociate from a specified * private hosted zone. * @return Result of the DisassociateVPCFromHostedZone operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidVpcIdException * The VPC ID that you specified either isn't a valid ID or the current account is not authorized to access * this VPC. * @throws VpcAssociationNotFoundException * The specified VPC and hosted zone are not currently associated. * @throws LastVpcAssociationException * The VPC that you're trying to disassociate from the private hosted zone is the last VPC that is * associated with the hosted zone. Amazon Route 53 doesn't support disassociating the last VPC from a * hosted zone. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.DisassociateVPCFromHostedZone * @see AWS API Documentation */ @Override public DisassociateVpcFromHostedZoneResponse disassociateVPCFromHostedZone( DisassociateVpcFromHostedZoneRequest disassociateVpcFromHostedZoneRequest) throws NoSuchHostedZoneException, InvalidVpcIdException, VpcAssociationNotFoundException, LastVpcAssociationException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(DisassociateVpcFromHostedZoneResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(disassociateVpcFromHostedZoneRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, disassociateVpcFromHostedZoneRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DisassociateVPCFromHostedZone"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DisassociateVPCFromHostedZone").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(disassociateVpcFromHostedZoneRequest) .withMarshaller(new DisassociateVpcFromHostedZoneRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Enables DNSSEC signing in a specific hosted zone. *

          * * @param enableHostedZoneDnssecRequest * @return Result of the EnableHostedZoneDNSSEC operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidArgumentException * Parameter name is not valid. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws KeySigningKeyWithActiveStatusNotFoundException * A key-signing key (KSK) with ACTIVE status wasn't found. * @throws InvalidKmsArnException * The KeyManagementServiceArn that you specified isn't valid to use with DNSSEC signing. * @throws HostedZonePartiallyDelegatedException * The hosted zone nameservers don't match the parent nameservers. The hosted zone and parent must have the * same nameservers. * @throws DnssecNotFoundException * The hosted zone doesn't have any DNSSEC resources. * @throws InvalidKeySigningKeyStatusException * The key-signing key (KSK) status isn't valid or another KSK has the status INTERNAL_FAILURE. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.EnableHostedZoneDNSSEC * @see AWS API Documentation */ @Override public EnableHostedZoneDnssecResponse enableHostedZoneDNSSEC(EnableHostedZoneDnssecRequest enableHostedZoneDnssecRequest) throws NoSuchHostedZoneException, InvalidArgumentException, ConcurrentModificationException, KeySigningKeyWithActiveStatusNotFoundException, InvalidKmsArnException, HostedZonePartiallyDelegatedException, DnssecNotFoundException, InvalidKeySigningKeyStatusException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(EnableHostedZoneDnssecResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(enableHostedZoneDnssecRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, enableHostedZoneDnssecRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "EnableHostedZoneDNSSEC"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("EnableHostedZoneDNSSEC").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(enableHostedZoneDnssecRequest) .withMarshaller(new EnableHostedZoneDnssecRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets the specified limit for the current account, for example, the maximum number of health checks that you can * create using the account. *

          *

          * For the default limit, see Limits in the Amazon * Route 53 Developer Guide. To request a higher limit, open a case. *

          * *

          * You can also view account limits in Amazon Web Services Trusted Advisor. Sign in to the Amazon Web Services * Management Console and open the Trusted Advisor console at https://console.aws.amazon.com/trustedadvisor/. Then * choose Service limits in the navigation pane. *

          *
          * * @param getAccountLimitRequest * A complex type that contains information about the request to create a hosted zone. * @return Result of the GetAccountLimit operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetAccountLimit * @see AWS API * Documentation */ @Override public GetAccountLimitResponse getAccountLimit(GetAccountLimitRequest getAccountLimitRequest) throws InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( GetAccountLimitResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getAccountLimitRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getAccountLimitRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetAccountLimit"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetAccountLimit").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getAccountLimitRequest) .withMarshaller(new GetAccountLimitRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Returns the current status of a change batch request. The status is one of the following values: *

          *
            *
          • *

            * PENDING indicates that the changes in this request have not propagated to all Amazon Route 53 DNS * servers managing the hosted zone. This is the initial status of all change batch requests. *

            *
          • *
          • *

            * INSYNC indicates that the changes have propagated to all Route 53 DNS servers managing the hosted * zone. *

            *
          • *
          * * @param getChangeRequest * The input for a GetChange request. * @return Result of the GetChange operation returned by the service. * @throws NoSuchChangeException * A change with the specified change ID does not exist. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetChange * @see AWS API * Documentation */ @Override public GetChangeResponse getChange(GetChangeRequest getChangeRequest) throws NoSuchChangeException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( GetChangeResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getChangeRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getChangeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetChange"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetChange").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getChangeRequest) .withMarshaller(new GetChangeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Route 53 does not perform authorization for this API because it retrieves information that is already available * to the public. *

          * *

          * GetCheckerIpRanges still works, but we recommend that you download ip-ranges.json, which includes IP * address ranges for all Amazon Web Services services. For more information, see IP Address Ranges of * Amazon Route 53 Servers in the Amazon Route 53 Developer Guide. *

          *
          * * @param getCheckerIpRangesRequest * Empty request. * @return Result of the GetCheckerIpRanges operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetCheckerIpRanges * @see AWS * API Documentation */ @Override public GetCheckerIpRangesResponse getCheckerIpRanges(GetCheckerIpRangesRequest getCheckerIpRangesRequest) throws AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(GetCheckerIpRangesResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getCheckerIpRangesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getCheckerIpRangesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetCheckerIpRanges"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetCheckerIpRanges").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getCheckerIpRangesRequest) .withMarshaller(new GetCheckerIpRangesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Returns information about DNSSEC for a specific hosted zone, including the key-signing keys (KSKs) in the hosted * zone. *

          * * @param getDnssecRequest * @return Result of the GetDNSSEC operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidArgumentException * Parameter name is not valid. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetDNSSEC * @see AWS API * Documentation */ @Override public GetDnssecResponse getDNSSEC(GetDnssecRequest getDnssecRequest) throws NoSuchHostedZoneException, InvalidArgumentException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( GetDnssecResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getDnssecRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getDnssecRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetDNSSEC"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetDNSSEC").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getDnssecRequest) .withMarshaller(new GetDnssecRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets information about whether a specified geographic location is supported for Amazon Route 53 geolocation * resource record sets. *

          *

          * Route 53 does not perform authorization for this API because it retrieves information that is already available * to the public. *

          *

          * Use the following syntax to determine whether a continent is supported for geolocation: *

          *

          * GET /2013-04-01/geolocation?continentcode=two-letter abbreviation for a continent *

          *

          * Use the following syntax to determine whether a country is supported for geolocation: *

          *

          * GET /2013-04-01/geolocation?countrycode=two-character country code *

          *

          * Use the following syntax to determine whether a subdivision of a country is supported for geolocation: *

          *

          * GET /2013-04-01/geolocation?countrycode=two-character country code&subdivisioncode=subdivision code *

          * * @param getGeoLocationRequest * A request for information about whether a specified geographic location is supported for Amazon Route 53 * geolocation resource record sets. * @return Result of the GetGeoLocation operation returned by the service. * @throws NoSuchGeoLocationException * Amazon Route 53 doesn't support the specified geographic location. For a list of supported geolocation * codes, see the GeoLocation data * type. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetGeoLocation * @see AWS API * Documentation */ @Override public GetGeoLocationResponse getGeoLocation(GetGeoLocationRequest getGeoLocationRequest) throws NoSuchGeoLocationException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( GetGeoLocationResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getGeoLocationRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getGeoLocationRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetGeoLocation"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetGeoLocation").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getGeoLocationRequest) .withMarshaller(new GetGeoLocationRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets information about a specified health check. *

          * * @param getHealthCheckRequest * A request to get information about a specified health check. * @return Result of the GetHealthCheck operation returned by the service. * @throws NoSuchHealthCheckException * No health check exists with the specified ID. * @throws InvalidInputException * The input is not valid. * @throws IncompatibleVersionException * The resource you're trying to access is unsupported on this Amazon Route 53 endpoint. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetHealthCheck * @see AWS API * Documentation */ @Override public GetHealthCheckResponse getHealthCheck(GetHealthCheckRequest getHealthCheckRequest) throws NoSuchHealthCheckException, InvalidInputException, IncompatibleVersionException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( GetHealthCheckResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getHealthCheckRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getHealthCheckRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetHealthCheck"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetHealthCheck").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getHealthCheckRequest) .withMarshaller(new GetHealthCheckRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Retrieves the number of health checks that are associated with the current Amazon Web Services account. *

          * * @param getHealthCheckCountRequest * A request for the number of health checks that are associated with the current Amazon Web Services * account. * @return Result of the GetHealthCheckCount operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetHealthCheckCount * @see AWS * API Documentation */ @Override public GetHealthCheckCountResponse getHealthCheckCount(GetHealthCheckCountRequest getHealthCheckCountRequest) throws AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(GetHealthCheckCountResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getHealthCheckCountRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getHealthCheckCountRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetHealthCheckCount"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetHealthCheckCount").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getHealthCheckCountRequest) .withMarshaller(new GetHealthCheckCountRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets the reason that a specified health check failed most recently. *

          * * @param getHealthCheckLastFailureReasonRequest * A request for the reason that a health check failed most recently. * @return Result of the GetHealthCheckLastFailureReason operation returned by the service. * @throws NoSuchHealthCheckException * No health check exists with the specified ID. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetHealthCheckLastFailureReason * @see AWS API Documentation */ @Override public GetHealthCheckLastFailureReasonResponse getHealthCheckLastFailureReason( GetHealthCheckLastFailureReasonRequest getHealthCheckLastFailureReasonRequest) throws NoSuchHealthCheckException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(GetHealthCheckLastFailureReasonResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getHealthCheckLastFailureReasonRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getHealthCheckLastFailureReasonRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetHealthCheckLastFailureReason"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("GetHealthCheckLastFailureReason").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getHealthCheckLastFailureReasonRequest) .withMarshaller(new GetHealthCheckLastFailureReasonRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets status of a specified health check. *

          * *

          * This API is intended for use during development to diagnose behavior. It doesn’t support production use-cases * with high query rates that require immediate and actionable responses. *

          *
          * * @param getHealthCheckStatusRequest * A request to get the status for a health check. * @return Result of the GetHealthCheckStatus operation returned by the service. * @throws NoSuchHealthCheckException * No health check exists with the specified ID. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetHealthCheckStatus * @see AWS * API Documentation */ @Override public GetHealthCheckStatusResponse getHealthCheckStatus(GetHealthCheckStatusRequest getHealthCheckStatusRequest) throws NoSuchHealthCheckException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(GetHealthCheckStatusResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getHealthCheckStatusRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getHealthCheckStatusRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetHealthCheckStatus"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetHealthCheckStatus").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getHealthCheckStatusRequest) .withMarshaller(new GetHealthCheckStatusRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets information about a specified hosted zone including the four name servers assigned to the hosted zone. *

          * * @param getHostedZoneRequest * A request to get information about a specified hosted zone. * @return Result of the GetHostedZone operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetHostedZone * @see AWS API * Documentation */ @Override public GetHostedZoneResponse getHostedZone(GetHostedZoneRequest getHostedZoneRequest) throws NoSuchHostedZoneException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( GetHostedZoneResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getHostedZoneRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getHostedZoneRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetHostedZone"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetHostedZone").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getHostedZoneRequest) .withMarshaller(new GetHostedZoneRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Retrieves the number of hosted zones that are associated with the current Amazon Web Services account. *

          * * @param getHostedZoneCountRequest * A request to retrieve a count of all the hosted zones that are associated with the current Amazon Web * Services account. * @return Result of the GetHostedZoneCount operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetHostedZoneCount * @see AWS * API Documentation */ @Override public GetHostedZoneCountResponse getHostedZoneCount(GetHostedZoneCountRequest getHostedZoneCountRequest) throws InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(GetHostedZoneCountResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getHostedZoneCountRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getHostedZoneCountRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetHostedZoneCount"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetHostedZoneCount").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getHostedZoneCountRequest) .withMarshaller(new GetHostedZoneCountRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets the specified limit for a specified hosted zone, for example, the maximum number of records that you can * create in the hosted zone. *

          *

          * For the default limit, see Limits in the Amazon * Route 53 Developer Guide. To request a higher limit, open a case. *

          * * @param getHostedZoneLimitRequest * A complex type that contains information about the request to create a hosted zone. * @return Result of the GetHostedZoneLimit operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidInputException * The input is not valid. * @throws HostedZoneNotPrivateException * The specified hosted zone is a public hosted zone, not a private hosted zone. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetHostedZoneLimit * @see AWS * API Documentation */ @Override public GetHostedZoneLimitResponse getHostedZoneLimit(GetHostedZoneLimitRequest getHostedZoneLimitRequest) throws NoSuchHostedZoneException, InvalidInputException, HostedZoneNotPrivateException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(GetHostedZoneLimitResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getHostedZoneLimitRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getHostedZoneLimitRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetHostedZoneLimit"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetHostedZoneLimit").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getHostedZoneLimitRequest) .withMarshaller(new GetHostedZoneLimitRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets information about a specified configuration for DNS query logging. *

          *

          * For more information about DNS query logs, see CreateQueryLoggingConfig and Logging DNS Queries. *

          * * @param getQueryLoggingConfigRequest * @return Result of the GetQueryLoggingConfig operation returned by the service. * @throws NoSuchQueryLoggingConfigException * There is no DNS query logging configuration with the specified ID. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetQueryLoggingConfig * @see AWS * API Documentation */ @Override public GetQueryLoggingConfigResponse getQueryLoggingConfig(GetQueryLoggingConfigRequest getQueryLoggingConfigRequest) throws NoSuchQueryLoggingConfigException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(GetQueryLoggingConfigResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getQueryLoggingConfigRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getQueryLoggingConfigRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetQueryLoggingConfig"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetQueryLoggingConfig").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getQueryLoggingConfigRequest) .withMarshaller(new GetQueryLoggingConfigRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Retrieves information about a specified reusable delegation set, including the four name servers that are * assigned to the delegation set. *

          * * @param getReusableDelegationSetRequest * A request to get information about a specified reusable delegation set. * @return Result of the GetReusableDelegationSet operation returned by the service. * @throws NoSuchDelegationSetException * A reusable delegation set with the specified ID does not exist. * @throws DelegationSetNotReusableException * A reusable delegation set with the specified ID does not exist. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetReusableDelegationSet * @see AWS API Documentation */ @Override public GetReusableDelegationSetResponse getReusableDelegationSet( GetReusableDelegationSetRequest getReusableDelegationSetRequest) throws NoSuchDelegationSetException, DelegationSetNotReusableException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(GetReusableDelegationSetResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getReusableDelegationSetRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getReusableDelegationSetRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetReusableDelegationSet"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("GetReusableDelegationSet").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getReusableDelegationSetRequest) .withMarshaller(new GetReusableDelegationSetRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets the maximum number of hosted zones that you can associate with the specified reusable delegation set. *

          *

          * For the default limit, see Limits in the Amazon * Route 53 Developer Guide. To request a higher limit, open a case. *

          * * @param getReusableDelegationSetLimitRequest * A complex type that contains information about the request to create a hosted zone. * @return Result of the GetReusableDelegationSetLimit operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchDelegationSetException * A reusable delegation set with the specified ID does not exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetReusableDelegationSetLimit * @see AWS API Documentation */ @Override public GetReusableDelegationSetLimitResponse getReusableDelegationSetLimit( GetReusableDelegationSetLimitRequest getReusableDelegationSetLimitRequest) throws InvalidInputException, NoSuchDelegationSetException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(GetReusableDelegationSetLimitResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getReusableDelegationSetLimitRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getReusableDelegationSetLimitRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetReusableDelegationSetLimit"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("GetReusableDelegationSetLimit").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getReusableDelegationSetLimitRequest) .withMarshaller(new GetReusableDelegationSetLimitRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets information about a specific traffic policy version. *

          *

          * For information about how of deleting a traffic policy affects the response from GetTrafficPolicy, * see DeleteTrafficPolicy * . *

          * * @param getTrafficPolicyRequest * Gets information about a specific traffic policy version. * @return Result of the GetTrafficPolicy operation returned by the service. * @throws NoSuchTrafficPolicyException * No traffic policy exists with the specified ID. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetTrafficPolicy * @see AWS API * Documentation */ @Override public GetTrafficPolicyResponse getTrafficPolicy(GetTrafficPolicyRequest getTrafficPolicyRequest) throws NoSuchTrafficPolicyException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( GetTrafficPolicyResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getTrafficPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getTrafficPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetTrafficPolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetTrafficPolicy").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getTrafficPolicyRequest) .withMarshaller(new GetTrafficPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets information about a specified traffic policy instance. *

          * *

          * Use GetTrafficPolicyInstance with the id of new traffic policy instance to confirm that * the CreateTrafficPolicyInstance or an UpdateTrafficPolicyInstance request completed * successfully. For more information, see the State response element. *

          *
          *

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

          *
          * * @param getTrafficPolicyInstanceRequest * Gets information about a specified traffic policy instance. * @return Result of the GetTrafficPolicyInstance operation returned by the service. * @throws NoSuchTrafficPolicyInstanceException * No traffic policy instance exists with the specified ID. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetTrafficPolicyInstance * @see AWS API Documentation */ @Override public GetTrafficPolicyInstanceResponse getTrafficPolicyInstance( GetTrafficPolicyInstanceRequest getTrafficPolicyInstanceRequest) throws NoSuchTrafficPolicyInstanceException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(GetTrafficPolicyInstanceResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getTrafficPolicyInstanceRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getTrafficPolicyInstanceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetTrafficPolicyInstance"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("GetTrafficPolicyInstance").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getTrafficPolicyInstanceRequest) .withMarshaller(new GetTrafficPolicyInstanceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets the number of traffic policy instances that are associated with the current Amazon Web Services account. *

          * * @param getTrafficPolicyInstanceCountRequest * Request to get the number of traffic policy instances that are associated with the current Amazon Web * Services account. * @return Result of the GetTrafficPolicyInstanceCount operation returned by the service. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.GetTrafficPolicyInstanceCount * @see AWS API Documentation */ @Override public GetTrafficPolicyInstanceCountResponse getTrafficPolicyInstanceCount( GetTrafficPolicyInstanceCountRequest getTrafficPolicyInstanceCountRequest) throws AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(GetTrafficPolicyInstanceCountResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getTrafficPolicyInstanceCountRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getTrafficPolicyInstanceCountRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetTrafficPolicyInstanceCount"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("GetTrafficPolicyInstanceCount").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(getTrafficPolicyInstanceCountRequest) .withMarshaller(new GetTrafficPolicyInstanceCountRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Returns a paginated list of location objects and their CIDR blocks. *

          * * @param listCidrBlocksRequest * @return Result of the ListCidrBlocks operation returned by the service. * @throws NoSuchCidrCollectionException * The CIDR collection you specified, doesn't exist. * @throws NoSuchCidrLocationException * The CIDR collection location doesn't match any locations in your account. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListCidrBlocks * @see AWS API * Documentation */ @Override public ListCidrBlocksResponse listCidrBlocks(ListCidrBlocksRequest listCidrBlocksRequest) throws NoSuchCidrCollectionException, NoSuchCidrLocationException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( ListCidrBlocksResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listCidrBlocksRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listCidrBlocksRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCidrBlocks"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListCidrBlocks").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listCidrBlocksRequest) .withMarshaller(new ListCidrBlocksRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Returns a paginated list of CIDR collections in the Amazon Web Services account (metadata only). *

          * * @param listCidrCollectionsRequest * @return Result of the ListCidrCollections operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListCidrCollections * @see AWS * API Documentation */ @Override public ListCidrCollectionsResponse listCidrCollections(ListCidrCollectionsRequest listCidrCollectionsRequest) throws InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListCidrCollectionsResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listCidrCollectionsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listCidrCollectionsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCidrCollections"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListCidrCollections").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listCidrCollectionsRequest) .withMarshaller(new ListCidrCollectionsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Returns a paginated list of CIDR locations for the given collection (metadata only, does not include CIDR * blocks). *

          * * @param listCidrLocationsRequest * @return Result of the ListCidrLocations operation returned by the service. * @throws NoSuchCidrCollectionException * The CIDR collection you specified, doesn't exist. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListCidrLocations * @see AWS API * Documentation */ @Override public ListCidrLocationsResponse listCidrLocations(ListCidrLocationsRequest listCidrLocationsRequest) throws NoSuchCidrCollectionException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( ListCidrLocationsResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listCidrLocationsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listCidrLocationsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCidrLocations"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListCidrLocations").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listCidrLocationsRequest) .withMarshaller(new ListCidrLocationsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Retrieves a list of supported geographic locations. *

          *

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

          *

          * Route 53 does not perform authorization for this API because it retrieves information that is already available * to the public. *

          *

          * For a list of supported geolocation codes, see the GeoLocation data type. *

          * * @param listGeoLocationsRequest * A request to get a list of geographic locations that Amazon Route 53 supports for geolocation resource * record sets. * @return Result of the ListGeoLocations operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListGeoLocations * @see AWS API * Documentation */ @Override public ListGeoLocationsResponse listGeoLocations(ListGeoLocationsRequest listGeoLocationsRequest) throws InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( ListGeoLocationsResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listGeoLocationsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listGeoLocationsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListGeoLocations"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListGeoLocations").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listGeoLocationsRequest) .withMarshaller(new ListGeoLocationsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Retrieve a list of the health checks that are associated with the current Amazon Web Services account. *

          * * @param listHealthChecksRequest * A request to retrieve a list of the health checks that are associated with the current Amazon Web Services * account. * @return Result of the ListHealthChecks operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws IncompatibleVersionException * The resource you're trying to access is unsupported on this Amazon Route 53 endpoint. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListHealthChecks * @see AWS API * Documentation */ @Override public ListHealthChecksResponse listHealthChecks(ListHealthChecksRequest listHealthChecksRequest) throws InvalidInputException, IncompatibleVersionException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( ListHealthChecksResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listHealthChecksRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listHealthChecksRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListHealthChecks"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListHealthChecks").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listHealthChecksRequest) .withMarshaller(new ListHealthChecksRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Retrieves a list of the public and private hosted zones that are associated with the current Amazon Web Services * account. The response includes a HostedZones child element for each hosted zone. *

          *

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

          * * @param listHostedZonesRequest * A request to retrieve a list of the public and private hosted zones that are associated with the current * Amazon Web Services account. * @return Result of the ListHostedZones operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchDelegationSetException * A reusable delegation set with the specified ID does not exist. * @throws DelegationSetNotReusableException * A reusable delegation set with the specified ID does not exist. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListHostedZones * @see AWS API * Documentation */ @Override public ListHostedZonesResponse listHostedZones(ListHostedZonesRequest listHostedZonesRequest) throws InvalidInputException, NoSuchDelegationSetException, DelegationSetNotReusableException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( ListHostedZonesResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listHostedZonesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listHostedZonesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListHostedZones"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListHostedZones").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listHostedZonesRequest) .withMarshaller(new ListHostedZonesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Retrieves a list of your hosted zones in lexicographic order. The response includes a HostedZones * child element for each hosted zone created by the current Amazon Web Services account. *

          *

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

          *

          * com.example.www. *

          *

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

          *

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

          *

          * com.ex\344mple. *

          *

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

          *

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

          *
            *
          • *

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

            *
          • *
          • *

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

            *
          • *
          • *

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

            *

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

            *
          • *
          • *

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

            *
          • *
          * * @param listHostedZonesByNameRequest * Retrieves a list of the public and private hosted zones that are associated with the current Amazon Web * Services account in ASCII order by domain name. * @return Result of the ListHostedZonesByName operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws InvalidDomainNameException * The specified domain name is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListHostedZonesByName * @see AWS * API Documentation */ @Override public ListHostedZonesByNameResponse listHostedZonesByName(ListHostedZonesByNameRequest listHostedZonesByNameRequest) throws InvalidInputException, InvalidDomainNameException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListHostedZonesByNameResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listHostedZonesByNameRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listHostedZonesByNameRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListHostedZonesByName"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListHostedZonesByName").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listHostedZonesByNameRequest) .withMarshaller(new ListHostedZonesByNameRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Lists all the private hosted zones that a specified VPC is associated with, regardless of which Amazon Web * Services account or Amazon Web Services service owns the hosted zones. The HostedZoneOwner structure * in the response contains one of the following values: *

          *
            *
          • *

            * An OwningAccount element, which contains the account number of either the current Amazon Web * Services account or another Amazon Web Services account. Some services, such as Cloud Map, create hosted zones * using the current account. *

            *
          • *
          • *

            * An OwningService element, which identifies the Amazon Web Services service that created and owns the * hosted zone. For example, if a hosted zone was created by Amazon Elastic File System (Amazon EFS), the value of * Owner is efs.amazonaws.com. *

            *
          • *
          * *

          * When listing private hosted zones, the hosted zone and the Amazon VPC must belong to the same partition where the * hosted zones were created. A partition is a group of Amazon Web Services Regions. Each Amazon Web Services * account is scoped to one partition. *

          *

          * The following are the supported partitions: *

          *
            *
          • *

            * aws - Amazon Web Services Regions *

            *
          • *
          • *

            * aws-cn - China Regions *

            *
          • *
          • *

            * aws-us-gov - Amazon Web Services GovCloud (US) Region *

            *
          • *
          *

          * For more information, see Access Management in the * Amazon Web Services General Reference. *

          *
          * * @param listHostedZonesByVpcRequest * Lists all the private hosted zones that a specified VPC is associated with, regardless of which Amazon Web * Services account created the hosted zones. * @return Result of the ListHostedZonesByVPC operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws InvalidPaginationTokenException * The value that you specified to get the second or subsequent page of results is invalid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListHostedZonesByVPC * @see AWS * API Documentation */ @Override public ListHostedZonesByVpcResponse listHostedZonesByVPC(ListHostedZonesByVpcRequest listHostedZonesByVpcRequest) throws InvalidInputException, InvalidPaginationTokenException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListHostedZonesByVpcResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listHostedZonesByVpcRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listHostedZonesByVpcRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListHostedZonesByVPC"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListHostedZonesByVPC").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listHostedZonesByVpcRequest) .withMarshaller(new ListHostedZonesByVpcRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Lists the configurations for DNS query logging that are associated with the current Amazon Web Services account * or the configuration that is associated with a specified hosted zone. *

          *

          * For more information about DNS query logs, see CreateQueryLoggingConfig. Additional information, including the format of DNS query logs, appears in Logging DNS Queries in the * Amazon Route 53 Developer Guide. *

          * * @param listQueryLoggingConfigsRequest * @return Result of the ListQueryLoggingConfigs operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws InvalidPaginationTokenException * The value that you specified to get the second or subsequent page of results is invalid. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListQueryLoggingConfigs * @see AWS API Documentation */ @Override public ListQueryLoggingConfigsResponse listQueryLoggingConfigs(ListQueryLoggingConfigsRequest listQueryLoggingConfigsRequest) throws InvalidInputException, InvalidPaginationTokenException, NoSuchHostedZoneException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListQueryLoggingConfigsResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listQueryLoggingConfigsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listQueryLoggingConfigsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListQueryLoggingConfigs"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListQueryLoggingConfigs").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listQueryLoggingConfigsRequest) .withMarshaller(new ListQueryLoggingConfigsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

          *

          * ListResourceRecordSets returns up to 300 resource record sets at a time in ASCII order, beginning at * a position specified by the name and type elements. *

          *

          * Sort order *

          *

          * ListResourceRecordSets sorts results first by DNS name with the labels reversed, for example: *

          *

          * com.example.www. *

          *

          * Note the trailing dot, which can change the sort order when the record name contains characters that appear * before . (decimal 46) in the ASCII table. These characters include the following: * ! " # $ % & ' ( ) * + , - *

          *

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

          *

          * Specifying where to start listing records *

          *

          * You can use the name and type elements to specify the resource record set that the list begins with: *

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

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

          *
          *
          If you specify Name but not Type
          *
          *

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

          *
          *
          If you specify Type but not Name
          *
          *

          * Amazon Route 53 returns the InvalidInput error. *

          *
          *
          If you specify both Name and Type
          *
          *

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

          *
          *
          *

          * Resource record sets that are PENDING *

          *

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

          *

          * Changing resource record sets *

          *

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

          *

          * Displaying the next page of results *

          *

          * If a ListResourceRecordSets command returns more than one page of results, the value of * IsTruncated is true. To display the next page of results, get the values of * NextRecordName, NextRecordType, and NextRecordIdentifier (if any) from the * response. Then submit another ListResourceRecordSets request, and specify those values for * StartRecordName, StartRecordType, and StartRecordIdentifier. *

          * * @param listResourceRecordSetsRequest * A request for the resource record sets that are associated with a specified hosted zone. * @return Result of the ListResourceRecordSets operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListResourceRecordSets * @see AWS API Documentation */ @Override public ListResourceRecordSetsResponse listResourceRecordSets(ListResourceRecordSetsRequest listResourceRecordSetsRequest) throws NoSuchHostedZoneException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListResourceRecordSetsResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listResourceRecordSetsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listResourceRecordSetsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListResourceRecordSets"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListResourceRecordSets").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listResourceRecordSetsRequest) .withMarshaller(new ListResourceRecordSetsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Retrieves a list of the reusable delegation sets that are associated with the current Amazon Web Services * account. *

          * * @param listReusableDelegationSetsRequest * A request to get a list of the reusable delegation sets that are associated with the current Amazon Web * Services account. * @return Result of the ListReusableDelegationSets operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListReusableDelegationSets * @see AWS API Documentation */ @Override public ListReusableDelegationSetsResponse listReusableDelegationSets( ListReusableDelegationSetsRequest listReusableDelegationSetsRequest) throws InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListReusableDelegationSetsResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listReusableDelegationSetsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listReusableDelegationSetsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListReusableDelegationSets"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListReusableDelegationSets").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listReusableDelegationSetsRequest) .withMarshaller(new ListReusableDelegationSetsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

          *

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

          * * @param listTagsForResourceRequest * A complex type containing information about a request for a list of the tags that are associated with an * individual resource. * @return Result of the ListTagsForResource operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchHealthCheckException * No health check exists with the specified ID. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws PriorRequestNotCompleteException * If Amazon Route 53 can't process a request before the next request arrives, it will reject subsequent * requests for the same hosted zone and return an HTTP 400 error (Bad request). * If Route 53 returns this error repeatedly for the same request, we recommend that you wait, in intervals * of increasing duration, before you try the request again. * @throws ThrottlingException * The limit on the number of requests per second was exceeded. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListTagsForResource * @see AWS * API Documentation */ @Override public ListTagsForResourceResponse listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest) throws InvalidInputException, NoSuchHealthCheckException, NoSuchHostedZoneException, PriorRequestNotCompleteException, ThrottlingException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListTagsForResourceResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTagsForResourceRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTagsForResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTagsForResource"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListTagsForResource").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listTagsForResourceRequest) .withMarshaller(new ListTagsForResourceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

          *

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

          * * @param listTagsForResourcesRequest * A complex type that contains information about the health checks or hosted zones for which you want to * list tags. * @return Result of the ListTagsForResources operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchHealthCheckException * No health check exists with the specified ID. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws PriorRequestNotCompleteException * If Amazon Route 53 can't process a request before the next request arrives, it will reject subsequent * requests for the same hosted zone and return an HTTP 400 error (Bad request). * If Route 53 returns this error repeatedly for the same request, we recommend that you wait, in intervals * of increasing duration, before you try the request again. * @throws ThrottlingException * The limit on the number of requests per second was exceeded. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListTagsForResources * @see AWS * API Documentation */ @Override public ListTagsForResourcesResponse listTagsForResources(ListTagsForResourcesRequest listTagsForResourcesRequest) throws InvalidInputException, NoSuchHealthCheckException, NoSuchHostedZoneException, PriorRequestNotCompleteException, ThrottlingException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListTagsForResourcesResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTagsForResourcesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTagsForResourcesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTagsForResources"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListTagsForResources").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listTagsForResourcesRequest) .withMarshaller(new ListTagsForResourcesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets information about the latest version for every traffic policy that is associated with the current Amazon Web * Services account. Policies are listed in the order that they were created in. *

          *

          * For information about how of deleting a traffic policy affects the response from ListTrafficPolicies * , see DeleteTrafficPolicy * . *

          * * @param listTrafficPoliciesRequest * A complex type that contains the information about the request to list the traffic policies that are * associated with the current Amazon Web Services account. * @return Result of the ListTrafficPolicies operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListTrafficPolicies * @see AWS * API Documentation */ @Override public ListTrafficPoliciesResponse listTrafficPolicies(ListTrafficPoliciesRequest listTrafficPoliciesRequest) throws InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListTrafficPoliciesResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTrafficPoliciesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTrafficPoliciesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTrafficPolicies"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListTrafficPolicies").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listTrafficPoliciesRequest) .withMarshaller(new ListTrafficPoliciesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

          * *

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

          *
          *

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

          * * @param listTrafficPolicyInstancesRequest * A request to get information about the traffic policy instances that you created by using the current * Amazon Web Services account. * @return Result of the ListTrafficPolicyInstances operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchTrafficPolicyInstanceException * No traffic policy instance exists with the specified ID. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListTrafficPolicyInstances * @see AWS API Documentation */ @Override public ListTrafficPolicyInstancesResponse listTrafficPolicyInstances( ListTrafficPolicyInstancesRequest listTrafficPolicyInstancesRequest) throws InvalidInputException, NoSuchTrafficPolicyInstanceException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListTrafficPolicyInstancesResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTrafficPolicyInstancesRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTrafficPolicyInstancesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTrafficPolicyInstances"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListTrafficPolicyInstances").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listTrafficPolicyInstancesRequest) .withMarshaller(new ListTrafficPolicyInstancesRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

          * *

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

          *
          *

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

          * * @param listTrafficPolicyInstancesByHostedZoneRequest * A request for the traffic policy instances that you created in a specified hosted zone. * @return Result of the ListTrafficPolicyInstancesByHostedZone operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchTrafficPolicyInstanceException * No traffic policy instance exists with the specified ID. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListTrafficPolicyInstancesByHostedZone * @see AWS API Documentation */ @Override public ListTrafficPolicyInstancesByHostedZoneResponse listTrafficPolicyInstancesByHostedZone( ListTrafficPolicyInstancesByHostedZoneRequest listTrafficPolicyInstancesByHostedZoneRequest) throws InvalidInputException, NoSuchTrafficPolicyInstanceException, NoSuchHostedZoneException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListTrafficPolicyInstancesByHostedZoneResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTrafficPolicyInstancesByHostedZoneRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTrafficPolicyInstancesByHostedZoneRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTrafficPolicyInstancesByHostedZone"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListTrafficPolicyInstancesByHostedZone").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration) .withInput(listTrafficPolicyInstancesByHostedZoneRequest) .withMarshaller(new ListTrafficPolicyInstancesByHostedZoneRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

          * *

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

          *
          *

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

          * * @param listTrafficPolicyInstancesByPolicyRequest * A complex type that contains the information about the request to list your traffic policy instances. * @return Result of the ListTrafficPolicyInstancesByPolicy operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchTrafficPolicyInstanceException * No traffic policy instance exists with the specified ID. * @throws NoSuchTrafficPolicyException * No traffic policy exists with the specified ID. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListTrafficPolicyInstancesByPolicy * @see AWS API Documentation */ @Override public ListTrafficPolicyInstancesByPolicyResponse listTrafficPolicyInstancesByPolicy( ListTrafficPolicyInstancesByPolicyRequest listTrafficPolicyInstancesByPolicyRequest) throws InvalidInputException, NoSuchTrafficPolicyInstanceException, NoSuchTrafficPolicyException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListTrafficPolicyInstancesByPolicyResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTrafficPolicyInstancesByPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTrafficPolicyInstancesByPolicyRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTrafficPolicyInstancesByPolicy"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListTrafficPolicyInstancesByPolicy").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listTrafficPolicyInstancesByPolicyRequest) .withMarshaller(new ListTrafficPolicyInstancesByPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

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

          *

          * Traffic policy versions are listed in numerical order by VersionNumber. *

          * * @param listTrafficPolicyVersionsRequest * A complex type that contains the information about the request to list your traffic policies. * @return Result of the ListTrafficPolicyVersions operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchTrafficPolicyException * No traffic policy exists with the specified ID. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListTrafficPolicyVersions * @see AWS API Documentation */ @Override public ListTrafficPolicyVersionsResponse listTrafficPolicyVersions( ListTrafficPolicyVersionsRequest listTrafficPolicyVersionsRequest) throws InvalidInputException, NoSuchTrafficPolicyException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListTrafficPolicyVersionsResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTrafficPolicyVersionsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTrafficPolicyVersionsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTrafficPolicyVersions"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListTrafficPolicyVersions").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listTrafficPolicyVersionsRequest) .withMarshaller(new ListTrafficPolicyVersionsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets a list of the VPCs that were created by other accounts and that can be associated with a specified hosted * zone because you've submitted one or more CreateVPCAssociationAuthorization requests. *

          *

          * The response includes a VPCs element with a VPC child element for each VPC that can be * associated with the hosted zone. *

          * * @param listVpcAssociationAuthorizationsRequest * A complex type that contains information about that can be associated with your hosted zone. * @return Result of the ListVPCAssociationAuthorizations operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidInputException * The input is not valid. * @throws InvalidPaginationTokenException * The value that you specified to get the second or subsequent page of results is invalid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.ListVPCAssociationAuthorizations * @see AWS API Documentation */ @Override public ListVpcAssociationAuthorizationsResponse listVPCAssociationAuthorizations( ListVpcAssociationAuthorizationsRequest listVpcAssociationAuthorizationsRequest) throws NoSuchHostedZoneException, InvalidInputException, InvalidPaginationTokenException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(ListVpcAssociationAuthorizationsResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listVpcAssociationAuthorizationsRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listVpcAssociationAuthorizationsRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListVPCAssociationAuthorizations"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("ListVPCAssociationAuthorizations").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(listVpcAssociationAuthorizationsRequest) .withMarshaller(new ListVpcAssociationAuthorizationsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Gets the value that Amazon Route 53 returns in response to a DNS request for a specified record name and type. * You can optionally specify the IP address of a DNS resolver, an EDNS0 client subnet IP address, and a subnet * mask. *

          *

          * This call only supports querying public hosted zones. *

          * *

          * The TestDnsAnswer returns information similar to what you would expect from the answer section of * the dig command. Therefore, if you query for the name servers of a subdomain that point to the * parent name servers, those will not be returned. *

          *
          * * @param testDnsAnswerRequest * Gets the value that Amazon Route 53 returns in response to a DNS request for a specified record name and * type. You can optionally specify the IP address of a DNS resolver, an EDNS0 client subnet IP address, and * a subnet mask. * @return Result of the TestDNSAnswer operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidInputException * The input is not valid. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.TestDNSAnswer * @see AWS API * Documentation */ @Override public TestDnsAnswerResponse testDNSAnswer(TestDnsAnswerRequest testDnsAnswerRequest) throws NoSuchHostedZoneException, InvalidInputException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( TestDnsAnswerResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(testDnsAnswerRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, testDnsAnswerRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TestDNSAnswer"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("TestDNSAnswer").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(testDnsAnswerRequest) .withMarshaller(new TestDnsAnswerRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Updates an existing health check. Note that some values can't be updated. *

          *

          * For more information about updating health checks, see Creating, * Updating, and Deleting Health Checks in the Amazon Route 53 Developer Guide. *

          * * @param updateHealthCheckRequest * A complex type that contains information about a request to update a health check. * @return Result of the UpdateHealthCheck operation returned by the service. * @throws NoSuchHealthCheckException * No health check exists with the specified ID. * @throws InvalidInputException * The input is not valid. * @throws HealthCheckVersionMismatchException * The value of HealthCheckVersion in the request doesn't match the value of * HealthCheckVersion in the health check. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.UpdateHealthCheck * @see AWS API * Documentation */ @Override public UpdateHealthCheckResponse updateHealthCheck(UpdateHealthCheckRequest updateHealthCheckRequest) throws NoSuchHealthCheckException, InvalidInputException, HealthCheckVersionMismatchException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory.createCombinedResponseHandler( UpdateHealthCheckResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateHealthCheckRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateHealthCheckRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateHealthCheck"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UpdateHealthCheck").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(updateHealthCheckRequest) .withMarshaller(new UpdateHealthCheckRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Updates the comment for a specified hosted zone. *

          * * @param updateHostedZoneCommentRequest * A request to update the comment for a hosted zone. * @return Result of the UpdateHostedZoneComment operation returned by the service. * @throws NoSuchHostedZoneException * No hosted zone exists with the ID that you specified. * @throws InvalidInputException * The input is not valid. * @throws PriorRequestNotCompleteException * If Amazon Route 53 can't process a request before the next request arrives, it will reject subsequent * requests for the same hosted zone and return an HTTP 400 error (Bad request). * If Route 53 returns this error repeatedly for the same request, we recommend that you wait, in intervals * of increasing duration, before you try the request again. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.UpdateHostedZoneComment * @see AWS API Documentation */ @Override public UpdateHostedZoneCommentResponse updateHostedZoneComment(UpdateHostedZoneCommentRequest updateHostedZoneCommentRequest) throws NoSuchHostedZoneException, InvalidInputException, PriorRequestNotCompleteException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(UpdateHostedZoneCommentResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateHostedZoneCommentRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateHostedZoneCommentRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateHostedZoneComment"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateHostedZoneComment").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(updateHostedZoneCommentRequest) .withMarshaller(new UpdateHostedZoneCommentRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

          * Updates the comment for a specified traffic policy version. *

          * * @param updateTrafficPolicyCommentRequest * A complex type that contains information about the traffic policy that you want to update the comment for. * @return Result of the UpdateTrafficPolicyComment operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchTrafficPolicyException * No traffic policy exists with the specified ID. * @throws ConcurrentModificationException * Another user submitted a request to create, update, or delete the object at the same time that you did. * Retry the request. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.UpdateTrafficPolicyComment * @see AWS API Documentation */ @Override public UpdateTrafficPolicyCommentResponse updateTrafficPolicyComment( UpdateTrafficPolicyCommentRequest updateTrafficPolicyCommentRequest) throws InvalidInputException, NoSuchTrafficPolicyException, ConcurrentModificationException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(UpdateTrafficPolicyCommentResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateTrafficPolicyCommentRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateTrafficPolicyCommentRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateTrafficPolicyComment"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateTrafficPolicyComment").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(updateTrafficPolicyCommentRequest) .withMarshaller(new UpdateTrafficPolicyCommentRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** * *

          * After you submit a UpdateTrafficPolicyInstance request, there's a brief delay while Route 53 creates * the resource record sets that are specified in the traffic policy definition. Use * GetTrafficPolicyInstance with the id of updated traffic policy instance confirm that * the UpdateTrafficPolicyInstance request completed successfully. For more information, see the * State response element. *

          *
          *

          * Updates the resource record sets in a specified hosted zone that were created based on the settings in a * specified traffic policy version. *

          *

          * When you update a traffic policy instance, Amazon Route 53 continues to respond to DNS queries for the root * resource record set name (such as example.com) while it replaces one group of resource record sets with another. * Route 53 performs the following operations: *

          *
            *
          1. *

            * Route 53 creates a new group of resource record sets based on the specified traffic policy. This is true * regardless of how significant the differences are between the existing resource record sets and the new resource * record sets. *

            *
          2. *
          3. *

            * When all of the new resource record sets have been created, Route 53 starts to respond to DNS queries for the * root resource record set name (such as example.com) by using the new resource record sets. *

            *
          4. *
          5. *

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

            *
          6. *
          * * @param updateTrafficPolicyInstanceRequest * A complex type that contains information about the resource record sets that you want to update based on a * specified traffic policy instance. * @return Result of the UpdateTrafficPolicyInstance operation returned by the service. * @throws InvalidInputException * The input is not valid. * @throws NoSuchTrafficPolicyException * No traffic policy exists with the specified ID. * @throws NoSuchTrafficPolicyInstanceException * No traffic policy instance exists with the specified ID. * @throws PriorRequestNotCompleteException * If Amazon Route 53 can't process a request before the next request arrives, it will reject subsequent * requests for the same hosted zone and return an HTTP 400 error (Bad request). * If Route 53 returns this error repeatedly for the same request, we recommend that you wait, in intervals * of increasing duration, before you try the request again. * @throws ConflictingTypesException * You tried to update a traffic policy instance by using a traffic policy version that has a different DNS * type than the current type for the instance. You specified the type in the JSON document in the * CreateTrafficPolicy or CreateTrafficPolicyVersionrequest. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws Route53Exception * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample Route53Client.UpdateTrafficPolicyInstance * @see AWS API Documentation */ @Override public UpdateTrafficPolicyInstanceResponse updateTrafficPolicyInstance( UpdateTrafficPolicyInstanceRequest updateTrafficPolicyInstanceRequest) throws InvalidInputException, NoSuchTrafficPolicyException, NoSuchTrafficPolicyInstanceException, PriorRequestNotCompleteException, ConflictingTypesException, AwsServiceException, SdkClientException, Route53Exception { HttpResponseHandler> responseHandler = protocolFactory .createCombinedResponseHandler(UpdateTrafficPolicyInstanceResponse::builder, new XmlOperationMetadata().withHasStreamingSuccessResponse(false)); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateTrafficPolicyInstanceRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateTrafficPolicyInstanceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Route 53"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateTrafficPolicyInstance"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateTrafficPolicyInstance").withProtocolMetadata(protocolMetadata) .withCombinedResponseHandler(responseHandler).withMetricCollector(apiCallMetricCollector) .withRequestConfiguration(clientConfiguration).withInput(updateTrafficPolicyInstanceRequest) .withMarshaller(new UpdateTrafficPolicyInstanceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** * Create an instance of {@link Route53Waiter} using this client. *

          * Waiters created via this method are managed by the SDK and resources will be released when the service client is * closed. * * @return an instance of {@link Route53Waiter} */ @Override public Route53Waiter waiter() { return Route53Waiter.builder().client(this).build(); } @Override public final String serviceName() { return SERVICE_NAME; } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); } if (publishers == null || publishers.isEmpty()) { publishers = clientConfiguration.option(SdkClientOption.METRIC_PUBLISHERS); } if (publishers == null) { publishers = Collections.emptyList(); } return publishers; } private void updateRetryStrategyClientConfiguration(SdkClientConfiguration.Builder configuration) { ClientOverrideConfiguration.Builder builder = configuration.asOverrideConfigurationBuilder(); RetryMode retryMode = builder.retryMode(); if (retryMode != null) { configuration.option(SdkClientOption.RETRY_STRATEGY, AwsRetryStrategy.forRetryMode(retryMode)); } else { Consumer> configurator = builder.retryStrategyConfigurator(); if (configurator != null) { RetryStrategy.Builder defaultBuilder = AwsRetryStrategy.defaultRetryStrategy().toBuilder(); configurator.accept(defaultBuilder); configuration.option(SdkClientOption.RETRY_STRATEGY, defaultBuilder.build()); } else { RetryStrategy retryStrategy = builder.retryStrategy(); if (retryStrategy != null) { configuration.option(SdkClientOption.RETRY_STRATEGY, retryStrategy); } } } configuration.option(SdkClientOption.CONFIGURED_RETRY_MODE, null); configuration.option(SdkClientOption.CONFIGURED_RETRY_STRATEGY, null); configuration.option(SdkClientOption.CONFIGURED_RETRY_CONFIGURATOR, null); } private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, SdkClientConfiguration clientConfiguration) { List plugins = request.overrideConfiguration().map(c -> c.plugins()).orElse(Collections.emptyList()); SdkClientConfiguration.Builder configuration = clientConfiguration.toBuilder(); if (plugins.isEmpty()) { return configuration.build(); } Route53ServiceClientConfigurationBuilder serviceConfigBuilder = new Route53ServiceClientConfigurationBuilder( configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } updateRetryStrategyClientConfiguration(configuration); return configuration.build(); } private AwsXmlProtocolFactory init() { return AwsXmlProtocolFactory .builder() .registerModeledException( ExceptionMetadata.builder().errorCode("ConcurrentModification") .exceptionBuilderSupplier(ConcurrentModificationException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidKeySigningKeyName") .exceptionBuilderSupplier(InvalidKeySigningKeyNameException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TooManyTrafficPolicyVersionsForCurrentPolicy") .exceptionBuilderSupplier(TooManyTrafficPolicyVersionsForCurrentPolicyException::builder) .httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NoSuchCidrLocationException") .exceptionBuilderSupplier(NoSuchCidrLocationException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("IncompatibleVersion") .exceptionBuilderSupplier(IncompatibleVersionException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("VPCAssociationAuthorizationNotFound") .exceptionBuilderSupplier(VpcAssociationAuthorizationNotFoundException::builder) .httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NoSuchTrafficPolicy") .exceptionBuilderSupplier(NoSuchTrafficPolicyException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TooManyTrafficPolicies") .exceptionBuilderSupplier(TooManyTrafficPoliciesException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("DelegationSetAlreadyCreated") .exceptionBuilderSupplier(DelegationSetAlreadyCreatedException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NoSuchHostedZone") .exceptionBuilderSupplier(NoSuchHostedZoneException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("QueryLoggingConfigAlreadyExists") .exceptionBuilderSupplier(QueryLoggingConfigAlreadyExistsException::builder).httpStatusCode(409) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("HostedZoneNotPrivate") .exceptionBuilderSupplier(HostedZoneNotPrivateException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NoSuchGeoLocation") .exceptionBuilderSupplier(NoSuchGeoLocationException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("KeySigningKeyInUse") .exceptionBuilderSupplier(KeySigningKeyInUseException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("KeySigningKeyAlreadyExists") .exceptionBuilderSupplier(KeySigningKeyAlreadyExistsException::builder).httpStatusCode(409) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("KeySigningKeyWithActiveStatusNotFound") .exceptionBuilderSupplier(KeySigningKeyWithActiveStatusNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("CidrCollectionInUseException") .exceptionBuilderSupplier(CidrCollectionInUseException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InsufficientCloudWatchLogsResourcePolicy") .exceptionBuilderSupplier(InsufficientCloudWatchLogsResourcePolicyException::builder) .httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidKMSArn") .exceptionBuilderSupplier(InvalidKmsArnException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("HealthCheckVersionMismatch") .exceptionBuilderSupplier(HealthCheckVersionMismatchException::builder).httpStatusCode(409) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("PublicZoneVPCAssociation") .exceptionBuilderSupplier(PublicZoneVpcAssociationException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("HealthCheckAlreadyExists") .exceptionBuilderSupplier(HealthCheckAlreadyExistsException::builder).httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NoSuchDelegationSet") .exceptionBuilderSupplier(NoSuchDelegationSetException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NotAuthorizedException") .exceptionBuilderSupplier(NotAuthorizedException::builder).httpStatusCode(401).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("VPCAssociationNotFound") .exceptionBuilderSupplier(VpcAssociationNotFoundException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TooManyVPCAssociationAuthorizations") .exceptionBuilderSupplier(TooManyVpcAssociationAuthorizationsException::builder) .httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidVPCId") .exceptionBuilderSupplier(InvalidVpcIdException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("CidrBlockInUseException") .exceptionBuilderSupplier(CidrBlockInUseException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TooManyTrafficPolicyInstances") .exceptionBuilderSupplier(TooManyTrafficPolicyInstancesException::builder).httpStatusCode(400) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("CidrCollectionVersionMismatchException") .exceptionBuilderSupplier(CidrCollectionVersionMismatchException::builder).httpStatusCode(409) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidPaginationToken") .exceptionBuilderSupplier(InvalidPaginationTokenException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("DelegationSetNotAvailable") .exceptionBuilderSupplier(DelegationSetNotAvailableException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NoSuchTrafficPolicyInstance") .exceptionBuilderSupplier(NoSuchTrafficPolicyInstanceException::builder).httpStatusCode(404) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("HostedZoneNotEmpty") .exceptionBuilderSupplier(HostedZoneNotEmptyException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidDomainName") .exceptionBuilderSupplier(InvalidDomainNameException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TooManyHealthChecks") .exceptionBuilderSupplier(TooManyHealthChecksException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidChangeBatch") .exceptionBuilderSupplier(InvalidChangeBatchException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("HostedZoneAlreadyExists") .exceptionBuilderSupplier(HostedZoneAlreadyExistsException::builder).httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidTrafficPolicyDocument") .exceptionBuilderSupplier(InvalidTrafficPolicyDocumentException::builder).httpStatusCode(400) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ThrottlingException") .exceptionBuilderSupplier(ThrottlingException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TrafficPolicyAlreadyExists") .exceptionBuilderSupplier(TrafficPolicyAlreadyExistsException::builder).httpStatusCode(409) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("DelegationSetAlreadyReusable") .exceptionBuilderSupplier(DelegationSetAlreadyReusableException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TrafficPolicyInUse") .exceptionBuilderSupplier(TrafficPolicyInUseException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TooManyHostedZones") .exceptionBuilderSupplier(TooManyHostedZonesException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("HostedZonePartiallyDelegated") .exceptionBuilderSupplier(HostedZonePartiallyDelegatedException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TrafficPolicyInstanceAlreadyExists") .exceptionBuilderSupplier(TrafficPolicyInstanceAlreadyExistsException::builder) .httpStatusCode(409).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NoSuchChange") .exceptionBuilderSupplier(NoSuchChangeException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("KeySigningKeyInParentDSRecord") .exceptionBuilderSupplier(KeySigningKeyInParentDsRecordException::builder).httpStatusCode(400) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidKeySigningKeyStatus") .exceptionBuilderSupplier(InvalidKeySigningKeyStatusException::builder).httpStatusCode(400) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ConflictingTypes") .exceptionBuilderSupplier(ConflictingTypesException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("DelegationSetNotReusable") .exceptionBuilderSupplier(DelegationSetNotReusableException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("PriorRequestNotComplete") .exceptionBuilderSupplier(PriorRequestNotCompleteException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("HostedZoneNotFound") .exceptionBuilderSupplier(HostedZoneNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidArgument") .exceptionBuilderSupplier(InvalidArgumentException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("DNSSECNotFound") .exceptionBuilderSupplier(DnssecNotFoundException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NoSuchKeySigningKey") .exceptionBuilderSupplier(NoSuchKeySigningKeyException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidInput") .exceptionBuilderSupplier(InvalidInputException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ConflictingDomainExists") .exceptionBuilderSupplier(ConflictingDomainExistsException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("CidrCollectionAlreadyExistsException") .exceptionBuilderSupplier(CidrCollectionAlreadyExistsException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidSigningStatus") .exceptionBuilderSupplier(InvalidSigningStatusException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("DelegationSetInUse") .exceptionBuilderSupplier(DelegationSetInUseException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NoSuchQueryLoggingConfig") .exceptionBuilderSupplier(NoSuchQueryLoggingConfigException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NoSuchHealthCheck") .exceptionBuilderSupplier(NoSuchHealthCheckException::builder).httpStatusCode(404).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("LastVPCAssociation") .exceptionBuilderSupplier(LastVpcAssociationException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NoSuchCloudWatchLogsLogGroup") .exceptionBuilderSupplier(NoSuchCloudWatchLogsLogGroupException::builder).httpStatusCode(404) .build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TooManyKeySigningKeys") .exceptionBuilderSupplier(TooManyKeySigningKeysException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("LimitsExceeded") .exceptionBuilderSupplier(LimitsExceededException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NoSuchCidrCollectionException") .exceptionBuilderSupplier(NoSuchCidrCollectionException::builder).httpStatusCode(404).build()) .clientConfiguration(clientConfiguration).defaultServiceExceptionSupplier(Route53Exception::builder).build(); } @Override public final Route53ServiceClientConfiguration serviceClientConfiguration() { return new Route53ServiceClientConfigurationBuilder(this.clientConfiguration.toBuilder()).build(); } @Override public void close() { clientHandler.close(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy