software.amazon.awssdk.services.globalaccelerator.DefaultGlobalAcceleratorAsyncClient 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.concurrent.CompletableFuture;
import java.util.function.Consumer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.AwsAsyncClientHandler;
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.AsyncClientHandler;
import software.amazon.awssdk.core.client.handler.ClientExecutionParams;
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.ListAcceleratorsPublisher;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListByoipCidrsPublisher;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingAcceleratorsPublisher;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingEndpointGroupsPublisher;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingListenersPublisher;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsByDestinationPublisher;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsPublisher;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListEndpointGroupsPublisher;
import software.amazon.awssdk.services.globalaccelerator.paginators.ListListenersPublisher;
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.CompletableFutureUtils;
/**
* Internal implementation of {@link GlobalAcceleratorAsyncClient}.
*
* @see GlobalAcceleratorAsyncClient#builder()
*/
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultGlobalAcceleratorAsyncClient implements GlobalAcceleratorAsyncClient {
private static final Logger log = LoggerFactory.getLogger(DefaultGlobalAcceleratorAsyncClient.class);
private final AsyncClientHandler clientHandler;
private final AwsJsonProtocolFactory protocolFactory;
private final SdkClientConfiguration clientConfiguration;
private final GlobalAcceleratorServiceClientConfiguration serviceClientConfiguration;
protected DefaultGlobalAcceleratorAsyncClient(GlobalAcceleratorServiceClientConfiguration serviceClientConfiguration,
SdkClientConfiguration clientConfiguration) {
this.clientHandler = new AwsAsyncClientHandler(clientConfiguration);
this.clientConfiguration = clientConfiguration;
this.serviceClientConfiguration = serviceClientConfiguration;
this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build();
}
/**
*
* Associate a virtual private cloud (VPC) subnet endpoint with your custom routing accelerator.
*
*
* The listener port range must be large enough to support the number of IP addresses that can be specified in your
* subnet. The number of ports required is: subnet size times the number of ports per destination EC2 instances. For
* example, a subnet defined as /24 requires a listener port range of at least 255 ports.
*
*
* Note: You must have enough remaining listener ports available to map to the subnet ports, or the call will fail
* with a LimitExceededException.
*
*
* By default, all destinations in a subnet in a custom routing accelerator cannot receive traffic. To enable all
* destinations to receive traffic, or to specify individual port mappings that can receive traffic, see the
* AllowCustomRoutingTraffic operation.
*
*
* @param addCustomRoutingEndpointsRequest
* @return A Java Future containing the result of the AddCustomRoutingEndpoints operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - EndpointAlreadyExistsException The endpoint that you specified doesn't exist.
* - EndpointGroupNotFoundException The endpoint group that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - LimitExceededException Processing your request would cause you to exceed an Global Accelerator limit.
*
* - AccessDeniedException You don't have access permission.
* - ConflictException You can't use both of those options.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.AddCustomRoutingEndpoints
* @see AWS API Documentation
*/
@Override
public CompletableFuture addCustomRoutingEndpoints(
AddCustomRoutingEndpointsRequest addCustomRoutingEndpointsRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, AddCustomRoutingEndpointsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("AddCustomRoutingEndpoints")
.withMarshaller(new AddCustomRoutingEndpointsRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(addCustomRoutingEndpointsRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the AddEndpoints operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - TransactionInProgressException There's already a transaction in progress. Another transaction can't
* be processed.
* - EndpointGroupNotFoundException The endpoint group that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - LimitExceededException Processing your request would cause you to exceed an Global Accelerator limit.
*
* - AccessDeniedException You don't have access permission.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.AddEndpoints
* @see AWS API Documentation
*/
@Override
public CompletableFuture addEndpoints(AddEndpointsRequest addEndpointsRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
AddEndpointsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("AddEndpoints").withMarshaller(new AddEndpointsRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(addEndpointsRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the AdvertiseByoipCidr operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - AccessDeniedException You don't have access permission.
* - ByoipCidrNotFoundException The CIDR that you specified was not found or is incorrect.
* - 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.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.AdvertiseByoipCidr
* @see AWS API Documentation
*/
@Override
public CompletableFuture advertiseByoipCidr(AdvertiseByoipCidrRequest advertiseByoipCidrRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, AdvertiseByoipCidrResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("AdvertiseByoipCidr")
.withMarshaller(new AdvertiseByoipCidrRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(advertiseByoipCidrRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the AllowCustomRoutingTraffic operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - EndpointGroupNotFoundException The endpoint group that you specified doesn't exist.
* - InvalidArgumentException An argument that you specified is invalid.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.AllowCustomRoutingTraffic
* @see AWS API Documentation
*/
@Override
public CompletableFuture allowCustomRoutingTraffic(
AllowCustomRoutingTrafficRequest allowCustomRoutingTrafficRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, AllowCustomRoutingTrafficResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("AllowCustomRoutingTraffic")
.withMarshaller(new AllowCustomRoutingTrafficRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(allowCustomRoutingTrafficRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the CreateAccelerator operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - LimitExceededException Processing your request would cause you to exceed an Global Accelerator limit.
*
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.CreateAccelerator
* @see AWS API Documentation
*/
@Override
public CompletableFuture createAccelerator(CreateAcceleratorRequest createAcceleratorRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateAccelerator")
.withMarshaller(new CreateAcceleratorRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createAcceleratorRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the CreateCustomRoutingAccelerator operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - LimitExceededException Processing your request would cause you to exceed an Global Accelerator limit.
*
* - AccessDeniedException You don't have access permission.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.CreateCustomRoutingAccelerator
* @see AWS API Documentation
*/
@Override
public CompletableFuture createCustomRoutingAccelerator(
CreateCustomRoutingAcceleratorRequest createCustomRoutingAcceleratorRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateCustomRoutingAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateCustomRoutingAccelerator")
.withMarshaller(new CreateCustomRoutingAcceleratorRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createCustomRoutingAcceleratorRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the CreateCustomRoutingEndpointGroup operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - EndpointGroupAlreadyExistsException The endpoint group that you specified already exists.
* - ListenerNotFoundException The listener that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - InvalidPortRangeException The port numbers that you specified are not valid numbers or are not unique
* for this accelerator.
* - LimitExceededException Processing your request would cause you to exceed an Global Accelerator limit.
*
* - AccessDeniedException You don't have access permission.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.CreateCustomRoutingEndpointGroup
* @see AWS API Documentation
*/
@Override
public CompletableFuture createCustomRoutingEndpointGroup(
CreateCustomRoutingEndpointGroupRequest createCustomRoutingEndpointGroupRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(operationMetadata, CreateCustomRoutingEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateCustomRoutingEndpointGroup")
.withMarshaller(new CreateCustomRoutingEndpointGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createCustomRoutingEndpointGroupRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the CreateCustomRoutingListener operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InvalidPortRangeException The port numbers that you specified are not valid numbers or are not unique
* for this accelerator.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - LimitExceededException Processing your request would cause you to exceed an Global Accelerator limit.
*
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.CreateCustomRoutingListener
* @see AWS API Documentation
*/
@Override
public CompletableFuture createCustomRoutingListener(
CreateCustomRoutingListenerRequest createCustomRoutingListenerRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateCustomRoutingListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateCustomRoutingListener")
.withMarshaller(new CreateCustomRoutingListenerRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createCustomRoutingListenerRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the CreateEndpointGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - EndpointGroupAlreadyExistsException The endpoint group that you specified already exists.
* - ListenerNotFoundException The listener that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - LimitExceededException Processing your request would cause you to exceed an Global Accelerator limit.
*
* - AccessDeniedException You don't have access permission.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.CreateEndpointGroup
* @see AWS API Documentation
*/
@Override
public CompletableFuture createEndpointGroup(
CreateEndpointGroupRequest createEndpointGroupRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateEndpointGroup")
.withMarshaller(new CreateEndpointGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createEndpointGroupRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the CreateListener operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InvalidPortRangeException The port numbers that you specified are not valid numbers or are not unique
* for this accelerator.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - LimitExceededException Processing your request would cause you to exceed an Global Accelerator limit.
*
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.CreateListener
* @see AWS API Documentation
*/
@Override
public CompletableFuture createListener(CreateListenerRequest createListenerRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateListener")
.withMarshaller(new CreateListenerRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createListenerRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the DeleteAccelerator operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - AcceleratorNotDisabledException The accelerator that you specified could not be disabled.
* - 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.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DeleteAccelerator
* @see AWS API Documentation
*/
@Override
public CompletableFuture deleteAccelerator(DeleteAcceleratorRequest deleteAcceleratorRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteAccelerator")
.withMarshaller(new DeleteAcceleratorRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteAcceleratorRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the DeleteCustomRoutingAccelerator operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - AcceleratorNotDisabledException The accelerator that you specified could not be disabled.
* - 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.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DeleteCustomRoutingAccelerator
* @see AWS API Documentation
*/
@Override
public CompletableFuture deleteCustomRoutingAccelerator(
DeleteCustomRoutingAcceleratorRequest deleteCustomRoutingAcceleratorRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteCustomRoutingAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteCustomRoutingAccelerator")
.withMarshaller(new DeleteCustomRoutingAcceleratorRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteCustomRoutingAcceleratorRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Delete an endpoint group from a listener for a custom routing accelerator.
*
*
* @param deleteCustomRoutingEndpointGroupRequest
* @return A Java Future containing the result of the DeleteCustomRoutingEndpointGroup operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - EndpointGroupNotFoundException The endpoint group that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DeleteCustomRoutingEndpointGroup
* @see AWS API Documentation
*/
@Override
public CompletableFuture deleteCustomRoutingEndpointGroup(
DeleteCustomRoutingEndpointGroupRequest deleteCustomRoutingEndpointGroupRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(operationMetadata, DeleteCustomRoutingEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteCustomRoutingEndpointGroup")
.withMarshaller(new DeleteCustomRoutingEndpointGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteCustomRoutingEndpointGroupRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Delete a listener for a custom routing accelerator.
*
*
* @param deleteCustomRoutingListenerRequest
* @return A Java Future containing the result of the DeleteCustomRoutingListener operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - ListenerNotFoundException The listener that you specified doesn't exist.
* - 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.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DeleteCustomRoutingListener
* @see AWS API Documentation
*/
@Override
public CompletableFuture deleteCustomRoutingListener(
DeleteCustomRoutingListenerRequest deleteCustomRoutingListenerRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteCustomRoutingListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteCustomRoutingListener")
.withMarshaller(new DeleteCustomRoutingListenerRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteCustomRoutingListenerRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Delete an endpoint group from a listener.
*
*
* @param deleteEndpointGroupRequest
* @return A Java Future containing the result of the DeleteEndpointGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - EndpointGroupNotFoundException The endpoint group that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DeleteEndpointGroup
* @see AWS API Documentation
*/
@Override
public CompletableFuture deleteEndpointGroup(
DeleteEndpointGroupRequest deleteEndpointGroupRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteEndpointGroup")
.withMarshaller(new DeleteEndpointGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteEndpointGroupRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Delete a listener from an accelerator.
*
*
* @param deleteListenerRequest
* @return A Java Future containing the result of the DeleteListener operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - ListenerNotFoundException The listener that you specified doesn't exist.
* - 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.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DeleteListener
* @see AWS API Documentation
*/
@Override
public CompletableFuture deleteListener(DeleteListenerRequest deleteListenerRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteListener")
.withMarshaller(new DeleteListenerRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteListenerRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the DenyCustomRoutingTraffic operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - EndpointGroupNotFoundException The endpoint group that you specified doesn't exist.
* - InvalidArgumentException An argument that you specified is invalid.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DenyCustomRoutingTraffic
* @see AWS API Documentation
*/
@Override
public CompletableFuture denyCustomRoutingTraffic(
DenyCustomRoutingTrafficRequest denyCustomRoutingTrafficRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DenyCustomRoutingTrafficResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DenyCustomRoutingTraffic")
.withMarshaller(new DenyCustomRoutingTrafficRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(denyCustomRoutingTrafficRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the DeprovisionByoipCidr operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - AccessDeniedException You don't have access permission.
* - ByoipCidrNotFoundException The CIDR that you specified was not found or is incorrect.
* - 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.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DeprovisionByoipCidr
* @see AWS API Documentation
*/
@Override
public CompletableFuture deprovisionByoipCidr(
DeprovisionByoipCidrRequest deprovisionByoipCidrRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeprovisionByoipCidrResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeprovisionByoipCidr")
.withMarshaller(new DeprovisionByoipCidrRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deprovisionByoipCidrRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describe an accelerator.
*
*
* @param describeAcceleratorRequest
* @return A Java Future containing the result of the DescribeAccelerator operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DescribeAccelerator
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeAccelerator(
DescribeAcceleratorRequest describeAcceleratorRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeAccelerator")
.withMarshaller(new DescribeAcceleratorRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeAcceleratorRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describe the attributes of an accelerator.
*
*
* @param describeAcceleratorAttributesRequest
* @return A Java Future containing the result of the DescribeAcceleratorAttributes operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DescribeAcceleratorAttributes
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeAcceleratorAttributes(
DescribeAcceleratorAttributesRequest describeAcceleratorAttributesRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeAcceleratorAttributesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeAcceleratorAttributes")
.withMarshaller(new DescribeAcceleratorAttributesRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeAcceleratorAttributesRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describe a custom routing accelerator.
*
*
* @param describeCustomRoutingAcceleratorRequest
* @return A Java Future containing the result of the DescribeCustomRoutingAccelerator operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DescribeCustomRoutingAccelerator
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeCustomRoutingAccelerator(
DescribeCustomRoutingAcceleratorRequest describeCustomRoutingAcceleratorRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(operationMetadata, DescribeCustomRoutingAcceleratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeCustomRoutingAccelerator")
.withMarshaller(new DescribeCustomRoutingAcceleratorRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeCustomRoutingAcceleratorRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describe the attributes of a custom routing accelerator.
*
*
* @param describeCustomRoutingAcceleratorAttributesRequest
* @return A Java Future containing the result of the DescribeCustomRoutingAcceleratorAttributes operation returned
* by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DescribeCustomRoutingAcceleratorAttributes
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeCustomRoutingAcceleratorAttributes(
DescribeCustomRoutingAcceleratorAttributesRequest describeCustomRoutingAcceleratorAttributesRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(operationMetadata, DescribeCustomRoutingAcceleratorAttributesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeCustomRoutingAcceleratorAttributes")
.withMarshaller(new DescribeCustomRoutingAcceleratorAttributesRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector)
.withInput(describeCustomRoutingAcceleratorAttributesRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r,
e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describe an endpoint group for a custom routing accelerator.
*
*
* @param describeCustomRoutingEndpointGroupRequest
* @return A Java Future containing the result of the DescribeCustomRoutingEndpointGroup operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - EndpointGroupNotFoundException The endpoint group that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DescribeCustomRoutingEndpointGroup
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeCustomRoutingEndpointGroup(
DescribeCustomRoutingEndpointGroupRequest describeCustomRoutingEndpointGroupRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(operationMetadata, DescribeCustomRoutingEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeCustomRoutingEndpointGroup")
.withMarshaller(new DescribeCustomRoutingEndpointGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeCustomRoutingEndpointGroupRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* The description of a listener for a custom routing accelerator.
*
*
* @param describeCustomRoutingListenerRequest
* @return A Java Future containing the result of the DescribeCustomRoutingListener operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - ListenerNotFoundException The listener that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DescribeCustomRoutingListener
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeCustomRoutingListener(
DescribeCustomRoutingListenerRequest describeCustomRoutingListenerRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeCustomRoutingListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeCustomRoutingListener")
.withMarshaller(new DescribeCustomRoutingListenerRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeCustomRoutingListenerRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describe an endpoint group.
*
*
* @param describeEndpointGroupRequest
* @return A Java Future containing the result of the DescribeEndpointGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - EndpointGroupNotFoundException The endpoint group that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DescribeEndpointGroup
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeEndpointGroup(
DescribeEndpointGroupRequest describeEndpointGroupRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeEndpointGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeEndpointGroup")
.withMarshaller(new DescribeEndpointGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeEndpointGroupRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describe a listener.
*
*
* @param describeListenerRequest
* @return A Java Future containing the result of the DescribeListener operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - ListenerNotFoundException The listener that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.DescribeListener
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeListener(DescribeListenerRequest describeListenerRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeListenerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeListener")
.withMarshaller(new DescribeListenerRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeListenerRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* List the accelerators for an Amazon Web Services account.
*
*
* @param listAcceleratorsRequest
* @return A Java Future containing the result of the ListAccelerators operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - InvalidNextTokenException There isn't another item to return.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListAccelerators
* @see AWS API Documentation
*/
@Override
public CompletableFuture listAccelerators(ListAcceleratorsRequest listAcceleratorsRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListAcceleratorsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListAccelerators")
.withMarshaller(new ListAcceleratorsRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(listAcceleratorsRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 publisher that can be subscribed to request a stream of response pages.
* SDK will internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the subscribe helper method
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListAcceleratorsPublisher publisher = client.listAcceleratorsPaginator(request);
* CompletableFuture future = publisher.subscribe(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListAcceleratorsPublisher publisher = client.listAcceleratorsPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.globalaccelerator.model.ListAcceleratorsResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* 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 publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - InvalidNextTokenException There isn't another item to return.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListAccelerators
* @see AWS API Documentation
*/
public ListAcceleratorsPublisher listAcceleratorsPaginator(ListAcceleratorsRequest listAcceleratorsRequest) {
return new ListAcceleratorsPublisher(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 A Java Future containing the result of the ListByoipCidrs operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - AccessDeniedException You don't have access permission.
* - InvalidNextTokenException There isn't another item to return.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListByoipCidrs
* @see AWS API Documentation
*/
@Override
public CompletableFuture listByoipCidrs(ListByoipCidrsRequest listByoipCidrsRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListByoipCidrsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListByoipCidrs")
.withMarshaller(new ListByoipCidrsRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(listByoipCidrsRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 publisher that can be subscribed to request a stream of response pages. SDK will
* internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the subscribe helper method
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListByoipCidrsPublisher publisher = client.listByoipCidrsPaginator(request);
* CompletableFuture future = publisher.subscribe(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListByoipCidrsPublisher publisher = client.listByoipCidrsPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.globalaccelerator.model.ListByoipCidrsResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* 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 publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - AccessDeniedException You don't have access permission.
* - InvalidNextTokenException There isn't another item to return.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListByoipCidrs
* @see AWS API Documentation
*/
public ListByoipCidrsPublisher listByoipCidrsPaginator(ListByoipCidrsRequest listByoipCidrsRequest) {
return new ListByoipCidrsPublisher(this, applyPaginatorUserAgent(listByoipCidrsRequest));
}
/**
*
* List the custom routing accelerators for an Amazon Web Services account.
*
*
* @param listCustomRoutingAcceleratorsRequest
* @return A Java Future containing the result of the ListCustomRoutingAccelerators operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - InvalidNextTokenException There isn't another item to return.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListCustomRoutingAccelerators
* @see AWS API Documentation
*/
@Override
public CompletableFuture listCustomRoutingAccelerators(
ListCustomRoutingAcceleratorsRequest listCustomRoutingAcceleratorsRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListCustomRoutingAcceleratorsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCustomRoutingAccelerators")
.withMarshaller(new ListCustomRoutingAcceleratorsRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(listCustomRoutingAcceleratorsRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 publisher that can be subscribed to request a stream of response pages.
* SDK will internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the subscribe helper method
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingAcceleratorsPublisher publisher = client.listCustomRoutingAcceleratorsPaginator(request);
* CompletableFuture future = publisher.subscribe(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingAcceleratorsPublisher publisher = client.listCustomRoutingAcceleratorsPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingAcceleratorsResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* 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 publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - InvalidNextTokenException There isn't another item to return.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListCustomRoutingAccelerators
* @see AWS API Documentation
*/
public ListCustomRoutingAcceleratorsPublisher listCustomRoutingAcceleratorsPaginator(
ListCustomRoutingAcceleratorsRequest listCustomRoutingAcceleratorsRequest) {
return new ListCustomRoutingAcceleratorsPublisher(this, applyPaginatorUserAgent(listCustomRoutingAcceleratorsRequest));
}
/**
*
* List the endpoint groups that are associated with a listener for a custom routing accelerator.
*
*
* @param listCustomRoutingEndpointGroupsRequest
* @return A Java Future containing the result of the ListCustomRoutingEndpointGroups operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ListenerNotFoundException The listener that you specified doesn't exist.
* - InvalidNextTokenException There isn't another item to return.
* - InvalidArgumentException An argument that you specified is invalid.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListCustomRoutingEndpointGroups
* @see AWS API Documentation
*/
@Override
public CompletableFuture listCustomRoutingEndpointGroups(
ListCustomRoutingEndpointGroupsRequest listCustomRoutingEndpointGroupsRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListCustomRoutingEndpointGroupsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCustomRoutingEndpointGroups")
.withMarshaller(new ListCustomRoutingEndpointGroupsRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(listCustomRoutingEndpointGroupsRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 publisher that can be subscribed to request a stream of response pages.
* SDK will internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the subscribe helper method
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingEndpointGroupsPublisher publisher = client.listCustomRoutingEndpointGroupsPaginator(request);
* CompletableFuture future = publisher.subscribe(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingEndpointGroupsPublisher publisher = client.listCustomRoutingEndpointGroupsPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingEndpointGroupsResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* 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 publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ListenerNotFoundException The listener that you specified doesn't exist.
* - InvalidNextTokenException There isn't another item to return.
* - InvalidArgumentException An argument that you specified is invalid.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListCustomRoutingEndpointGroups
* @see AWS API Documentation
*/
public ListCustomRoutingEndpointGroupsPublisher listCustomRoutingEndpointGroupsPaginator(
ListCustomRoutingEndpointGroupsRequest listCustomRoutingEndpointGroupsRequest) {
return new ListCustomRoutingEndpointGroupsPublisher(this, applyPaginatorUserAgent(listCustomRoutingEndpointGroupsRequest));
}
/**
*
* List the listeners for a custom routing accelerator.
*
*
* @param listCustomRoutingListenersRequest
* @return A Java Future containing the result of the ListCustomRoutingListeners operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InvalidNextTokenException There isn't another item to return.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListCustomRoutingListeners
* @see AWS API Documentation
*/
@Override
public CompletableFuture listCustomRoutingListeners(
ListCustomRoutingListenersRequest listCustomRoutingListenersRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListCustomRoutingListenersResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCustomRoutingListeners")
.withMarshaller(new ListCustomRoutingListenersRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(listCustomRoutingListenersRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 publisher that can be subscribed to request a stream of response pages.
* SDK will internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the subscribe helper method
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingListenersPublisher publisher = client.listCustomRoutingListenersPaginator(request);
* CompletableFuture future = publisher.subscribe(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingListenersPublisher publisher = client.listCustomRoutingListenersPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingListenersResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* 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 publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InvalidNextTokenException There isn't another item to return.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListCustomRoutingListeners
* @see AWS API Documentation
*/
public ListCustomRoutingListenersPublisher listCustomRoutingListenersPaginator(
ListCustomRoutingListenersRequest listCustomRoutingListenersRequest) {
return new ListCustomRoutingListenersPublisher(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 A Java Future containing the result of the ListCustomRoutingPortMappings operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - InvalidNextTokenException There isn't another item to return.
* - EndpointGroupNotFoundException The endpoint group that you specified doesn't exist.
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListCustomRoutingPortMappings
* @see AWS API Documentation
*/
@Override
public CompletableFuture listCustomRoutingPortMappings(
ListCustomRoutingPortMappingsRequest listCustomRoutingPortMappingsRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListCustomRoutingPortMappingsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCustomRoutingPortMappings")
.withMarshaller(new ListCustomRoutingPortMappingsRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(listCustomRoutingPortMappingsRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 A Java Future containing the result of the ListCustomRoutingPortMappingsByDestination operation returned
* by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - InvalidNextTokenException There isn't another item to return.
* - EndpointNotFoundException The endpoint that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListCustomRoutingPortMappingsByDestination
* @see AWS API Documentation
*/
@Override
public CompletableFuture listCustomRoutingPortMappingsByDestination(
ListCustomRoutingPortMappingsByDestinationRequest listCustomRoutingPortMappingsByDestinationRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(operationMetadata, ListCustomRoutingPortMappingsByDestinationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCustomRoutingPortMappingsByDestination")
.withMarshaller(new ListCustomRoutingPortMappingsByDestinationRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector)
.withInput(listCustomRoutingPortMappingsByDestinationRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r,
e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 publisher that can be subscribed to request a stream of response pages.
* SDK will internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the subscribe helper method
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsByDestinationPublisher publisher = client.listCustomRoutingPortMappingsByDestinationPaginator(request);
* CompletableFuture future = publisher.subscribe(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsByDestinationPublisher publisher = client.listCustomRoutingPortMappingsByDestinationPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingPortMappingsByDestinationResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* 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 publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - InvalidNextTokenException There isn't another item to return.
* - EndpointNotFoundException The endpoint that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListCustomRoutingPortMappingsByDestination
* @see AWS API Documentation
*/
public ListCustomRoutingPortMappingsByDestinationPublisher listCustomRoutingPortMappingsByDestinationPaginator(
ListCustomRoutingPortMappingsByDestinationRequest listCustomRoutingPortMappingsByDestinationRequest) {
return new ListCustomRoutingPortMappingsByDestinationPublisher(this,
applyPaginatorUserAgent(listCustomRoutingPortMappingsByDestinationRequest));
}
/**
*
* 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 publisher that can be subscribed to request a stream of response pages.
* SDK will internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the subscribe helper method
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsPublisher publisher = client.listCustomRoutingPortMappingsPaginator(request);
* CompletableFuture future = publisher.subscribe(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListCustomRoutingPortMappingsPublisher publisher = client.listCustomRoutingPortMappingsPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.globalaccelerator.model.ListCustomRoutingPortMappingsResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* 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 publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - InvalidNextTokenException There isn't another item to return.
* - EndpointGroupNotFoundException The endpoint group that you specified doesn't exist.
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListCustomRoutingPortMappings
* @see AWS API Documentation
*/
public ListCustomRoutingPortMappingsPublisher listCustomRoutingPortMappingsPaginator(
ListCustomRoutingPortMappingsRequest listCustomRoutingPortMappingsRequest) {
return new ListCustomRoutingPortMappingsPublisher(this, applyPaginatorUserAgent(listCustomRoutingPortMappingsRequest));
}
/**
*
* List the endpoint groups that are associated with a listener.
*
*
* @param listEndpointGroupsRequest
* @return A Java Future containing the result of the ListEndpointGroups operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ListenerNotFoundException The listener that you specified doesn't exist.
* - InvalidNextTokenException There isn't another item to return.
* - InvalidArgumentException An argument that you specified is invalid.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListEndpointGroups
* @see AWS API Documentation
*/
@Override
public CompletableFuture listEndpointGroups(ListEndpointGroupsRequest listEndpointGroupsRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListEndpointGroupsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListEndpointGroups")
.withMarshaller(new ListEndpointGroupsRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(listEndpointGroupsRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 publisher that can be subscribed to request a stream of response pages.
* SDK will internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the subscribe helper method
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListEndpointGroupsPublisher publisher = client.listEndpointGroupsPaginator(request);
* CompletableFuture future = publisher.subscribe(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListEndpointGroupsPublisher publisher = client.listEndpointGroupsPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.globalaccelerator.model.ListEndpointGroupsResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* 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 publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ListenerNotFoundException The listener that you specified doesn't exist.
* - InvalidNextTokenException There isn't another item to return.
* - InvalidArgumentException An argument that you specified is invalid.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListEndpointGroups
* @see AWS API Documentation
*/
public ListEndpointGroupsPublisher listEndpointGroupsPaginator(ListEndpointGroupsRequest listEndpointGroupsRequest) {
return new ListEndpointGroupsPublisher(this, applyPaginatorUserAgent(listEndpointGroupsRequest));
}
/**
*
* List the listeners for an accelerator.
*
*
* @param listListenersRequest
* @return A Java Future containing the result of the ListListeners operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InvalidNextTokenException There isn't another item to return.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListListeners
* @see AWS API Documentation
*/
@Override
public CompletableFuture listListeners(ListListenersRequest listListenersRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListListenersResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListListeners")
.withMarshaller(new ListListenersRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(listListenersRequest));
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 publisher that can be subscribed to request a stream of response pages. SDK will
* internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the subscribe helper method
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListListenersPublisher publisher = client.listListenersPaginator(request);
* CompletableFuture future = publisher.subscribe(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.globalaccelerator.paginators.ListListenersPublisher publisher = client.listListenersPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.globalaccelerator.model.ListListenersResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* 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 publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidArgumentException An argument that you specified is invalid.
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InvalidNextTokenException There isn't another item to return.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListListeners
* @see AWS API Documentation
*/
public ListListenersPublisher listListenersPaginator(ListListenersRequest listListenersRequest) {
return new ListListenersPublisher(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 A Java Future containing the result of the ListTagsForResource operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - AcceleratorNotFoundException The accelerator that you specified doesn't exist.
* - InternalServiceErrorException There was an internal error for Global Accelerator.
* - InvalidArgumentException An argument that you specified is invalid.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - GlobalAcceleratorException Base class for all service exceptions. Unknown exceptions will be thrown
* as an instance of this type.
*
* @sample GlobalAcceleratorAsyncClient.ListTagsForResource
* @see AWS API Documentation
*/
@Override
public CompletableFuture listTagsForResource(
ListTagsForResourceRequest listTagsForResourceRequest) {
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");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListTagsForResourceResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams