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

com.amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancingClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Elastic Load Balancing module holds the client classes that are used for communicating with Elastic Load Balancing Service (API Version 2012-06-01)

There is a newer version: 1.12.780
Show newest version
/*
 * Copyright 2010-2016 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.elasticloadbalancing;

import org.w3c.dom.*;

import java.net.*;
import java.util.*;
import java.util.Map.Entry;

import org.apache.commons.logging.*;

import com.amazonaws.*;
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.AmazonServiceException;

import com.amazonaws.services.elasticloadbalancing.model.*;
import com.amazonaws.services.elasticloadbalancing.model.transform.*;

/**
 * Client for accessing Elastic Load Balancing. All service calls made using
 * this client are blocking, and will not return until the service call
 * completes.
 * 

* Elastic Load Balancing *

* Elastic Load Balancing distributes incoming traffic across your EC2 * instances. *

*

* For information about the features of Elastic Load Balancing, see What Is Elastic Load Balancing? in the Elastic Load Balancing * Developer Guide. *

*

* For information about the AWS regions supported by Elastic Load Balancing, * see Regions and Endpoints - Elastic Load Balancing in the Amazon Web * Services General Reference. *

*

* All Elastic Load Balancing operations are idempotent, which means that * they complete at most one time. If you repeat an operation, it succeeds with * a 200 OK response code. *

*/ @ThreadSafe 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"; /** * Client configuration factory providing ClientConfigurations tailored to * this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); /** * List of exception unmarshallers for all modeled exceptions */ protected final List> exceptionUnmarshallers = new ArrayList>(); /** * Constructs a new client to invoke service methods on Elastic Load * Balancing. A credentials provider chain will be used that searches for * credentials in this order: *
    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
* *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @see DefaultAWSCredentialsProviderChain */ public AmazonElasticLoadBalancingClient() { this(new DefaultAWSCredentialsProviderChain(), configFactory .getConfig()); } /** * Constructs a new client to invoke service methods on Elastic Load * Balancing. A credentials provider chain will be used that searches for * credentials in this order: *

    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
* *

* 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 (ex: proxy settings, retry * counts, etc.). * * @see DefaultAWSCredentialsProviderChain */ public AmazonElasticLoadBalancingClient( ClientConfiguration clientConfiguration) { this(new DefaultAWSCredentialsProviderChain(), clientConfiguration); } /** * Constructs a new client to invoke service methods on Elastic Load * Balancing 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. */ public AmazonElasticLoadBalancingClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Elastic Load * Balancing 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 (ex: proxy settings, retry * counts, etc.). */ public AmazonElasticLoadBalancingClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider( awsCredentials); init(); } /** * Constructs a new client to invoke service methods on Elastic Load * Balancing 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. */ public AmazonElasticLoadBalancingClient( AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Elastic Load * Balancing 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 (ex: proxy settings, retry * counts, etc.). */ public AmazonElasticLoadBalancingClient( AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on Elastic Load * Balancing 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 (ex: proxy settings, retry * counts, etc.). * @param requestMetricCollector * optional request metric collector */ public AmazonElasticLoadBalancingClient( AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; init(); } /** * Constructs a new client to invoke service methods on Elastic Load * Balancing 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) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); init(); } private void init() { exceptionUnmarshallers .add(new LoadBalancerAttributeNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new LoadBalancerNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new TooManyLoadBalancersExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidConfigurationRequestExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidSecurityGroupExceptionUnmarshaller()); exceptionUnmarshallers .add(new DuplicateLoadBalancerNameExceptionUnmarshaller()); exceptionUnmarshallers.add(new PolicyNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new CertificateNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new DuplicateTagKeysExceptionUnmarshaller()); exceptionUnmarshallers.add(new TooManyTagsExceptionUnmarshaller()); exceptionUnmarshallers.add(new ListenerNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new TooManyPoliciesExceptionUnmarshaller()); exceptionUnmarshallers .add(new DuplicatePolicyNameExceptionUnmarshaller()); exceptionUnmarshallers.add(new SubnetNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new DuplicateListenerExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidSchemeExceptionUnmarshaller()); exceptionUnmarshallers .add(new PolicyTypeNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidSubnetExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidInstanceExceptionUnmarshaller()); exceptionUnmarshallers .add(new StandardErrorUnmarshaller( com.amazonaws.services.elasticloadbalancing.model.AmazonElasticLoadBalancingException.class)); setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly this.setEndpoint("elasticloadbalancing.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s .addAll(chainFactory .newRequestHandlerChain("/com/amazonaws/services/elasticloadbalancing/request.handlers")); requestHandler2s .addAll(chainFactory .newRequestHandler2Chain("/com/amazonaws/services/elasticloadbalancing/request.handler2s")); } /** *

* Adds the specified tags to the specified load balancer. Each load * balancer can have a maximum of 10 tags. *

*

* Each tag consists of a key and an optional value. If a tag with the same * key is already associated with the load balancer, AddTags * updates its value. *

*

* For more information, see Tag Your Load Balancer in the Elastic Load Balancing Developer * Guide. *

* * @param addTagsRequest * @return Result of the AddTags operation returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws TooManyTagsException * The quota for the number of tags that can be assigned to a load * balancer has been reached. * @throws DuplicateTagKeysException * A tag key was specified more than once. * @sample AmazonElasticLoadBalancing.AddTags */ @Override public AddTagsResult addTags(AddTagsRequest addTagsRequest) { ExecutionContext executionContext = createExecutionContext(addTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AddTagsRequestMarshaller().marshall(super .beforeMarshalling(addTagsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new AddTagsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Associates one or more security groups with your load balancer in a * virtual private cloud (VPC). The specified security groups override the * previously associated security groups. *

*

* For more information, see Security Groups for Load Balancers in a VPC in the Elastic Load * Balancing Developer Guide. *

* * @param applySecurityGroupsToLoadBalancerRequest * @return Result of the ApplySecurityGroupsToLoadBalancer operation * returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @throws InvalidSecurityGroupException * One or more of the specified security groups do not exist. * @sample AmazonElasticLoadBalancing.ApplySecurityGroupsToLoadBalancer */ @Override public ApplySecurityGroupsToLoadBalancerResult applySecurityGroupsToLoadBalancer( ApplySecurityGroupsToLoadBalancerRequest applySecurityGroupsToLoadBalancerRequest) { ExecutionContext executionContext = createExecutionContext(applySecurityGroupsToLoadBalancerRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ApplySecurityGroupsToLoadBalancerRequestMarshaller() .marshall(super .beforeMarshalling(applySecurityGroupsToLoadBalancerRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ApplySecurityGroupsToLoadBalancerResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds one or more subnets to the set of configured subnets for the * specified load balancer. *

*

* The load balancer evenly distributes requests across all registered * subnets. For more information, see Add or Remove Subnets for Your Load Balancer in a VPC in the * Elastic Load Balancing Developer Guide. *

* * @param attachLoadBalancerToSubnetsRequest * @return Result of the AttachLoadBalancerToSubnets operation returned by * the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @throws SubnetNotFoundException * One or more of the specified subnets do not exist. * @throws InvalidSubnetException * The specified VPC has no associated Internet gateway. * @sample AmazonElasticLoadBalancing.AttachLoadBalancerToSubnets */ @Override public AttachLoadBalancerToSubnetsResult attachLoadBalancerToSubnets( AttachLoadBalancerToSubnetsRequest attachLoadBalancerToSubnetsRequest) { ExecutionContext executionContext = createExecutionContext(attachLoadBalancerToSubnetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AttachLoadBalancerToSubnetsRequestMarshaller() .marshall(super .beforeMarshalling(attachLoadBalancerToSubnetsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new AttachLoadBalancerToSubnetsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Specifies the health check settings to use when evaluating the health * state of your back-end instances. *

*

* For more information, see Configure Health Checks in the Elastic Load Balancing Developer * Guide. *

* * @param configureHealthCheckRequest * @return Result of the ConfigureHealthCheck operation returned by the * service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @sample AmazonElasticLoadBalancing.ConfigureHealthCheck */ @Override public ConfigureHealthCheckResult configureHealthCheck( ConfigureHealthCheckRequest configureHealthCheckRequest) { ExecutionContext executionContext = createExecutionContext(configureHealthCheckRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ConfigureHealthCheckRequestMarshaller() .marshall(super .beforeMarshalling(configureHealthCheckRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ConfigureHealthCheckResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Generates a stickiness policy with sticky session lifetimes that follow * that of an application-generated cookie. This policy can be associated * only with HTTP/HTTPS listeners. *

*

* This policy is similar to the policy created by * CreateLBCookieStickinessPolicy, except that the lifetime of the * special Elastic Load Balancing cookie, AWSELB, follows the * lifetime of the application-generated cookie specified in the policy * configuration. The load balancer only inserts a new stickiness cookie * when the application response includes a new application cookie. *

*

* If the application cookie is explicitly removed or expires, the session * stops being sticky until a new application cookie is issued. *

*

* For more information, see Application-Controlled Session Stickiness in the Elastic Load * Balancing Developer Guide. *

* * @param createAppCookieStickinessPolicyRequest * @return Result of the CreateAppCookieStickinessPolicy operation returned * by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws DuplicatePolicyNameException * A policy with the specified name already exists for this load * balancer. * @throws TooManyPoliciesException * The quota for the number of policies for this load balancer has * been reached. * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @sample AmazonElasticLoadBalancing.CreateAppCookieStickinessPolicy */ @Override public CreateAppCookieStickinessPolicyResult createAppCookieStickinessPolicy( CreateAppCookieStickinessPolicyRequest createAppCookieStickinessPolicyRequest) { ExecutionContext executionContext = createExecutionContext(createAppCookieStickinessPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateAppCookieStickinessPolicyRequestMarshaller() .marshall(super .beforeMarshalling(createAppCookieStickinessPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CreateAppCookieStickinessPolicyResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Generates a stickiness policy with sticky session lifetimes controlled by * the lifetime of the browser (user-agent) or a specified expiration * period. This policy can be associated only with HTTP/HTTPS listeners. *

*

* When a load balancer implements this policy, the load balancer uses a * special cookie to track the back-end server instance for each request. * When the load balancer receives a request, it first checks to see if this * cookie is present in the request. If so, the load balancer sends the * request to the application server specified in the cookie. If not, the * load balancer sends the request to a server that is chosen based on the * existing load-balancing algorithm. *

*

* A cookie is inserted into the response for binding subsequent requests * from the same user to that server. The validity of the cookie is based on * the cookie expiration time, which is specified in the policy * configuration. *

*

* For more information, see Duration-Based Session Stickiness in the Elastic Load Balancing * Developer Guide. *

* * @param createLBCookieStickinessPolicyRequest * @return Result of the CreateLBCookieStickinessPolicy operation returned * by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws DuplicatePolicyNameException * A policy with the specified name already exists for this load * balancer. * @throws TooManyPoliciesException * The quota for the number of policies for this load balancer has * been reached. * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @sample AmazonElasticLoadBalancing.CreateLBCookieStickinessPolicy */ @Override public CreateLBCookieStickinessPolicyResult createLBCookieStickinessPolicy( CreateLBCookieStickinessPolicyRequest createLBCookieStickinessPolicyRequest) { ExecutionContext executionContext = createExecutionContext(createLBCookieStickinessPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateLBCookieStickinessPolicyRequestMarshaller() .marshall(super .beforeMarshalling(createLBCookieStickinessPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CreateLBCookieStickinessPolicyResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a load balancer. *

*

* If the call completes successfully, a new load balancer is created with a * unique Domain Name Service (DNS) name. The load balancer receives * incoming traffic and routes it to the registered instances. For more * information, see How Elastic Load Balancing Works in the Elastic Load Balancing * Developer Guide. *

*

* You can create up to 20 load balancers per region per account. You can * request an increase for the number of load balancers for your account. * For more information, see Elastic Load Balancing Limits in the Elastic Load Balancing * Developer Guide. *

* * @param createLoadBalancerRequest * @return Result of the CreateLoadBalancer operation returned by the * service. * @throws DuplicateLoadBalancerNameException * The specified load balancer name already exists for this account. * @throws TooManyLoadBalancersException * The quota for the number of load balancers has been reached. * @throws CertificateNotFoundException * The specified SSL ID does not refer to a valid SSL certificate in * AWS Identity and Access Management (IAM). * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @throws SubnetNotFoundException * One or more of the specified subnets do not exist. * @throws InvalidSubnetException * The specified VPC has no associated Internet gateway. * @throws InvalidSecurityGroupException * One or more of the specified security groups do not exist. * @throws InvalidSchemeException * The specified value for the schema is not valid. You can only * specify a scheme for load balancers in a VPC. * @throws TooManyTagsException * The quota for the number of tags that can be assigned to a load * balancer has been reached. * @throws DuplicateTagKeysException * A tag key was specified more than once. * @sample AmazonElasticLoadBalancing.CreateLoadBalancer */ @Override public CreateLoadBalancerResult createLoadBalancer( CreateLoadBalancerRequest createLoadBalancerRequest) { ExecutionContext executionContext = createExecutionContext(createLoadBalancerRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateLoadBalancerRequestMarshaller() .marshall(super .beforeMarshalling(createLoadBalancerRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CreateLoadBalancerResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates one or more listeners for the specified load balancer. If a * listener with the specified port does not already exist, it is created; * otherwise, the properties of the new listener must match the properties * of the existing listener. *

*

* For more information, see Add a Listener to Your Load Balancer in the Elastic Load * Balancing Developer Guide. *

* * @param createLoadBalancerListenersRequest * @return Result of the CreateLoadBalancerListeners operation returned by * the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws DuplicateListenerException * A listener already exists for the specified * LoadBalancerName and LoadBalancerPort, * but with a different InstancePort, * Protocol, or SSLCertificateId. * @throws CertificateNotFoundException * The specified SSL ID does not refer to a valid SSL certificate in * AWS Identity and Access Management (IAM). * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @sample AmazonElasticLoadBalancing.CreateLoadBalancerListeners */ @Override public CreateLoadBalancerListenersResult createLoadBalancerListeners( CreateLoadBalancerListenersRequest createLoadBalancerListenersRequest) { ExecutionContext executionContext = createExecutionContext(createLoadBalancerListenersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateLoadBalancerListenersRequestMarshaller() .marshall(super .beforeMarshalling(createLoadBalancerListenersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CreateLoadBalancerListenersResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a policy with the specified attributes for the specified load * balancer. *

*

* Policies are settings that are saved for your load balancer and that can * be applied to the front-end listener or the back-end application server, * depending on the policy type. *

* * @param createLoadBalancerPolicyRequest * @return Result of the CreateLoadBalancerPolicy operation returned by the * service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws PolicyTypeNotFoundException * One or more of the specified policy types do not exist. * @throws DuplicatePolicyNameException * A policy with the specified name already exists for this load * balancer. * @throws TooManyPoliciesException * The quota for the number of policies for this load balancer has * been reached. * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @sample AmazonElasticLoadBalancing.CreateLoadBalancerPolicy */ @Override public CreateLoadBalancerPolicyResult createLoadBalancerPolicy( CreateLoadBalancerPolicyRequest createLoadBalancerPolicyRequest) { ExecutionContext executionContext = createExecutionContext(createLoadBalancerPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateLoadBalancerPolicyRequestMarshaller() .marshall(super .beforeMarshalling(createLoadBalancerPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CreateLoadBalancerPolicyResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified load balancer. *

*

* If you are attempting to recreate a load balancer, you must reconfigure * all settings. The DNS name associated with a deleted load balancer are no * longer usable. The name and associated DNS record of the deleted load * balancer no longer exist and traffic sent to any of its IP addresses is * no longer delivered to back-end instances. *

*

* If the load balancer does not exist or has already been deleted, the call * to DeleteLoadBalancer still succeeds. *

* * @param deleteLoadBalancerRequest * @return Result of the DeleteLoadBalancer operation returned by the * service. * @sample AmazonElasticLoadBalancing.DeleteLoadBalancer */ @Override public DeleteLoadBalancerResult deleteLoadBalancer( DeleteLoadBalancerRequest deleteLoadBalancerRequest) { ExecutionContext executionContext = createExecutionContext(deleteLoadBalancerRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteLoadBalancerRequestMarshaller() .marshall(super .beforeMarshalling(deleteLoadBalancerRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteLoadBalancerResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified listeners from the specified load balancer. *

* * @param deleteLoadBalancerListenersRequest * @return Result of the DeleteLoadBalancerListeners operation returned by * the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @sample AmazonElasticLoadBalancing.DeleteLoadBalancerListeners */ @Override public DeleteLoadBalancerListenersResult deleteLoadBalancerListeners( DeleteLoadBalancerListenersRequest deleteLoadBalancerListenersRequest) { ExecutionContext executionContext = createExecutionContext(deleteLoadBalancerListenersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteLoadBalancerListenersRequestMarshaller() .marshall(super .beforeMarshalling(deleteLoadBalancerListenersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteLoadBalancerListenersResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified policy from the specified load balancer. This * policy must not be enabled for any listeners. *

* * @param deleteLoadBalancerPolicyRequest * = * @return Result of the DeleteLoadBalancerPolicy operation returned by the * service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @sample AmazonElasticLoadBalancing.DeleteLoadBalancerPolicy */ @Override public DeleteLoadBalancerPolicyResult deleteLoadBalancerPolicy( DeleteLoadBalancerPolicyRequest deleteLoadBalancerPolicyRequest) { ExecutionContext executionContext = createExecutionContext(deleteLoadBalancerPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteLoadBalancerPolicyRequestMarshaller() .marshall(super .beforeMarshalling(deleteLoadBalancerPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteLoadBalancerPolicyResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deregisters the specified instances from the specified load balancer. * After the instance is deregistered, it no longer receives traffic from * the load balancer. *

*

* You can use DescribeLoadBalancers to verify that the instance is * deregistered from the load balancer. *

*

* For more information, see Deregister and Register Amazon EC2 Instances in the Elastic Load * Balancing Developer Guide. *

* * @param deregisterInstancesFromLoadBalancerRequest * @return Result of the DeregisterInstancesFromLoadBalancer operation * returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws InvalidInstanceException * The specified endpoint is not valid. * @sample AmazonElasticLoadBalancing.DeregisterInstancesFromLoadBalancer */ @Override public DeregisterInstancesFromLoadBalancerResult deregisterInstancesFromLoadBalancer( DeregisterInstancesFromLoadBalancerRequest deregisterInstancesFromLoadBalancerRequest) { ExecutionContext executionContext = createExecutionContext(deregisterInstancesFromLoadBalancerRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeregisterInstancesFromLoadBalancerRequestMarshaller() .marshall(super .beforeMarshalling(deregisterInstancesFromLoadBalancerRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeregisterInstancesFromLoadBalancerResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes the state of the specified instances with respect to the * specified load balancer. If no instances are specified, the call * describes the state of all instances that are currently registered with * the load balancer. If instances are specified, their state is returned * even if they are no longer registered with the load balancer. The state * of terminated instances is not returned. *

* * @param describeInstanceHealthRequest * @return Result of the DescribeInstanceHealth operation returned by the * service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws InvalidInstanceException * The specified endpoint is not valid. * @sample AmazonElasticLoadBalancing.DescribeInstanceHealth */ @Override public DescribeInstanceHealthResult describeInstanceHealth( DescribeInstanceHealthRequest describeInstanceHealthRequest) { ExecutionContext executionContext = createExecutionContext(describeInstanceHealthRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeInstanceHealthRequestMarshaller() .marshall(super .beforeMarshalling(describeInstanceHealthRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeInstanceHealthResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes the attributes for the specified load balancer. *

* * @param describeLoadBalancerAttributesRequest * @return Result of the DescribeLoadBalancerAttributes operation returned * by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws LoadBalancerAttributeNotFoundException * The specified load balancer attribute does not exist. * @sample AmazonElasticLoadBalancing.DescribeLoadBalancerAttributes */ @Override public DescribeLoadBalancerAttributesResult describeLoadBalancerAttributes( DescribeLoadBalancerAttributesRequest describeLoadBalancerAttributesRequest) { ExecutionContext executionContext = createExecutionContext(describeLoadBalancerAttributesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeLoadBalancerAttributesRequestMarshaller() .marshall(super .beforeMarshalling(describeLoadBalancerAttributesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeLoadBalancerAttributesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes the specified policies. *

*

* If you specify a load balancer name, the action returns the descriptions * of all policies created for the load balancer. If you specify a policy * name associated with your load balancer, the action returns the * description of that policy. If you don't specify a load balancer name, * the action returns descriptions of the specified sample policies, or * descriptions of all sample policies. The names of the sample policies * have the ELBSample- prefix. *

* * @param describeLoadBalancerPoliciesRequest * @return Result of the DescribeLoadBalancerPolicies operation returned by * the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws PolicyNotFoundException * One or more of the specified policies do not exist. * @sample AmazonElasticLoadBalancing.DescribeLoadBalancerPolicies */ @Override public DescribeLoadBalancerPoliciesResult describeLoadBalancerPolicies( DescribeLoadBalancerPoliciesRequest describeLoadBalancerPoliciesRequest) { ExecutionContext executionContext = createExecutionContext(describeLoadBalancerPoliciesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeLoadBalancerPoliciesRequestMarshaller() .marshall(super .beforeMarshalling(describeLoadBalancerPoliciesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeLoadBalancerPoliciesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeLoadBalancerPoliciesResult describeLoadBalancerPolicies() { return describeLoadBalancerPolicies(new DescribeLoadBalancerPoliciesRequest()); } /** *

* Describes the specified load balancer policy types. *

*

* You can use these policy types with CreateLoadBalancerPolicy to * create policy configurations for a load balancer. *

* * @param describeLoadBalancerPolicyTypesRequest * @return Result of the DescribeLoadBalancerPolicyTypes operation returned * by the service. * @throws PolicyTypeNotFoundException * One or more of the specified policy types do not exist. * @sample AmazonElasticLoadBalancing.DescribeLoadBalancerPolicyTypes */ @Override public DescribeLoadBalancerPolicyTypesResult describeLoadBalancerPolicyTypes( DescribeLoadBalancerPolicyTypesRequest describeLoadBalancerPolicyTypesRequest) { ExecutionContext executionContext = createExecutionContext(describeLoadBalancerPolicyTypesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeLoadBalancerPolicyTypesRequestMarshaller() .marshall(super .beforeMarshalling(describeLoadBalancerPolicyTypesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeLoadBalancerPolicyTypesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeLoadBalancerPolicyTypesResult describeLoadBalancerPolicyTypes() { return describeLoadBalancerPolicyTypes(new DescribeLoadBalancerPolicyTypesRequest()); } /** *

* Describes the specified the load balancers. If no load balancers are * specified, the call describes 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 */ @Override public DescribeLoadBalancersResult describeLoadBalancers( DescribeLoadBalancersRequest describeLoadBalancersRequest) { ExecutionContext executionContext = createExecutionContext(describeLoadBalancersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeLoadBalancersRequestMarshaller() .marshall(super .beforeMarshalling(describeLoadBalancersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeLoadBalancersResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeLoadBalancersResult describeLoadBalancers() { return describeLoadBalancers(new DescribeLoadBalancersRequest()); } /** *

* Describes the tags associated with the specified load balancers. *

* * @param describeTagsRequest * @return Result of the DescribeTags operation returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @sample AmazonElasticLoadBalancing.DescribeTags */ @Override public DescribeTagsResult describeTags( DescribeTagsRequest describeTagsRequest) { ExecutionContext executionContext = createExecutionContext(describeTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeTagsRequestMarshaller().marshall(super .beforeMarshalling(describeTagsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeTagsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes the specified subnets from the set of configured subnets for the * load balancer. *

*

* After a subnet is removed, all EC2 instances registered with the load * balancer in the removed subnet go into the OutOfService * state. Then, the load balancer balances the traffic among the remaining * routable subnets. *

* * @param detachLoadBalancerFromSubnetsRequest * @return Result of the DetachLoadBalancerFromSubnets operation returned by * the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @sample AmazonElasticLoadBalancing.DetachLoadBalancerFromSubnets */ @Override public DetachLoadBalancerFromSubnetsResult detachLoadBalancerFromSubnets( DetachLoadBalancerFromSubnetsRequest detachLoadBalancerFromSubnetsRequest) { ExecutionContext executionContext = createExecutionContext(detachLoadBalancerFromSubnetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DetachLoadBalancerFromSubnetsRequestMarshaller() .marshall(super .beforeMarshalling(detachLoadBalancerFromSubnetsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DetachLoadBalancerFromSubnetsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes the specified Availability Zones from the set of Availability * Zones for the specified load balancer. *

*

* There must be at least one Availability Zone registered with a load * balancer at all times. After an Availability Zone is removed, all * instances registered with the load balancer that are in the removed * Availability Zone go into the OutOfService state. Then, the * load balancer attempts to equally balance the traffic among its remaining * Availability Zones. *

*

* For more information, see Disable an Availability Zone from a Load-Balanced Application in the * Elastic Load Balancing Developer Guide. *

* * @param disableAvailabilityZonesForLoadBalancerRequest * @return Result of the DisableAvailabilityZonesForLoadBalancer operation * returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @sample * AmazonElasticLoadBalancing.DisableAvailabilityZonesForLoadBalancer */ @Override public DisableAvailabilityZonesForLoadBalancerResult disableAvailabilityZonesForLoadBalancer( DisableAvailabilityZonesForLoadBalancerRequest disableAvailabilityZonesForLoadBalancerRequest) { ExecutionContext executionContext = createExecutionContext(disableAvailabilityZonesForLoadBalancerRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisableAvailabilityZonesForLoadBalancerRequestMarshaller() .marshall(super .beforeMarshalling(disableAvailabilityZonesForLoadBalancerRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DisableAvailabilityZonesForLoadBalancerResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds the specified Availability Zones to the set of Availability Zones * for the specified load balancer. *

*

* The load balancer evenly distributes requests across all its registered * Availability Zones that contain instances. *

*

* For more information, see Add Availability Zone in the Elastic Load Balancing Developer * Guide. *

* * @param enableAvailabilityZonesForLoadBalancerRequest * @return Result of the EnableAvailabilityZonesForLoadBalancer operation * returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @sample AmazonElasticLoadBalancing.EnableAvailabilityZonesForLoadBalancer */ @Override public EnableAvailabilityZonesForLoadBalancerResult enableAvailabilityZonesForLoadBalancer( EnableAvailabilityZonesForLoadBalancerRequest enableAvailabilityZonesForLoadBalancerRequest) { ExecutionContext executionContext = createExecutionContext(enableAvailabilityZonesForLoadBalancerRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new EnableAvailabilityZonesForLoadBalancerRequestMarshaller() .marshall(super .beforeMarshalling(enableAvailabilityZonesForLoadBalancerRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new EnableAvailabilityZonesForLoadBalancerResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the attributes of the specified load balancer. *

*

* You can modify the load balancer attributes, such as * AccessLogs, ConnectionDraining, and * CrossZoneLoadBalancing by either enabling or disabling them. * Or, you can modify the load balancer attribute * ConnectionSettings by specifying an idle connection timeout * value for your load balancer. *

*

* For more information, see the following in the Elastic Load Balancing * Developer Guide: *

* * * @param modifyLoadBalancerAttributesRequest * @return Result of the ModifyLoadBalancerAttributes operation returned by * the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws LoadBalancerAttributeNotFoundException * The specified load balancer attribute does not exist. * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @sample AmazonElasticLoadBalancing.ModifyLoadBalancerAttributes */ @Override public ModifyLoadBalancerAttributesResult modifyLoadBalancerAttributes( ModifyLoadBalancerAttributesRequest modifyLoadBalancerAttributesRequest) { ExecutionContext executionContext = createExecutionContext(modifyLoadBalancerAttributesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyLoadBalancerAttributesRequestMarshaller() .marshall(super .beforeMarshalling(modifyLoadBalancerAttributesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ModifyLoadBalancerAttributesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds the specified instances to the specified load balancer. *

*

* The instance must be a running instance in the same network as the load * balancer (EC2-Classic or the same VPC). If you have EC2-Classic instances * and a load balancer in a VPC with ClassicLink enabled, you can link the * EC2-Classic instances to that VPC and then register the linked * EC2-Classic instances with the load balancer in the VPC. *

*

* Note that RegisterInstanceWithLoadBalancer completes when * the request has been registered. Instance registration takes a little * time to complete. To check the state of the registered instances, use * DescribeLoadBalancers or DescribeInstanceHealth. *

*

* After the instance is registered, it starts receiving traffic and * requests from the load balancer. Any instance that is not in one of the * Availability Zones registered for the load balancer is moved to the * OutOfService state. If an Availability Zone is added to the * load balancer later, any instances registered with the load balancer move * to the InService state. *

*

* If you stop an instance registered with a load balancer and then start * it, the IP addresses associated with the instance changes. Elastic Load * Balancing cannot recognize the new IP address, which prevents it from * routing traffic to the instances. We recommend that you use the following * sequence: stop the instance, deregister the instance, start the instance, * and then register the instance. To deregister instances from a load * balancer, use DeregisterInstancesFromLoadBalancer. *

*

* For more information, see Deregister and Register EC2 Instances in the Elastic Load * Balancing Developer Guide. *

* * @param registerInstancesWithLoadBalancerRequest * @return Result of the RegisterInstancesWithLoadBalancer operation * returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws InvalidInstanceException * The specified endpoint is not valid. * @sample AmazonElasticLoadBalancing.RegisterInstancesWithLoadBalancer */ @Override public RegisterInstancesWithLoadBalancerResult registerInstancesWithLoadBalancer( RegisterInstancesWithLoadBalancerRequest registerInstancesWithLoadBalancerRequest) { ExecutionContext executionContext = createExecutionContext(registerInstancesWithLoadBalancerRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RegisterInstancesWithLoadBalancerRequestMarshaller() .marshall(super .beforeMarshalling(registerInstancesWithLoadBalancerRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new RegisterInstancesWithLoadBalancerResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes one or more tags from the specified load balancer. *

* * @param removeTagsRequest * @return Result of the RemoveTags operation returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @sample AmazonElasticLoadBalancing.RemoveTags */ @Override public RemoveTagsResult removeTags(RemoveTagsRequest removeTagsRequest) { ExecutionContext executionContext = createExecutionContext(removeTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RemoveTagsRequestMarshaller().marshall(super .beforeMarshalling(removeTagsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new RemoveTagsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Sets the certificate that terminates the specified listener's SSL * connections. The specified certificate replaces any prior certificate * that was used on the same load balancer and port. *

*

* For more information about updating your SSL certificate, see Updating an SSL Certificate for a Load Balancer in the Elastic * Load Balancing Developer Guide. *

* * @param setLoadBalancerListenerSSLCertificateRequest * @return Result of the SetLoadBalancerListenerSSLCertificate operation * returned by the service. * @throws CertificateNotFoundException * The specified SSL ID does not refer to a valid SSL certificate in * AWS Identity and Access Management (IAM). * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws ListenerNotFoundException * The load balancer does not have a listener configured at the * specified port. * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @sample AmazonElasticLoadBalancing.SetLoadBalancerListenerSSLCertificate */ @Override public SetLoadBalancerListenerSSLCertificateResult setLoadBalancerListenerSSLCertificate( SetLoadBalancerListenerSSLCertificateRequest setLoadBalancerListenerSSLCertificateRequest) { ExecutionContext executionContext = createExecutionContext(setLoadBalancerListenerSSLCertificateRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SetLoadBalancerListenerSSLCertificateRequestMarshaller() .marshall(super .beforeMarshalling(setLoadBalancerListenerSSLCertificateRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SetLoadBalancerListenerSSLCertificateResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Replaces the set of policies associated with the specified port on which * the back-end server is listening with a new set of policies. At this * time, only the back-end server authentication policy type can be applied * to the back-end ports; this policy type is composed of multiple public * key policies. *

*

* Each time you use SetLoadBalancerPoliciesForBackendServer to * enable the policies, use the PolicyNames parameter to list * the policies that you want to enable. *

*

* You can use DescribeLoadBalancers or * DescribeLoadBalancerPolicies to verify that the policy is * associated with the back-end server. *

* * @param setLoadBalancerPoliciesForBackendServerRequest * @return Result of the SetLoadBalancerPoliciesForBackendServer operation * returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws PolicyNotFoundException * One or more of the specified policies do not exist. * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @sample * AmazonElasticLoadBalancing.SetLoadBalancerPoliciesForBackendServer */ @Override public SetLoadBalancerPoliciesForBackendServerResult setLoadBalancerPoliciesForBackendServer( SetLoadBalancerPoliciesForBackendServerRequest setLoadBalancerPoliciesForBackendServerRequest) { ExecutionContext executionContext = createExecutionContext(setLoadBalancerPoliciesForBackendServerRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SetLoadBalancerPoliciesForBackendServerRequestMarshaller() .marshall(super .beforeMarshalling(setLoadBalancerPoliciesForBackendServerRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SetLoadBalancerPoliciesForBackendServerResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Associates, updates, or disables a policy with a listener for the * specified load balancer. You can associate multiple policies with a * listener. *

* * @param setLoadBalancerPoliciesOfListenerRequest * @return Result of the SetLoadBalancerPoliciesOfListener operation * returned by the service. * @throws LoadBalancerNotFoundException * The specified load balancer does not exist. * @throws PolicyNotFoundException * One or more of the specified policies do not exist. * @throws ListenerNotFoundException * The load balancer does not have a listener configured at the * specified port. * @throws InvalidConfigurationRequestException * The requested configuration change is not valid. * @sample AmazonElasticLoadBalancing.SetLoadBalancerPoliciesOfListener */ @Override public SetLoadBalancerPoliciesOfListenerResult setLoadBalancerPoliciesOfListener( SetLoadBalancerPoliciesOfListenerRequest setLoadBalancerPoliciesOfListenerRequest) { ExecutionContext executionContext = createExecutionContext(setLoadBalancerPoliciesOfListenerRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SetLoadBalancerPoliciesOfListenerRequestMarshaller() .marshall(super .beforeMarshalling(setLoadBalancerPoliciesOfListenerRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SetLoadBalancerPoliciesOfListenerResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * Returns additional metadata for a previously executed successful, * request, typically used for debugging issues where a service isn't acting * as expected. This data isn't considered part of the result data returned * by an operation, so it's available through this separate, diagnostic * interface. *

* 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 Response invoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { executionContext.setCredentialsProvider(CredentialUtils .getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext); } /** * Invoke with no authentication. Credentials are not required and any * credentials set on the client or request will be ignored for this * operation. **/ private Response anonymousInvoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return doInvoke(request, responseHandler, executionContext); } /** * Invoke the request using the http client. Assumes credentials (or lack * thereof) have been configured in the ExecutionContext beforehand. **/ private Response doInvoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { request.setEndpoint(endpoint); request.setTimeOffset(timeOffset); DefaultErrorResponseHandler errorResponseHandler = new DefaultErrorResponseHandler( exceptionUnmarshallers); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy