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

software.amazon.awssdk.services.globalaccelerator.DefaultGlobalAcceleratorAsyncClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Global Accelerator module holds the client classes that are used for communicating with Global Accelerator.

There is a newer version: 2.29.39
Show newest version
/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package software.amazon.awssdk.services.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.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.TagResourceRequest;
import software.amazon.awssdk.services.globalaccelerator.model.TagResourceResponse;
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.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.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;

    protected DefaultGlobalAcceleratorAsyncClient(SdkClientConfiguration clientConfiguration) {
        this.clientHandler = new AwsAsyncClientHandler(clientConfiguration);
        this.clientConfiguration = clientConfiguration;
        this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build();
    }

    @Override
    public final String serviceName() {
        return SERVICE_NAME;
    }

    /**
     * 

* Associate a virtual private cloud (VPC) subnet endpoint with your custom routing accelerator. *

*

* The listener port range must be large enough to support the number of IP addresses that can be specified in your * subnet. The number of ports required is: subnet size times the number of ports per destination EC2 instances. For * example, a subnet defined as /24 requires a listener port range of at least 255 ports. *

*

* Note: You must have enough remaining listener ports available to map to the subnet ports, or the call will fail * with a LimitExceededException. *

*

* By default, all destinations in a subnet in a custom routing accelerator cannot receive traffic. To enable all * destinations to receive traffic, or to specify individual port mappings that can receive traffic, see the * AllowCustomRoutingTraffic operation. *

* * @param addCustomRoutingEndpointsRequest * @return 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 AWS Global Accelerator.
  • *
  • InvalidArgumentException An argument that you specified is invalid.
  • *
  • LimitExceededException Processing your request would cause you to exceed an AWS 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); } } /** *

* Advertises an IPv4 address range that is provisioned for use with your AWS resources through bring your own IP * addresses (BYOIP). It can take a few minutes before traffic to the specified addresses starts routing to AWS * 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 AWS 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 AWS 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. *
    *
  • InvalidArgumentException An argument that you specified is invalid.
  • *
  • InternalServiceErrorException There was an internal error for AWS 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 AWS Regions but you must specify the * US West (Oregon) Region to create or update accelerators. *

*
* * @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 AWS Global Accelerator.
  • *
  • InvalidArgumentException An argument that you specified is invalid.
  • *
  • LimitExceededException Processing your request would cause you to exceed an AWS 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 AWS Regions but you must specify the * US West (Oregon) Region to create or update accelerators. *

*
* * @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 AWS Global Accelerator.
  • *
  • InvalidArgumentException An argument that you specified is invalid.
  • *
  • LimitExceededException Processing your request would cause you to exceed an AWS 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 AWS 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 AWS 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 AWS 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 AWS Global Accelerator.
  • *
  • LimitExceededException Processing your request would cause you to exceed an AWS 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 AWS * 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 AWS Global Accelerator.
  • *
  • InvalidArgumentException An argument that you specified is invalid.
  • *
  • LimitExceededException Processing your request would cause you to exceed an AWS 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 AWS Global Accelerator.
  • *
  • LimitExceededException Processing your request would cause you to exceed an AWS 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 Authentication and * Access Control in the AWS 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 AWS 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 Authentication and * Access Control in the AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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. *
    *
  • InvalidArgumentException An argument that you specified is invalid.
  • *
  • InternalServiceErrorException There was an internal error for AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS * Global Accelerator in the AWS 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 AWS 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() .withOperationName("ListTagsForResource") .withMarshaller(new ListTagsForResourceRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector).withInput(listTagsForResourceRequest)); 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); } } /** *

* Provisions an IP address range to use with your AWS resources through bring your own IP addresses (BYOIP) and * creates a corresponding address pool. After the address range is provisioned, it is ready to be advertised using * * AdvertiseByoipCidr. *

*

* For more information, see Bring Your Own IP Addresses * (BYOIP) in the AWS Global Accelerator Developer Guide. *

* * @param provisionByoipCidrRequest * @return A Java Future containing the result of the ProvisionByoipCidr 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 AWS Global Accelerator.
  • *
  • InvalidArgumentException An argument that you specified is invalid.
  • *
  • LimitExceededException Processing your request would cause you to exceed an AWS Global Accelerator * limit.
  • *
  • AccessDeniedException You don't have access permission.
  • *
  • 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.ProvisionByoipCidr * @see AWS API Documentation */ @Override public CompletableFuture provisionByoipCidr(ProvisionByoipCidrRequest provisionByoipCidrRequest) { List metricPublishers = resolveMetricPublishers(clientConfiguration, provisionByoipCidrRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ProvisionByoipCidr"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, ProvisionByoipCidrResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("ProvisionByoipCidr") .withMarshaller(new ProvisionByoipCidrRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector).withInput(provisionByoipCidrRequest)); 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); } } /** *

* Remove endpoints from a custom routing accelerator. *

* * @param removeCustomRoutingEndpointsRequest * @return A Java Future containing the result of the RemoveCustomRoutingEndpoints 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.
  • *
  • EndpointNotFoundException The endpoint that you specified doesn't exist.
  • *
  • InternalServiceErrorException There was an internal error for AWS Global Accelerator.
  • *
  • InvalidArgumentException An argument that you specified is invalid.
  • *
  • 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.RemoveCustomRoutingEndpoints * @see AWS API Documentation */ @Override public CompletableFuture removeCustomRoutingEndpoints( RemoveCustomRoutingEndpointsRequest removeCustomRoutingEndpointsRequest) { List metricPublishers = resolveMetricPublishers(clientConfiguration, removeCustomRoutingEndpointsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RemoveCustomRoutingEndpoints"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, RemoveCustomRoutingEndpointsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("RemoveCustomRoutingEndpoints") .withMarshaller(new RemoveCustomRoutingEndpointsRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector).withInput(removeCustomRoutingEndpointsRequest)); 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 tags to an accelerator resource. *

*

* For more information, see Tagging in AWS * Global Accelerator in the AWS Global Accelerator Developer Guide. *

* * @param tagResourceRequest * @return A Java Future containing the result of the TagResource 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 AWS 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.TagResource * @see AWS * API Documentation */ @Override public CompletableFuture tagResource(TagResourceRequest tagResourceRequest) { List metricPublishers = resolveMetricPublishers(clientConfiguration, tagResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TagResource"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, TagResourceResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("TagResource").withMarshaller(new TagResourceRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector).withInput(tagResourceRequest)); 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); } } /** *

* Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and * its associated value. The operation succeeds even if you attempt to remove tags from an accelerator that was * already removed. *

*

* For more information, see Tagging in AWS * Global Accelerator in the AWS Global Accelerator Developer Guide. *

* * @param untagResourceRequest * @return A Java Future containing the result of the UntagResource 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 AWS 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.UntagResource * @see AWS API Documentation */ @Override public CompletableFuture untagResource(UntagResourceRequest untagResourceRequest) { List metricPublishers = resolveMetricPublishers(clientConfiguration, untagResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UntagResource"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, UntagResourceResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UntagResource") .withMarshaller(new UntagResourceRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector).withInput(untagResourceRequest)); 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); } } /** *

* Update an accelerator. *

* *

* Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the * US West (Oregon) Region to create or update accelerators. *

*
* * @param updateAcceleratorRequest * @return A Java Future containing the result of the UpdateAccelerator 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 AWS 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.UpdateAccelerator * @see AWS API Documentation */ @Override public CompletableFuture updateAccelerator(UpdateAcceleratorRequest updateAcceleratorRequest) { List metricPublishers = resolveMetricPublishers(clientConfiguration, updateAcceleratorRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateAccelerator"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateAcceleratorResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateAccelerator") .withMarshaller(new UpdateAcceleratorRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector).withInput(updateAcceleratorRequest)); 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); } } /** *

* Update the attributes for an accelerator. *

* * @param updateAcceleratorAttributesRequest * @return A Java Future containing the result of the UpdateAcceleratorAttributes 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 AWS Global Accelerator.
  • *
  • InvalidArgumentException An argument that you specified is invalid.
  • *
  • 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.UpdateAcceleratorAttributes * @see AWS API Documentation */ @Override public CompletableFuture updateAcceleratorAttributes( UpdateAcceleratorAttributesRequest updateAcceleratorAttributesRequest) { List metricPublishers = resolveMetricPublishers(clientConfiguration, updateAcceleratorAttributesRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateAcceleratorAttributes"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateAcceleratorAttributesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateAcceleratorAttributes") .withMarshaller(new UpdateAcceleratorAttributesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector).withInput(updateAcceleratorAttributesRequest)); 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); } } /** *

* Update a custom routing accelerator. *

* * @param updateCustomRoutingAcceleratorRequest * @return A Java Future containing the result of the UpdateCustomRoutingAccelerator 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 AWS 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.UpdateCustomRoutingAccelerator * @see AWS API Documentation */ @Override public CompletableFuture updateCustomRoutingAccelerator( UpdateCustomRoutingAcceleratorRequest updateCustomRoutingAcceleratorRequest) { List metricPublishers = resolveMetricPublishers(clientConfiguration, updateCustomRoutingAcceleratorRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateCustomRoutingAccelerator"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateCustomRoutingAcceleratorResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateCustomRoutingAccelerator") .withMarshaller(new UpdateCustomRoutingAcceleratorRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector).withInput(updateCustomRoutingAcceleratorRequest)); 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); } } /** *

* Update the attributes for a custom routing accelerator. *

* * @param updateCustomRoutingAcceleratorAttributesRequest * @return A Java Future containing the result of the UpdateCustomRoutingAcceleratorAttributes 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 AWS Global Accelerator.
  • *
  • InvalidArgumentException An argument that you specified is invalid.
  • *
  • 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.UpdateCustomRoutingAcceleratorAttributes * @see AWS API Documentation */ @Override public CompletableFuture updateCustomRoutingAcceleratorAttributes( UpdateCustomRoutingAcceleratorAttributesRequest updateCustomRoutingAcceleratorAttributesRequest) { List metricPublishers = resolveMetricPublishers(clientConfiguration, updateCustomRoutingAcceleratorAttributesRequest.overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateCustomRoutingAcceleratorAttributes"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory .createResponseHandler(operationMetadata, UpdateCustomRoutingAcceleratorAttributesResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateCustomRoutingAcceleratorAttributes") .withMarshaller(new UpdateCustomRoutingAcceleratorAttributesRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector) .withInput(updateCustomRoutingAcceleratorAttributesRequest)); 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); } } /** *

* Update a listener for a custom routing accelerator. *

* * @param updateCustomRoutingListenerRequest * @return A Java Future containing the result of the UpdateCustomRoutingListener 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.
  • *
  • InvalidPortRangeException The port numbers that you specified are not valid numbers or are not unique * for this accelerator.
  • *
  • ListenerNotFoundException The listener that you specified doesn't exist.
  • *
  • InternalServiceErrorException There was an internal error for AWS Global Accelerator.
  • *
  • LimitExceededException Processing your request would cause you to exceed an AWS 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.UpdateCustomRoutingListener * @see AWS API Documentation */ @Override public CompletableFuture updateCustomRoutingListener( UpdateCustomRoutingListenerRequest updateCustomRoutingListenerRequest) { List metricPublishers = resolveMetricPublishers(clientConfiguration, updateCustomRoutingListenerRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateCustomRoutingListener"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateCustomRoutingListenerResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateCustomRoutingListener") .withMarshaller(new UpdateCustomRoutingListenerRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector).withInput(updateCustomRoutingListenerRequest)); 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); } } /** *

* Update an endpoint group. A resource must be valid and active when you add it as an endpoint. *

* * @param updateEndpointGroupRequest * @return A Java Future containing the result of the UpdateEndpointGroup 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 AWS Global Accelerator.
  • *
  • LimitExceededException Processing your request would cause you to exceed an AWS 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.UpdateEndpointGroup * @see AWS API Documentation */ @Override public CompletableFuture updateEndpointGroup( UpdateEndpointGroupRequest updateEndpointGroupRequest) { List metricPublishers = resolveMetricPublishers(clientConfiguration, updateEndpointGroupRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateEndpointGroup"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateEndpointGroupResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateEndpointGroup") .withMarshaller(new UpdateEndpointGroupRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector).withInput(updateEndpointGroupRequest)); 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); } } /** *

* Update a listener. *

* * @param updateListenerRequest * @return A Java Future containing the result of the UpdateListener 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.
  • *
  • InvalidPortRangeException The port numbers that you specified are not valid numbers or are not unique * for this accelerator.
  • *
  • ListenerNotFoundException The listener that you specified doesn't exist.
  • *
  • InternalServiceErrorException There was an internal error for AWS Global Accelerator.
  • *
  • LimitExceededException Processing your request would cause you to exceed an AWS 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.UpdateListener * @see AWS API Documentation */ @Override public CompletableFuture updateListener(UpdateListenerRequest updateListenerRequest) { List metricPublishers = resolveMetricPublishers(clientConfiguration, updateListenerRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateListener"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateListenerResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("UpdateListener") .withMarshaller(new UpdateListenerRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector).withInput(updateListenerRequest)); 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); } } /** *

* Stops advertising an address range that is provisioned as an address pool. You can perform this operation at most * once every 10 seconds, even if you specify different address ranges each time. *

*

* It can take a few minutes before traffic to the specified addresses stops routing to AWS because of propagation * delays. *

*

* For more information, see Bring Your Own IP Addresses * (BYOIP) in the AWS Global Accelerator Developer Guide. *

* * @param withdrawByoipCidrRequest * @return A Java Future containing the result of the WithdrawByoipCidr 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 AWS 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.WithdrawByoipCidr * @see AWS API Documentation */ @Override public CompletableFuture withdrawByoipCidr(WithdrawByoipCidrRequest withdrawByoipCidrRequest) { List metricPublishers = resolveMetricPublishers(clientConfiguration, withdrawByoipCidrRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Global Accelerator"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "WithdrawByoipCidr"); JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, WithdrawByoipCidrResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); CompletableFuture executeFuture = clientHandler .execute(new ClientExecutionParams() .withOperationName("WithdrawByoipCidr") .withMarshaller(new WithdrawByoipCidrRequestMarshaller(protocolFactory)) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withMetricCollector(apiCallMetricCollector).withInput(withdrawByoipCidrRequest)); 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); } } @Override public void close() { clientHandler.close(); } private > T init(T builder) { return builder .clientConfiguration(clientConfiguration) .defaultServiceExceptionSupplier(GlobalAcceleratorException::builder) .protocol(AwsJsonProtocol.AWS_JSON) .protocolVersion("1.1") .registerModeledException( ExceptionMetadata.builder().errorCode("EndpointNotFoundException") .exceptionBuilderSupplier(EndpointNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("AssociatedListenerFoundException") .exceptionBuilderSupplier(AssociatedListenerFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("AssociatedEndpointGroupFoundException") .exceptionBuilderSupplier(AssociatedEndpointGroupFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidNextTokenException") .exceptionBuilderSupplier(InvalidNextTokenException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("EndpointGroupAlreadyExistsException") .exceptionBuilderSupplier(EndpointGroupAlreadyExistsException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidPortRangeException") .exceptionBuilderSupplier(InvalidPortRangeException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("LimitExceededException") .exceptionBuilderSupplier(LimitExceededException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("EndpointAlreadyExistsException") .exceptionBuilderSupplier(EndpointAlreadyExistsException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("AccessDeniedException") .exceptionBuilderSupplier(AccessDeniedException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ConflictException") .exceptionBuilderSupplier(ConflictException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidArgumentException") .exceptionBuilderSupplier(InvalidArgumentException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ListenerNotFoundException") .exceptionBuilderSupplier(ListenerNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("AcceleratorNotFoundException") .exceptionBuilderSupplier(AcceleratorNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("IncorrectCidrStateException") .exceptionBuilderSupplier(IncorrectCidrStateException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ByoipCidrNotFoundException") .exceptionBuilderSupplier(ByoipCidrNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InternalServiceErrorException") .exceptionBuilderSupplier(InternalServiceErrorException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("EndpointGroupNotFoundException") .exceptionBuilderSupplier(EndpointGroupNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("AcceleratorNotDisabledException") .exceptionBuilderSupplier(AcceleratorNotDisabledException::builder).build()); } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); } if (publishers == null || publishers.isEmpty()) { publishers = clientConfiguration.option(SdkClientOption.METRIC_PUBLISHERS); } if (publishers == null) { publishers = Collections.emptyList(); } return publishers; } private T applyPaginatorUserAgent(T request) { Consumer userAgentApplier = b -> b.addApiName(ApiName.builder() .version(VersionInfo.SDK_VERSION).name("PAGINATED").build()); AwsRequestOverrideConfiguration overrideConfiguration = request.overrideConfiguration() .map(c -> c.toBuilder().applyMutation(userAgentApplier).build()) .orElse((AwsRequestOverrideConfiguration.builder().applyMutation(userAgentApplier).build())); return (T) request.toBuilder().overrideConfiguration(overrideConfiguration).build(); } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, JsonOperationMetadata operationMetadata) { return protocolFactory.createErrorResponseHandler(operationMetadata); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy