/** * 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