This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files

751 lines
37 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/elasticloadbalancingv2/ElasticLoadBalancingv2_EXPORTS.h>
#include <aws/elasticloadbalancingv2/ElasticLoadBalancingv2Request.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/elasticloadbalancingv2/model/ProtocolEnum.h>
#include <aws/elasticloadbalancingv2/model/Matcher.h>
#include <aws/elasticloadbalancingv2/model/TargetTypeEnum.h>
#include <utility>
namespace Aws
{
namespace ElasticLoadBalancingv2
{
namespace Model
{
/**
*/
class AWS_ELASTICLOADBALANCINGV2_API CreateTargetGroupRequest : public ElasticLoadBalancingv2Request
{
public:
CreateTargetGroupRequest();
// Service request name is the Operation name which will send this request out,
// each operation should has unique request name, so that we can get operation's name from this request.
// Note: this is not true for response, multiple operations may have the same response name,
// so we can not get operation's name from response.
inline virtual const char* GetServiceRequestName() const override { return "CreateTargetGroup"; }
Aws::String SerializePayload() const override;
protected:
void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
public:
/**
* <p>The name of the target group.</p> <p>This name must be unique per region per
* account, can have a maximum of 32 characters, must contain only alphanumeric
* characters or hyphens, and must not begin or end with a hyphen.</p>
*/
inline const Aws::String& GetName() const{ return m_name; }
/**
* <p>The name of the target group.</p> <p>This name must be unique per region per
* account, can have a maximum of 32 characters, must contain only alphanumeric
* characters or hyphens, and must not begin or end with a hyphen.</p>
*/
inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
/**
* <p>The name of the target group.</p> <p>This name must be unique per region per
* account, can have a maximum of 32 characters, must contain only alphanumeric
* characters or hyphens, and must not begin or end with a hyphen.</p>
*/
inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
/**
* <p>The name of the target group.</p> <p>This name must be unique per region per
* account, can have a maximum of 32 characters, must contain only alphanumeric
* characters or hyphens, and must not begin or end with a hyphen.</p>
*/
inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
/**
* <p>The name of the target group.</p> <p>This name must be unique per region per
* account, can have a maximum of 32 characters, must contain only alphanumeric
* characters or hyphens, and must not begin or end with a hyphen.</p>
*/
inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
/**
* <p>The name of the target group.</p> <p>This name must be unique per region per
* account, can have a maximum of 32 characters, must contain only alphanumeric
* characters or hyphens, and must not begin or end with a hyphen.</p>
*/
inline CreateTargetGroupRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
/**
* <p>The name of the target group.</p> <p>This name must be unique per region per
* account, can have a maximum of 32 characters, must contain only alphanumeric
* characters or hyphens, and must not begin or end with a hyphen.</p>
*/
inline CreateTargetGroupRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
/**
* <p>The name of the target group.</p> <p>This name must be unique per region per
* account, can have a maximum of 32 characters, must contain only alphanumeric
* characters or hyphens, and must not begin or end with a hyphen.</p>
*/
inline CreateTargetGroupRequest& WithName(const char* value) { SetName(value); return *this;}
/**
* <p>The protocol to use for routing traffic to the targets. For Application Load
* Balancers, the supported protocols are HTTP and HTTPS. For Network Load
* Balancers, the supported protocols are TCP, TLS, UDP, or TCP_UDP. A TCP_UDP
* listener must be associated with a TCP_UDP target group. If the target is a
* Lambda function, this parameter does not apply.</p>
*/
inline const ProtocolEnum& GetProtocol() const{ return m_protocol; }
/**
* <p>The protocol to use for routing traffic to the targets. For Application Load
* Balancers, the supported protocols are HTTP and HTTPS. For Network Load
* Balancers, the supported protocols are TCP, TLS, UDP, or TCP_UDP. A TCP_UDP
* listener must be associated with a TCP_UDP target group. If the target is a
* Lambda function, this parameter does not apply.</p>
*/
inline bool ProtocolHasBeenSet() const { return m_protocolHasBeenSet; }
/**
* <p>The protocol to use for routing traffic to the targets. For Application Load
* Balancers, the supported protocols are HTTP and HTTPS. For Network Load
* Balancers, the supported protocols are TCP, TLS, UDP, or TCP_UDP. A TCP_UDP
* listener must be associated with a TCP_UDP target group. If the target is a
* Lambda function, this parameter does not apply.</p>
*/
inline void SetProtocol(const ProtocolEnum& value) { m_protocolHasBeenSet = true; m_protocol = value; }
/**
* <p>The protocol to use for routing traffic to the targets. For Application Load
* Balancers, the supported protocols are HTTP and HTTPS. For Network Load
* Balancers, the supported protocols are TCP, TLS, UDP, or TCP_UDP. A TCP_UDP
* listener must be associated with a TCP_UDP target group. If the target is a
* Lambda function, this parameter does not apply.</p>
*/
inline void SetProtocol(ProtocolEnum&& value) { m_protocolHasBeenSet = true; m_protocol = std::move(value); }
/**
* <p>The protocol to use for routing traffic to the targets. For Application Load
* Balancers, the supported protocols are HTTP and HTTPS. For Network Load
* Balancers, the supported protocols are TCP, TLS, UDP, or TCP_UDP. A TCP_UDP
* listener must be associated with a TCP_UDP target group. If the target is a
* Lambda function, this parameter does not apply.</p>
*/
inline CreateTargetGroupRequest& WithProtocol(const ProtocolEnum& value) { SetProtocol(value); return *this;}
/**
* <p>The protocol to use for routing traffic to the targets. For Application Load
* Balancers, the supported protocols are HTTP and HTTPS. For Network Load
* Balancers, the supported protocols are TCP, TLS, UDP, or TCP_UDP. A TCP_UDP
* listener must be associated with a TCP_UDP target group. If the target is a
* Lambda function, this parameter does not apply.</p>
*/
inline CreateTargetGroupRequest& WithProtocol(ProtocolEnum&& value) { SetProtocol(std::move(value)); return *this;}
/**
* <p>The port on which the targets receive traffic. This port is used unless you
* specify a port override when registering the target. If the target is a Lambda
* function, this parameter does not apply.</p>
*/
inline int GetPort() const{ return m_port; }
/**
* <p>The port on which the targets receive traffic. This port is used unless you
* specify a port override when registering the target. If the target is a Lambda
* function, this parameter does not apply.</p>
*/
inline bool PortHasBeenSet() const { return m_portHasBeenSet; }
/**
* <p>The port on which the targets receive traffic. This port is used unless you
* specify a port override when registering the target. If the target is a Lambda
* function, this parameter does not apply.</p>
*/
inline void SetPort(int value) { m_portHasBeenSet = true; m_port = value; }
/**
* <p>The port on which the targets receive traffic. This port is used unless you
* specify a port override when registering the target. If the target is a Lambda
* function, this parameter does not apply.</p>
*/
inline CreateTargetGroupRequest& WithPort(int value) { SetPort(value); return *this;}
/**
* <p>The identifier of the virtual private cloud (VPC). If the target is a Lambda
* function, this parameter does not apply. Otherwise, this parameter is
* required.</p>
*/
inline const Aws::String& GetVpcId() const{ return m_vpcId; }
/**
* <p>The identifier of the virtual private cloud (VPC). If the target is a Lambda
* function, this parameter does not apply. Otherwise, this parameter is
* required.</p>
*/
inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; }
/**
* <p>The identifier of the virtual private cloud (VPC). If the target is a Lambda
* function, this parameter does not apply. Otherwise, this parameter is
* required.</p>
*/
inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; }
/**
* <p>The identifier of the virtual private cloud (VPC). If the target is a Lambda
* function, this parameter does not apply. Otherwise, this parameter is
* required.</p>
*/
inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); }
/**
* <p>The identifier of the virtual private cloud (VPC). If the target is a Lambda
* function, this parameter does not apply. Otherwise, this parameter is
* required.</p>
*/
inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); }
/**
* <p>The identifier of the virtual private cloud (VPC). If the target is a Lambda
* function, this parameter does not apply. Otherwise, this parameter is
* required.</p>
*/
inline CreateTargetGroupRequest& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;}
/**
* <p>The identifier of the virtual private cloud (VPC). If the target is a Lambda
* function, this parameter does not apply. Otherwise, this parameter is
* required.</p>
*/
inline CreateTargetGroupRequest& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;}
/**
* <p>The identifier of the virtual private cloud (VPC). If the target is a Lambda
* function, this parameter does not apply. Otherwise, this parameter is
* required.</p>
*/
inline CreateTargetGroupRequest& WithVpcId(const char* value) { SetVpcId(value); return *this;}
/**
* <p>The protocol the load balancer uses when performing health checks on targets.
* For Application Load Balancers, the default is HTTP. For Network Load Balancers,
* the default is TCP. The TCP protocol is supported for health checks only if the
* protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The TLS, UDP, and
* TCP_UDP protocols are not supported for health checks.</p>
*/
inline const ProtocolEnum& GetHealthCheckProtocol() const{ return m_healthCheckProtocol; }
/**
* <p>The protocol the load balancer uses when performing health checks on targets.
* For Application Load Balancers, the default is HTTP. For Network Load Balancers,
* the default is TCP. The TCP protocol is supported for health checks only if the
* protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The TLS, UDP, and
* TCP_UDP protocols are not supported for health checks.</p>
*/
inline bool HealthCheckProtocolHasBeenSet() const { return m_healthCheckProtocolHasBeenSet; }
/**
* <p>The protocol the load balancer uses when performing health checks on targets.
* For Application Load Balancers, the default is HTTP. For Network Load Balancers,
* the default is TCP. The TCP protocol is supported for health checks only if the
* protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The TLS, UDP, and
* TCP_UDP protocols are not supported for health checks.</p>
*/
inline void SetHealthCheckProtocol(const ProtocolEnum& value) { m_healthCheckProtocolHasBeenSet = true; m_healthCheckProtocol = value; }
/**
* <p>The protocol the load balancer uses when performing health checks on targets.
* For Application Load Balancers, the default is HTTP. For Network Load Balancers,
* the default is TCP. The TCP protocol is supported for health checks only if the
* protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The TLS, UDP, and
* TCP_UDP protocols are not supported for health checks.</p>
*/
inline void SetHealthCheckProtocol(ProtocolEnum&& value) { m_healthCheckProtocolHasBeenSet = true; m_healthCheckProtocol = std::move(value); }
/**
* <p>The protocol the load balancer uses when performing health checks on targets.
* For Application Load Balancers, the default is HTTP. For Network Load Balancers,
* the default is TCP. The TCP protocol is supported for health checks only if the
* protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The TLS, UDP, and
* TCP_UDP protocols are not supported for health checks.</p>
*/
inline CreateTargetGroupRequest& WithHealthCheckProtocol(const ProtocolEnum& value) { SetHealthCheckProtocol(value); return *this;}
/**
* <p>The protocol the load balancer uses when performing health checks on targets.
* For Application Load Balancers, the default is HTTP. For Network Load Balancers,
* the default is TCP. The TCP protocol is supported for health checks only if the
* protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The TLS, UDP, and
* TCP_UDP protocols are not supported for health checks.</p>
*/
inline CreateTargetGroupRequest& WithHealthCheckProtocol(ProtocolEnum&& value) { SetHealthCheckProtocol(std::move(value)); return *this;}
/**
* <p>The port the load balancer uses when performing health checks on targets. The
* default is <code>traffic-port</code>, which is the port on which each target
* receives traffic from the load balancer.</p>
*/
inline const Aws::String& GetHealthCheckPort() const{ return m_healthCheckPort; }
/**
* <p>The port the load balancer uses when performing health checks on targets. The
* default is <code>traffic-port</code>, which is the port on which each target
* receives traffic from the load balancer.</p>
*/
inline bool HealthCheckPortHasBeenSet() const { return m_healthCheckPortHasBeenSet; }
/**
* <p>The port the load balancer uses when performing health checks on targets. The
* default is <code>traffic-port</code>, which is the port on which each target
* receives traffic from the load balancer.</p>
*/
inline void SetHealthCheckPort(const Aws::String& value) { m_healthCheckPortHasBeenSet = true; m_healthCheckPort = value; }
/**
* <p>The port the load balancer uses when performing health checks on targets. The
* default is <code>traffic-port</code>, which is the port on which each target
* receives traffic from the load balancer.</p>
*/
inline void SetHealthCheckPort(Aws::String&& value) { m_healthCheckPortHasBeenSet = true; m_healthCheckPort = std::move(value); }
/**
* <p>The port the load balancer uses when performing health checks on targets. The
* default is <code>traffic-port</code>, which is the port on which each target
* receives traffic from the load balancer.</p>
*/
inline void SetHealthCheckPort(const char* value) { m_healthCheckPortHasBeenSet = true; m_healthCheckPort.assign(value); }
/**
* <p>The port the load balancer uses when performing health checks on targets. The
* default is <code>traffic-port</code>, which is the port on which each target
* receives traffic from the load balancer.</p>
*/
inline CreateTargetGroupRequest& WithHealthCheckPort(const Aws::String& value) { SetHealthCheckPort(value); return *this;}
/**
* <p>The port the load balancer uses when performing health checks on targets. The
* default is <code>traffic-port</code>, which is the port on which each target
* receives traffic from the load balancer.</p>
*/
inline CreateTargetGroupRequest& WithHealthCheckPort(Aws::String&& value) { SetHealthCheckPort(std::move(value)); return *this;}
/**
* <p>The port the load balancer uses when performing health checks on targets. The
* default is <code>traffic-port</code>, which is the port on which each target
* receives traffic from the load balancer.</p>
*/
inline CreateTargetGroupRequest& WithHealthCheckPort(const char* value) { SetHealthCheckPort(value); return *this;}
/**
* <p>Indicates whether health checks are enabled. If the target type is
* <code>lambda</code>, health checks are disabled by default but can be enabled.
* If the target type is <code>instance</code> or <code>ip</code>, health checks
* are always enabled and cannot be disabled.</p>
*/
inline bool GetHealthCheckEnabled() const{ return m_healthCheckEnabled; }
/**
* <p>Indicates whether health checks are enabled. If the target type is
* <code>lambda</code>, health checks are disabled by default but can be enabled.
* If the target type is <code>instance</code> or <code>ip</code>, health checks
* are always enabled and cannot be disabled.</p>
*/
inline bool HealthCheckEnabledHasBeenSet() const { return m_healthCheckEnabledHasBeenSet; }
/**
* <p>Indicates whether health checks are enabled. If the target type is
* <code>lambda</code>, health checks are disabled by default but can be enabled.
* If the target type is <code>instance</code> or <code>ip</code>, health checks
* are always enabled and cannot be disabled.</p>
*/
inline void SetHealthCheckEnabled(bool value) { m_healthCheckEnabledHasBeenSet = true; m_healthCheckEnabled = value; }
/**
* <p>Indicates whether health checks are enabled. If the target type is
* <code>lambda</code>, health checks are disabled by default but can be enabled.
* If the target type is <code>instance</code> or <code>ip</code>, health checks
* are always enabled and cannot be disabled.</p>
*/
inline CreateTargetGroupRequest& WithHealthCheckEnabled(bool value) { SetHealthCheckEnabled(value); return *this;}
/**
* <p>[HTTP/HTTPS health checks] The ping path that is the destination on the
* targets for health checks. The default is /.</p>
*/
inline const Aws::String& GetHealthCheckPath() const{ return m_healthCheckPath; }
/**
* <p>[HTTP/HTTPS health checks] The ping path that is the destination on the
* targets for health checks. The default is /.</p>
*/
inline bool HealthCheckPathHasBeenSet() const { return m_healthCheckPathHasBeenSet; }
/**
* <p>[HTTP/HTTPS health checks] The ping path that is the destination on the
* targets for health checks. The default is /.</p>
*/
inline void SetHealthCheckPath(const Aws::String& value) { m_healthCheckPathHasBeenSet = true; m_healthCheckPath = value; }
/**
* <p>[HTTP/HTTPS health checks] The ping path that is the destination on the
* targets for health checks. The default is /.</p>
*/
inline void SetHealthCheckPath(Aws::String&& value) { m_healthCheckPathHasBeenSet = true; m_healthCheckPath = std::move(value); }
/**
* <p>[HTTP/HTTPS health checks] The ping path that is the destination on the
* targets for health checks. The default is /.</p>
*/
inline void SetHealthCheckPath(const char* value) { m_healthCheckPathHasBeenSet = true; m_healthCheckPath.assign(value); }
/**
* <p>[HTTP/HTTPS health checks] The ping path that is the destination on the
* targets for health checks. The default is /.</p>
*/
inline CreateTargetGroupRequest& WithHealthCheckPath(const Aws::String& value) { SetHealthCheckPath(value); return *this;}
/**
* <p>[HTTP/HTTPS health checks] The ping path that is the destination on the
* targets for health checks. The default is /.</p>
*/
inline CreateTargetGroupRequest& WithHealthCheckPath(Aws::String&& value) { SetHealthCheckPath(std::move(value)); return *this;}
/**
* <p>[HTTP/HTTPS health checks] The ping path that is the destination on the
* targets for health checks. The default is /.</p>
*/
inline CreateTargetGroupRequest& WithHealthCheckPath(const char* value) { SetHealthCheckPath(value); return *this;}
/**
* <p>The approximate amount of time, in seconds, between health checks of an
* individual target. For HTTP and HTTPS health checks, the range is 5300 seconds.
* For TCP health checks, the supported values are 10 and 30 seconds. If the target
* type is <code>instance</code> or <code>ip</code>, the default is 30 seconds. If
* the target type is <code>lambda</code>, the default is 35 seconds.</p>
*/
inline int GetHealthCheckIntervalSeconds() const{ return m_healthCheckIntervalSeconds; }
/**
* <p>The approximate amount of time, in seconds, between health checks of an
* individual target. For HTTP and HTTPS health checks, the range is 5300 seconds.
* For TCP health checks, the supported values are 10 and 30 seconds. If the target
* type is <code>instance</code> or <code>ip</code>, the default is 30 seconds. If
* the target type is <code>lambda</code>, the default is 35 seconds.</p>
*/
inline bool HealthCheckIntervalSecondsHasBeenSet() const { return m_healthCheckIntervalSecondsHasBeenSet; }
/**
* <p>The approximate amount of time, in seconds, between health checks of an
* individual target. For HTTP and HTTPS health checks, the range is 5300 seconds.
* For TCP health checks, the supported values are 10 and 30 seconds. If the target
* type is <code>instance</code> or <code>ip</code>, the default is 30 seconds. If
* the target type is <code>lambda</code>, the default is 35 seconds.</p>
*/
inline void SetHealthCheckIntervalSeconds(int value) { m_healthCheckIntervalSecondsHasBeenSet = true; m_healthCheckIntervalSeconds = value; }
/**
* <p>The approximate amount of time, in seconds, between health checks of an
* individual target. For HTTP and HTTPS health checks, the range is 5300 seconds.
* For TCP health checks, the supported values are 10 and 30 seconds. If the target
* type is <code>instance</code> or <code>ip</code>, the default is 30 seconds. If
* the target type is <code>lambda</code>, the default is 35 seconds.</p>
*/
inline CreateTargetGroupRequest& WithHealthCheckIntervalSeconds(int value) { SetHealthCheckIntervalSeconds(value); return *this;}
/**
* <p>The amount of time, in seconds, during which no response from a target means
* a failed health check. For target groups with a protocol of HTTP or HTTPS, the
* default is 5 seconds. For target groups with a protocol of TCP or TLS, this
* value must be 6 seconds for HTTP health checks and 10 seconds for TCP and HTTPS
* health checks. If the target type is <code>lambda</code>, the default is 30
* seconds.</p>
*/
inline int GetHealthCheckTimeoutSeconds() const{ return m_healthCheckTimeoutSeconds; }
/**
* <p>The amount of time, in seconds, during which no response from a target means
* a failed health check. For target groups with a protocol of HTTP or HTTPS, the
* default is 5 seconds. For target groups with a protocol of TCP or TLS, this
* value must be 6 seconds for HTTP health checks and 10 seconds for TCP and HTTPS
* health checks. If the target type is <code>lambda</code>, the default is 30
* seconds.</p>
*/
inline bool HealthCheckTimeoutSecondsHasBeenSet() const { return m_healthCheckTimeoutSecondsHasBeenSet; }
/**
* <p>The amount of time, in seconds, during which no response from a target means
* a failed health check. For target groups with a protocol of HTTP or HTTPS, the
* default is 5 seconds. For target groups with a protocol of TCP or TLS, this
* value must be 6 seconds for HTTP health checks and 10 seconds for TCP and HTTPS
* health checks. If the target type is <code>lambda</code>, the default is 30
* seconds.</p>
*/
inline void SetHealthCheckTimeoutSeconds(int value) { m_healthCheckTimeoutSecondsHasBeenSet = true; m_healthCheckTimeoutSeconds = value; }
/**
* <p>The amount of time, in seconds, during which no response from a target means
* a failed health check. For target groups with a protocol of HTTP or HTTPS, the
* default is 5 seconds. For target groups with a protocol of TCP or TLS, this
* value must be 6 seconds for HTTP health checks and 10 seconds for TCP and HTTPS
* health checks. If the target type is <code>lambda</code>, the default is 30
* seconds.</p>
*/
inline CreateTargetGroupRequest& WithHealthCheckTimeoutSeconds(int value) { SetHealthCheckTimeoutSeconds(value); return *this;}
/**
* <p>The number of consecutive health checks successes required before considering
* an unhealthy target healthy. For target groups with a protocol of HTTP or HTTPS,
* the default is 5. For target groups with a protocol of TCP or TLS, the default
* is 3. If the target type is <code>lambda</code>, the default is 5.</p>
*/
inline int GetHealthyThresholdCount() const{ return m_healthyThresholdCount; }
/**
* <p>The number of consecutive health checks successes required before considering
* an unhealthy target healthy. For target groups with a protocol of HTTP or HTTPS,
* the default is 5. For target groups with a protocol of TCP or TLS, the default
* is 3. If the target type is <code>lambda</code>, the default is 5.</p>
*/
inline bool HealthyThresholdCountHasBeenSet() const { return m_healthyThresholdCountHasBeenSet; }
/**
* <p>The number of consecutive health checks successes required before considering
* an unhealthy target healthy. For target groups with a protocol of HTTP or HTTPS,
* the default is 5. For target groups with a protocol of TCP or TLS, the default
* is 3. If the target type is <code>lambda</code>, the default is 5.</p>
*/
inline void SetHealthyThresholdCount(int value) { m_healthyThresholdCountHasBeenSet = true; m_healthyThresholdCount = value; }
/**
* <p>The number of consecutive health checks successes required before considering
* an unhealthy target healthy. For target groups with a protocol of HTTP or HTTPS,
* the default is 5. For target groups with a protocol of TCP or TLS, the default
* is 3. If the target type is <code>lambda</code>, the default is 5.</p>
*/
inline CreateTargetGroupRequest& WithHealthyThresholdCount(int value) { SetHealthyThresholdCount(value); return *this;}
/**
* <p>The number of consecutive health check failures required before considering a
* target unhealthy. For target groups with a protocol of HTTP or HTTPS, the
* default is 2. For target groups with a protocol of TCP or TLS, this value must
* be the same as the healthy threshold count. If the target type is
* <code>lambda</code>, the default is 2.</p>
*/
inline int GetUnhealthyThresholdCount() const{ return m_unhealthyThresholdCount; }
/**
* <p>The number of consecutive health check failures required before considering a
* target unhealthy. For target groups with a protocol of HTTP or HTTPS, the
* default is 2. For target groups with a protocol of TCP or TLS, this value must
* be the same as the healthy threshold count. If the target type is
* <code>lambda</code>, the default is 2.</p>
*/
inline bool UnhealthyThresholdCountHasBeenSet() const { return m_unhealthyThresholdCountHasBeenSet; }
/**
* <p>The number of consecutive health check failures required before considering a
* target unhealthy. For target groups with a protocol of HTTP or HTTPS, the
* default is 2. For target groups with a protocol of TCP or TLS, this value must
* be the same as the healthy threshold count. If the target type is
* <code>lambda</code>, the default is 2.</p>
*/
inline void SetUnhealthyThresholdCount(int value) { m_unhealthyThresholdCountHasBeenSet = true; m_unhealthyThresholdCount = value; }
/**
* <p>The number of consecutive health check failures required before considering a
* target unhealthy. For target groups with a protocol of HTTP or HTTPS, the
* default is 2. For target groups with a protocol of TCP or TLS, this value must
* be the same as the healthy threshold count. If the target type is
* <code>lambda</code>, the default is 2.</p>
*/
inline CreateTargetGroupRequest& WithUnhealthyThresholdCount(int value) { SetUnhealthyThresholdCount(value); return *this;}
/**
* <p>[HTTP/HTTPS health checks] The HTTP codes to use when checking for a
* successful response from a target.</p>
*/
inline const Matcher& GetMatcher() const{ return m_matcher; }
/**
* <p>[HTTP/HTTPS health checks] The HTTP codes to use when checking for a
* successful response from a target.</p>
*/
inline bool MatcherHasBeenSet() const { return m_matcherHasBeenSet; }
/**
* <p>[HTTP/HTTPS health checks] The HTTP codes to use when checking for a
* successful response from a target.</p>
*/
inline void SetMatcher(const Matcher& value) { m_matcherHasBeenSet = true; m_matcher = value; }
/**
* <p>[HTTP/HTTPS health checks] The HTTP codes to use when checking for a
* successful response from a target.</p>
*/
inline void SetMatcher(Matcher&& value) { m_matcherHasBeenSet = true; m_matcher = std::move(value); }
/**
* <p>[HTTP/HTTPS health checks] The HTTP codes to use when checking for a
* successful response from a target.</p>
*/
inline CreateTargetGroupRequest& WithMatcher(const Matcher& value) { SetMatcher(value); return *this;}
/**
* <p>[HTTP/HTTPS health checks] The HTTP codes to use when checking for a
* successful response from a target.</p>
*/
inline CreateTargetGroupRequest& WithMatcher(Matcher&& value) { SetMatcher(std::move(value)); return *this;}
/**
* <p>The type of target that you must specify when registering targets with this
* target group. You can't specify targets for a target group using more than one
* target type.</p> <ul> <li> <p> <code>instance</code> - Targets are specified by
* instance ID. This is the default value.</p> </li> <li> <p> <code>ip</code> -
* Targets are specified by IP address. You can specify IP addresses from the
* subnets of the virtual private cloud (VPC) for the target group, the RFC 1918
* range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range
* (100.64.0.0/10). You can't specify publicly routable IP addresses.</p> </li>
* <li> <p> <code>lambda</code> - The target groups contains a single Lambda
* function.</p> </li> </ul>
*/
inline const TargetTypeEnum& GetTargetType() const{ return m_targetType; }
/**
* <p>The type of target that you must specify when registering targets with this
* target group. You can't specify targets for a target group using more than one
* target type.</p> <ul> <li> <p> <code>instance</code> - Targets are specified by
* instance ID. This is the default value.</p> </li> <li> <p> <code>ip</code> -
* Targets are specified by IP address. You can specify IP addresses from the
* subnets of the virtual private cloud (VPC) for the target group, the RFC 1918
* range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range
* (100.64.0.0/10). You can't specify publicly routable IP addresses.</p> </li>
* <li> <p> <code>lambda</code> - The target groups contains a single Lambda
* function.</p> </li> </ul>
*/
inline bool TargetTypeHasBeenSet() const { return m_targetTypeHasBeenSet; }
/**
* <p>The type of target that you must specify when registering targets with this
* target group. You can't specify targets for a target group using more than one
* target type.</p> <ul> <li> <p> <code>instance</code> - Targets are specified by
* instance ID. This is the default value.</p> </li> <li> <p> <code>ip</code> -
* Targets are specified by IP address. You can specify IP addresses from the
* subnets of the virtual private cloud (VPC) for the target group, the RFC 1918
* range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range
* (100.64.0.0/10). You can't specify publicly routable IP addresses.</p> </li>
* <li> <p> <code>lambda</code> - The target groups contains a single Lambda
* function.</p> </li> </ul>
*/
inline void SetTargetType(const TargetTypeEnum& value) { m_targetTypeHasBeenSet = true; m_targetType = value; }
/**
* <p>The type of target that you must specify when registering targets with this
* target group. You can't specify targets for a target group using more than one
* target type.</p> <ul> <li> <p> <code>instance</code> - Targets are specified by
* instance ID. This is the default value.</p> </li> <li> <p> <code>ip</code> -
* Targets are specified by IP address. You can specify IP addresses from the
* subnets of the virtual private cloud (VPC) for the target group, the RFC 1918
* range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range
* (100.64.0.0/10). You can't specify publicly routable IP addresses.</p> </li>
* <li> <p> <code>lambda</code> - The target groups contains a single Lambda
* function.</p> </li> </ul>
*/
inline void SetTargetType(TargetTypeEnum&& value) { m_targetTypeHasBeenSet = true; m_targetType = std::move(value); }
/**
* <p>The type of target that you must specify when registering targets with this
* target group. You can't specify targets for a target group using more than one
* target type.</p> <ul> <li> <p> <code>instance</code> - Targets are specified by
* instance ID. This is the default value.</p> </li> <li> <p> <code>ip</code> -
* Targets are specified by IP address. You can specify IP addresses from the
* subnets of the virtual private cloud (VPC) for the target group, the RFC 1918
* range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range
* (100.64.0.0/10). You can't specify publicly routable IP addresses.</p> </li>
* <li> <p> <code>lambda</code> - The target groups contains a single Lambda
* function.</p> </li> </ul>
*/
inline CreateTargetGroupRequest& WithTargetType(const TargetTypeEnum& value) { SetTargetType(value); return *this;}
/**
* <p>The type of target that you must specify when registering targets with this
* target group. You can't specify targets for a target group using more than one
* target type.</p> <ul> <li> <p> <code>instance</code> - Targets are specified by
* instance ID. This is the default value.</p> </li> <li> <p> <code>ip</code> -
* Targets are specified by IP address. You can specify IP addresses from the
* subnets of the virtual private cloud (VPC) for the target group, the RFC 1918
* range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range
* (100.64.0.0/10). You can't specify publicly routable IP addresses.</p> </li>
* <li> <p> <code>lambda</code> - The target groups contains a single Lambda
* function.</p> </li> </ul>
*/
inline CreateTargetGroupRequest& WithTargetType(TargetTypeEnum&& value) { SetTargetType(std::move(value)); return *this;}
private:
Aws::String m_name;
bool m_nameHasBeenSet;
ProtocolEnum m_protocol;
bool m_protocolHasBeenSet;
int m_port;
bool m_portHasBeenSet;
Aws::String m_vpcId;
bool m_vpcIdHasBeenSet;
ProtocolEnum m_healthCheckProtocol;
bool m_healthCheckProtocolHasBeenSet;
Aws::String m_healthCheckPort;
bool m_healthCheckPortHasBeenSet;
bool m_healthCheckEnabled;
bool m_healthCheckEnabledHasBeenSet;
Aws::String m_healthCheckPath;
bool m_healthCheckPathHasBeenSet;
int m_healthCheckIntervalSeconds;
bool m_healthCheckIntervalSecondsHasBeenSet;
int m_healthCheckTimeoutSeconds;
bool m_healthCheckTimeoutSecondsHasBeenSet;
int m_healthyThresholdCount;
bool m_healthyThresholdCountHasBeenSet;
int m_unhealthyThresholdCount;
bool m_unhealthyThresholdCountHasBeenSet;
Matcher m_matcher;
bool m_matcherHasBeenSet;
TargetTypeEnum m_targetType;
bool m_targetTypeHasBeenSet;
};
} // namespace Model
} // namespace ElasticLoadBalancingv2
} // namespace Aws