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.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.core.ApiName;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
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.util.VersionInfo;
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.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.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.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.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.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.GlobalAcceleratorRequest;
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.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.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.paginators.ListAcceleratorsIterable;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListByoipCidrsIterable;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingAcceleratorsIterable;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingEndpointGroupsIterable;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingListenersIterable;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsByDestinationIterable;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsIterable;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListEndpointGroupsIterable;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListListenersIterable;
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.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.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.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.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.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 final SyncClientHandler clientHandler;
private final AwsJsonProtocolFactory protocolFactory;
private final SdkClientConfiguration clientConfiguration;
protected DefaultGlobalAcceleratorClient(SdkClientConfiguration clientConfiguration) {
this.clientHandler = new AwsSyncClientHandler(clientConfiguration);
this.clientConfiguration = clientConfiguration;
this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build();
}
@Override
public final String serviceName() {
return SERVICE_NAME;
}
/**
*
* 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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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:
*
*
* -
*
* It's faster, because Global Accelerator only has to resolve the new endpoints that you're adding.
*
*
* -
*
* It's more convenient, because you don't need to specify all of the current endpoints that are already in the
* endpoint group in addition to the new endpoints that you want to add.
*
*
*
*
* @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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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 AWS 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 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, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
CreateAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(createAcceleratorRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreateAcceleratorRequestMarshaller(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 AWS 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 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, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateCustomRoutingAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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.
*
*
* @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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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 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, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeleteAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(deleteAcceleratorRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeleteAcceleratorRequestMarshaller(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 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, AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteCustomRoutingAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(describeAcceleratorAttributesRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeAcceleratorAttributesRequestMarshaller(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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler)
.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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listAcceleratorsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListAcceleratorsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the accelerators for an Amazon Web Services account.
*
*
*
* This is a variant of
* {@link #listAccelerators(software.amazon.awssdk.services.globalaccelerator.model.ListAcceleratorsRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListAcceleratorsIterable responses = client.listAcceleratorsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListAcceleratorsIterable responses = client
* .listAcceleratorsPaginator(request);
* for (software.amazon.awssdk.services.globalaccelerator.model.ListAcceleratorsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListAcceleratorsIterable responses = client.listAcceleratorsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Please notice that the configuration of MaxResults won't limit the number of results you get with the
* paginator. It only limits the number of results in each page.
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listAccelerators(software.amazon.awssdk.services.globalaccelerator.model.ListAcceleratorsRequest)}
* operation.
*
*
* @param listAcceleratorsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 ListAcceleratorsIterable listAcceleratorsPaginator(ListAcceleratorsRequest listAcceleratorsRequest)
throws InvalidArgumentException, InvalidNextTokenException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
return new ListAcceleratorsIterable(this, applyPaginatorUserAgent(listAcceleratorsRequest));
}
/**
*
* 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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listByoipCidrsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListByoipCidrsRequestMarshaller(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.
*
*
*
* This is a variant of
* {@link #listByoipCidrs(software.amazon.awssdk.services.globalaccelerator.model.ListByoipCidrsRequest)} operation.
* The return type is a custom iterable that can be used to iterate through all the pages. SDK will internally
* handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListByoipCidrsIterable responses = client.listByoipCidrsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListByoipCidrsIterable responses = client
* .listByoipCidrsPaginator(request);
* for (software.amazon.awssdk.services.globalaccelerator.model.ListByoipCidrsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListByoipCidrsIterable responses = client.listByoipCidrsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Please notice that the configuration of MaxResults won't limit the number of results you get with the
* paginator. It only limits the number of results in each page.
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listByoipCidrs(software.amazon.awssdk.services.globalaccelerator.model.ListByoipCidrsRequest)}
* operation.
*
*
* @param listByoipCidrsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 ListByoipCidrsIterable listByoipCidrsPaginator(ListByoipCidrsRequest listByoipCidrsRequest)
throws InternalServiceErrorException, InvalidArgumentException, AccessDeniedException, InvalidNextTokenException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
return new ListByoipCidrsIterable(this, applyPaginatorUserAgent(listByoipCidrsRequest));
}
/**
*
* 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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listCustomRoutingAcceleratorsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCustomRoutingAcceleratorsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the custom routing accelerators for an Amazon Web Services account.
*
*
*
* This is a variant of
* {@link #listCustomRoutingAccelerators(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingAcceleratorsRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingAcceleratorsIterable responses = client.listCustomRoutingAcceleratorsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingAcceleratorsIterable responses = client
* .listCustomRoutingAcceleratorsPaginator(request);
* for (software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingAcceleratorsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingAcceleratorsIterable responses = client.listCustomRoutingAcceleratorsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Please notice that the configuration of MaxResults won't limit the number of results you get with the
* paginator. It only limits the number of results in each page.
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listCustomRoutingAccelerators(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingAcceleratorsRequest)}
* operation.
*
*
* @param listCustomRoutingAcceleratorsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 ListCustomRoutingAcceleratorsIterable listCustomRoutingAcceleratorsPaginator(
ListCustomRoutingAcceleratorsRequest listCustomRoutingAcceleratorsRequest) throws InvalidArgumentException,
InvalidNextTokenException, InternalServiceErrorException, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
return new ListCustomRoutingAcceleratorsIterable(this, applyPaginatorUserAgent(listCustomRoutingAcceleratorsRequest));
}
/**
*
* 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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listCustomRoutingEndpointGroupsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCustomRoutingEndpointGroupsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the endpoint groups that are associated with a listener for a custom routing accelerator.
*
*
*
* This is a variant of
* {@link #listCustomRoutingEndpointGroups(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingEndpointGroupsRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingEndpointGroupsIterable responses = client.listCustomRoutingEndpointGroupsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingEndpointGroupsIterable responses = client
* .listCustomRoutingEndpointGroupsPaginator(request);
* for (software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingEndpointGroupsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingEndpointGroupsIterable responses = client.listCustomRoutingEndpointGroupsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Please notice that the configuration of MaxResults won't limit the number of results you get with the
* paginator. It only limits the number of results in each page.
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listCustomRoutingEndpointGroups(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingEndpointGroupsRequest)}
* operation.
*
*
* @param listCustomRoutingEndpointGroupsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 ListCustomRoutingEndpointGroupsIterable listCustomRoutingEndpointGroupsPaginator(
ListCustomRoutingEndpointGroupsRequest listCustomRoutingEndpointGroupsRequest) throws ListenerNotFoundException,
InvalidNextTokenException, InvalidArgumentException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
return new ListCustomRoutingEndpointGroupsIterable(this, applyPaginatorUserAgent(listCustomRoutingEndpointGroupsRequest));
}
/**
*
* 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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listCustomRoutingListenersRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCustomRoutingListenersRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the listeners for a custom routing accelerator.
*
*
*
* This is a variant of
* {@link #listCustomRoutingListeners(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingListenersRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingListenersIterable responses = client.listCustomRoutingListenersPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingListenersIterable responses = client
* .listCustomRoutingListenersPaginator(request);
* for (software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingListenersResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingListenersIterable responses = client.listCustomRoutingListenersPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Please notice that the configuration of MaxResults won't limit the number of results you get with the
* paginator. It only limits the number of results in each page.
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listCustomRoutingListeners(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingListenersRequest)}
* operation.
*
*
* @param listCustomRoutingListenersRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 ListCustomRoutingListenersIterable listCustomRoutingListenersPaginator(
ListCustomRoutingListenersRequest listCustomRoutingListenersRequest) throws InvalidArgumentException,
AcceleratorNotFoundException, InvalidNextTokenException, InternalServiceErrorException, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
return new ListCustomRoutingListenersIterable(this, applyPaginatorUserAgent(listCustomRoutingListenersRequest));
}
/**
*
* 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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listCustomRoutingPortMappingsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCustomRoutingPortMappingsRequestMarshaller(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.
*
*
*
* This is a variant of
* {@link #listCustomRoutingPortMappings(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingPortMappingsRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsIterable responses = client.listCustomRoutingPortMappingsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsIterable responses = client
* .listCustomRoutingPortMappingsPaginator(request);
* for (software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingPortMappingsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsIterable responses = client.listCustomRoutingPortMappingsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Please notice that the configuration of MaxResults won't limit the number of results you get with the
* paginator. It only limits the number of results in each page.
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listCustomRoutingPortMappings(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingPortMappingsRequest)}
* operation.
*
*
* @param listCustomRoutingPortMappingsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 ListCustomRoutingPortMappingsIterable listCustomRoutingPortMappingsPaginator(
ListCustomRoutingPortMappingsRequest listCustomRoutingPortMappingsRequest) throws InvalidArgumentException,
InvalidNextTokenException, EndpointGroupNotFoundException, AcceleratorNotFoundException,
InternalServiceErrorException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
return new ListCustomRoutingPortMappingsIterable(this, applyPaginatorUserAgent(listCustomRoutingPortMappingsRequest));
}
/**
*
* 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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler)
.withInput(listCustomRoutingPortMappingsByDestinationRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCustomRoutingPortMappingsByDestinationRequestMarshaller(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.
*
*
*
* This is a variant of
* {@link #listCustomRoutingPortMappingsByDestination(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingPortMappingsByDestinationRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsByDestinationIterable responses = client.listCustomRoutingPortMappingsByDestinationPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsByDestinationIterable responses = client
* .listCustomRoutingPortMappingsByDestinationPaginator(request);
* for (software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingPortMappingsByDestinationResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsByDestinationIterable responses = client.listCustomRoutingPortMappingsByDestinationPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Please notice that the configuration of MaxResults won't limit the number of results you get with the
* paginator. It only limits the number of results in each page.
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listCustomRoutingPortMappingsByDestination(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingPortMappingsByDestinationRequest)}
* operation.
*
*
* @param listCustomRoutingPortMappingsByDestinationRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 ListCustomRoutingPortMappingsByDestinationIterable listCustomRoutingPortMappingsByDestinationPaginator(
ListCustomRoutingPortMappingsByDestinationRequest listCustomRoutingPortMappingsByDestinationRequest)
throws InvalidArgumentException, InvalidNextTokenException, EndpointNotFoundException, InternalServiceErrorException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
return new ListCustomRoutingPortMappingsByDestinationIterable(this,
applyPaginatorUserAgent(listCustomRoutingPortMappingsByDestinationRequest));
}
/**
*
* 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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listEndpointGroupsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListEndpointGroupsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the endpoint groups that are associated with a listener.
*
*
*
* This is a variant of
* {@link #listEndpointGroups(software.amazon.awssdk.services.globalaccelerator.model.ListEndpointGroupsRequest)}
* operation. The return type is a custom iterable that can be used to iterate through all the pages. SDK will
* internally handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListEndpointGroupsIterable responses = client.listEndpointGroupsPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListEndpointGroupsIterable responses = client
* .listEndpointGroupsPaginator(request);
* for (software.amazon.awssdk.services.globalaccelerator.model.ListEndpointGroupsResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListEndpointGroupsIterable responses = client.listEndpointGroupsPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Please notice that the configuration of MaxResults won't limit the number of results you get with the
* paginator. It only limits the number of results in each page.
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listEndpointGroups(software.amazon.awssdk.services.globalaccelerator.model.ListEndpointGroupsRequest)}
* operation.
*
*
* @param listEndpointGroupsRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 ListEndpointGroupsIterable listEndpointGroupsPaginator(ListEndpointGroupsRequest listEndpointGroupsRequest)
throws ListenerNotFoundException, InvalidNextTokenException, InvalidArgumentException, InternalServiceErrorException,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
return new ListEndpointGroupsIterable(this, applyPaginatorUserAgent(listEndpointGroupsRequest));
}
/**
*
* 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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(listListenersRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListListenersRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the listeners for an accelerator.
*
*
*
* This is a variant of
* {@link #listListeners(software.amazon.awssdk.services.globalaccelerator.model.ListListenersRequest)} operation.
* The return type is a custom iterable that can be used to iterate through all the pages. SDK will internally
* handle making service calls for you.
*
*
* When this operation is called, a custom iterable is returned but no service calls are made yet. So there is no
* guarantee that the request is valid. As you iterate through the iterable, SDK will start lazily loading response
* pages by making service calls until there are no pages left or your iteration stops. If there are errors in your
* request, you will see the failures only after you start iterating through the iterable.
*
*
*
* The following are few ways to iterate through the response pages:
*
* 1) Using a Stream
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListListenersIterable responses = client.listListenersPaginator(request);
* responses.stream().forEach(....);
* }
*
*
* 2) Using For loop
*
*
* {
* @code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListListenersIterable responses = client
* .listListenersPaginator(request);
* for (software.amazon.awssdk.services.globalaccelerator.model.ListListenersResponse response : responses) {
* // do something;
* }
* }
*
*
* 3) Use iterator directly
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListListenersIterable responses = client.listListenersPaginator(request);
* responses.iterator().forEachRemaining(....);
* }
*
*
* Please notice that the configuration of MaxResults won't limit the number of results you get with the
* paginator. It only limits the number of results in each page.
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listListeners(software.amazon.awssdk.services.globalaccelerator.model.ListListenersRequest)}
* operation.
*
*
* @param listListenersRequest
* @return A custom iterable that can be used to iterate through all the response pages.
* @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 ListListenersIterable listListenersPaginator(ListListenersRequest listListenersRequest)
throws InvalidArgumentException, AcceleratorNotFoundException, InvalidNextTokenException,
InternalServiceErrorException, AwsServiceException, SdkClientException, GlobalAcceleratorException {
return new ListListenersIterable(this, applyPaginatorUserAgent(listListenersRequest));
}
/**
*
* 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 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, 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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(untagResourceRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UntagResourceRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Update an accelerator.
*
*
*
* 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 AWS 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 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,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
UpdateAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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 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, AwsServiceException,
SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, UpdateAcceleratorAttributesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(updateAcceleratorAttributesRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UpdateAcceleratorAttributesRequestMarshaller(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 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, AwsServiceException, SdkClientException,
GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, UpdateCustomRoutingAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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 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,
AwsServiceException, SdkClientException, GlobalAcceleratorException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(operationMetadata, UpdateCustomRoutingAcceleratorAttributesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler)
.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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).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);
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").withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withInput(withdrawByoipCidrRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new WithdrawByoipCidrRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
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 > 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("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 void close() {
clientHandler.close();
}
private T applyPaginatorUserAgent(T request) {
Consumer userAgentApplier = b -> b.addApiName(ApiName.builder()
.version(VersionInfo.SDK_VERSION).name("PAGINATED").build());
AwsRequestOverrideConfiguration overrideConfiguration = request.overrideConfiguration()
.map(c -> c.toBuilder().applyMutation(userAgentApplier).build())
.orElse((AwsRequestOverrideConfiguration.builder().applyMutation(userAgentApplier).build()));
return (T) request.toBuilder().overrideConfiguration(overrideConfiguration).build();
}
}