software.amazon.awssdk.services.globalaccelerator.DefaultGlobalAcceleratorClient Maven / Gradle / Ivy
Show all versions of globalaccelerator Show documentation
/*
* 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.globalaccelerator;
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.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.json.AwsJsonProtocol;
import software.amazon.awssdk.protocols.json.AwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.BaseAwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.JsonOperationMetadata;
import software.amazon.awssdk.retries.api.RetryStrategy;
import software.amazon.awssdk.services.globalaccelerator.internal.GlobalAcceleratorServiceClientConfigurationBuilder;
import software.amazon.awssdk.services.globalaccelerator.model.AcceleratorNotDisabledException;
import software.amazon.awssdk.services.globalaccelerator.model.AcceleratorNotFoundException;
import software.amazon.awssdk.services.globalaccelerator.model.AccessDeniedException;
import software.amazon.awssdk.services.globalaccelerator.model.AddCustomRoutingEndpointsRequest;
import software.amazon.awssdk.services.globalaccelerator.model.AddCustomRoutingEndpointsResponse;
import software.amazon.awssdk.services.globalaccelerator.model.AddEndpointsRequest;
import software.amazon.awssdk.services.globalaccelerator.model.AddEndpointsResponse;
import software.amazon.awssdk.services.globalaccelerator.model.AdvertiseByoipCidrRequest;
import software.amazon.awssdk.services.globalaccelerator.model.AdvertiseByoipCidrResponse;
import software.amazon.awssdk.services.globalaccelerator.model.AllowCustomRoutingTrafficRequest;
import software.amazon.awssdk.services.globalaccelerator.model.AllowCustomRoutingTrafficResponse;
import software.amazon.awssdk.services.globalaccelerator.model.AssociatedEndpointGroupFoundException;
import software.amazon.awssdk.services.globalaccelerator.model.AssociatedListenerFoundException;
import software.amazon.awssdk.services.globalaccelerator.model.AttachmentNotFoundException;
import software.amazon.awssdk.services.globalaccelerator.model.ByoipCidrNotFoundException;
import software.amazon.awssdk.services.globalaccelerator.model.ConflictException;
import software.amazon.awssdk.services.globalaccelerator.model.CreateAcceleratorRequest;
import software.amazon.awssdk.services.globalaccelerator.model.CreateAcceleratorResponse;
import software.amazon.awssdk.services.globalaccelerator.model.CreateCrossAccountAttachmentRequest;
import software.amazon.awssdk.services.globalaccelerator.model.CreateCrossAccountAttachmentResponse;
import software.amazon.awssdk.services.globalaccelerator.model.CreateCustomRoutingAcceleratorRequest;
import software.amazon.awssdk.services.globalaccelerator.model.CreateCustomRoutingAcceleratorResponse;
import software.amazon.awssdk.services.globalaccelerator.model.CreateCustomRoutingEndpointGroupRequest;
import software.amazon.awssdk.services.globalaccelerator.model.CreateCustomRoutingEndpointGroupResponse;
import software.amazon.awssdk.services.globalaccelerator.model.CreateCustomRoutingListenerRequest;
import software.amazon.awssdk.services.globalaccelerator.model.CreateCustomRoutingListenerResponse;
import software.amazon.awssdk.services.globalaccelerator.model.CreateEndpointGroupRequest;
import software.amazon.awssdk.services.globalaccelerator.model.CreateEndpointGroupResponse;
import software.amazon.awssdk.services.globalaccelerator.model.CreateListenerRequest;
import software.amazon.awssdk.services.globalaccelerator.model.CreateListenerResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteAcceleratorRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteAcceleratorResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteCrossAccountAttachmentRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteCrossAccountAttachmentResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteCustomRoutingAcceleratorRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteCustomRoutingAcceleratorResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteCustomRoutingEndpointGroupRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteCustomRoutingEndpointGroupResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteCustomRoutingListenerRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteCustomRoutingListenerResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteEndpointGroupRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteEndpointGroupResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteListenerRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DeleteListenerResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DenyCustomRoutingTrafficRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DenyCustomRoutingTrafficResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DeprovisionByoipCidrRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DeprovisionByoipCidrResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeAcceleratorAttributesRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeAcceleratorAttributesResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeAcceleratorRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeAcceleratorResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeCrossAccountAttachmentRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeCrossAccountAttachmentResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeCustomRoutingAcceleratorAttributesRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeCustomRoutingAcceleratorAttributesResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeCustomRoutingAcceleratorRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeCustomRoutingAcceleratorResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeCustomRoutingEndpointGroupRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeCustomRoutingEndpointGroupResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeCustomRoutingListenerRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeCustomRoutingListenerResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeEndpointGroupRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeEndpointGroupResponse;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeListenerRequest;
import software.amazon.awssdk.services.globalaccelerator.model.DescribeListenerResponse;
import software.amazon.awssdk.services.globalaccelerator.model.EndpointAlreadyExistsException;
import software.amazon.awssdk.services.globalaccelerator.model.EndpointGroupAlreadyExistsException;
import software.amazon.awssdk.services.globalaccelerator.model.EndpointGroupNotFoundException;
import software.amazon.awssdk.services.globalaccelerator.model.EndpointNotFoundException;
import software.amazon.awssdk.services.globalaccelerator.model.GlobalAcceleratorException;
import software.amazon.awssdk.services.globalaccelerator.model.IncorrectCidrStateException;
import software.amazon.awssdk.services.globalaccelerator.model.InternalServiceErrorException;
import software.amazon.awssdk.services.globalaccelerator.model.InvalidArgumentException;
import software.amazon.awssdk.services.globalaccelerator.model.InvalidNextTokenException;
import software.amazon.awssdk.services.globalaccelerator.model.InvalidPortRangeException;
import software.amazon.awssdk.services.globalaccelerator.model.LimitExceededException;
import software.amazon.awssdk.services.globalaccelerator.model.ListAcceleratorsRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListAcceleratorsResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListByoipCidrsRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListByoipCidrsResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListCrossAccountAttachmentsRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListCrossAccountAttachmentsResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListCrossAccountResourceAccountsRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListCrossAccountResourceAccountsResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListCrossAccountResourcesRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListCrossAccountResourcesResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingAcceleratorsRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingAcceleratorsResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingEndpointGroupsRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingEndpointGroupsResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingListenersRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingListenersResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingPortMappingsByDestinationRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingPortMappingsByDestinationResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingPortMappingsRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingPortMappingsResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListEndpointGroupsRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListEndpointGroupsResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListListenersRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListListenersResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListTagsForResourceRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ListTagsForResourceResponse;
import software.amazon.awssdk.services.globalaccelerator.model.ListenerNotFoundException;
import software.amazon.awssdk.services.globalaccelerator.model.ProvisionByoipCidrRequest;
import software.amazon.awssdk.services.globalaccelerator.model.ProvisionByoipCidrResponse;
import software.amazon.awssdk.services.globalaccelerator.model.RemoveCustomRoutingEndpointsRequest;
import software.amazon.awssdk.services.globalaccelerator.model.RemoveCustomRoutingEndpointsResponse;
import software.amazon.awssdk.services.globalaccelerator.model.RemoveEndpointsRequest;
import software.amazon.awssdk.services.globalaccelerator.model.RemoveEndpointsResponse;
import software.amazon.awssdk.services.globalaccelerator.model.TagResourceRequest;
import software.amazon.awssdk.services.globalaccelerator.model.TagResourceResponse;
import software.amazon.awssdk.services.globalaccelerator.model.TransactionInProgressException;
import software.amazon.awssdk.services.globalaccelerator.model.UntagResourceRequest;
import software.amazon.awssdk.services.globalaccelerator.model.UntagResourceResponse;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateAcceleratorAttributesRequest;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateAcceleratorAttributesResponse;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateAcceleratorRequest;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateAcceleratorResponse;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateCrossAccountAttachmentRequest;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateCrossAccountAttachmentResponse;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateCustomRoutingAcceleratorAttributesRequest;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateCustomRoutingAcceleratorAttributesResponse;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateCustomRoutingAcceleratorRequest;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateCustomRoutingAcceleratorResponse;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateCustomRoutingListenerRequest;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateCustomRoutingListenerResponse;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateEndpointGroupRequest;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateEndpointGroupResponse;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateListenerRequest;
import software.amazon.awssdk.services.globalaccelerator.model.UpdateListenerResponse;
import software.amazon.awssdk.services.globalaccelerator.model.WithdrawByoipCidrRequest;
import software.amazon.awssdk.services.globalaccelerator.model.WithdrawByoipCidrResponse;
import software.amazon.awssdk.services.globalaccelerator.transform.AddCustomRoutingEndpointsRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.AddEndpointsRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.AdvertiseByoipCidrRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.AllowCustomRoutingTrafficRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.CreateAcceleratorRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.CreateCrossAccountAttachmentRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.CreateCustomRoutingAcceleratorRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.CreateCustomRoutingEndpointGroupRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.CreateCustomRoutingListenerRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.CreateEndpointGroupRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.CreateListenerRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DeleteAcceleratorRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DeleteCrossAccountAttachmentRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DeleteCustomRoutingAcceleratorRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DeleteCustomRoutingEndpointGroupRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DeleteCustomRoutingListenerRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DeleteEndpointGroupRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DeleteListenerRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DenyCustomRoutingTrafficRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DeprovisionByoipCidrRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DescribeAcceleratorAttributesRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DescribeAcceleratorRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DescribeCrossAccountAttachmentRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DescribeCustomRoutingAcceleratorAttributesRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DescribeCustomRoutingAcceleratorRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DescribeCustomRoutingEndpointGroupRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DescribeCustomRoutingListenerRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DescribeEndpointGroupRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.DescribeListenerRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListAcceleratorsRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListByoipCidrsRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListCrossAccountAttachmentsRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListCrossAccountResourceAccountsRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListCrossAccountResourcesRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListCustomRoutingAcceleratorsRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListCustomRoutingEndpointGroupsRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListCustomRoutingListenersRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListCustomRoutingPortMappingsByDestinationRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListCustomRoutingPortMappingsRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListEndpointGroupsRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListListenersRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ListTagsForResourceRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.ProvisionByoipCidrRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.RemoveCustomRoutingEndpointsRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.RemoveEndpointsRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.TagResourceRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.UntagResourceRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.UpdateAcceleratorAttributesRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.UpdateAcceleratorRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.UpdateCrossAccountAttachmentRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.UpdateCustomRoutingAcceleratorAttributesRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.UpdateCustomRoutingAcceleratorRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.UpdateCustomRoutingListenerRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.UpdateEndpointGroupRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.UpdateListenerRequestMarshaller;
import software.amazon.awssdk.services.globalaccelerator.transform.WithdrawByoipCidrRequestMarshaller;
import software.amazon.awssdk.utils.Logger;
/**
* Internal implementation of {@link GlobalAcceleratorClient}.
*
* @see GlobalAcceleratorClient#builder()
*/
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultGlobalAcceleratorClient implements GlobalAcceleratorClient {
private static final Logger log = Logger.loggerFor(DefaultGlobalAcceleratorClient.class);
private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder()
.serviceProtocol(AwsServiceProtocol.AWS_JSON).build();
private final SyncClientHandler clientHandler;
private final AwsJsonProtocolFactory protocolFactory;
private final SdkClientConfiguration clientConfiguration;
protected DefaultGlobalAcceleratorClient(SdkClientConfiguration clientConfiguration) {
this.clientHandler = new AwsSyncClientHandler(clientConfiguration);
this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build();
this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build();
}
/**
*
* Associate a virtual private cloud (VPC) subnet endpoint with your custom routing accelerator.
*
*
* The listener port range must be large enough to support the number of IP addresses that can be specified in your
* subnet. The number of ports required is: subnet size times the number of ports per destination EC2 instances. For
* example, a subnet defined as /24 requires a listener port range of at least 255 ports.
*
*
* Note: You must have enough remaining listener ports available to map to the subnet ports, or the call will fail
* with a LimitExceededException.
*
*
* By default, all destinations in a subnet in a custom routing accelerator cannot receive traffic. To enable all
* destinations to receive traffic, or to specify individual port mappings that can receive traffic, see the
* AllowCustomRoutingTraffic operation.
*
*
* @param addCustomRoutingEndpointsRequest
* @return Result of the AddCustomRoutingEndpoints operation returned by the service.
* @throws EndpointAlreadyExistsException
* The endpoint that you specified doesn't exist.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @throws AccessDeniedException
* You don't have access permission.
* @throws ConflictException
* You can't use both of those options.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.AddCustomRoutingEndpoints
* @see AWS API Documentation
*/
@Override
public AddCustomRoutingEndpointsResponse addCustomRoutingEndpoints(
AddCustomRoutingEndpointsRequest addCustomRoutingEndpointsRequest) throws EndpointAlreadyExistsException,
EndpointGroupNotFoundException, InternalServiceErrorException, InvalidArgumentException, LimitExceededException,
AccessDeniedException, ConflictException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, AddCustomRoutingEndpointsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(addCustomRoutingEndpointsRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, addCustomRoutingEndpointsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AddCustomRoutingEndpoints");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("AddCustomRoutingEndpoints").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(addCustomRoutingEndpointsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new AddCustomRoutingEndpointsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Add endpoints to an endpoint group. The AddEndpoints
API operation is the recommended option for
* adding endpoints. The alternative options are to add endpoints when you create an endpoint group (with the CreateEndpointGroup
* API) or when you update an endpoint group (with the UpdateEndpointGroup API).
*
*
* There are two advantages to using AddEndpoints
to add endpoints in Global Accelerator:
*
*
* -
*
* It's faster, because Global Accelerator only has to resolve the new endpoints that you're adding, rather than
* resolving new and existing endpoints.
*
*
* -
*
* It's more convenient, because you don't need to specify the current endpoints that are already in the endpoint
* group, in addition to the new endpoints that you want to add.
*
*
*
*
* For information about endpoint types and requirements for endpoints that you can add to Global Accelerator, see
* Endpoints for standard
* accelerators in the Global Accelerator Developer Guide.
*
*
* @param addEndpointsRequest
* @return Result of the AddEndpoints operation returned by the service.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @throws AccessDeniedException
* You don't have access permission.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.AddEndpoints
* @see AWS API Documentation
*/
@Override
public AddEndpointsResponse addEndpoints(AddEndpointsRequest addEndpointsRequest) throws TransactionInProgressException,
EndpointGroupNotFoundException, InternalServiceErrorException, InvalidArgumentException, LimitExceededException,
AccessDeniedException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
AddEndpointsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(addEndpointsRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, addEndpointsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AddEndpoints");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("AddEndpoints").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(addEndpointsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new AddEndpointsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Advertises an IPv4 address range that is provisioned for use with your Amazon Web Services resources through
* bring your own IP addresses (BYOIP). It can take a few minutes before traffic to the specified addresses starts
* routing to Amazon Web Services because of propagation delays.
*
*
* To stop advertising the BYOIP address range, use WithdrawByoipCidr.
*
*
* For more information, see Bring your own IP addresses
* (BYOIP) in the Global Accelerator Developer Guide.
*
*
* @param advertiseByoipCidrRequest
* @return Result of the AdvertiseByoipCidr operation returned by the service.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws AccessDeniedException
* You don't have access permission.
* @throws ByoipCidrNotFoundException
* The CIDR that you specified was not found or is incorrect.
* @throws IncorrectCidrStateException
* The CIDR that you specified is not valid for this action. For example, the state of the CIDR might be
* incorrect for this action.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.AdvertiseByoipCidr
* @see AWS API Documentation
*/
@Override
public AdvertiseByoipCidrResponse advertiseByoipCidr(AdvertiseByoipCidrRequest advertiseByoipCidrRequest)
throws InternalServiceErrorException, InvalidArgumentException, AccessDeniedException, ByoipCidrNotFoundException,
IncorrectCidrStateException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, AdvertiseByoipCidrResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(advertiseByoipCidrRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, advertiseByoipCidrRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AdvertiseByoipCidr");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("AdvertiseByoipCidr").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(advertiseByoipCidrRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new AdvertiseByoipCidrRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint that can receive
* traffic for a custom routing accelerator. You can allow traffic to all destinations in the subnet endpoint, or
* allow traffic to a specified list of destination IP addresses and ports in the subnet. Note that you cannot
* specify IP addresses or ports outside of the range that you configured for the endpoint group.
*
*
* After you make changes, you can verify that the updates are complete by checking the status of your accelerator:
* the status changes from IN_PROGRESS to DEPLOYED.
*
*
* @param allowCustomRoutingTrafficRequest
* @return Result of the AllowCustomRoutingTraffic operation returned by the service.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.AllowCustomRoutingTraffic
* @see AWS API Documentation
*/
@Override
public AllowCustomRoutingTrafficResponse allowCustomRoutingTraffic(
AllowCustomRoutingTrafficRequest allowCustomRoutingTrafficRequest) throws EndpointGroupNotFoundException,
InvalidArgumentException, InternalServiceErrorException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, AllowCustomRoutingTrafficResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(allowCustomRoutingTrafficRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, allowCustomRoutingTrafficRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AllowCustomRoutingTraffic");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("AllowCustomRoutingTraffic").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(allowCustomRoutingTrafficRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new AllowCustomRoutingTrafficRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Create an accelerator. An accelerator includes one or more listeners that process inbound connections and direct
* traffic to one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers.
*
*
*
* Global Accelerator is a global service that supports endpoints in multiple Amazon Web Services Regions but you
* must specify the US West (Oregon) Region to create, update, or otherwise work with accelerators. That is, for
* example, specify --region us-west-2
on Amazon Web Services CLI commands.
*
*
*
* @param createAcceleratorRequest
* @return Result of the CreateAccelerator operation returned by the service.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @throws AccessDeniedException
* You don't have access permission.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.CreateAccelerator
* @see AWS API Documentation
*/
@Override
public CreateAcceleratorResponse createAccelerator(CreateAcceleratorRequest createAcceleratorRequest)
throws InternalServiceErrorException, InvalidArgumentException, LimitExceededException, AccessDeniedException,
TransactionInProgressException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
CreateAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createAcceleratorRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createAcceleratorRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateAccelerator");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateAccelerator").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(createAcceleratorRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreateAcceleratorRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Create a cross-account attachment in Global Accelerator. You create a cross-account attachment to specify the
* principals who have permission to work with resources in accelerators in their own account. You
* specify, in the same attachment, the resources that are shared.
*
*
* A principal can be an Amazon Web Services account number or the Amazon Resource Name (ARN) for an accelerator.
* For account numbers that are listed as principals, to work with a resource listed in the attachment, you must
* sign in to an account specified as a principal. Then, you can work with resources that are listed, with any of
* your accelerators. If an accelerator ARN is listed in the cross-account attachment as a principal, anyone with
* permission to make updates to the accelerator can work with resources that are listed in the attachment.
*
*
* Specify each principal and resource separately. To specify two CIDR address pools, list them individually under
* Resources
, and so on. For a command line operation, for example, you might use a statement like the
* following:
*
*
* "Resources": [{"Cidr": "169.254.60.0/24"},{"Cidr": "169.254.59.0/24"}]
*
*
* For more information, see Working with
* cross-account attachments and resources in Global Accelerator in the Global Accelerator Developer
* Guide.
*
*
* @param createCrossAccountAttachmentRequest
* @return Result of the CreateCrossAccountAttachment operation returned by the service.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @throws AccessDeniedException
* You don't have access permission.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.CreateCrossAccountAttachment
* @see AWS API Documentation
*/
@Override
public CreateCrossAccountAttachmentResponse createCrossAccountAttachment(
CreateCrossAccountAttachmentRequest createCrossAccountAttachmentRequest) throws InternalServiceErrorException,
InvalidArgumentException, LimitExceededException, AccessDeniedException, TransactionInProgressException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateCrossAccountAttachmentResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createCrossAccountAttachmentRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createCrossAccountAttachmentRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateCrossAccountAttachment");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateCrossAccountAttachment").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(createCrossAccountAttachmentRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreateCrossAccountAttachmentRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Create a custom routing accelerator. A custom routing accelerator directs traffic to one of possibly thousands of
* Amazon EC2 instance destinations running in a single or multiple virtual private clouds (VPC) subnet endpoints.
*
*
* Be aware that, by default, all destination EC2 instances in a VPC subnet endpoint cannot receive traffic. To
* enable all destinations to receive traffic, or to specify individual port mappings that can receive traffic, see
* the
* AllowCustomRoutingTraffic operation.
*
*
*
* Global Accelerator is a global service that supports endpoints in multiple Amazon Web Services Regions but you
* must specify the US West (Oregon) Region to create, update, or otherwise work with accelerators. That is, for
* example, specify --region us-west-2
on Amazon Web Services CLI commands.
*
*
*
* @param createCustomRoutingAcceleratorRequest
* @return Result of the CreateCustomRoutingAccelerator operation returned by the service.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @throws AccessDeniedException
* You don't have access permission.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.CreateCustomRoutingAccelerator
* @see AWS API Documentation
*/
@Override
public CreateCustomRoutingAcceleratorResponse createCustomRoutingAccelerator(
CreateCustomRoutingAcceleratorRequest createCustomRoutingAcceleratorRequest) throws InternalServiceErrorException,
InvalidArgumentException, LimitExceededException, AccessDeniedException, TransactionInProgressException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateCustomRoutingAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createCustomRoutingAcceleratorRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
createCustomRoutingAcceleratorRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateCustomRoutingAccelerator");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateCustomRoutingAccelerator").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(createCustomRoutingAcceleratorRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreateCustomRoutingAcceleratorRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Create an endpoint group for the specified listener for a custom routing accelerator. An endpoint group is a
* collection of endpoints in one Amazon Web Services Region.
*
*
* @param createCustomRoutingEndpointGroupRequest
* @return Result of the CreateCustomRoutingEndpointGroup operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws EndpointGroupAlreadyExistsException
* The endpoint group that you specified already exists.
* @throws ListenerNotFoundException
* The listener that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InvalidPortRangeException
* The port numbers that you specified are not valid numbers or are not unique for this accelerator.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @throws AccessDeniedException
* You don't have access permission.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.CreateCustomRoutingEndpointGroup
* @see AWS API Documentation
*/
@Override
public CreateCustomRoutingEndpointGroupResponse createCustomRoutingEndpointGroup(
CreateCustomRoutingEndpointGroupRequest createCustomRoutingEndpointGroupRequest) throws AcceleratorNotFoundException,
EndpointGroupAlreadyExistsException, ListenerNotFoundException, InternalServiceErrorException,
InvalidArgumentException, InvalidPortRangeException, LimitExceededException, AccessDeniedException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateCustomRoutingEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createCustomRoutingEndpointGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
createCustomRoutingEndpointGroupRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateCustomRoutingEndpointGroup");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateCustomRoutingEndpointGroup").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(createCustomRoutingEndpointGroupRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreateCustomRoutingEndpointGroupRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Create a listener to process inbound connections from clients to a custom routing accelerator. Connections arrive
* to assigned static IP addresses on the port range that you specify.
*
*
* @param createCustomRoutingListenerRequest
* @return Result of the CreateCustomRoutingListener operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InvalidPortRangeException
* The port numbers that you specified are not valid numbers or are not unique for this accelerator.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.CreateCustomRoutingListener
* @see AWS API Documentation
*/
@Override
public CreateCustomRoutingListenerResponse createCustomRoutingListener(
CreateCustomRoutingListenerRequest createCustomRoutingListenerRequest) throws InvalidArgumentException,
AcceleratorNotFoundException, InvalidPortRangeException, InternalServiceErrorException, LimitExceededException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateCustomRoutingListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createCustomRoutingListenerRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createCustomRoutingListenerRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateCustomRoutingListener");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateCustomRoutingListener").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(createCustomRoutingListenerRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreateCustomRoutingListenerRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Create an endpoint group for the specified listener. An endpoint group is a collection of endpoints in one Amazon
* Web Services Region. A resource must be valid and active when you add it as an endpoint.
*
*
* For more information about endpoint types and requirements for endpoints that you can add to Global Accelerator,
* see Endpoints for
* standard accelerators in the Global Accelerator Developer Guide.
*
*
* @param createEndpointGroupRequest
* @return Result of the CreateEndpointGroup operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws EndpointGroupAlreadyExistsException
* The endpoint group that you specified already exists.
* @throws ListenerNotFoundException
* The listener that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @throws AccessDeniedException
* You don't have access permission.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.CreateEndpointGroup
* @see AWS API Documentation
*/
@Override
public CreateEndpointGroupResponse createEndpointGroup(CreateEndpointGroupRequest createEndpointGroupRequest)
throws AcceleratorNotFoundException, EndpointGroupAlreadyExistsException, ListenerNotFoundException,
InternalServiceErrorException, InvalidArgumentException, LimitExceededException, AccessDeniedException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createEndpointGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createEndpointGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateEndpointGroup");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateEndpointGroup").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(createEndpointGroupRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreateEndpointGroupRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Create a listener to process inbound connections from clients to an accelerator. Connections arrive to assigned
* static IP addresses on a port, port range, or list of port ranges that you specify.
*
*
* @param createListenerRequest
* @return Result of the CreateListener operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InvalidPortRangeException
* The port numbers that you specified are not valid numbers or are not unique for this accelerator.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.CreateListener
* @see AWS API Documentation
*/
@Override
public CreateListenerResponse createListener(CreateListenerRequest createListenerRequest) throws InvalidArgumentException,
AcceleratorNotFoundException, InvalidPortRangeException, InternalServiceErrorException, LimitExceededException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
CreateListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createListenerRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createListenerRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateListener");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateListener").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(createListenerRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreateListenerRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Delete an accelerator. Before you can delete an accelerator, you must disable it and remove all dependent
* resources (listeners and endpoint groups). To disable the accelerator, update the accelerator to set
* Enabled
to false.
*
*
*
* When you create an accelerator, by default, Global Accelerator provides you with a set of two static IP
* addresses. Alternatively, you can bring your own IP address ranges to Global Accelerator and assign IP addresses
* from those ranges.
*
*
* The IP addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator
* and it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the static
* IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. As a best
* practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You can use IAM
* policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more
* information, see Identity and access
* management in the Global Accelerator Developer Guide.
*
*
*
* @param deleteAcceleratorRequest
* @return Result of the DeleteAccelerator operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws AcceleratorNotDisabledException
* The accelerator that you specified could not be disabled.
* @throws AssociatedListenerFoundException
* The accelerator that you specified has a listener associated with it. You must remove all dependent
* resources from an accelerator before you can delete it.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DeleteAccelerator
* @see AWS API Documentation
*/
@Override
public DeleteAcceleratorResponse deleteAccelerator(DeleteAcceleratorRequest deleteAcceleratorRequest)
throws AcceleratorNotFoundException, AcceleratorNotDisabledException, AssociatedListenerFoundException,
InternalServiceErrorException, InvalidArgumentException, TransactionInProgressException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeleteAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteAcceleratorRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteAcceleratorRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteAccelerator");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteAccelerator").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deleteAcceleratorRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeleteAcceleratorRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Delete a cross-account attachment. When you delete an attachment, Global Accelerator revokes the permission to
* use the resources in the attachment from all principals in the list of principals. Global Accelerator revokes the
* permission for specific resources.
*
*
* For more information, see Working with
* cross-account attachments and resources in Global Accelerator in the Global Accelerator Developer
* Guide.
*
*
* @param deleteCrossAccountAttachmentRequest
* @return Result of the DeleteCrossAccountAttachment operation returned by the service.
* @throws AttachmentNotFoundException
* No cross-account attachment was found.
* @throws AccessDeniedException
* You don't have access permission.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DeleteCrossAccountAttachment
* @see AWS API Documentation
*/
@Override
public DeleteCrossAccountAttachmentResponse deleteCrossAccountAttachment(
DeleteCrossAccountAttachmentRequest deleteCrossAccountAttachmentRequest) throws AttachmentNotFoundException,
AccessDeniedException, InternalServiceErrorException, InvalidArgumentException, TransactionInProgressException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteCrossAccountAttachmentResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteCrossAccountAttachmentRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteCrossAccountAttachmentRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteCrossAccountAttachment");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteCrossAccountAttachment").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deleteCrossAccountAttachmentRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeleteCrossAccountAttachmentRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Delete a custom routing accelerator. Before you can delete an accelerator, you must disable it and remove all
* dependent resources (listeners and endpoint groups). To disable the accelerator, update the accelerator to set
* Enabled
to false.
*
*
*
* When you create a custom routing accelerator, by default, Global Accelerator provides you with a set of two
* static IP addresses.
*
*
* The IP addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator
* and it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the static
* IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. As a best
* practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You can use IAM
* policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more
* information, see Identity and access
* management in the Global Accelerator Developer Guide.
*
*
*
* @param deleteCustomRoutingAcceleratorRequest
* @return Result of the DeleteCustomRoutingAccelerator operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws AcceleratorNotDisabledException
* The accelerator that you specified could not be disabled.
* @throws AssociatedListenerFoundException
* The accelerator that you specified has a listener associated with it. You must remove all dependent
* resources from an accelerator before you can delete it.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DeleteCustomRoutingAccelerator
* @see AWS API Documentation
*/
@Override
public DeleteCustomRoutingAcceleratorResponse deleteCustomRoutingAccelerator(
DeleteCustomRoutingAcceleratorRequest deleteCustomRoutingAcceleratorRequest) throws AcceleratorNotFoundException,
AcceleratorNotDisabledException, AssociatedListenerFoundException, InternalServiceErrorException,
InvalidArgumentException, TransactionInProgressException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteCustomRoutingAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteCustomRoutingAcceleratorRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
deleteCustomRoutingAcceleratorRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteCustomRoutingAccelerator");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteCustomRoutingAccelerator").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deleteCustomRoutingAcceleratorRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeleteCustomRoutingAcceleratorRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Delete an endpoint group from a listener for a custom routing accelerator.
*
*
* @param deleteCustomRoutingEndpointGroupRequest
* @return Result of the DeleteCustomRoutingEndpointGroup operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DeleteCustomRoutingEndpointGroup
* @see AWS API Documentation
*/
@Override
public DeleteCustomRoutingEndpointGroupResponse deleteCustomRoutingEndpointGroup(
DeleteCustomRoutingEndpointGroupRequest deleteCustomRoutingEndpointGroupRequest) throws InvalidArgumentException,
EndpointGroupNotFoundException, InternalServiceErrorException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteCustomRoutingEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteCustomRoutingEndpointGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
deleteCustomRoutingEndpointGroupRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteCustomRoutingEndpointGroup");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteCustomRoutingEndpointGroup").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deleteCustomRoutingEndpointGroupRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeleteCustomRoutingEndpointGroupRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Delete a listener for a custom routing accelerator.
*
*
* @param deleteCustomRoutingListenerRequest
* @return Result of the DeleteCustomRoutingListener operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws ListenerNotFoundException
* The listener that you specified doesn't exist.
* @throws AssociatedEndpointGroupFoundException
* The listener that you specified has an endpoint group associated with it. You must remove all dependent
* resources from a listener before you can delete it.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DeleteCustomRoutingListener
* @see AWS API Documentation
*/
@Override
public DeleteCustomRoutingListenerResponse deleteCustomRoutingListener(
DeleteCustomRoutingListenerRequest deleteCustomRoutingListenerRequest) throws InvalidArgumentException,
ListenerNotFoundException, AssociatedEndpointGroupFoundException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteCustomRoutingListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteCustomRoutingListenerRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteCustomRoutingListenerRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteCustomRoutingListener");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteCustomRoutingListener").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deleteCustomRoutingListenerRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeleteCustomRoutingListenerRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Delete an endpoint group from a listener.
*
*
* @param deleteEndpointGroupRequest
* @return Result of the DeleteEndpointGroup operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DeleteEndpointGroup
* @see AWS API Documentation
*/
@Override
public DeleteEndpointGroupResponse deleteEndpointGroup(DeleteEndpointGroupRequest deleteEndpointGroupRequest)
throws InvalidArgumentException, EndpointGroupNotFoundException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteEndpointGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteEndpointGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteEndpointGroup");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteEndpointGroup").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deleteEndpointGroupRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeleteEndpointGroupRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Delete a listener from an accelerator.
*
*
* @param deleteListenerRequest
* @return Result of the DeleteListener operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws ListenerNotFoundException
* The listener that you specified doesn't exist.
* @throws AssociatedEndpointGroupFoundException
* The listener that you specified has an endpoint group associated with it. You must remove all dependent
* resources from a listener before you can delete it.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DeleteListener
* @see AWS API Documentation
*/
@Override
public DeleteListenerResponse deleteListener(DeleteListenerRequest deleteListenerRequest) throws InvalidArgumentException,
ListenerNotFoundException, AssociatedEndpointGroupFoundException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeleteListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteListenerRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteListenerRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteListener");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteListener").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deleteListenerRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeleteListenerRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint that cannot
* receive traffic for a custom routing accelerator. You can deny traffic to all destinations in the VPC endpoint,
* or deny traffic to a specified list of destination IP addresses and ports. Note that you cannot specify IP
* addresses or ports outside of the range that you configured for the endpoint group.
*
*
* After you make changes, you can verify that the updates are complete by checking the status of your accelerator:
* the status changes from IN_PROGRESS to DEPLOYED.
*
*
* @param denyCustomRoutingTrafficRequest
* @return Result of the DenyCustomRoutingTraffic operation returned by the service.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DenyCustomRoutingTraffic
* @see AWS API Documentation
*/
@Override
public DenyCustomRoutingTrafficResponse denyCustomRoutingTraffic(
DenyCustomRoutingTrafficRequest denyCustomRoutingTrafficRequest) throws EndpointGroupNotFoundException,
InvalidArgumentException, InternalServiceErrorException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DenyCustomRoutingTrafficResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(denyCustomRoutingTrafficRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, denyCustomRoutingTrafficRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DenyCustomRoutingTraffic");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DenyCustomRoutingTraffic").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(denyCustomRoutingTrafficRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DenyCustomRoutingTrafficRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Releases the specified address range that you provisioned to use with your Amazon Web Services resources through
* bring your own IP addresses (BYOIP) and deletes the corresponding address pool.
*
*
* Before you can release an address range, you must stop advertising it by using WithdrawByoipCidr and
* you must not have any accelerators that are using static IP addresses allocated from its address range.
*
*
* For more information, see Bring your own IP addresses
* (BYOIP) in the Global Accelerator Developer Guide.
*
*
* @param deprovisionByoipCidrRequest
* @return Result of the DeprovisionByoipCidr operation returned by the service.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws AccessDeniedException
* You don't have access permission.
* @throws ByoipCidrNotFoundException
* The CIDR that you specified was not found or is incorrect.
* @throws IncorrectCidrStateException
* The CIDR that you specified is not valid for this action. For example, the state of the CIDR might be
* incorrect for this action.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DeprovisionByoipCidr
* @see AWS API Documentation
*/
@Override
public DeprovisionByoipCidrResponse deprovisionByoipCidr(DeprovisionByoipCidrRequest deprovisionByoipCidrRequest)
throws InternalServiceErrorException, InvalidArgumentException, AccessDeniedException, ByoipCidrNotFoundException,
IncorrectCidrStateException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeprovisionByoipCidrResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deprovisionByoipCidrRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deprovisionByoipCidrRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeprovisionByoipCidr");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeprovisionByoipCidr").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deprovisionByoipCidrRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeprovisionByoipCidrRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Describe an accelerator.
*
*
* @param describeAcceleratorRequest
* @return Result of the DescribeAccelerator operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified 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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DescribeAccelerator
* @see AWS API Documentation
*/
@Override
public DescribeAcceleratorResponse describeAccelerator(DescribeAcceleratorRequest describeAcceleratorRequest)
throws AcceleratorNotFoundException, InternalServiceErrorException, InvalidArgumentException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeAcceleratorRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeAcceleratorRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeAccelerator");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeAccelerator").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeAcceleratorRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeAcceleratorRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Describe the attributes of an accelerator.
*
*
* @param describeAcceleratorAttributesRequest
* @return Result of the DescribeAcceleratorAttributes operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified 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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DescribeAcceleratorAttributes
* @see AWS API Documentation
*/
@Override
public DescribeAcceleratorAttributesResponse describeAcceleratorAttributes(
DescribeAcceleratorAttributesRequest describeAcceleratorAttributesRequest) throws AcceleratorNotFoundException,
InternalServiceErrorException, InvalidArgumentException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeAcceleratorAttributesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeAcceleratorAttributesRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
describeAcceleratorAttributesRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeAcceleratorAttributes");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeAcceleratorAttributes").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeAcceleratorAttributesRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeAcceleratorAttributesRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Gets configuration information about a cross-account attachment.
*
*
* @param describeCrossAccountAttachmentRequest
* @return Result of the DescribeCrossAccountAttachment operation returned by the service.
* @throws AttachmentNotFoundException
* No cross-account attachment was found.
* @throws AccessDeniedException
* You don't have access permission.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified 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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DescribeCrossAccountAttachment
* @see AWS API Documentation
*/
@Override
public DescribeCrossAccountAttachmentResponse describeCrossAccountAttachment(
DescribeCrossAccountAttachmentRequest describeCrossAccountAttachmentRequest) throws AttachmentNotFoundException,
AccessDeniedException, InternalServiceErrorException, InvalidArgumentException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeCrossAccountAttachmentResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeCrossAccountAttachmentRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
describeCrossAccountAttachmentRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeCrossAccountAttachment");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeCrossAccountAttachment").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeCrossAccountAttachmentRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeCrossAccountAttachmentRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Describe a custom routing accelerator.
*
*
* @param describeCustomRoutingAcceleratorRequest
* @return Result of the DescribeCustomRoutingAccelerator operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified 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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DescribeCustomRoutingAccelerator
* @see AWS API Documentation
*/
@Override
public DescribeCustomRoutingAcceleratorResponse describeCustomRoutingAccelerator(
DescribeCustomRoutingAcceleratorRequest describeCustomRoutingAcceleratorRequest) throws AcceleratorNotFoundException,
InternalServiceErrorException, InvalidArgumentException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeCustomRoutingAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeCustomRoutingAcceleratorRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
describeCustomRoutingAcceleratorRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeCustomRoutingAccelerator");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeCustomRoutingAccelerator").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeCustomRoutingAcceleratorRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeCustomRoutingAcceleratorRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Describe the attributes of a custom routing accelerator.
*
*
* @param describeCustomRoutingAcceleratorAttributesRequest
* @return Result of the DescribeCustomRoutingAcceleratorAttributes operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified 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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DescribeCustomRoutingAcceleratorAttributes
* @see AWS API Documentation
*/
@Override
public DescribeCustomRoutingAcceleratorAttributesResponse describeCustomRoutingAcceleratorAttributes(
DescribeCustomRoutingAcceleratorAttributesRequest describeCustomRoutingAcceleratorAttributesRequest)
throws AcceleratorNotFoundException, InternalServiceErrorException, InvalidArgumentException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(operationMetadata, DescribeCustomRoutingAcceleratorAttributesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(
describeCustomRoutingAcceleratorAttributesRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
describeCustomRoutingAcceleratorAttributesRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeCustomRoutingAcceleratorAttributes");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeCustomRoutingAcceleratorAttributes")
.withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration)
.withInput(describeCustomRoutingAcceleratorAttributesRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeCustomRoutingAcceleratorAttributesRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Describe an endpoint group for a custom routing accelerator.
*
*
* @param describeCustomRoutingEndpointGroupRequest
* @return Result of the DescribeCustomRoutingEndpointGroup operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DescribeCustomRoutingEndpointGroup
* @see AWS API Documentation
*/
@Override
public DescribeCustomRoutingEndpointGroupResponse describeCustomRoutingEndpointGroup(
DescribeCustomRoutingEndpointGroupRequest describeCustomRoutingEndpointGroupRequest) throws InvalidArgumentException,
EndpointGroupNotFoundException, InternalServiceErrorException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeCustomRoutingEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeCustomRoutingEndpointGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
describeCustomRoutingEndpointGroupRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeCustomRoutingEndpointGroup");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeCustomRoutingEndpointGroup").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeCustomRoutingEndpointGroupRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeCustomRoutingEndpointGroupRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* The description of a listener for a custom routing accelerator.
*
*
* @param describeCustomRoutingListenerRequest
* @return Result of the DescribeCustomRoutingListener operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws ListenerNotFoundException
* The listener that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DescribeCustomRoutingListener
* @see AWS API Documentation
*/
@Override
public DescribeCustomRoutingListenerResponse describeCustomRoutingListener(
DescribeCustomRoutingListenerRequest describeCustomRoutingListenerRequest) throws InvalidArgumentException,
ListenerNotFoundException, InternalServiceErrorException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeCustomRoutingListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeCustomRoutingListenerRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
describeCustomRoutingListenerRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeCustomRoutingListener");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeCustomRoutingListener").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeCustomRoutingListenerRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeCustomRoutingListenerRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Describe an endpoint group.
*
*
* @param describeEndpointGroupRequest
* @return Result of the DescribeEndpointGroup operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DescribeEndpointGroup
* @see AWS API Documentation
*/
@Override
public DescribeEndpointGroupResponse describeEndpointGroup(DescribeEndpointGroupRequest describeEndpointGroupRequest)
throws InvalidArgumentException, EndpointGroupNotFoundException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeEndpointGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeEndpointGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeEndpointGroup");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeEndpointGroup").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeEndpointGroupRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeEndpointGroupRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Describe a listener.
*
*
* @param describeListenerRequest
* @return Result of the DescribeListener operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws ListenerNotFoundException
* The listener that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.DescribeListener
* @see AWS API Documentation
*/
@Override
public DescribeListenerResponse describeListener(DescribeListenerRequest describeListenerRequest)
throws InvalidArgumentException, ListenerNotFoundException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DescribeListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeListenerRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeListenerRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeListener");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeListener").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeListenerRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeListenerRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the accelerators for an Amazon Web Services account.
*
*
* @param listAcceleratorsRequest
* @return Result of the ListAccelerators operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InvalidNextTokenException
* There isn't another item to return.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListAccelerators
* @see AWS API Documentation
*/
@Override
public ListAcceleratorsResponse listAccelerators(ListAcceleratorsRequest listAcceleratorsRequest)
throws InvalidArgumentException, InvalidNextTokenException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListAcceleratorsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listAcceleratorsRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listAcceleratorsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListAccelerators");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListAccelerators").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listAcceleratorsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListAcceleratorsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists the IP address ranges that were specified in calls to ProvisionByoipCidr,
* including the current state and a history of state changes.
*
*
* @param listByoipCidrsRequest
* @return Result of the ListByoipCidrs operation returned by the service.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws AccessDeniedException
* You don't have access permission.
* @throws InvalidNextTokenException
* There isn't another item to return.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListByoipCidrs
* @see AWS API Documentation
*/
@Override
public ListByoipCidrsResponse listByoipCidrs(ListByoipCidrsRequest listByoipCidrsRequest)
throws InternalServiceErrorException, InvalidArgumentException, AccessDeniedException, InvalidNextTokenException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListByoipCidrsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listByoipCidrsRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listByoipCidrsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListByoipCidrs");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListByoipCidrs").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listByoipCidrsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListByoipCidrsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the cross-account attachments that have been created in Global Accelerator.
*
*
* @param listCrossAccountAttachmentsRequest
* @return Result of the ListCrossAccountAttachments operation returned by the service.
* @throws AccessDeniedException
* You don't have access permission.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InvalidNextTokenException
* There isn't another item to return.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListCrossAccountAttachments
* @see AWS API Documentation
*/
@Override
public ListCrossAccountAttachmentsResponse listCrossAccountAttachments(
ListCrossAccountAttachmentsRequest listCrossAccountAttachmentsRequest) throws AccessDeniedException,
InvalidArgumentException, InvalidNextTokenException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListCrossAccountAttachmentsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listCrossAccountAttachmentsRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listCrossAccountAttachmentsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCrossAccountAttachments");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCrossAccountAttachments").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listCrossAccountAttachmentsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCrossAccountAttachmentsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the accounts that have cross-account resources.
*
*
* For more information, see Working with
* cross-account attachments and resources in Global Accelerator in the Global Accelerator Developer
* Guide.
*
*
* @param listCrossAccountResourceAccountsRequest
* @return Result of the ListCrossAccountResourceAccounts operation returned by the service.
* @throws AccessDeniedException
* You don't have access permission.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListCrossAccountResourceAccounts
* @see AWS API Documentation
*/
@Override
public ListCrossAccountResourceAccountsResponse listCrossAccountResourceAccounts(
ListCrossAccountResourceAccountsRequest listCrossAccountResourceAccountsRequest) throws AccessDeniedException,
InternalServiceErrorException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListCrossAccountResourceAccountsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listCrossAccountResourceAccountsRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
listCrossAccountResourceAccountsRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCrossAccountResourceAccounts");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCrossAccountResourceAccounts").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listCrossAccountResourceAccountsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCrossAccountResourceAccountsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the cross-account resources available to work with.
*
*
* @param listCrossAccountResourcesRequest
* @return Result of the ListCrossAccountResources operation returned by the service.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InvalidNextTokenException
* There isn't another item to return.
* @throws AccessDeniedException
* You don't have access permission.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't 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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListCrossAccountResources
* @see AWS API Documentation
*/
@Override
public ListCrossAccountResourcesResponse listCrossAccountResources(
ListCrossAccountResourcesRequest listCrossAccountResourcesRequest) throws InternalServiceErrorException,
InvalidArgumentException, InvalidNextTokenException, AccessDeniedException, AcceleratorNotFoundException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListCrossAccountResourcesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listCrossAccountResourcesRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listCrossAccountResourcesRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCrossAccountResources");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCrossAccountResources").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listCrossAccountResourcesRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCrossAccountResourcesRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the custom routing accelerators for an Amazon Web Services account.
*
*
* @param listCustomRoutingAcceleratorsRequest
* @return Result of the ListCustomRoutingAccelerators operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InvalidNextTokenException
* There isn't another item to return.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListCustomRoutingAccelerators
* @see AWS API Documentation
*/
@Override
public ListCustomRoutingAcceleratorsResponse listCustomRoutingAccelerators(
ListCustomRoutingAcceleratorsRequest listCustomRoutingAcceleratorsRequest) throws InvalidArgumentException,
InvalidNextTokenException, InternalServiceErrorException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListCustomRoutingAcceleratorsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listCustomRoutingAcceleratorsRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
listCustomRoutingAcceleratorsRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCustomRoutingAccelerators");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCustomRoutingAccelerators").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listCustomRoutingAcceleratorsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCustomRoutingAcceleratorsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the endpoint groups that are associated with a listener for a custom routing accelerator.
*
*
* @param listCustomRoutingEndpointGroupsRequest
* @return Result of the ListCustomRoutingEndpointGroups operation returned by the service.
* @throws ListenerNotFoundException
* The listener that you specified doesn't exist.
* @throws InvalidNextTokenException
* There isn't another item to return.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListCustomRoutingEndpointGroups
* @see AWS API Documentation
*/
@Override
public ListCustomRoutingEndpointGroupsResponse listCustomRoutingEndpointGroups(
ListCustomRoutingEndpointGroupsRequest listCustomRoutingEndpointGroupsRequest) throws ListenerNotFoundException,
InvalidNextTokenException, InvalidArgumentException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListCustomRoutingEndpointGroupsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listCustomRoutingEndpointGroupsRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
listCustomRoutingEndpointGroupsRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCustomRoutingEndpointGroups");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCustomRoutingEndpointGroups").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listCustomRoutingEndpointGroupsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCustomRoutingEndpointGroupsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the listeners for a custom routing accelerator.
*
*
* @param listCustomRoutingListenersRequest
* @return Result of the ListCustomRoutingListeners operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InvalidNextTokenException
* There isn't another item to return.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListCustomRoutingListeners
* @see AWS API Documentation
*/
@Override
public ListCustomRoutingListenersResponse listCustomRoutingListeners(
ListCustomRoutingListenersRequest listCustomRoutingListenersRequest) throws InvalidArgumentException,
AcceleratorNotFoundException, InvalidNextTokenException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListCustomRoutingListenersResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listCustomRoutingListenersRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listCustomRoutingListenersRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCustomRoutingListeners");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCustomRoutingListeners").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listCustomRoutingListenersRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCustomRoutingListenersRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Provides a complete mapping from the public accelerator IP address and port to destination EC2 instance IP
* addresses and ports in the virtual public cloud (VPC) subnet endpoint for a custom routing accelerator. For each
* subnet endpoint that you add, Global Accelerator creates a new static port mapping for the accelerator. The port
* mappings don't change after Global Accelerator generates them, so you can retrieve and cache the full mapping on
* your servers.
*
*
* If you remove a subnet from your accelerator, Global Accelerator removes (reclaims) the port mappings. If you add
* a subnet to your accelerator, Global Accelerator creates new port mappings (the existing ones don't change). If
* you add or remove EC2 instances in your subnet, the port mappings don't change, because the mappings are created
* when you add the subnet to Global Accelerator.
*
*
* The mappings also include a flag for each destination denoting which destination IP addresses and ports are
* allowed or denied traffic.
*
*
* @param listCustomRoutingPortMappingsRequest
* @return Result of the ListCustomRoutingPortMappings operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InvalidNextTokenException
* There isn't another item to return.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListCustomRoutingPortMappings
* @see AWS API Documentation
*/
@Override
public ListCustomRoutingPortMappingsResponse listCustomRoutingPortMappings(
ListCustomRoutingPortMappingsRequest listCustomRoutingPortMappingsRequest) throws InvalidArgumentException,
InvalidNextTokenException, EndpointGroupNotFoundException, AcceleratorNotFoundException,
InternalServiceErrorException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListCustomRoutingPortMappingsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listCustomRoutingPortMappingsRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
listCustomRoutingPortMappingsRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCustomRoutingPortMappings");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCustomRoutingPortMappings").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listCustomRoutingPortMappingsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCustomRoutingPortMappingsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the port mappings for a specific EC2 instance (destination) in a VPC subnet endpoint. The response is the
* mappings for one destination IP address. This is useful when your subnet endpoint has mappings that span multiple
* custom routing accelerators in your account, or for scenarios where you only want to list the port mappings for a
* specific destination instance.
*
*
* @param listCustomRoutingPortMappingsByDestinationRequest
* @return Result of the ListCustomRoutingPortMappingsByDestination operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InvalidNextTokenException
* There isn't another item to return.
* @throws EndpointNotFoundException
* The endpoint that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListCustomRoutingPortMappingsByDestination
* @see AWS API Documentation
*/
@Override
public ListCustomRoutingPortMappingsByDestinationResponse listCustomRoutingPortMappingsByDestination(
ListCustomRoutingPortMappingsByDestinationRequest listCustomRoutingPortMappingsByDestinationRequest)
throws InvalidArgumentException, InvalidNextTokenException, EndpointNotFoundException, InternalServiceErrorException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(operationMetadata, ListCustomRoutingPortMappingsByDestinationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(
listCustomRoutingPortMappingsByDestinationRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
listCustomRoutingPortMappingsByDestinationRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCustomRoutingPortMappingsByDestination");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCustomRoutingPortMappingsByDestination")
.withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration)
.withInput(listCustomRoutingPortMappingsByDestinationRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCustomRoutingPortMappingsByDestinationRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the endpoint groups that are associated with a listener.
*
*
* @param listEndpointGroupsRequest
* @return Result of the ListEndpointGroups operation returned by the service.
* @throws ListenerNotFoundException
* The listener that you specified doesn't exist.
* @throws InvalidNextTokenException
* There isn't another item to return.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListEndpointGroups
* @see AWS API Documentation
*/
@Override
public ListEndpointGroupsResponse listEndpointGroups(ListEndpointGroupsRequest listEndpointGroupsRequest)
throws ListenerNotFoundException, InvalidNextTokenException, InvalidArgumentException, InternalServiceErrorException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListEndpointGroupsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listEndpointGroupsRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listEndpointGroupsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListEndpointGroups");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListEndpointGroups").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listEndpointGroupsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListEndpointGroupsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the listeners for an accelerator.
*
*
* @param listListenersRequest
* @return Result of the ListListeners operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InvalidNextTokenException
* There isn't another item to return.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListListeners
* @see AWS API Documentation
*/
@Override
public ListListenersResponse listListeners(ListListenersRequest listListenersRequest) throws InvalidArgumentException,
AcceleratorNotFoundException, InvalidNextTokenException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListListenersResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listListenersRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listListenersRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListListeners");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListListeners").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listListenersRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListListenersRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List all tags for an accelerator.
*
*
* For more information, see Tagging in
* Global Accelerator in the Global Accelerator Developer Guide.
*
*
* @param listTagsForResourceRequest
* @return Result of the ListTagsForResource operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws AttachmentNotFoundException
* No cross-account attachment was found.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws ListenerNotFoundException
* The listener that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified 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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ListTagsForResource
* @see AWS API Documentation
*/
@Override
public ListTagsForResourceResponse listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest)
throws AcceleratorNotFoundException, AttachmentNotFoundException, EndpointGroupNotFoundException,
ListenerNotFoundException, InternalServiceErrorException, InvalidArgumentException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListTagsForResourceResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
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, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTagsForResource");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListTagsForResource").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listTagsForResourceRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListTagsForResourceRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Provisions an IP address range to use with your Amazon Web Services resources through bring your own IP addresses
* (BYOIP) and creates a corresponding address pool. After the address range is provisioned, it is ready to be
* advertised using
* AdvertiseByoipCidr.
*
*
* For more information, see Bring your own IP addresses
* (BYOIP) in the Global Accelerator Developer Guide.
*
*
* @param provisionByoipCidrRequest
* @return Result of the ProvisionByoipCidr operation returned by the service.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @throws AccessDeniedException
* You don't have access permission.
* @throws IncorrectCidrStateException
* The CIDR that you specified is not valid for this action. For example, the state of the CIDR might be
* incorrect for this action.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.ProvisionByoipCidr
* @see AWS API Documentation
*/
@Override
public ProvisionByoipCidrResponse provisionByoipCidr(ProvisionByoipCidrRequest provisionByoipCidrRequest)
throws InternalServiceErrorException, InvalidArgumentException, LimitExceededException, AccessDeniedException,
IncorrectCidrStateException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ProvisionByoipCidrResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(provisionByoipCidrRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, provisionByoipCidrRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ProvisionByoipCidr");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ProvisionByoipCidr").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(provisionByoipCidrRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ProvisionByoipCidrRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Remove endpoints from a custom routing accelerator.
*
*
* @param removeCustomRoutingEndpointsRequest
* @return Result of the RemoveCustomRoutingEndpoints operation returned by the service.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws EndpointNotFoundException
* The endpoint that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws AccessDeniedException
* You don't have access permission.
* @throws ConflictException
* You can't use both of those options.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.RemoveCustomRoutingEndpoints
* @see AWS API Documentation
*/
@Override
public RemoveCustomRoutingEndpointsResponse removeCustomRoutingEndpoints(
RemoveCustomRoutingEndpointsRequest removeCustomRoutingEndpointsRequest) throws EndpointGroupNotFoundException,
EndpointNotFoundException, InternalServiceErrorException, InvalidArgumentException, AccessDeniedException,
ConflictException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, RemoveCustomRoutingEndpointsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(removeCustomRoutingEndpointsRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, removeCustomRoutingEndpointsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RemoveCustomRoutingEndpoints");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("RemoveCustomRoutingEndpoints").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(removeCustomRoutingEndpointsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RemoveCustomRoutingEndpointsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Remove endpoints from an endpoint group.
*
*
* The RemoveEndpoints
API operation is the recommended option for removing endpoints. The alternative
* is to remove endpoints by updating an endpoint group by using the UpdateEndpointGroup API operation. There are two advantages to using AddEndpoints
to remove
* endpoints instead:
*
*
* -
*
* It's more convenient, because you only need to specify the endpoints that you want to remove. With the
* UpdateEndpointGroup
API operation, you must specify all of the endpoints in the endpoint group
* except the ones that you want to remove from the group.
*
*
* -
*
* It's faster, because Global Accelerator doesn't need to resolve any endpoints. With the
* UpdateEndpointGroup
API operation, Global Accelerator must resolve all of the endpoints that remain
* in the group.
*
*
*
*
* @param removeEndpointsRequest
* @return Result of the RemoveEndpoints operation returned by the service.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws AccessDeniedException
* You don't have access permission.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.RemoveEndpoints
* @see AWS API Documentation
*/
@Override
public RemoveEndpointsResponse removeEndpoints(RemoveEndpointsRequest removeEndpointsRequest)
throws EndpointGroupNotFoundException, InternalServiceErrorException, InvalidArgumentException,
AccessDeniedException, TransactionInProgressException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
RemoveEndpointsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(removeEndpointsRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, removeEndpointsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RemoveEndpoints");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("RemoveEndpoints").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(removeEndpointsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RemoveEndpointsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Add tags to an accelerator resource.
*
*
* For more information, see Tagging in
* Global Accelerator in the Global Accelerator Developer Guide.
*
*
* @param tagResourceRequest
* @return Result of the TagResource operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified 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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.TagResource
* @see AWS
* API Documentation
*/
@Override
public TagResourceResponse tagResource(TagResourceRequest tagResourceRequest) throws AcceleratorNotFoundException,
InternalServiceErrorException, InvalidArgumentException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
TagResourceResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(tagResourceRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, tagResourceRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TagResource");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("TagResource").withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration)
.withInput(tagResourceRequest).withMetricCollector(apiCallMetricCollector)
.withMarshaller(new TagResourceRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and
* its associated value. The operation succeeds even if you attempt to remove tags from an accelerator that was
* already removed.
*
*
* For more information, see Tagging in
* Global Accelerator in the Global Accelerator Developer Guide.
*
*
* @param untagResourceRequest
* @return Result of the UntagResource operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified 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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.UntagResource
* @see AWS API Documentation
*/
@Override
public UntagResourceResponse untagResource(UntagResourceRequest untagResourceRequest) throws AcceleratorNotFoundException,
InternalServiceErrorException, InvalidArgumentException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
UntagResourceResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(untagResourceRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, untagResourceRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UntagResource");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("UntagResource").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(untagResourceRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UntagResourceRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Update an accelerator to make changes, such as the following:
*
*
* -
*
* Change the name of the accelerator.
*
*
* -
*
* Disable the accelerator so that it no longer accepts or routes traffic, or so that you can delete it.
*
*
* -
*
* Enable the accelerator, if it is disabled.
*
*
* -
*
* Change the IP address type to dual-stack if it is IPv4, or change the IP address type to IPv4 if it's dual-stack.
*
*
*
*
* Be aware that static IP addresses remain assigned to your accelerator for as long as it exists, even if you
* disable the accelerator and it no longer accepts or routes traffic. However, when you delete the accelerator, you
* lose the static IP addresses that are assigned to it, so you can no longer route traffic by using them.
*
*
*
* Global Accelerator is a global service that supports endpoints in multiple Amazon Web Services Regions but you
* must specify the US West (Oregon) Region to create, update, or otherwise work with accelerators. That is, for
* example, specify --region us-west-2
on Amazon Web Services CLI commands.
*
*
*
* @param updateAcceleratorRequest
* @return Result of the UpdateAccelerator operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws AccessDeniedException
* You don't have access permission.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @throws ConflictException
* You can't use both of those options.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.UpdateAccelerator
* @see AWS API Documentation
*/
@Override
public UpdateAcceleratorResponse updateAccelerator(UpdateAcceleratorRequest updateAcceleratorRequest)
throws AcceleratorNotFoundException, AccessDeniedException, InternalServiceErrorException, InvalidArgumentException,
TransactionInProgressException, ConflictException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
UpdateAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateAcceleratorRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, updateAcceleratorRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateAccelerator");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("UpdateAccelerator").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(updateAcceleratorRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UpdateAcceleratorRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Update the attributes for an accelerator.
*
*
* @param updateAcceleratorAttributesRequest
* @return Result of the UpdateAcceleratorAttributes operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws AccessDeniedException
* You don't have access permission.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.UpdateAcceleratorAttributes
* @see AWS API Documentation
*/
@Override
public UpdateAcceleratorAttributesResponse updateAcceleratorAttributes(
UpdateAcceleratorAttributesRequest updateAcceleratorAttributesRequest) throws AcceleratorNotFoundException,
InternalServiceErrorException, InvalidArgumentException, AccessDeniedException, TransactionInProgressException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, UpdateAcceleratorAttributesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateAcceleratorAttributesRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, updateAcceleratorAttributesRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateAcceleratorAttributes");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("UpdateAcceleratorAttributes").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(updateAcceleratorAttributesRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UpdateAcceleratorAttributesRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Update a cross-account attachment to add or remove principals or resources. When you update an attachment to
* remove a principal (account ID or accelerator) or a resource, Global Accelerator revokes the permission for
* specific resources.
*
*
* For more information, see Working with
* cross-account attachments and resources in Global Accelerator in the Global Accelerator Developer
* Guide.
*
*
* @param updateCrossAccountAttachmentRequest
* @return Result of the UpdateCrossAccountAttachment operation returned by the service.
* @throws AttachmentNotFoundException
* No cross-account attachment was found.
* @throws AccessDeniedException
* You don't have access permission.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.UpdateCrossAccountAttachment
* @see AWS API Documentation
*/
@Override
public UpdateCrossAccountAttachmentResponse updateCrossAccountAttachment(
UpdateCrossAccountAttachmentRequest updateCrossAccountAttachmentRequest) throws AttachmentNotFoundException,
AccessDeniedException, InternalServiceErrorException, InvalidArgumentException, LimitExceededException,
TransactionInProgressException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, UpdateCrossAccountAttachmentResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateCrossAccountAttachmentRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, updateCrossAccountAttachmentRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateCrossAccountAttachment");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("UpdateCrossAccountAttachment").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(updateCrossAccountAttachmentRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UpdateCrossAccountAttachmentRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Update a custom routing accelerator.
*
*
* @param updateCustomRoutingAcceleratorRequest
* @return Result of the UpdateCustomRoutingAccelerator operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @throws ConflictException
* You can't use both of those options.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.UpdateCustomRoutingAccelerator
* @see AWS API Documentation
*/
@Override
public UpdateCustomRoutingAcceleratorResponse updateCustomRoutingAccelerator(
UpdateCustomRoutingAcceleratorRequest updateCustomRoutingAcceleratorRequest) throws AcceleratorNotFoundException,
InternalServiceErrorException, InvalidArgumentException, TransactionInProgressException, ConflictException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, UpdateCustomRoutingAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateCustomRoutingAcceleratorRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
updateCustomRoutingAcceleratorRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateCustomRoutingAccelerator");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("UpdateCustomRoutingAccelerator").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(updateCustomRoutingAcceleratorRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UpdateCustomRoutingAcceleratorRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Update the attributes for a custom routing accelerator.
*
*
* @param updateCustomRoutingAcceleratorAttributesRequest
* @return Result of the UpdateCustomRoutingAcceleratorAttributes operation returned by the service.
* @throws AcceleratorNotFoundException
* The accelerator that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws AccessDeniedException
* You don't have access permission.
* @throws TransactionInProgressException
* There's already a transaction in progress. Another transaction can't be processed.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.UpdateCustomRoutingAcceleratorAttributes
* @see AWS API Documentation
*/
@Override
public UpdateCustomRoutingAcceleratorAttributesResponse updateCustomRoutingAcceleratorAttributes(
UpdateCustomRoutingAcceleratorAttributesRequest updateCustomRoutingAcceleratorAttributesRequest)
throws AcceleratorNotFoundException, InternalServiceErrorException, InvalidArgumentException, AccessDeniedException,
TransactionInProgressException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(operationMetadata, UpdateCustomRoutingAcceleratorAttributesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(
updateCustomRoutingAcceleratorAttributesRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
updateCustomRoutingAcceleratorAttributesRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateCustomRoutingAcceleratorAttributes");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("UpdateCustomRoutingAcceleratorAttributes").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration)
.withInput(updateCustomRoutingAcceleratorAttributesRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UpdateCustomRoutingAcceleratorAttributesRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Update a listener for a custom routing accelerator.
*
*
* @param updateCustomRoutingListenerRequest
* @return Result of the UpdateCustomRoutingListener operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InvalidPortRangeException
* The port numbers that you specified are not valid numbers or are not unique for this accelerator.
* @throws ListenerNotFoundException
* The listener that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.UpdateCustomRoutingListener
* @see AWS API Documentation
*/
@Override
public UpdateCustomRoutingListenerResponse updateCustomRoutingListener(
UpdateCustomRoutingListenerRequest updateCustomRoutingListenerRequest) throws InvalidArgumentException,
InvalidPortRangeException, ListenerNotFoundException, InternalServiceErrorException, LimitExceededException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, UpdateCustomRoutingListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateCustomRoutingListenerRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, updateCustomRoutingListenerRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateCustomRoutingListener");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("UpdateCustomRoutingListener").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(updateCustomRoutingListenerRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UpdateCustomRoutingListenerRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Update an endpoint group. A resource must be valid and active when you add it as an endpoint.
*
*
* @param updateEndpointGroupRequest
* @return Result of the UpdateEndpointGroup operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws EndpointGroupNotFoundException
* The endpoint group that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @throws AccessDeniedException
* You don't have access permission.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.UpdateEndpointGroup
* @see AWS API Documentation
*/
@Override
public UpdateEndpointGroupResponse updateEndpointGroup(UpdateEndpointGroupRequest updateEndpointGroupRequest)
throws InvalidArgumentException, EndpointGroupNotFoundException, InternalServiceErrorException,
LimitExceededException, AccessDeniedException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, UpdateEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateEndpointGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, updateEndpointGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateEndpointGroup");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("UpdateEndpointGroup").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(updateEndpointGroupRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UpdateEndpointGroupRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Update a listener.
*
*
* @param updateListenerRequest
* @return Result of the UpdateListener operation returned by the service.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws InvalidPortRangeException
* The port numbers that you specified are not valid numbers or are not unique for this accelerator.
* @throws ListenerNotFoundException
* The listener that you specified doesn't exist.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws LimitExceededException
* Processing your request would cause you to exceed an Global Accelerator limit.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.UpdateListener
* @see AWS API Documentation
*/
@Override
public UpdateListenerResponse updateListener(UpdateListenerRequest updateListenerRequest) throws InvalidArgumentException,
InvalidPortRangeException, ListenerNotFoundException, InternalServiceErrorException, LimitExceededException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
UpdateListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateListenerRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, updateListenerRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateListener");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("UpdateListener").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(updateListenerRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UpdateListenerRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Stops advertising an address range that is provisioned as an address pool. You can perform this operation at most
* once every 10 seconds, even if you specify different address ranges each time.
*
*
* It can take a few minutes before traffic to the specified addresses stops routing to Amazon Web Services because
* of propagation delays.
*
*
* For more information, see Bring your own IP addresses
* (BYOIP) in the Global Accelerator Developer Guide.
*
*
* @param withdrawByoipCidrRequest
* @return Result of the WithdrawByoipCidr operation returned by the service.
* @throws InternalServiceErrorException
* There was an internal error for Global Accelerator.
* @throws InvalidArgumentException
* An argument that you specified is invalid.
* @throws AccessDeniedException
* You don't have access permission.
* @throws ByoipCidrNotFoundException
* The CIDR that you specified was not found or is incorrect.
* @throws IncorrectCidrStateException
* The CIDR that you specified is not valid for this action. For example, the state of the CIDR might be
* incorrect for this action.
* @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 GlobalAcceleratorException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample GlobalAcceleratorClient.WithdrawByoipCidr
* @see AWS API Documentation
*/
@Override
public WithdrawByoipCidrResponse withdrawByoipCidr(WithdrawByoipCidrRequest withdrawByoipCidrRequest)
throws InternalServiceErrorException, InvalidArgumentException, AccessDeniedException, ByoipCidrNotFoundException,
IncorrectCidrStateException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
WithdrawByoipCidrResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(withdrawByoipCidrRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, withdrawByoipCidrRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "WithdrawByoipCidr");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("WithdrawByoipCidr").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(withdrawByoipCidrRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new WithdrawByoipCidrRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
@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 HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory,
JsonOperationMetadata operationMetadata) {
return protocolFactory.createErrorResponseHandler(operationMetadata);
}
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();
}
GlobalAcceleratorServiceClientConfigurationBuilder serviceConfigBuilder = new GlobalAcceleratorServiceClientConfigurationBuilder(
configuration);
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
updateRetryStrategyClientConfiguration(configuration);
return configuration.build();
}
private > T init(T builder) {
return builder
.clientConfiguration(clientConfiguration)
.defaultServiceExceptionSupplier(GlobalAcceleratorException::builder)
.protocol(AwsJsonProtocol.AWS_JSON)
.protocolVersion("1.1")
.registerModeledException(
ExceptionMetadata.builder().errorCode("EndpointNotFoundException")
.exceptionBuilderSupplier(EndpointNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AssociatedListenerFoundException")
.exceptionBuilderSupplier(AssociatedListenerFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AssociatedEndpointGroupFoundException")
.exceptionBuilderSupplier(AssociatedEndpointGroupFoundException::builder).httpStatusCode(400)
.build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("InvalidNextTokenException")
.exceptionBuilderSupplier(InvalidNextTokenException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("EndpointGroupAlreadyExistsException")
.exceptionBuilderSupplier(EndpointGroupAlreadyExistsException::builder).httpStatusCode(400)
.build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("InvalidPortRangeException")
.exceptionBuilderSupplier(InvalidPortRangeException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("LimitExceededException")
.exceptionBuilderSupplier(LimitExceededException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("EndpointAlreadyExistsException")
.exceptionBuilderSupplier(EndpointAlreadyExistsException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AccessDeniedException")
.exceptionBuilderSupplier(AccessDeniedException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AttachmentNotFoundException")
.exceptionBuilderSupplier(AttachmentNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("ConflictException")
.exceptionBuilderSupplier(ConflictException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("InvalidArgumentException")
.exceptionBuilderSupplier(InvalidArgumentException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("ListenerNotFoundException")
.exceptionBuilderSupplier(ListenerNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AcceleratorNotFoundException")
.exceptionBuilderSupplier(AcceleratorNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("IncorrectCidrStateException")
.exceptionBuilderSupplier(IncorrectCidrStateException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("TransactionInProgressException")
.exceptionBuilderSupplier(TransactionInProgressException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("ByoipCidrNotFoundException")
.exceptionBuilderSupplier(ByoipCidrNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("InternalServiceErrorException")
.exceptionBuilderSupplier(InternalServiceErrorException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("EndpointGroupNotFoundException")
.exceptionBuilderSupplier(EndpointGroupNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AcceleratorNotDisabledException")
.exceptionBuilderSupplier(AcceleratorNotDisabledException::builder).httpStatusCode(400).build());
}
@Override
public final GlobalAcceleratorServiceClientConfiguration serviceClientConfiguration() {
return new GlobalAcceleratorServiceClientConfigurationBuilder(this.clientConfiguration.toBuilder()).build();
}
@Override
public void close() {
clientHandler.close();
}
}