/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
#include
namespace Aws
{
namespace ElasticLoadBalancingv2
{
/**
* Elastic Load Balancing 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.
*/
class AWS_ELASTICLOADBALANCINGV2_API ElasticLoadBalancingv2Client : public Aws::Client::AWSXMLClient, public Aws::Client::ClientWithAsyncTemplateMethods
{
public:
typedef Aws::Client::AWSXMLClient BASECLASS;
static const char* SERVICE_NAME;
static const char* ALLOCATION_TAG;
typedef ElasticLoadBalancingv2ClientConfiguration ClientConfigurationType;
typedef ElasticLoadBalancingv2EndpointProvider EndpointProviderType;
/**
* Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
ElasticLoadBalancingv2Client(const Aws::ElasticLoadBalancingv2::ElasticLoadBalancingv2ClientConfiguration& clientConfiguration = Aws::ElasticLoadBalancingv2::ElasticLoadBalancingv2ClientConfiguration(),
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG));
/**
* Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
ElasticLoadBalancingv2Client(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::ElasticLoadBalancingv2::ElasticLoadBalancingv2ClientConfiguration& clientConfiguration = Aws::ElasticLoadBalancingv2::ElasticLoadBalancingv2ClientConfiguration());
/**
* Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
* the default http client factory will be used
*/
ElasticLoadBalancingv2Client(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::ElasticLoadBalancingv2::ElasticLoadBalancingv2ClientConfiguration& clientConfiguration = Aws::ElasticLoadBalancingv2::ElasticLoadBalancingv2ClientConfiguration());
/* Legacy constructors due deprecation */
/**
* Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
ElasticLoadBalancingv2Client(const Aws::Client::ClientConfiguration& clientConfiguration);
/**
* Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
ElasticLoadBalancingv2Client(const Aws::Auth::AWSCredentials& credentials,
const Aws::Client::ClientConfiguration& clientConfiguration);
/**
* Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
* the default http client factory will be used
*/
ElasticLoadBalancingv2Client(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~ElasticLoadBalancingv2Client();
/**
* Converts any request object to a presigned URL with the GET method, using region for the signer and a timeout of 15 minutes.
*/
Aws::String ConvertRequestToPresignedUrl(const Aws::AmazonSerializableWebServiceRequest& requestToConvert, const char* region) const;
/**
* 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.
See
* Also:
AWS
* API Reference
*/
virtual Model::AddListenerCertificatesOutcome AddListenerCertificates(const Model::AddListenerCertificatesRequest& request) const;
/**
* A Callable wrapper for AddListenerCertificates that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AddListenerCertificatesOutcomeCallable AddListenerCertificatesCallable(const AddListenerCertificatesRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::AddListenerCertificates, request);
}
/**
* An Async wrapper for AddListenerCertificates that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AddListenerCertificatesAsync(const AddListenerCertificatesRequestT& request, const AddListenerCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::AddListenerCertificates, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::AddTagsOutcome AddTags(const Model::AddTagsRequest& request) const;
/**
* A Callable wrapper for AddTags that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AddTagsOutcomeCallable AddTagsCallable(const AddTagsRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::AddTags, request);
}
/**
* An Async wrapper for AddTags that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AddTagsAsync(const AddTagsRequestT& request, const AddTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::AddTags, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::CreateListenerOutcome CreateListener(const Model::CreateListenerRequest& request) const;
/**
* A Callable wrapper for CreateListener that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateListenerOutcomeCallable CreateListenerCallable(const CreateListenerRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::CreateListener, request);
}
/**
* An Async wrapper for CreateListener that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateListenerAsync(const CreateListenerRequestT& request, const CreateListenerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::CreateListener, request, handler, context);
}
/**
* 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.
See Also:
* AWS
* API Reference
*/
virtual Model::CreateLoadBalancerOutcome CreateLoadBalancer(const Model::CreateLoadBalancerRequest& request) const;
/**
* A Callable wrapper for CreateLoadBalancer that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateLoadBalancerOutcomeCallable CreateLoadBalancerCallable(const CreateLoadBalancerRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::CreateLoadBalancer, request);
}
/**
* An Async wrapper for CreateLoadBalancer that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateLoadBalancerAsync(const CreateLoadBalancerRequestT& request, const CreateLoadBalancerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::CreateLoadBalancer, request, handler, context);
}
/**
* 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.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateRuleOutcome CreateRule(const Model::CreateRuleRequest& request) const;
/**
* A Callable wrapper for CreateRule that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateRuleOutcomeCallable CreateRuleCallable(const CreateRuleRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::CreateRule, request);
}
/**
* An Async wrapper for CreateRule that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateRuleAsync(const CreateRuleRequestT& request, const CreateRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::CreateRule, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::CreateTargetGroupOutcome CreateTargetGroup(const Model::CreateTargetGroupRequest& request) const;
/**
* A Callable wrapper for CreateTargetGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateTargetGroupOutcomeCallable CreateTargetGroupCallable(const CreateTargetGroupRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::CreateTargetGroup, request);
}
/**
* An Async wrapper for CreateTargetGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateTargetGroupAsync(const CreateTargetGroupRequestT& request, const CreateTargetGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::CreateTargetGroup, request, handler, context);
}
/**
* Deletes the specified listener.
Alternatively, your listener is
* deleted when you delete the load balancer to which it is attached.
See
* Also:
AWS
* API Reference
*/
virtual Model::DeleteListenerOutcome DeleteListener(const Model::DeleteListenerRequest& request) const;
/**
* A Callable wrapper for DeleteListener that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteListenerOutcomeCallable DeleteListenerCallable(const DeleteListenerRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DeleteListener, request);
}
/**
* An Async wrapper for DeleteListener that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteListenerAsync(const DeleteListenerRequestT& request, const DeleteListenerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DeleteListener, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteLoadBalancerOutcome DeleteLoadBalancer(const Model::DeleteLoadBalancerRequest& request) const;
/**
* A Callable wrapper for DeleteLoadBalancer that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteLoadBalancerOutcomeCallable DeleteLoadBalancerCallable(const DeleteLoadBalancerRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DeleteLoadBalancer, request);
}
/**
* An Async wrapper for DeleteLoadBalancer that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteLoadBalancerAsync(const DeleteLoadBalancerRequestT& request, const DeleteLoadBalancerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DeleteLoadBalancer, request, handler, context);
}
/**
* Deletes the specified rule.
You can't delete the default
* rule.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteRuleOutcome DeleteRule(const Model::DeleteRuleRequest& request) const;
/**
* A Callable wrapper for DeleteRule that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteRuleOutcomeCallable DeleteRuleCallable(const DeleteRuleRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DeleteRule, request);
}
/**
* An Async wrapper for DeleteRule that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteRuleAsync(const DeleteRuleRequestT& request, const DeleteRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DeleteRule, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteTargetGroupOutcome DeleteTargetGroup(const Model::DeleteTargetGroupRequest& request) const;
/**
* A Callable wrapper for DeleteTargetGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteTargetGroupOutcomeCallable DeleteTargetGroupCallable(const DeleteTargetGroupRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DeleteTargetGroup, request);
}
/**
* An Async wrapper for DeleteTargetGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteTargetGroupAsync(const DeleteTargetGroupRequestT& request, const DeleteTargetGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DeleteTargetGroup, request, handler, context);
}
/**
* Deregisters the specified targets from the specified target group. After the
* targets are deregistered, they no longer receive traffic from the load
* balancer.
See Also:
AWS
* API Reference
*/
virtual Model::DeregisterTargetsOutcome DeregisterTargets(const Model::DeregisterTargetsRequest& request) const;
/**
* A Callable wrapper for DeregisterTargets that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeregisterTargetsOutcomeCallable DeregisterTargetsCallable(const DeregisterTargetsRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DeregisterTargets, request);
}
/**
* An Async wrapper for DeregisterTargets that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeregisterTargetsAsync(const DeregisterTargetsRequestT& request, const DeregisterTargetsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DeregisterTargets, request, handler, context);
}
/**
* Describes the current Elastic Load Balancing resource limits for your Amazon
* Web Services account.
For more information, see the following:
See Also:
AWS
* API Reference
*/
virtual Model::DescribeAccountLimitsOutcome DescribeAccountLimits(const Model::DescribeAccountLimitsRequest& request) const;
/**
* A Callable wrapper for DescribeAccountLimits that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeAccountLimitsOutcomeCallable DescribeAccountLimitsCallable(const DescribeAccountLimitsRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DescribeAccountLimits, request);
}
/**
* An Async wrapper for DescribeAccountLimits that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeAccountLimitsAsync(const DescribeAccountLimitsRequestT& request, const DescribeAccountLimitsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DescribeAccountLimits, request, handler, context);
}
/**
* 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.
See
* Also:
AWS
* API Reference
*/
virtual Model::DescribeListenerCertificatesOutcome DescribeListenerCertificates(const Model::DescribeListenerCertificatesRequest& request) const;
/**
* A Callable wrapper for DescribeListenerCertificates that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeListenerCertificatesOutcomeCallable DescribeListenerCertificatesCallable(const DescribeListenerCertificatesRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DescribeListenerCertificates, request);
}
/**
* An Async wrapper for DescribeListenerCertificates that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeListenerCertificatesAsync(const DescribeListenerCertificatesRequestT& request, const DescribeListenerCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DescribeListenerCertificates, request, handler, context);
}
/**
* 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.
See
* Also:
AWS
* API Reference
*/
virtual Model::DescribeListenersOutcome DescribeListeners(const Model::DescribeListenersRequest& request) const;
/**
* A Callable wrapper for DescribeListeners that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeListenersOutcomeCallable DescribeListenersCallable(const DescribeListenersRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DescribeListeners, request);
}
/**
* An Async wrapper for DescribeListeners that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeListenersAsync(const DescribeListenersRequestT& request, const DescribeListenersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DescribeListeners, request, handler, context);
}
/**
* Describes the attributes for the specified Application Load Balancer, Network
* Load Balancer, or Gateway Load Balancer.
For more information, see the
* following:
See Also:
AWS
* API Reference
*/
virtual Model::DescribeLoadBalancerAttributesOutcome DescribeLoadBalancerAttributes(const Model::DescribeLoadBalancerAttributesRequest& request) const;
/**
* A Callable wrapper for DescribeLoadBalancerAttributes that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeLoadBalancerAttributesOutcomeCallable DescribeLoadBalancerAttributesCallable(const DescribeLoadBalancerAttributesRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DescribeLoadBalancerAttributes, request);
}
/**
* An Async wrapper for DescribeLoadBalancerAttributes that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeLoadBalancerAttributesAsync(const DescribeLoadBalancerAttributesRequestT& request, const DescribeLoadBalancerAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DescribeLoadBalancerAttributes, request, handler, context);
}
/**
* Describes the specified load balancers or all of your load
* balancers.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeLoadBalancersOutcome DescribeLoadBalancers(const Model::DescribeLoadBalancersRequest& request) const;
/**
* A Callable wrapper for DescribeLoadBalancers that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeLoadBalancersOutcomeCallable DescribeLoadBalancersCallable(const DescribeLoadBalancersRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DescribeLoadBalancers, request);
}
/**
* An Async wrapper for DescribeLoadBalancers that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeLoadBalancersAsync(const DescribeLoadBalancersRequestT& request, const DescribeLoadBalancersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DescribeLoadBalancers, request, handler, context);
}
/**
* Describes the specified rules or the rules for the specified listener. You
* must specify either a listener or one or more rules.
See Also:
* AWS
* API Reference
*/
virtual Model::DescribeRulesOutcome DescribeRules(const Model::DescribeRulesRequest& request) const;
/**
* A Callable wrapper for DescribeRules that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeRulesOutcomeCallable DescribeRulesCallable(const DescribeRulesRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DescribeRules, request);
}
/**
* An Async wrapper for DescribeRules that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeRulesAsync(const DescribeRulesRequestT& request, const DescribeRulesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DescribeRules, request, handler, context);
}
/**
* 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.
See
* Also:
AWS
* API Reference
*/
virtual Model::DescribeSSLPoliciesOutcome DescribeSSLPolicies(const Model::DescribeSSLPoliciesRequest& request) const;
/**
* A Callable wrapper for DescribeSSLPolicies that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeSSLPoliciesOutcomeCallable DescribeSSLPoliciesCallable(const DescribeSSLPoliciesRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DescribeSSLPolicies, request);
}
/**
* An Async wrapper for DescribeSSLPolicies that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeSSLPoliciesAsync(const DescribeSSLPoliciesRequestT& request, const DescribeSSLPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DescribeSSLPolicies, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeTagsOutcome DescribeTags(const Model::DescribeTagsRequest& request) const;
/**
* A Callable wrapper for DescribeTags that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeTagsOutcomeCallable DescribeTagsCallable(const DescribeTagsRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DescribeTags, request);
}
/**
* An Async wrapper for DescribeTags that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeTagsAsync(const DescribeTagsRequestT& request, const DescribeTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DescribeTags, request, handler, context);
}
/**
* Describes the attributes for the specified target group.
For more
* information, see the following:
See Also:
AWS
* API Reference
*/
virtual Model::DescribeTargetGroupAttributesOutcome DescribeTargetGroupAttributes(const Model::DescribeTargetGroupAttributesRequest& request) const;
/**
* A Callable wrapper for DescribeTargetGroupAttributes that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeTargetGroupAttributesOutcomeCallable DescribeTargetGroupAttributesCallable(const DescribeTargetGroupAttributesRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DescribeTargetGroupAttributes, request);
}
/**
* An Async wrapper for DescribeTargetGroupAttributes that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeTargetGroupAttributesAsync(const DescribeTargetGroupAttributesRequestT& request, const DescribeTargetGroupAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DescribeTargetGroupAttributes, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeTargetGroupsOutcome DescribeTargetGroups(const Model::DescribeTargetGroupsRequest& request) const;
/**
* A Callable wrapper for DescribeTargetGroups that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeTargetGroupsOutcomeCallable DescribeTargetGroupsCallable(const DescribeTargetGroupsRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DescribeTargetGroups, request);
}
/**
* An Async wrapper for DescribeTargetGroups that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeTargetGroupsAsync(const DescribeTargetGroupsRequestT& request, const DescribeTargetGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DescribeTargetGroups, request, handler, context);
}
/**
* Describes the health of the specified targets or all of your
* targets.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeTargetHealthOutcome DescribeTargetHealth(const Model::DescribeTargetHealthRequest& request) const;
/**
* A Callable wrapper for DescribeTargetHealth that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeTargetHealthOutcomeCallable DescribeTargetHealthCallable(const DescribeTargetHealthRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::DescribeTargetHealth, request);
}
/**
* An Async wrapper for DescribeTargetHealth that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeTargetHealthAsync(const DescribeTargetHealthRequestT& request, const DescribeTargetHealthResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::DescribeTargetHealth, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::ModifyListenerOutcome ModifyListener(const Model::ModifyListenerRequest& request) const;
/**
* A Callable wrapper for ModifyListener that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ModifyListenerOutcomeCallable ModifyListenerCallable(const ModifyListenerRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::ModifyListener, request);
}
/**
* An Async wrapper for ModifyListener that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ModifyListenerAsync(const ModifyListenerRequestT& request, const ModifyListenerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::ModifyListener, request, handler, context);
}
/**
* 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.
See
* Also:
AWS
* API Reference
*/
virtual Model::ModifyLoadBalancerAttributesOutcome ModifyLoadBalancerAttributes(const Model::ModifyLoadBalancerAttributesRequest& request) const;
/**
* A Callable wrapper for ModifyLoadBalancerAttributes that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ModifyLoadBalancerAttributesOutcomeCallable ModifyLoadBalancerAttributesCallable(const ModifyLoadBalancerAttributesRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::ModifyLoadBalancerAttributes, request);
}
/**
* An Async wrapper for ModifyLoadBalancerAttributes that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ModifyLoadBalancerAttributesAsync(const ModifyLoadBalancerAttributesRequestT& request, const ModifyLoadBalancerAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::ModifyLoadBalancerAttributes, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::ModifyRuleOutcome ModifyRule(const Model::ModifyRuleRequest& request) const;
/**
* A Callable wrapper for ModifyRule that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ModifyRuleOutcomeCallable ModifyRuleCallable(const ModifyRuleRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::ModifyRule, request);
}
/**
* An Async wrapper for ModifyRule that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ModifyRuleAsync(const ModifyRuleRequestT& request, const ModifyRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::ModifyRule, request, handler, context);
}
/**
* Modifies the health checks used when evaluating the health state of the
* targets in the specified target group.
See Also:
AWS
* API Reference
*/
virtual Model::ModifyTargetGroupOutcome ModifyTargetGroup(const Model::ModifyTargetGroupRequest& request) const;
/**
* A Callable wrapper for ModifyTargetGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ModifyTargetGroupOutcomeCallable ModifyTargetGroupCallable(const ModifyTargetGroupRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::ModifyTargetGroup, request);
}
/**
* An Async wrapper for ModifyTargetGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ModifyTargetGroupAsync(const ModifyTargetGroupRequestT& request, const ModifyTargetGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::ModifyTargetGroup, request, handler, context);
}
/**
* Modifies the specified attributes of the specified target
* group.
See Also:
AWS
* API Reference
*/
virtual Model::ModifyTargetGroupAttributesOutcome ModifyTargetGroupAttributes(const Model::ModifyTargetGroupAttributesRequest& request) const;
/**
* A Callable wrapper for ModifyTargetGroupAttributes that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ModifyTargetGroupAttributesOutcomeCallable ModifyTargetGroupAttributesCallable(const ModifyTargetGroupAttributesRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::ModifyTargetGroupAttributes, request);
}
/**
* An Async wrapper for ModifyTargetGroupAttributes that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ModifyTargetGroupAttributesAsync(const ModifyTargetGroupAttributesRequestT& request, const ModifyTargetGroupAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::ModifyTargetGroupAttributes, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::RegisterTargetsOutcome RegisterTargets(const Model::RegisterTargetsRequest& request) const;
/**
* A Callable wrapper for RegisterTargets that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::RegisterTargetsOutcomeCallable RegisterTargetsCallable(const RegisterTargetsRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::RegisterTargets, request);
}
/**
* An Async wrapper for RegisterTargets that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void RegisterTargetsAsync(const RegisterTargetsRequestT& request, const RegisterTargetsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::RegisterTargets, request, handler, context);
}
/**
* Removes the specified certificate from the certificate list for the specified
* HTTPS or TLS listener.
See Also:
AWS
* API Reference
*/
virtual Model::RemoveListenerCertificatesOutcome RemoveListenerCertificates(const Model::RemoveListenerCertificatesRequest& request) const;
/**
* A Callable wrapper for RemoveListenerCertificates that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::RemoveListenerCertificatesOutcomeCallable RemoveListenerCertificatesCallable(const RemoveListenerCertificatesRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::RemoveListenerCertificates, request);
}
/**
* An Async wrapper for RemoveListenerCertificates that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void RemoveListenerCertificatesAsync(const RemoveListenerCertificatesRequestT& request, const RemoveListenerCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::RemoveListenerCertificates, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::RemoveTagsOutcome RemoveTags(const Model::RemoveTagsRequest& request) const;
/**
* A Callable wrapper for RemoveTags that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::RemoveTagsOutcomeCallable RemoveTagsCallable(const RemoveTagsRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::RemoveTags, request);
}
/**
* An Async wrapper for RemoveTags that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void RemoveTagsAsync(const RemoveTagsRequestT& request, const RemoveTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::RemoveTags, request, handler, context);
}
/**
* Sets the type of IP addresses used by the subnets of the specified load
* balancer.
See Also:
AWS
* API Reference
*/
virtual Model::SetIpAddressTypeOutcome SetIpAddressType(const Model::SetIpAddressTypeRequest& request) const;
/**
* A Callable wrapper for SetIpAddressType that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::SetIpAddressTypeOutcomeCallable SetIpAddressTypeCallable(const SetIpAddressTypeRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::SetIpAddressType, request);
}
/**
* An Async wrapper for SetIpAddressType that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void SetIpAddressTypeAsync(const SetIpAddressTypeRequestT& request, const SetIpAddressTypeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::SetIpAddressType, request, handler, context);
}
/**
* 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.
See Also:
* AWS
* API Reference
*/
virtual Model::SetRulePrioritiesOutcome SetRulePriorities(const Model::SetRulePrioritiesRequest& request) const;
/**
* A Callable wrapper for SetRulePriorities that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::SetRulePrioritiesOutcomeCallable SetRulePrioritiesCallable(const SetRulePrioritiesRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::SetRulePriorities, request);
}
/**
* An Async wrapper for SetRulePriorities that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void SetRulePrioritiesAsync(const SetRulePrioritiesRequestT& request, const SetRulePrioritiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::SetRulePriorities, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::SetSecurityGroupsOutcome SetSecurityGroups(const Model::SetSecurityGroupsRequest& request) const;
/**
* A Callable wrapper for SetSecurityGroups that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::SetSecurityGroupsOutcomeCallable SetSecurityGroupsCallable(const SetSecurityGroupsRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::SetSecurityGroups, request);
}
/**
* An Async wrapper for SetSecurityGroups that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void SetSecurityGroupsAsync(const SetSecurityGroupsRequestT& request, const SetSecurityGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::SetSecurityGroups, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::SetSubnetsOutcome SetSubnets(const Model::SetSubnetsRequest& request) const;
/**
* A Callable wrapper for SetSubnets that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::SetSubnetsOutcomeCallable SetSubnetsCallable(const SetSubnetsRequestT& request) const
{
return SubmitCallable(&ElasticLoadBalancingv2Client::SetSubnets, request);
}
/**
* An Async wrapper for SetSubnets that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void SetSubnetsAsync(const SetSubnetsRequestT& request, const SetSubnetsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticLoadBalancingv2Client::SetSubnets, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const ElasticLoadBalancingv2ClientConfiguration& clientConfiguration);
ElasticLoadBalancingv2ClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace ElasticLoadBalancingv2
} // namespace Aws