/** * 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 #include #include #include namespace Aws { namespace ElasticLoadBalancingv2 { namespace Model { /** */ class CreateTargetGroupRequest : public ElasticLoadBalancingv2Request { public: AWS_ELASTICLOADBALANCINGV2_API 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_ELASTICLOADBALANCINGV2_API Aws::String SerializePayload() const override; protected: AWS_ELASTICLOADBALANCINGV2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The name of the target group.

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.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the target group.

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.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the target group.

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.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the target group.

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.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the target group.

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.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the target group.

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.

*/ inline CreateTargetGroupRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the target group.

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.

*/ inline CreateTargetGroupRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the target group.

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.

*/ inline CreateTargetGroupRequest& WithName(const char* value) { SetName(value); return *this;} /** *

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. For Gateway * Load Balancers, the supported protocol is GENEVE. 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.

*/ inline const ProtocolEnum& GetProtocol() const{ return m_protocol; } /** *

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. For Gateway * Load Balancers, the supported protocol is GENEVE. 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.

*/ inline bool ProtocolHasBeenSet() const { return m_protocolHasBeenSet; } /** *

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. For Gateway * Load Balancers, the supported protocol is GENEVE. 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.

*/ inline void SetProtocol(const ProtocolEnum& value) { m_protocolHasBeenSet = true; m_protocol = value; } /** *

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. For Gateway * Load Balancers, the supported protocol is GENEVE. 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.

*/ inline void SetProtocol(ProtocolEnum&& value) { m_protocolHasBeenSet = true; m_protocol = std::move(value); } /** *

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. For Gateway * Load Balancers, the supported protocol is GENEVE. 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.

*/ inline CreateTargetGroupRequest& WithProtocol(const ProtocolEnum& value) { SetProtocol(value); return *this;} /** *

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. For Gateway * Load Balancers, the supported protocol is GENEVE. 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.

*/ inline CreateTargetGroupRequest& WithProtocol(ProtocolEnum&& value) { SetProtocol(std::move(value)); return *this;} /** *

[HTTP/HTTPS protocol] The protocol version. Specify GRPC to send * requests to targets using gRPC. Specify HTTP2 to send requests to * targets using HTTP/2. The default is HTTP1, which sends requests to * targets using HTTP/1.1.

*/ inline const Aws::String& GetProtocolVersion() const{ return m_protocolVersion; } /** *

[HTTP/HTTPS protocol] The protocol version. Specify GRPC to send * requests to targets using gRPC. Specify HTTP2 to send requests to * targets using HTTP/2. The default is HTTP1, which sends requests to * targets using HTTP/1.1.

*/ inline bool ProtocolVersionHasBeenSet() const { return m_protocolVersionHasBeenSet; } /** *

[HTTP/HTTPS protocol] The protocol version. Specify GRPC to send * requests to targets using gRPC. Specify HTTP2 to send requests to * targets using HTTP/2. The default is HTTP1, which sends requests to * targets using HTTP/1.1.

*/ inline void SetProtocolVersion(const Aws::String& value) { m_protocolVersionHasBeenSet = true; m_protocolVersion = value; } /** *

[HTTP/HTTPS protocol] The protocol version. Specify GRPC to send * requests to targets using gRPC. Specify HTTP2 to send requests to * targets using HTTP/2. The default is HTTP1, which sends requests to * targets using HTTP/1.1.

*/ inline void SetProtocolVersion(Aws::String&& value) { m_protocolVersionHasBeenSet = true; m_protocolVersion = std::move(value); } /** *

[HTTP/HTTPS protocol] The protocol version. Specify GRPC to send * requests to targets using gRPC. Specify HTTP2 to send requests to * targets using HTTP/2. The default is HTTP1, which sends requests to * targets using HTTP/1.1.

*/ inline void SetProtocolVersion(const char* value) { m_protocolVersionHasBeenSet = true; m_protocolVersion.assign(value); } /** *

[HTTP/HTTPS protocol] The protocol version. Specify GRPC to send * requests to targets using gRPC. Specify HTTP2 to send requests to * targets using HTTP/2. The default is HTTP1, which sends requests to * targets using HTTP/1.1.

*/ inline CreateTargetGroupRequest& WithProtocolVersion(const Aws::String& value) { SetProtocolVersion(value); return *this;} /** *

[HTTP/HTTPS protocol] The protocol version. Specify GRPC to send * requests to targets using gRPC. Specify HTTP2 to send requests to * targets using HTTP/2. The default is HTTP1, which sends requests to * targets using HTTP/1.1.

*/ inline CreateTargetGroupRequest& WithProtocolVersion(Aws::String&& value) { SetProtocolVersion(std::move(value)); return *this;} /** *

[HTTP/HTTPS protocol] The protocol version. Specify GRPC to send * requests to targets using gRPC. Specify HTTP2 to send requests to * targets using HTTP/2. The default is HTTP1, which sends requests to * targets using HTTP/1.1.

*/ inline CreateTargetGroupRequest& WithProtocolVersion(const char* value) { SetProtocolVersion(value); return *this;} /** *

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. If the protocol is GENEVE, the * supported port is 6081.

*/ inline int GetPort() const{ return m_port; } /** *

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. If the protocol is GENEVE, the * supported port is 6081.

*/ inline bool PortHasBeenSet() const { return m_portHasBeenSet; } /** *

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. If the protocol is GENEVE, the * supported port is 6081.

*/ inline void SetPort(int value) { m_portHasBeenSet = true; m_port = value; } /** *

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. If the protocol is GENEVE, the * supported port is 6081.

*/ inline CreateTargetGroupRequest& WithPort(int value) { SetPort(value); return *this;} /** *

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.

*/ inline const Aws::String& GetVpcId() const{ return m_vpcId; } /** *

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.

*/ inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; } /** *

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.

*/ inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; } /** *

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.

*/ inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); } /** *

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.

*/ inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); } /** *

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.

*/ inline CreateTargetGroupRequest& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;} /** *

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.

*/ inline CreateTargetGroupRequest& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;} /** *

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.

*/ inline CreateTargetGroupRequest& WithVpcId(const char* value) { SetVpcId(value); return *this;} /** *

The protocol the load balancer uses when performing health checks on targets. * For Application Load Balancers, the default is HTTP. For Network Load Balancers * and Gateway Load Balancers, the default is TCP. The TCP protocol is not * supported for health checks if the protocol of the target group is HTTP or * HTTPS. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health * checks.

*/ inline const ProtocolEnum& GetHealthCheckProtocol() const{ return m_healthCheckProtocol; } /** *

The protocol the load balancer uses when performing health checks on targets. * For Application Load Balancers, the default is HTTP. For Network Load Balancers * and Gateway Load Balancers, the default is TCP. The TCP protocol is not * supported for health checks if the protocol of the target group is HTTP or * HTTPS. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health * checks.

*/ inline bool HealthCheckProtocolHasBeenSet() const { return m_healthCheckProtocolHasBeenSet; } /** *

The protocol the load balancer uses when performing health checks on targets. * For Application Load Balancers, the default is HTTP. For Network Load Balancers * and Gateway Load Balancers, the default is TCP. The TCP protocol is not * supported for health checks if the protocol of the target group is HTTP or * HTTPS. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health * checks.

*/ inline void SetHealthCheckProtocol(const ProtocolEnum& value) { m_healthCheckProtocolHasBeenSet = true; m_healthCheckProtocol = value; } /** *

The protocol the load balancer uses when performing health checks on targets. * For Application Load Balancers, the default is HTTP. For Network Load Balancers * and Gateway Load Balancers, the default is TCP. The TCP protocol is not * supported for health checks if the protocol of the target group is HTTP or * HTTPS. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health * checks.

*/ inline void SetHealthCheckProtocol(ProtocolEnum&& value) { m_healthCheckProtocolHasBeenSet = true; m_healthCheckProtocol = std::move(value); } /** *

The protocol the load balancer uses when performing health checks on targets. * For Application Load Balancers, the default is HTTP. For Network Load Balancers * and Gateway Load Balancers, the default is TCP. The TCP protocol is not * supported for health checks if the protocol of the target group is HTTP or * HTTPS. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health * checks.

*/ inline CreateTargetGroupRequest& WithHealthCheckProtocol(const ProtocolEnum& value) { SetHealthCheckProtocol(value); return *this;} /** *

The protocol the load balancer uses when performing health checks on targets. * For Application Load Balancers, the default is HTTP. For Network Load Balancers * and Gateway Load Balancers, the default is TCP. The TCP protocol is not * supported for health checks if the protocol of the target group is HTTP or * HTTPS. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health * checks.

*/ inline CreateTargetGroupRequest& WithHealthCheckProtocol(ProtocolEnum&& value) { SetHealthCheckProtocol(std::move(value)); return *this;} /** *

The port the load balancer uses when performing health checks on targets. If * the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is * traffic-port, which is the port on which each target receives * traffic from the load balancer. If the protocol is GENEVE, the default is port * 80.

*/ inline const Aws::String& GetHealthCheckPort() const{ return m_healthCheckPort; } /** *

The port the load balancer uses when performing health checks on targets. If * the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is * traffic-port, which is the port on which each target receives * traffic from the load balancer. If the protocol is GENEVE, the default is port * 80.

*/ inline bool HealthCheckPortHasBeenSet() const { return m_healthCheckPortHasBeenSet; } /** *

The port the load balancer uses when performing health checks on targets. If * the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is * traffic-port, which is the port on which each target receives * traffic from the load balancer. If the protocol is GENEVE, the default is port * 80.

*/ inline void SetHealthCheckPort(const Aws::String& value) { m_healthCheckPortHasBeenSet = true; m_healthCheckPort = value; } /** *

The port the load balancer uses when performing health checks on targets. If * the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is * traffic-port, which is the port on which each target receives * traffic from the load balancer. If the protocol is GENEVE, the default is port * 80.

*/ inline void SetHealthCheckPort(Aws::String&& value) { m_healthCheckPortHasBeenSet = true; m_healthCheckPort = std::move(value); } /** *

The port the load balancer uses when performing health checks on targets. If * the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is * traffic-port, which is the port on which each target receives * traffic from the load balancer. If the protocol is GENEVE, the default is port * 80.

*/ inline void SetHealthCheckPort(const char* value) { m_healthCheckPortHasBeenSet = true; m_healthCheckPort.assign(value); } /** *

The port the load balancer uses when performing health checks on targets. If * the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is * traffic-port, which is the port on which each target receives * traffic from the load balancer. If the protocol is GENEVE, the default is port * 80.

*/ inline CreateTargetGroupRequest& WithHealthCheckPort(const Aws::String& value) { SetHealthCheckPort(value); return *this;} /** *

The port the load balancer uses when performing health checks on targets. If * the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is * traffic-port, which is the port on which each target receives * traffic from the load balancer. If the protocol is GENEVE, the default is port * 80.

*/ inline CreateTargetGroupRequest& WithHealthCheckPort(Aws::String&& value) { SetHealthCheckPort(std::move(value)); return *this;} /** *

The port the load balancer uses when performing health checks on targets. If * the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is * traffic-port, which is the port on which each target receives * traffic from the load balancer. If the protocol is GENEVE, the default is port * 80.

*/ inline CreateTargetGroupRequest& WithHealthCheckPort(const char* value) { SetHealthCheckPort(value); return *this;} /** *

Indicates whether health checks are enabled. If the target type is * lambda, health checks are disabled by default but can be enabled. * If the target type is instance, ip, or * alb, health checks are always enabled and cannot be disabled.

*/ inline bool GetHealthCheckEnabled() const{ return m_healthCheckEnabled; } /** *

Indicates whether health checks are enabled. If the target type is * lambda, health checks are disabled by default but can be enabled. * If the target type is instance, ip, or * alb, health checks are always enabled and cannot be disabled.

*/ inline bool HealthCheckEnabledHasBeenSet() const { return m_healthCheckEnabledHasBeenSet; } /** *

Indicates whether health checks are enabled. If the target type is * lambda, health checks are disabled by default but can be enabled. * If the target type is instance, ip, or * alb, health checks are always enabled and cannot be disabled.

*/ inline void SetHealthCheckEnabled(bool value) { m_healthCheckEnabledHasBeenSet = true; m_healthCheckEnabled = value; } /** *

Indicates whether health checks are enabled. If the target type is * lambda, health checks are disabled by default but can be enabled. * If the target type is instance, ip, or * alb, health checks are always enabled and cannot be disabled.

*/ inline CreateTargetGroupRequest& WithHealthCheckEnabled(bool value) { SetHealthCheckEnabled(value); return *this;} /** *

[HTTP/HTTPS health checks] The destination for health checks on the * targets.

[HTTP1 or HTTP2 protocol version] The ping path. The default is * /.

[GRPC protocol version] The path of a custom health check method with * the format /package.service/method. The default is /Amazon Web * Services.ALB/healthcheck.

*/ inline const Aws::String& GetHealthCheckPath() const{ return m_healthCheckPath; } /** *

[HTTP/HTTPS health checks] The destination for health checks on the * targets.

[HTTP1 or HTTP2 protocol version] The ping path. The default is * /.

[GRPC protocol version] The path of a custom health check method with * the format /package.service/method. The default is /Amazon Web * Services.ALB/healthcheck.

*/ inline bool HealthCheckPathHasBeenSet() const { return m_healthCheckPathHasBeenSet; } /** *

[HTTP/HTTPS health checks] The destination for health checks on the * targets.

[HTTP1 or HTTP2 protocol version] The ping path. The default is * /.

[GRPC protocol version] The path of a custom health check method with * the format /package.service/method. The default is /Amazon Web * Services.ALB/healthcheck.

*/ inline void SetHealthCheckPath(const Aws::String& value) { m_healthCheckPathHasBeenSet = true; m_healthCheckPath = value; } /** *

[HTTP/HTTPS health checks] The destination for health checks on the * targets.

[HTTP1 or HTTP2 protocol version] The ping path. The default is * /.

[GRPC protocol version] The path of a custom health check method with * the format /package.service/method. The default is /Amazon Web * Services.ALB/healthcheck.

*/ inline void SetHealthCheckPath(Aws::String&& value) { m_healthCheckPathHasBeenSet = true; m_healthCheckPath = std::move(value); } /** *

[HTTP/HTTPS health checks] The destination for health checks on the * targets.

[HTTP1 or HTTP2 protocol version] The ping path. The default is * /.

[GRPC protocol version] The path of a custom health check method with * the format /package.service/method. The default is /Amazon Web * Services.ALB/healthcheck.

*/ inline void SetHealthCheckPath(const char* value) { m_healthCheckPathHasBeenSet = true; m_healthCheckPath.assign(value); } /** *

[HTTP/HTTPS health checks] The destination for health checks on the * targets.

[HTTP1 or HTTP2 protocol version] The ping path. The default is * /.

[GRPC protocol version] The path of a custom health check method with * the format /package.service/method. The default is /Amazon Web * Services.ALB/healthcheck.

*/ inline CreateTargetGroupRequest& WithHealthCheckPath(const Aws::String& value) { SetHealthCheckPath(value); return *this;} /** *

[HTTP/HTTPS health checks] The destination for health checks on the * targets.

[HTTP1 or HTTP2 protocol version] The ping path. The default is * /.

[GRPC protocol version] The path of a custom health check method with * the format /package.service/method. The default is /Amazon Web * Services.ALB/healthcheck.

*/ inline CreateTargetGroupRequest& WithHealthCheckPath(Aws::String&& value) { SetHealthCheckPath(std::move(value)); return *this;} /** *

[HTTP/HTTPS health checks] The destination for health checks on the * targets.

[HTTP1 or HTTP2 protocol version] The ping path. The default is * /.

[GRPC protocol version] The path of a custom health check method with * the format /package.service/method. The default is /Amazon Web * Services.ALB/healthcheck.

*/ inline CreateTargetGroupRequest& WithHealthCheckPath(const char* value) { SetHealthCheckPath(value); return *this;} /** *

The approximate amount of time, in seconds, between health checks of an * individual target. The range is 5-300. If the target group protocol is TCP, TLS, * UDP, TCP_UDP, HTTP or HTTPS, the default is 30 seconds. If the target group * protocol is GENEVE, the default is 10 seconds. If the target type is * lambda, the default is 35 seconds.

*/ inline int GetHealthCheckIntervalSeconds() const{ return m_healthCheckIntervalSeconds; } /** *

The approximate amount of time, in seconds, between health checks of an * individual target. The range is 5-300. If the target group protocol is TCP, TLS, * UDP, TCP_UDP, HTTP or HTTPS, the default is 30 seconds. If the target group * protocol is GENEVE, the default is 10 seconds. If the target type is * lambda, the default is 35 seconds.

*/ inline bool HealthCheckIntervalSecondsHasBeenSet() const { return m_healthCheckIntervalSecondsHasBeenSet; } /** *

The approximate amount of time, in seconds, between health checks of an * individual target. The range is 5-300. If the target group protocol is TCP, TLS, * UDP, TCP_UDP, HTTP or HTTPS, the default is 30 seconds. If the target group * protocol is GENEVE, the default is 10 seconds. If the target type is * lambda, the default is 35 seconds.

*/ inline void SetHealthCheckIntervalSeconds(int value) { m_healthCheckIntervalSecondsHasBeenSet = true; m_healthCheckIntervalSeconds = value; } /** *

The approximate amount of time, in seconds, between health checks of an * individual target. The range is 5-300. If the target group protocol is TCP, TLS, * UDP, TCP_UDP, HTTP or HTTPS, the default is 30 seconds. If the target group * protocol is GENEVE, the default is 10 seconds. If the target type is * lambda, the default is 35 seconds.

*/ inline CreateTargetGroupRequest& WithHealthCheckIntervalSeconds(int value) { SetHealthCheckIntervalSeconds(value); return *this;} /** *

The amount of time, in seconds, during which no response from a target means * a failed health check. The range is 2–120 seconds. For target groups with a * protocol of HTTP, the default is 6 seconds. For target groups with a protocol of * TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a protocol * of GENEVE, the default is 5 seconds. If the target type is lambda, * the default is 30 seconds.

*/ inline int GetHealthCheckTimeoutSeconds() const{ return m_healthCheckTimeoutSeconds; } /** *

The amount of time, in seconds, during which no response from a target means * a failed health check. The range is 2–120 seconds. For target groups with a * protocol of HTTP, the default is 6 seconds. For target groups with a protocol of * TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a protocol * of GENEVE, the default is 5 seconds. If the target type is lambda, * the default is 30 seconds.

*/ inline bool HealthCheckTimeoutSecondsHasBeenSet() const { return m_healthCheckTimeoutSecondsHasBeenSet; } /** *

The amount of time, in seconds, during which no response from a target means * a failed health check. The range is 2–120 seconds. For target groups with a * protocol of HTTP, the default is 6 seconds. For target groups with a protocol of * TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a protocol * of GENEVE, the default is 5 seconds. If the target type is lambda, * the default is 30 seconds.

*/ inline void SetHealthCheckTimeoutSeconds(int value) { m_healthCheckTimeoutSecondsHasBeenSet = true; m_healthCheckTimeoutSeconds = value; } /** *

The amount of time, in seconds, during which no response from a target means * a failed health check. The range is 2–120 seconds. For target groups with a * protocol of HTTP, the default is 6 seconds. For target groups with a protocol of * TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a protocol * of GENEVE, the default is 5 seconds. If the target type is lambda, * the default is 30 seconds.

*/ inline CreateTargetGroupRequest& WithHealthCheckTimeoutSeconds(int value) { SetHealthCheckTimeoutSeconds(value); return *this;} /** *

The number of consecutive health check successes required before considering * a target healthy. The range is 2-10. If the target group protocol is TCP, * TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 5. For target groups with a * protocol of GENEVE, the default is 5. If the target type is lambda, * the default is 5.

*/ inline int GetHealthyThresholdCount() const{ return m_healthyThresholdCount; } /** *

The number of consecutive health check successes required before considering * a target healthy. The range is 2-10. If the target group protocol is TCP, * TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 5. For target groups with a * protocol of GENEVE, the default is 5. If the target type is lambda, * the default is 5.

*/ inline bool HealthyThresholdCountHasBeenSet() const { return m_healthyThresholdCountHasBeenSet; } /** *

The number of consecutive health check successes required before considering * a target healthy. The range is 2-10. If the target group protocol is TCP, * TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 5. For target groups with a * protocol of GENEVE, the default is 5. If the target type is lambda, * the default is 5.

*/ inline void SetHealthyThresholdCount(int value) { m_healthyThresholdCountHasBeenSet = true; m_healthyThresholdCount = value; } /** *

The number of consecutive health check successes required before considering * a target healthy. The range is 2-10. If the target group protocol is TCP, * TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 5. For target groups with a * protocol of GENEVE, the default is 5. If the target type is lambda, * the default is 5.

*/ inline CreateTargetGroupRequest& WithHealthyThresholdCount(int value) { SetHealthyThresholdCount(value); return *this;} /** *

The number of consecutive health check failures required before considering a * target unhealthy. The range is 2-10. If the target group protocol is TCP, * TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 2. For target groups with a * protocol of GENEVE, the default is 2. If the target type is lambda, * the default is 5.

*/ inline int GetUnhealthyThresholdCount() const{ return m_unhealthyThresholdCount; } /** *

The number of consecutive health check failures required before considering a * target unhealthy. The range is 2-10. If the target group protocol is TCP, * TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 2. For target groups with a * protocol of GENEVE, the default is 2. If the target type is lambda, * the default is 5.

*/ inline bool UnhealthyThresholdCountHasBeenSet() const { return m_unhealthyThresholdCountHasBeenSet; } /** *

The number of consecutive health check failures required before considering a * target unhealthy. The range is 2-10. If the target group protocol is TCP, * TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 2. For target groups with a * protocol of GENEVE, the default is 2. If the target type is lambda, * the default is 5.

*/ inline void SetUnhealthyThresholdCount(int value) { m_unhealthyThresholdCountHasBeenSet = true; m_unhealthyThresholdCount = value; } /** *

The number of consecutive health check failures required before considering a * target unhealthy. The range is 2-10. If the target group protocol is TCP, * TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 2. For target groups with a * protocol of GENEVE, the default is 2. If the target type is lambda, * the default is 5.

*/ inline CreateTargetGroupRequest& WithUnhealthyThresholdCount(int value) { SetUnhealthyThresholdCount(value); return *this;} /** *

[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a * successful response from a target. For target groups with a protocol of TCP, * TCP_UDP, UDP or TLS the range is 200-599. For target groups with a protocol of * HTTP or HTTPS, the range is 200-499. For target groups with a protocol of * GENEVE, the range is 200-399.

*/ inline const Matcher& GetMatcher() const{ return m_matcher; } /** *

[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a * successful response from a target. For target groups with a protocol of TCP, * TCP_UDP, UDP or TLS the range is 200-599. For target groups with a protocol of * HTTP or HTTPS, the range is 200-499. For target groups with a protocol of * GENEVE, the range is 200-399.

*/ inline bool MatcherHasBeenSet() const { return m_matcherHasBeenSet; } /** *

[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a * successful response from a target. For target groups with a protocol of TCP, * TCP_UDP, UDP or TLS the range is 200-599. For target groups with a protocol of * HTTP or HTTPS, the range is 200-499. For target groups with a protocol of * GENEVE, the range is 200-399.

*/ inline void SetMatcher(const Matcher& value) { m_matcherHasBeenSet = true; m_matcher = value; } /** *

[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a * successful response from a target. For target groups with a protocol of TCP, * TCP_UDP, UDP or TLS the range is 200-599. For target groups with a protocol of * HTTP or HTTPS, the range is 200-499. For target groups with a protocol of * GENEVE, the range is 200-399.

*/ inline void SetMatcher(Matcher&& value) { m_matcherHasBeenSet = true; m_matcher = std::move(value); } /** *

[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a * successful response from a target. For target groups with a protocol of TCP, * TCP_UDP, UDP or TLS the range is 200-599. For target groups with a protocol of * HTTP or HTTPS, the range is 200-499. For target groups with a protocol of * GENEVE, the range is 200-399.

*/ inline CreateTargetGroupRequest& WithMatcher(const Matcher& value) { SetMatcher(value); return *this;} /** *

[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a * successful response from a target. For target groups with a protocol of TCP, * TCP_UDP, UDP or TLS the range is 200-599. For target groups with a protocol of * HTTP or HTTPS, the range is 200-499. For target groups with a protocol of * GENEVE, the range is 200-399.

*/ inline CreateTargetGroupRequest& WithMatcher(Matcher&& value) { SetMatcher(std::move(value)); return *this;} /** *

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.

  • instance - Register targets by * instance ID. This is the default value.

  • ip - * Register targets 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.

  • *
  • lambda - Register a single Lambda function as a * target.

  • alb - Register a single Application Load * Balancer as a target.

*/ inline const TargetTypeEnum& GetTargetType() const{ return m_targetType; } /** *

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.

  • instance - Register targets by * instance ID. This is the default value.

  • ip - * Register targets 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.

  • *
  • lambda - Register a single Lambda function as a * target.

  • alb - Register a single Application Load * Balancer as a target.

*/ inline bool TargetTypeHasBeenSet() const { return m_targetTypeHasBeenSet; } /** *

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.

  • instance - Register targets by * instance ID. This is the default value.

  • ip - * Register targets 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.

  • *
  • lambda - Register a single Lambda function as a * target.

  • alb - Register a single Application Load * Balancer as a target.

*/ inline void SetTargetType(const TargetTypeEnum& value) { m_targetTypeHasBeenSet = true; m_targetType = value; } /** *

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.

  • instance - Register targets by * instance ID. This is the default value.

  • ip - * Register targets 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.

  • *
  • lambda - Register a single Lambda function as a * target.

  • alb - Register a single Application Load * Balancer as a target.

*/ inline void SetTargetType(TargetTypeEnum&& value) { m_targetTypeHasBeenSet = true; m_targetType = std::move(value); } /** *

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.

  • instance - Register targets by * instance ID. This is the default value.

  • ip - * Register targets 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.

  • *
  • lambda - Register a single Lambda function as a * target.

  • alb - Register a single Application Load * Balancer as a target.

*/ inline CreateTargetGroupRequest& WithTargetType(const TargetTypeEnum& value) { SetTargetType(value); return *this;} /** *

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.

  • instance - Register targets by * instance ID. This is the default value.

  • ip - * Register targets 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.

  • *
  • lambda - Register a single Lambda function as a * target.

  • alb - Register a single Application Load * Balancer as a target.

*/ inline CreateTargetGroupRequest& WithTargetType(TargetTypeEnum&& value) { SetTargetType(std::move(value)); return *this;} /** *

The tags to assign to the target group.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The tags to assign to the target group.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tags to assign to the target group.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The tags to assign to the target group.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The tags to assign to the target group.

*/ inline CreateTargetGroupRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The tags to assign to the target group.

*/ inline CreateTargetGroupRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The tags to assign to the target group.

*/ inline CreateTargetGroupRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The tags to assign to the target group.

*/ inline CreateTargetGroupRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The type of IP address used for this target group. The possible values are * ipv4 and ipv6. This is an optional parameter. If not * specified, the IP address type defaults to ipv4.

*/ inline const TargetGroupIpAddressTypeEnum& GetIpAddressType() const{ return m_ipAddressType; } /** *

The type of IP address used for this target group. The possible values are * ipv4 and ipv6. This is an optional parameter. If not * specified, the IP address type defaults to ipv4.

*/ inline bool IpAddressTypeHasBeenSet() const { return m_ipAddressTypeHasBeenSet; } /** *

The type of IP address used for this target group. The possible values are * ipv4 and ipv6. This is an optional parameter. If not * specified, the IP address type defaults to ipv4.

*/ inline void SetIpAddressType(const TargetGroupIpAddressTypeEnum& value) { m_ipAddressTypeHasBeenSet = true; m_ipAddressType = value; } /** *

The type of IP address used for this target group. The possible values are * ipv4 and ipv6. This is an optional parameter. If not * specified, the IP address type defaults to ipv4.

*/ inline void SetIpAddressType(TargetGroupIpAddressTypeEnum&& value) { m_ipAddressTypeHasBeenSet = true; m_ipAddressType = std::move(value); } /** *

The type of IP address used for this target group. The possible values are * ipv4 and ipv6. This is an optional parameter. If not * specified, the IP address type defaults to ipv4.

*/ inline CreateTargetGroupRequest& WithIpAddressType(const TargetGroupIpAddressTypeEnum& value) { SetIpAddressType(value); return *this;} /** *

The type of IP address used for this target group. The possible values are * ipv4 and ipv6. This is an optional parameter. If not * specified, the IP address type defaults to ipv4.

*/ inline CreateTargetGroupRequest& WithIpAddressType(TargetGroupIpAddressTypeEnum&& value) { SetIpAddressType(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; ProtocolEnum m_protocol; bool m_protocolHasBeenSet = false; Aws::String m_protocolVersion; bool m_protocolVersionHasBeenSet = false; int m_port; bool m_portHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; ProtocolEnum m_healthCheckProtocol; bool m_healthCheckProtocolHasBeenSet = false; Aws::String m_healthCheckPort; bool m_healthCheckPortHasBeenSet = false; bool m_healthCheckEnabled; bool m_healthCheckEnabledHasBeenSet = false; Aws::String m_healthCheckPath; bool m_healthCheckPathHasBeenSet = false; int m_healthCheckIntervalSeconds; bool m_healthCheckIntervalSecondsHasBeenSet = false; int m_healthCheckTimeoutSeconds; bool m_healthCheckTimeoutSecondsHasBeenSet = false; int m_healthyThresholdCount; bool m_healthyThresholdCountHasBeenSet = false; int m_unhealthyThresholdCount; bool m_unhealthyThresholdCountHasBeenSet = false; Matcher m_matcher; bool m_matcherHasBeenSet = false; TargetTypeEnum m_targetType; bool m_targetTypeHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; TargetGroupIpAddressTypeEnum m_ipAddressType; bool m_ipAddressTypeHasBeenSet = false; }; } // namespace Model } // namespace ElasticLoadBalancingv2 } // namespace Aws