/* * Copyright 2018-2023 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 com.amazonaws.services.elasticloadbalancingv2; import org.w3c.dom.*; import java.net.*; import java.util.*; import javax.annotation.Generated; import org.apache.commons.logging.*; import com.amazonaws.*; import com.amazonaws.annotation.SdkInternalApi; import com.amazonaws.auth.*; import com.amazonaws.handlers.*; import com.amazonaws.http.*; import com.amazonaws.internal.*; import com.amazonaws.internal.auth.*; import com.amazonaws.metrics.*; import com.amazonaws.regions.*; import com.amazonaws.transform.*; import com.amazonaws.util.*; import com.amazonaws.protocol.json.*; import com.amazonaws.util.AWSRequestMetrics.Field; import com.amazonaws.annotation.ThreadSafe; import com.amazonaws.client.AwsSyncClientParams; import com.amazonaws.client.builder.AdvancedConfig; import com.amazonaws.services.elasticloadbalancingv2.AmazonElasticLoadBalancingClientBuilder; import com.amazonaws.services.elasticloadbalancingv2.waiters.AmazonElasticLoadBalancingWaiters; import com.amazonaws.AmazonServiceException; import com.amazonaws.services.elasticloadbalancingv2.model.*; import com.amazonaws.services.elasticloadbalancingv2.model.transform.*; /** * Client for accessing Elastic Load Balancing v2. All service calls made using this client are blocking, and will not * return until the service call completes. *
*
* A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase * the availability of your application. The load balancer also monitors the health of its registered targets and * ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic * by specifying one or more listeners, which are configured with a protocol and port number for connections from * clients to the load balancer. You configure a target group with a protocol and port number for connections from the * load balancer to the targets, and with health check settings to be used when checking the health status of the * targets. *
** Elastic Load Balancing supports the following types of load balancers: Application Load Balancers, Network Load * Balancers, Gateway Load Balancers, and Classic Load Balancers. This reference covers the following load balancer * types: *
** Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS. *
** Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP. *
** Gateway Load Balancer - Operates at the network layer (layer 3). *
** For more information, see the Elastic * Load Balancing User Guide. *
** All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat * an operation, it succeeds. *
*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AmazonElasticLoadBalancingClient extends AmazonWebServiceClient implements AmazonElasticLoadBalancing { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonElasticLoadBalancing.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "elasticloadbalancing"; private volatile AmazonElasticLoadBalancingWaiters waiters; /** Client configuration factory providing ClientConfigurations tailored to this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final AdvancedConfig advancedConfig; /** * Map of exception unmarshallers for all modeled exceptions */ private final Map* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @see DefaultAWSCredentialsProviderChain * @deprecated use {@link AmazonElasticLoadBalancingClientBuilder#defaultClient()} */ @Deprecated public AmazonElasticLoadBalancingClient() { this(DefaultAWSCredentialsProviderChain.getInstance(), configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Elastic Load Balancing v2. A credentials provider chain will * be used that searches for credentials in this order: *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientConfiguration * The client configuration options controlling how this client connects to Elastic Load Balancing v2 (ex: * proxy settings, retry counts, etc.). * * @see DefaultAWSCredentialsProviderChain * @deprecated use {@link AmazonElasticLoadBalancingClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AmazonElasticLoadBalancingClient(ClientConfiguration clientConfiguration) { this(DefaultAWSCredentialsProviderChain.getInstance(), clientConfiguration); } /** * Constructs a new client to invoke service methods on Elastic Load Balancing v2 using the specified AWS account * credentials. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when authenticating with AWS services. * @deprecated use {@link AmazonElasticLoadBalancingClientBuilder#withCredentials(AWSCredentialsProvider)} for * example: * {@code AmazonElasticLoadBalancingClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCredentials)).build();} */ @Deprecated public AmazonElasticLoadBalancingClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Elastic Load Balancing v2 using the specified AWS account * credentials and client configuration options. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when authenticating with AWS services. * @param clientConfiguration * The client configuration options controlling how this client connects to Elastic Load Balancing v2 (ex: * proxy settings, retry counts, etc.). * @deprecated use {@link AmazonElasticLoadBalancingClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AmazonElasticLoadBalancingClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AmazonElasticLoadBalancingClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider(awsCredentials); this.advancedConfig = AdvancedConfig.EMPTY; init(); } /** * Constructs a new client to invoke service methods on Elastic Load Balancing v2 using the specified AWS account * credentials provider. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to authenticate requests with AWS services. * @deprecated use {@link AmazonElasticLoadBalancingClientBuilder#withCredentials(AWSCredentialsProvider)} */ @Deprecated public AmazonElasticLoadBalancingClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Elastic Load Balancing v2 using the specified AWS account * credentials provider and client configuration options. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client connects to Elastic Load Balancing v2 (ex: * proxy settings, retry counts, etc.). * @deprecated use {@link AmazonElasticLoadBalancingClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AmazonElasticLoadBalancingClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AmazonElasticLoadBalancingClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on Elastic Load Balancing v2 using the specified AWS account * credentials provider, client configuration options, and request metric collector. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client connects to Elastic Load Balancing v2 (ex: * proxy settings, retry counts, etc.). * @param requestMetricCollector * optional request metric collector * @deprecated use {@link AmazonElasticLoadBalancingClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AmazonElasticLoadBalancingClientBuilder#withClientConfiguration(ClientConfiguration)} and * {@link AmazonElasticLoadBalancingClientBuilder#withMetricsCollector(RequestMetricCollector)} */ @Deprecated public AmazonElasticLoadBalancingClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; this.advancedConfig = AdvancedConfig.EMPTY; init(); } public static AmazonElasticLoadBalancingClientBuilder builder() { return AmazonElasticLoadBalancingClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on Elastic Load Balancing v2 using the specified parameters. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AmazonElasticLoadBalancingClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on Elastic Load Balancing v2 using the specified parameters. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AmazonElasticLoadBalancingClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); this.advancedConfig = clientParams.getAdvancedConfig(); init(); } private void init() { if (exceptionUnmarshallersMap.get("UnsupportedProtocol") == null) { exceptionUnmarshallersMap.put("UnsupportedProtocol", new UnsupportedProtocolExceptionUnmarshaller()); } exceptionUnmarshallers.add(new UnsupportedProtocolExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("TooManyUniqueTargetGroupsPerLoadBalancer") == null) { exceptionUnmarshallersMap.put("TooManyUniqueTargetGroupsPerLoadBalancer", new TooManyUniqueTargetGroupsPerLoadBalancerExceptionUnmarshaller()); } exceptionUnmarshallers.add(new TooManyUniqueTargetGroupsPerLoadBalancerExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("AllocationIdNotFound") == null) { exceptionUnmarshallersMap.put("AllocationIdNotFound", new AllocationIdNotFoundExceptionUnmarshaller()); } exceptionUnmarshallers.add(new AllocationIdNotFoundExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("ResourceInUse") == null) { exceptionUnmarshallersMap.put("ResourceInUse", new ResourceInUseExceptionUnmarshaller()); } exceptionUnmarshallers.add(new ResourceInUseExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("DuplicateTargetGroupName") == null) { exceptionUnmarshallersMap.put("DuplicateTargetGroupName", new DuplicateTargetGroupNameExceptionUnmarshaller()); } exceptionUnmarshallers.add(new DuplicateTargetGroupNameExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("TooManyRules") == null) { exceptionUnmarshallersMap.put("TooManyRules", new TooManyRulesExceptionUnmarshaller()); } exceptionUnmarshallers.add(new TooManyRulesExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("TooManyCertificates") == null) { exceptionUnmarshallersMap.put("TooManyCertificates", new TooManyCertificatesExceptionUnmarshaller()); } exceptionUnmarshallers.add(new TooManyCertificatesExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("LoadBalancerNotFound") == null) { exceptionUnmarshallersMap.put("LoadBalancerNotFound", new LoadBalancerNotFoundExceptionUnmarshaller()); } exceptionUnmarshallers.add(new LoadBalancerNotFoundExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("TooManyTargetGroups") == null) { exceptionUnmarshallersMap.put("TooManyTargetGroups", new TooManyTargetGroupsExceptionUnmarshaller()); } exceptionUnmarshallers.add(new TooManyTargetGroupsExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("TooManyLoadBalancers") == null) { exceptionUnmarshallersMap.put("TooManyLoadBalancers", new TooManyLoadBalancersExceptionUnmarshaller()); } exceptionUnmarshallers.add(new TooManyLoadBalancersExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("InvalidConfigurationRequest") == null) { exceptionUnmarshallersMap.put("InvalidConfigurationRequest", new InvalidConfigurationRequestExceptionUnmarshaller()); } exceptionUnmarshallers.add(new InvalidConfigurationRequestExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("TargetGroupAssociationLimit") == null) { exceptionUnmarshallersMap.put("TargetGroupAssociationLimit", new TargetGroupAssociationLimitExceptionUnmarshaller()); } exceptionUnmarshallers.add(new TargetGroupAssociationLimitExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("InvalidSecurityGroup") == null) { exceptionUnmarshallersMap.put("InvalidSecurityGroup", new InvalidSecurityGroupExceptionUnmarshaller()); } exceptionUnmarshallers.add(new InvalidSecurityGroupExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("IncompatibleProtocols") == null) { exceptionUnmarshallersMap.put("IncompatibleProtocols", new IncompatibleProtocolsExceptionUnmarshaller()); } exceptionUnmarshallers.add(new IncompatibleProtocolsExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("TooManyActions") == null) { exceptionUnmarshallersMap.put("TooManyActions", new TooManyActionsExceptionUnmarshaller()); } exceptionUnmarshallers.add(new TooManyActionsExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("TooManyListeners") == null) { exceptionUnmarshallersMap.put("TooManyListeners", new TooManyListenersExceptionUnmarshaller()); } exceptionUnmarshallers.add(new TooManyListenersExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("DuplicateLoadBalancerName") == null) { exceptionUnmarshallersMap.put("DuplicateLoadBalancerName", new DuplicateLoadBalancerNameExceptionUnmarshaller()); } exceptionUnmarshallers.add(new DuplicateLoadBalancerNameExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("ALPNPolicyNotFound") == null) { exceptionUnmarshallersMap.put("ALPNPolicyNotFound", new ALPNPolicyNotSupportedExceptionUnmarshaller()); } exceptionUnmarshallers.add(new ALPNPolicyNotSupportedExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("OperationNotPermitted") == null) { exceptionUnmarshallersMap.put("OperationNotPermitted", new OperationNotPermittedExceptionUnmarshaller()); } exceptionUnmarshallers.add(new OperationNotPermittedExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("InvalidLoadBalancerAction") == null) { exceptionUnmarshallersMap.put("InvalidLoadBalancerAction", new InvalidLoadBalancerActionExceptionUnmarshaller()); } exceptionUnmarshallers.add(new InvalidLoadBalancerActionExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("CertificateNotFound") == null) { exceptionUnmarshallersMap.put("CertificateNotFound", new CertificateNotFoundExceptionUnmarshaller()); } exceptionUnmarshallers.add(new CertificateNotFoundExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("DuplicateTagKeys") == null) { exceptionUnmarshallersMap.put("DuplicateTagKeys", new DuplicateTagKeysExceptionUnmarshaller()); } exceptionUnmarshallers.add(new DuplicateTagKeysExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("TooManyTags") == null) { exceptionUnmarshallersMap.put("TooManyTags", new TooManyTagsExceptionUnmarshaller()); } exceptionUnmarshallers.add(new TooManyTagsExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("TargetGroupNotFound") == null) { exceptionUnmarshallersMap.put("TargetGroupNotFound", new TargetGroupNotFoundExceptionUnmarshaller()); } exceptionUnmarshallers.add(new TargetGroupNotFoundExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("TooManyRegistrationsForTargetId") == null) { exceptionUnmarshallersMap.put("TooManyRegistrationsForTargetId", new TooManyRegistrationsForTargetIdExceptionUnmarshaller()); } exceptionUnmarshallers.add(new TooManyRegistrationsForTargetIdExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("SSLPolicyNotFound") == null) { exceptionUnmarshallersMap.put("SSLPolicyNotFound", new SSLPolicyNotFoundExceptionUnmarshaller()); } exceptionUnmarshallers.add(new SSLPolicyNotFoundExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("ListenerNotFound") == null) { exceptionUnmarshallersMap.put("ListenerNotFound", new ListenerNotFoundExceptionUnmarshaller()); } exceptionUnmarshallers.add(new ListenerNotFoundExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("PriorityInUse") == null) { exceptionUnmarshallersMap.put("PriorityInUse", new PriorityInUseExceptionUnmarshaller()); } exceptionUnmarshallers.add(new PriorityInUseExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("InvalidTarget") == null) { exceptionUnmarshallersMap.put("InvalidTarget", new InvalidTargetExceptionUnmarshaller()); } exceptionUnmarshallers.add(new InvalidTargetExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("SubnetNotFound") == null) { exceptionUnmarshallersMap.put("SubnetNotFound", new SubnetNotFoundExceptionUnmarshaller()); } exceptionUnmarshallers.add(new SubnetNotFoundExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("AvailabilityZoneNotSupported") == null) { exceptionUnmarshallersMap.put("AvailabilityZoneNotSupported", new AvailabilityZoneNotSupportedExceptionUnmarshaller()); } exceptionUnmarshallers.add(new AvailabilityZoneNotSupportedExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("RuleNotFound") == null) { exceptionUnmarshallersMap.put("RuleNotFound", new RuleNotFoundExceptionUnmarshaller()); } exceptionUnmarshallers.add(new RuleNotFoundExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("DuplicateListener") == null) { exceptionUnmarshallersMap.put("DuplicateListener", new DuplicateListenerExceptionUnmarshaller()); } exceptionUnmarshallers.add(new DuplicateListenerExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("InvalidScheme") == null) { exceptionUnmarshallersMap.put("InvalidScheme", new InvalidSchemeExceptionUnmarshaller()); } exceptionUnmarshallers.add(new InvalidSchemeExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("HealthUnavailable") == null) { exceptionUnmarshallersMap.put("HealthUnavailable", new HealthUnavailableExceptionUnmarshaller()); } exceptionUnmarshallers.add(new HealthUnavailableExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("InvalidSubnet") == null) { exceptionUnmarshallersMap.put("InvalidSubnet", new InvalidSubnetExceptionUnmarshaller()); } exceptionUnmarshallers.add(new InvalidSubnetExceptionUnmarshaller()); if (exceptionUnmarshallersMap.get("TooManyTargets") == null) { exceptionUnmarshallersMap.put("TooManyTargets", new TooManyTargetsExceptionUnmarshaller()); } exceptionUnmarshallers.add(new TooManyTargetsExceptionUnmarshaller()); defaultUnmarshaller = new StandardErrorUnmarshaller(com.amazonaws.services.elasticloadbalancingv2.model.AmazonElasticLoadBalancingException.class); exceptionUnmarshallers .add(new StandardErrorUnmarshaller(com.amazonaws.services.elasticloadbalancingv2.model.AmazonElasticLoadBalancingException.class)); setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly this.setEndpoint("elasticloadbalancing.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/elasticloadbalancingv2/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/elasticloadbalancingv2/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** *
* Adds the specified SSL server certificate to the certificate list for the specified HTTPS or TLS listener. *
** If the certificate in already in the certificate list, the call is successful but the certificate is not added * again. *
** For more information, see HTTPS * listeners in the Application Load Balancers Guide or TLS listeners * in the Network Load Balancers Guide. *
* * @param addListenerCertificatesRequest * @return Result of the AddListenerCertificates operation returned by the service. * @throws ListenerNotFoundException * The specified listener does not exist. * @throws TooManyCertificatesException * You've reached the limit on the number of certificates per load balancer. * @throws CertificateNotFoundException * The specified certificate does not exist. * @sample AmazonElasticLoadBalancing.AddListenerCertificates * @see AWS API Documentation */ @Override public AddListenerCertificatesResult addListenerCertificates(AddListenerCertificatesRequest request) { request = beforeClientExecution(request); return executeAddListenerCertificates(request); } @SdkInternalApi final AddListenerCertificatesResult executeAddListenerCertificates(AddListenerCertificatesRequest addListenerCertificatesRequest) { ExecutionContext executionContext = createExecutionContext(addListenerCertificatesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Adds the specified tags to the specified Elastic Load Balancing resource. You can tag your Application Load * Balancers, Network Load Balancers, Gateway Load Balancers, target groups, listeners, and rules. *
*
* Each tag consists of a key and an optional value. If a resource already has a tag with the same key,
* AddTags
updates its value.
*
* Creates a listener for the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. *
** For more information, see the following: *
** This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple * listeners with the same settings, each call succeeds. *
* * @param createListenerRequest * @return Result of the CreateListener operation returned by the service. * @throws DuplicateListenerException * A listener with the specified port already exists. * @throws TooManyListenersException * You've reached the limit on the number of listeners per load balancer. * @throws TooManyCertificatesException * You've reached the limit on the number of certificates per load balancer. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws TargetGroupNotFoundException * The specified target group does not exist. * @throws TargetGroupAssociationLimitException * You've reached the limit on the number of load balancers per target group. * @throws InvalidConfigurationRequestException * The requested configuration is not valid. * @throws IncompatibleProtocolsException * The specified configuration is not valid with this protocol. * @throws SSLPolicyNotFoundException * The specified SSL policy does not exist. * @throws CertificateNotFoundException * The specified certificate does not exist. * @throws UnsupportedProtocolException * The specified protocol is not supported. * @throws TooManyRegistrationsForTargetIdException * You've reached the limit on the number of times a target can be registered with a load balancer. * @throws TooManyTargetsException * You've reached the limit on the number of targets. * @throws TooManyActionsException * You've reached the limit on the number of actions per rule. * @throws InvalidLoadBalancerActionException * The requested action is not valid. * @throws TooManyUniqueTargetGroupsPerLoadBalancerException * You've reached the limit on the number of unique target groups per load balancer across all listeners. If * a target group is used by multiple actions for a load balancer, it is counted as only one use. * @throws ALPNPolicyNotSupportedException * The specified ALPN policy is not supported. * @throws TooManyTagsException * You've reached the limit on the number of tags per load balancer. * @sample AmazonElasticLoadBalancing.CreateListener * @see AWS API Documentation */ @Override public CreateListenerResult createListener(CreateListenerRequest request) { request = beforeClientExecution(request); return executeCreateListener(request); } @SdkInternalApi final CreateListenerResult executeCreateListener(CreateListenerRequest createListenerRequest) { ExecutionContext executionContext = createExecutionContext(createListenerRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Creates an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. *
** For more information, see the following: *
** This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple * load balancers with the same settings, each call succeeds. *
* * @param createLoadBalancerRequest * @return Result of the CreateLoadBalancer operation returned by the service. * @throws DuplicateLoadBalancerNameException * A load balancer with the specified name already exists. * @throws TooManyLoadBalancersException * You've reached the limit on the number of load balancers for your Amazon Web Services account. * @throws InvalidConfigurationRequestException * The requested configuration is not valid. * @throws SubnetNotFoundException * The specified subnet does not exist. * @throws InvalidSubnetException * The specified subnet is out of available addresses. * @throws InvalidSecurityGroupException * The specified security group does not exist. * @throws InvalidSchemeException * The requested scheme is not valid. * @throws TooManyTagsException * You've reached the limit on the number of tags per load balancer. * @throws DuplicateTagKeysException * A tag key was specified more than once. * @throws ResourceInUseException * A specified resource is in use. * @throws AllocationIdNotFoundException * The specified allocation ID does not exist. * @throws AvailabilityZoneNotSupportedException * The specified Availability Zone is not supported. * @throws OperationNotPermittedException * This operation is not allowed. * @sample AmazonElasticLoadBalancing.CreateLoadBalancer * @see AWS API Documentation */ @Override public CreateLoadBalancerResult createLoadBalancer(CreateLoadBalancerRequest request) { request = beforeClientExecution(request); return executeCreateLoadBalancer(request); } @SdkInternalApi final CreateLoadBalancerResult executeCreateLoadBalancer(CreateLoadBalancerRequest createLoadBalancerRequest) { ExecutionContext executionContext = createExecutionContext(createLoadBalancerRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Creates a rule for the specified listener. The listener must be associated with an Application Load Balancer. *
** Each rule consists of a priority, one or more actions, and one or more conditions. Rules are evaluated in * priority order, from the lowest value to the highest value. When the conditions for a rule are met, its actions * are performed. If the conditions for no rules are met, the actions for the default rule are performed. For more * information, see Listener rules in the Application Load Balancers Guide. *
* * @param createRuleRequest * @return Result of the CreateRule operation returned by the service. * @throws PriorityInUseException * The specified priority is in use. * @throws TooManyTargetGroupsException * You've reached the limit on the number of target groups for your Amazon Web Services account. * @throws TooManyRulesException * You've reached the limit on the number of rules per load balancer. * @throws TargetGroupAssociationLimitException * You've reached the limit on the number of load balancers per target group. * @throws IncompatibleProtocolsException * The specified configuration is not valid with this protocol. * @throws ListenerNotFoundException * The specified listener does not exist. * @throws TargetGroupNotFoundException * The specified target group does not exist. * @throws InvalidConfigurationRequestException * The requested configuration is not valid. * @throws TooManyRegistrationsForTargetIdException * You've reached the limit on the number of times a target can be registered with a load balancer. * @throws TooManyTargetsException * You've reached the limit on the number of targets. * @throws UnsupportedProtocolException * The specified protocol is not supported. * @throws TooManyActionsException * You've reached the limit on the number of actions per rule. * @throws InvalidLoadBalancerActionException * The requested action is not valid. * @throws TooManyUniqueTargetGroupsPerLoadBalancerException * You've reached the limit on the number of unique target groups per load balancer across all listeners. If * a target group is used by multiple actions for a load balancer, it is counted as only one use. * @throws TooManyTagsException * You've reached the limit on the number of tags per load balancer. * @sample AmazonElasticLoadBalancing.CreateRule * @see AWS API Documentation */ @Override public CreateRuleResult createRule(CreateRuleRequest request) { request = beforeClientExecution(request); return executeCreateRule(request); } @SdkInternalApi final CreateRuleResult executeCreateRule(CreateRuleRequest createRuleRequest) { ExecutionContext executionContext = createExecutionContext(createRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Creates a target group. *
** For more information, see the following: *
** This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple * target groups with the same settings, each call succeeds. *
* * @param createTargetGroupRequest * @return Result of the CreateTargetGroup operation returned by the service. * @throws DuplicateTargetGroupNameException * A target group with the specified name already exists. * @throws TooManyTargetGroupsException * You've reached the limit on the number of target groups for your Amazon Web Services account. * @throws InvalidConfigurationRequestException * The requested configuration is not valid. * @throws TooManyTagsException * You've reached the limit on the number of tags per load balancer. * @sample AmazonElasticLoadBalancing.CreateTargetGroup * @see AWS API Documentation */ @Override public CreateTargetGroupResult createTargetGroup(CreateTargetGroupRequest request) { request = beforeClientExecution(request); return executeCreateTargetGroup(request); } @SdkInternalApi final CreateTargetGroupResult executeCreateTargetGroup(CreateTargetGroupRequest createTargetGroupRequest) { ExecutionContext executionContext = createExecutionContext(createTargetGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Deletes the specified listener. *
** Alternatively, your listener is deleted when you delete the load balancer to which it is attached. *
* * @param deleteListenerRequest * @return Result of the DeleteListener operation returned by the service. * @throws ListenerNotFoundException * The specified listener does not exist. * @throws ResourceInUseException * A specified resource is in use. * @sample AmazonElasticLoadBalancing.DeleteListener * @see AWS API Documentation */ @Override public DeleteListenerResult deleteListener(DeleteListenerRequest request) { request = beforeClientExecution(request); return executeDeleteListener(request); } @SdkInternalApi final DeleteListenerResult executeDeleteListener(DeleteListenerRequest deleteListenerRequest) { ExecutionContext executionContext = createExecutionContext(deleteListenerRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Deletes the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. Deleting a load * balancer also deletes its listeners. *
** You can't delete a load balancer if deletion protection is enabled. If the load balancer does not exist or has * already been deleted, the call succeeds. *
** Deleting a load balancer does not affect its registered targets. For example, your EC2 instances continue to run * and are still registered to their target groups. If you no longer need these EC2 instances, you can stop or * terminate them. *
* * @param deleteLoadBalancerRequest * @return Result of the DeleteLoadBalancer operation returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws OperationNotPermittedException * This operation is not allowed. * @throws ResourceInUseException * A specified resource is in use. * @sample AmazonElasticLoadBalancing.DeleteLoadBalancer * @see AWS API Documentation */ @Override public DeleteLoadBalancerResult deleteLoadBalancer(DeleteLoadBalancerRequest request) { request = beforeClientExecution(request); return executeDeleteLoadBalancer(request); } @SdkInternalApi final DeleteLoadBalancerResult executeDeleteLoadBalancer(DeleteLoadBalancerRequest deleteLoadBalancerRequest) { ExecutionContext executionContext = createExecutionContext(deleteLoadBalancerRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Deletes the specified rule. *
** You can't delete the default rule. *
* * @param deleteRuleRequest * @return Result of the DeleteRule operation returned by the service. * @throws RuleNotFoundException * The specified rule does not exist. * @throws OperationNotPermittedException * This operation is not allowed. * @sample AmazonElasticLoadBalancing.DeleteRule * @see AWS API Documentation */ @Override public DeleteRuleResult deleteRule(DeleteRuleRequest request) { request = beforeClientExecution(request); return executeDeleteRule(request); } @SdkInternalApi final DeleteRuleResult executeDeleteRule(DeleteRuleRequest deleteRuleRequest) { ExecutionContext executionContext = createExecutionContext(deleteRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Deletes the specified target group. *
** You can delete a target group if it is not referenced by any actions. Deleting a target group also deletes any * associated health checks. Deleting a target group does not affect its registered targets. For example, any EC2 * instances continue to run until you stop or terminate them. *
* * @param deleteTargetGroupRequest * @return Result of the DeleteTargetGroup operation returned by the service. * @throws ResourceInUseException * A specified resource is in use. * @sample AmazonElasticLoadBalancing.DeleteTargetGroup * @see AWS API Documentation */ @Override public DeleteTargetGroupResult deleteTargetGroup(DeleteTargetGroupRequest request) { request = beforeClientExecution(request); return executeDeleteTargetGroup(request); } @SdkInternalApi final DeleteTargetGroupResult executeDeleteTargetGroup(DeleteTargetGroupRequest deleteTargetGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteTargetGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Deregisters the specified targets from the specified target group. After the targets are deregistered, they no * longer receive traffic from the load balancer. *
* * @param deregisterTargetsRequest * @return Result of the DeregisterTargets operation returned by the service. * @throws TargetGroupNotFoundException * The specified target group does not exist. * @throws InvalidTargetException * The specified target does not exist, is not in the same VPC as the target group, or has an unsupported * instance type. * @sample AmazonElasticLoadBalancing.DeregisterTargets * @see AWS API Documentation */ @Override public DeregisterTargetsResult deregisterTargets(DeregisterTargetsRequest request) { request = beforeClientExecution(request); return executeDeregisterTargets(request); } @SdkInternalApi final DeregisterTargetsResult executeDeregisterTargets(DeregisterTargetsRequest deregisterTargetsRequest) { ExecutionContext executionContext = createExecutionContext(deregisterTargetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Describes the current Elastic Load Balancing resource limits for your Amazon Web Services account. *
** For more information, see the following: *
** Describes the default certificate and the certificate list for the specified HTTPS or TLS listener. *
*
* If the default certificate is also in the certificate list, it appears twice in the results (once with
* IsDefault
set to true and once with IsDefault
set to false).
*
* For more information, see SSL certificates in the Application Load Balancers Guide or Server certificates in the Network Load Balancers Guide. *
* * @param describeListenerCertificatesRequest * @return Result of the DescribeListenerCertificates operation returned by the service. * @throws ListenerNotFoundException * The specified listener does not exist. * @sample AmazonElasticLoadBalancing.DescribeListenerCertificates * @see AWS API Documentation */ @Override public DescribeListenerCertificatesResult describeListenerCertificates(DescribeListenerCertificatesRequest request) { request = beforeClientExecution(request); return executeDescribeListenerCertificates(request); } @SdkInternalApi final DescribeListenerCertificatesResult executeDescribeListenerCertificates(DescribeListenerCertificatesRequest describeListenerCertificatesRequest) { ExecutionContext executionContext = createExecutionContext(describeListenerCertificatesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Describes the specified listeners or the listeners for the specified Application Load Balancer, Network Load * Balancer, or Gateway Load Balancer. You must specify either a load balancer or one or more listeners. *
* * @param describeListenersRequest * @return Result of the DescribeListeners operation returned by the service. * @throws ListenerNotFoundException * The specified listener does not exist. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws UnsupportedProtocolException * The specified protocol is not supported. * @sample AmazonElasticLoadBalancing.DescribeListeners * @see AWS API Documentation */ @Override public DescribeListenersResult describeListeners(DescribeListenersRequest request) { request = beforeClientExecution(request); return executeDescribeListeners(request); } @SdkInternalApi final DescribeListenersResult executeDescribeListeners(DescribeListenersRequest describeListenersRequest) { ExecutionContext executionContext = createExecutionContext(describeListenersRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Describes the attributes for the specified Application Load Balancer, Network Load Balancer, or Gateway Load * Balancer. *
** For more information, see the following: *
** Load balancer attributes in the Application Load Balancers Guide *
** Load balancer attributes in the Network Load Balancers Guide *
** Load balancer attributes in the Gateway Load Balancers Guide *
** Describes the specified load balancers or all of your load balancers. *
* * @param describeLoadBalancersRequest * @return Result of the DescribeLoadBalancers operation returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @sample AmazonElasticLoadBalancing.DescribeLoadBalancers * @see AWS API Documentation */ @Override public DescribeLoadBalancersResult describeLoadBalancers(DescribeLoadBalancersRequest request) { request = beforeClientExecution(request); return executeDescribeLoadBalancers(request); } @SdkInternalApi final DescribeLoadBalancersResult executeDescribeLoadBalancers(DescribeLoadBalancersRequest describeLoadBalancersRequest) { ExecutionContext executionContext = createExecutionContext(describeLoadBalancersRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Describes the specified rules or the rules for the specified listener. You must specify either a listener or one * or more rules. *
* * @param describeRulesRequest * @return Result of the DescribeRules operation returned by the service. * @throws ListenerNotFoundException * The specified listener does not exist. * @throws RuleNotFoundException * The specified rule does not exist. * @throws UnsupportedProtocolException * The specified protocol is not supported. * @sample AmazonElasticLoadBalancing.DescribeRules * @see AWS API Documentation */ @Override public DescribeRulesResult describeRules(DescribeRulesRequest request) { request = beforeClientExecution(request); return executeDescribeRules(request); } @SdkInternalApi final DescribeRulesResult executeDescribeRules(DescribeRulesRequest describeRulesRequest) { ExecutionContext executionContext = createExecutionContext(describeRulesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Describes the specified policies or all policies used for SSL negotiation. *
** For more information, see Security policies in the Application Load Balancers Guide or Security policies in the Network Load Balancers Guide. *
* * @param describeSSLPoliciesRequest * @return Result of the DescribeSSLPolicies operation returned by the service. * @throws SSLPolicyNotFoundException * The specified SSL policy does not exist. * @sample AmazonElasticLoadBalancing.DescribeSSLPolicies * @see AWS API Documentation */ @Override public DescribeSSLPoliciesResult describeSSLPolicies(DescribeSSLPoliciesRequest request) { request = beforeClientExecution(request); return executeDescribeSSLPolicies(request); } @SdkInternalApi final DescribeSSLPoliciesResult executeDescribeSSLPolicies(DescribeSSLPoliciesRequest describeSSLPoliciesRequest) { ExecutionContext executionContext = createExecutionContext(describeSSLPoliciesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Describes the tags for the specified Elastic Load Balancing resources. You can describe the tags for one or more * Application Load Balancers, Network Load Balancers, Gateway Load Balancers, target groups, listeners, or rules. *
* * @param describeTagsRequest * @return Result of the DescribeTags operation returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws TargetGroupNotFoundException * The specified target group does not exist. * @throws ListenerNotFoundException * The specified listener does not exist. * @throws RuleNotFoundException * The specified rule does not exist. * @sample AmazonElasticLoadBalancing.DescribeTags * @see AWS API Documentation */ @Override public DescribeTagsResult describeTags(DescribeTagsRequest request) { request = beforeClientExecution(request); return executeDescribeTags(request); } @SdkInternalApi final DescribeTagsResult executeDescribeTags(DescribeTagsRequest describeTagsRequest) { ExecutionContext executionContext = createExecutionContext(describeTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Describes the attributes for the specified target group. *
** For more information, see the following: *
** Target group attributes in the Application Load Balancers Guide *
** Target group attributes in the Network Load Balancers Guide *
** Target group attributes in the Gateway Load Balancers Guide *
** Describes the specified target groups or all of your target groups. By default, all target groups are described. * Alternatively, you can specify one of the following to filter the results: the ARN of the load balancer, the * names of one or more target groups, or the ARNs of one or more target groups. *
* * @param describeTargetGroupsRequest * @return Result of the DescribeTargetGroups operation returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws TargetGroupNotFoundException * The specified target group does not exist. * @sample AmazonElasticLoadBalancing.DescribeTargetGroups * @see AWS API Documentation */ @Override public DescribeTargetGroupsResult describeTargetGroups(DescribeTargetGroupsRequest request) { request = beforeClientExecution(request); return executeDescribeTargetGroups(request); } @SdkInternalApi final DescribeTargetGroupsResult executeDescribeTargetGroups(DescribeTargetGroupsRequest describeTargetGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeTargetGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Describes the health of the specified targets or all of your targets. *
* * @param describeTargetHealthRequest * @return Result of the DescribeTargetHealth operation returned by the service. * @throws InvalidTargetException * The specified target does not exist, is not in the same VPC as the target group, or has an unsupported * instance type. * @throws TargetGroupNotFoundException * The specified target group does not exist. * @throws HealthUnavailableException * The health of the specified targets could not be retrieved due to an internal error. * @sample AmazonElasticLoadBalancing.DescribeTargetHealth * @see AWS API Documentation */ @Override public DescribeTargetHealthResult describeTargetHealth(DescribeTargetHealthRequest request) { request = beforeClientExecution(request); return executeDescribeTargetHealth(request); } @SdkInternalApi final DescribeTargetHealthResult executeDescribeTargetHealth(DescribeTargetHealthRequest describeTargetHealthRequest) { ExecutionContext executionContext = createExecutionContext(describeTargetHealthRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Replaces the specified properties of the specified listener. Any properties that you do not specify remain * unchanged. *
** Changing the protocol from HTTPS to HTTP, or from TLS to TCP, removes the security policy and default certificate * properties. If you change the protocol from HTTP to HTTPS, or from TCP to TLS, you must add the security policy * and default certificate properties. *
** To add an item to a list, remove an item from a list, or update an item in a list, you must provide the entire * list. For example, to add an action, specify a list with the current actions plus the new action. *
* * @param modifyListenerRequest * @return Result of the ModifyListener operation returned by the service. * @throws DuplicateListenerException * A listener with the specified port already exists. * @throws TooManyListenersException * You've reached the limit on the number of listeners per load balancer. * @throws TooManyCertificatesException * You've reached the limit on the number of certificates per load balancer. * @throws ListenerNotFoundException * The specified listener does not exist. * @throws TargetGroupNotFoundException * The specified target group does not exist. * @throws TargetGroupAssociationLimitException * You've reached the limit on the number of load balancers per target group. * @throws IncompatibleProtocolsException * The specified configuration is not valid with this protocol. * @throws SSLPolicyNotFoundException * The specified SSL policy does not exist. * @throws CertificateNotFoundException * The specified certificate does not exist. * @throws InvalidConfigurationRequestException * The requested configuration is not valid. * @throws UnsupportedProtocolException * The specified protocol is not supported. * @throws TooManyRegistrationsForTargetIdException * You've reached the limit on the number of times a target can be registered with a load balancer. * @throws TooManyTargetsException * You've reached the limit on the number of targets. * @throws TooManyActionsException * You've reached the limit on the number of actions per rule. * @throws InvalidLoadBalancerActionException * The requested action is not valid. * @throws TooManyUniqueTargetGroupsPerLoadBalancerException * You've reached the limit on the number of unique target groups per load balancer across all listeners. If * a target group is used by multiple actions for a load balancer, it is counted as only one use. * @throws ALPNPolicyNotSupportedException * The specified ALPN policy is not supported. * @sample AmazonElasticLoadBalancing.ModifyListener * @see AWS API Documentation */ @Override public ModifyListenerResult modifyListener(ModifyListenerRequest request) { request = beforeClientExecution(request); return executeModifyListener(request); } @SdkInternalApi final ModifyListenerResult executeModifyListener(ModifyListenerRequest modifyListenerRequest) { ExecutionContext executionContext = createExecutionContext(modifyListenerRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Modifies the specified attributes of the specified Application Load Balancer, Network Load Balancer, or Gateway * Load Balancer. *
** If any of the specified attributes can't be modified as requested, the call fails. Any existing attributes that * you do not modify retain their current values. *
* * @param modifyLoadBalancerAttributesRequest * @return Result of the ModifyLoadBalancerAttributes operation returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws InvalidConfigurationRequestException * The requested configuration is not valid. * @sample AmazonElasticLoadBalancing.ModifyLoadBalancerAttributes * @see AWS API Documentation */ @Override public ModifyLoadBalancerAttributesResult modifyLoadBalancerAttributes(ModifyLoadBalancerAttributesRequest request) { request = beforeClientExecution(request); return executeModifyLoadBalancerAttributes(request); } @SdkInternalApi final ModifyLoadBalancerAttributesResult executeModifyLoadBalancerAttributes(ModifyLoadBalancerAttributesRequest modifyLoadBalancerAttributesRequest) { ExecutionContext executionContext = createExecutionContext(modifyLoadBalancerAttributesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Replaces the specified properties of the specified rule. Any properties that you do not specify are unchanged. *
** To add an item to a list, remove an item from a list, or update an item in a list, you must provide the entire * list. For example, to add an action, specify a list with the current actions plus the new action. *
* * @param modifyRuleRequest * @return Result of the ModifyRule operation returned by the service. * @throws TargetGroupAssociationLimitException * You've reached the limit on the number of load balancers per target group. * @throws IncompatibleProtocolsException * The specified configuration is not valid with this protocol. * @throws RuleNotFoundException * The specified rule does not exist. * @throws OperationNotPermittedException * This operation is not allowed. * @throws TooManyRegistrationsForTargetIdException * You've reached the limit on the number of times a target can be registered with a load balancer. * @throws TooManyTargetsException * You've reached the limit on the number of targets. * @throws TargetGroupNotFoundException * The specified target group does not exist. * @throws UnsupportedProtocolException * The specified protocol is not supported. * @throws TooManyActionsException * You've reached the limit on the number of actions per rule. * @throws InvalidLoadBalancerActionException * The requested action is not valid. * @throws TooManyUniqueTargetGroupsPerLoadBalancerException * You've reached the limit on the number of unique target groups per load balancer across all listeners. If * a target group is used by multiple actions for a load balancer, it is counted as only one use. * @sample AmazonElasticLoadBalancing.ModifyRule * @see AWS API Documentation */ @Override public ModifyRuleResult modifyRule(ModifyRuleRequest request) { request = beforeClientExecution(request); return executeModifyRule(request); } @SdkInternalApi final ModifyRuleResult executeModifyRule(ModifyRuleRequest modifyRuleRequest) { ExecutionContext executionContext = createExecutionContext(modifyRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Modifies the health checks used when evaluating the health state of the targets in the specified target group. *
* * @param modifyTargetGroupRequest * @return Result of the ModifyTargetGroup operation returned by the service. * @throws TargetGroupNotFoundException * The specified target group does not exist. * @throws InvalidConfigurationRequestException * The requested configuration is not valid. * @sample AmazonElasticLoadBalancing.ModifyTargetGroup * @see AWS API Documentation */ @Override public ModifyTargetGroupResult modifyTargetGroup(ModifyTargetGroupRequest request) { request = beforeClientExecution(request); return executeModifyTargetGroup(request); } @SdkInternalApi final ModifyTargetGroupResult executeModifyTargetGroup(ModifyTargetGroupRequest modifyTargetGroupRequest) { ExecutionContext executionContext = createExecutionContext(modifyTargetGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Modifies the specified attributes of the specified target group. *
* * @param modifyTargetGroupAttributesRequest * @return Result of the ModifyTargetGroupAttributes operation returned by the service. * @throws TargetGroupNotFoundException * The specified target group does not exist. * @throws InvalidConfigurationRequestException * The requested configuration is not valid. * @sample AmazonElasticLoadBalancing.ModifyTargetGroupAttributes * @see AWS API Documentation */ @Override public ModifyTargetGroupAttributesResult modifyTargetGroupAttributes(ModifyTargetGroupAttributesRequest request) { request = beforeClientExecution(request); return executeModifyTargetGroupAttributes(request); } @SdkInternalApi final ModifyTargetGroupAttributesResult executeModifyTargetGroupAttributes(ModifyTargetGroupAttributesRequest modifyTargetGroupAttributesRequest) { ExecutionContext executionContext = createExecutionContext(modifyTargetGroupAttributesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Registers the specified targets with the specified target group. *
*
* If the target is an EC2 instance, it must be in the running
state when you register it.
*
* By default, the load balancer routes requests to registered targets using the protocol and port for the target * group. Alternatively, you can override the port for a target when you register it. You can register each EC2 * instance or IP address with the same target group multiple times using different ports. *
** With a Network Load Balancer, you cannot register instances by instance ID if they have the following instance * types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can register instances of * these types by IP address. *
* * @param registerTargetsRequest * @return Result of the RegisterTargets operation returned by the service. * @throws TargetGroupNotFoundException * The specified target group does not exist. * @throws TooManyTargetsException * You've reached the limit on the number of targets. * @throws InvalidTargetException * The specified target does not exist, is not in the same VPC as the target group, or has an unsupported * instance type. * @throws TooManyRegistrationsForTargetIdException * You've reached the limit on the number of times a target can be registered with a load balancer. * @sample AmazonElasticLoadBalancing.RegisterTargets * @see AWS API Documentation */ @Override public RegisterTargetsResult registerTargets(RegisterTargetsRequest request) { request = beforeClientExecution(request); return executeRegisterTargets(request); } @SdkInternalApi final RegisterTargetsResult executeRegisterTargets(RegisterTargetsRequest registerTargetsRequest) { ExecutionContext executionContext = createExecutionContext(registerTargetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Removes the specified certificate from the certificate list for the specified HTTPS or TLS listener. *
* * @param removeListenerCertificatesRequest * @return Result of the RemoveListenerCertificates operation returned by the service. * @throws ListenerNotFoundException * The specified listener does not exist. * @throws OperationNotPermittedException * This operation is not allowed. * @sample AmazonElasticLoadBalancing.RemoveListenerCertificates * @see AWS API Documentation */ @Override public RemoveListenerCertificatesResult removeListenerCertificates(RemoveListenerCertificatesRequest request) { request = beforeClientExecution(request); return executeRemoveListenerCertificates(request); } @SdkInternalApi final RemoveListenerCertificatesResult executeRemoveListenerCertificates(RemoveListenerCertificatesRequest removeListenerCertificatesRequest) { ExecutionContext executionContext = createExecutionContext(removeListenerCertificatesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Removes the specified tags from the specified Elastic Load Balancing resources. You can remove the tags for one * or more Application Load Balancers, Network Load Balancers, Gateway Load Balancers, target groups, listeners, or * rules. *
* * @param removeTagsRequest * @return Result of the RemoveTags operation returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws TargetGroupNotFoundException * The specified target group does not exist. * @throws ListenerNotFoundException * The specified listener does not exist. * @throws RuleNotFoundException * The specified rule does not exist. * @throws TooManyTagsException * You've reached the limit on the number of tags per load balancer. * @sample AmazonElasticLoadBalancing.RemoveTags * @see AWS API Documentation */ @Override public RemoveTagsResult removeTags(RemoveTagsRequest request) { request = beforeClientExecution(request); return executeRemoveTags(request); } @SdkInternalApi final RemoveTagsResult executeRemoveTags(RemoveTagsRequest removeTagsRequest) { ExecutionContext executionContext = createExecutionContext(removeTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Sets the type of IP addresses used by the subnets of the specified load balancer. *
* * @param setIpAddressTypeRequest * @return Result of the SetIpAddressType operation returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws InvalidConfigurationRequestException * The requested configuration is not valid. * @throws InvalidSubnetException * The specified subnet is out of available addresses. * @sample AmazonElasticLoadBalancing.SetIpAddressType * @see AWS API Documentation */ @Override public SetIpAddressTypeResult setIpAddressType(SetIpAddressTypeRequest request) { request = beforeClientExecution(request); return executeSetIpAddressType(request); } @SdkInternalApi final SetIpAddressTypeResult executeSetIpAddressType(SetIpAddressTypeRequest setIpAddressTypeRequest) { ExecutionContext executionContext = createExecutionContext(setIpAddressTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Sets the priorities of the specified rules. *
** You can reorder the rules as long as there are no priority conflicts in the new order. Any existing rules that * you do not specify retain their current priority. *
* * @param setRulePrioritiesRequest * @return Result of the SetRulePriorities operation returned by the service. * @throws RuleNotFoundException * The specified rule does not exist. * @throws PriorityInUseException * The specified priority is in use. * @throws OperationNotPermittedException * This operation is not allowed. * @sample AmazonElasticLoadBalancing.SetRulePriorities * @see AWS API Documentation */ @Override public SetRulePrioritiesResult setRulePriorities(SetRulePrioritiesRequest request) { request = beforeClientExecution(request); return executeSetRulePriorities(request); } @SdkInternalApi final SetRulePrioritiesResult executeSetRulePriorities(SetRulePrioritiesRequest setRulePrioritiesRequest) { ExecutionContext executionContext = createExecutionContext(setRulePrioritiesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Associates the specified security groups with the specified Application Load Balancer. The specified security * groups override the previously associated security groups. *
** You can't specify a security group for a Network Load Balancer or Gateway Load Balancer. *
* * @param setSecurityGroupsRequest * @return Result of the SetSecurityGroups operation returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws InvalidConfigurationRequestException * The requested configuration is not valid. * @throws InvalidSecurityGroupException * The specified security group does not exist. * @sample AmazonElasticLoadBalancing.SetSecurityGroups * @see AWS API Documentation */ @Override public SetSecurityGroupsResult setSecurityGroups(SetSecurityGroupsRequest request) { request = beforeClientExecution(request); return executeSetSecurityGroups(request); } @SdkInternalApi final SetSecurityGroupsResult executeSetSecurityGroups(SetSecurityGroupsRequest setSecurityGroupsRequest) { ExecutionContext executionContext = createExecutionContext(setSecurityGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Enables the Availability Zones for the specified public subnets for the specified Application Load Balancer or * Network Load Balancer. The specified subnets replace the previously enabled subnets. *
** When you specify subnets for a Network Load Balancer, you must include all subnets that were enabled previously, * with their existing configurations, plus any additional subnets. *
* * @param setSubnetsRequest * @return Result of the SetSubnets operation returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws InvalidConfigurationRequestException * The requested configuration is not valid. * @throws SubnetNotFoundException * The specified subnet does not exist. * @throws InvalidSubnetException * The specified subnet is out of available addresses. * @throws AllocationIdNotFoundException * The specified allocation ID does not exist. * @throws AvailabilityZoneNotSupportedException * The specified Availability Zone is not supported. * @sample AmazonElasticLoadBalancing.SetSubnets * @see AWS API Documentation */ @Override public SetSubnetsResult setSubnets(SetSubnetsRequest request) { request = beforeClientExecution(request); return executeSetSubnets(request); } @SdkInternalApi final SetSubnetsResult executeSetSubnets(SetSubnetsRequest setSubnetsRequest) { ExecutionContext executionContext = createExecutionContext(setSubnetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request
* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic
* information for an executed request, you should use this method to retrieve it as soon as possible after
* executing the request.
*
* @param request
* The originally executed request
*
* @return The response metadata for the specified request, or null if none is available.
*/
public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) {
return client.getResponseMetadataForRequest(request);
}
/**
* Normal invoke with authentication. Credentials are required and may be overriden at the request level.
**/
private