/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace ElasticLoadBalancingv2 { namespace Model { /** */ class AWS_ELASTICLOADBALANCINGV2_API ModifyTargetGroupRequest : public ElasticLoadBalancingv2Request { public: ModifyTargetGroupRequest(); // 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 "ModifyTargetGroup"; } Aws::String SerializePayload() const override; protected: void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The Amazon Resource Name (ARN) of the target group.

*/ inline const Aws::String& GetTargetGroupArn() const{ return m_targetGroupArn; } /** *

The Amazon Resource Name (ARN) of the target group.

*/ inline bool TargetGroupArnHasBeenSet() const { return m_targetGroupArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the target group.

*/ inline void SetTargetGroupArn(const Aws::String& value) { m_targetGroupArnHasBeenSet = true; m_targetGroupArn = value; } /** *

The Amazon Resource Name (ARN) of the target group.

*/ inline void SetTargetGroupArn(Aws::String&& value) { m_targetGroupArnHasBeenSet = true; m_targetGroupArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the target group.

*/ inline void SetTargetGroupArn(const char* value) { m_targetGroupArnHasBeenSet = true; m_targetGroupArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the target group.

*/ inline ModifyTargetGroupRequest& WithTargetGroupArn(const Aws::String& value) { SetTargetGroupArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the target group.

*/ inline ModifyTargetGroupRequest& WithTargetGroupArn(Aws::String&& value) { SetTargetGroupArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the target group.

*/ inline ModifyTargetGroupRequest& WithTargetGroupArn(const char* value) { SetTargetGroupArn(value); return *this;} /** *

The protocol the load balancer uses when performing health checks on targets. * 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.

With Network Load Balancers, you * can't modify this setting.

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

The protocol the load balancer uses when performing health checks on targets. * 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.

With Network Load Balancers, you * can't modify this setting.

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

The protocol the load balancer uses when performing health checks on targets. * 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.

With Network Load Balancers, you * can't modify this setting.

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

The protocol the load balancer uses when performing health checks on targets. * 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.

With Network Load Balancers, you * can't modify this setting.

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

With Network Load Balancers, you * can't modify this setting.

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

The protocol the load balancer uses when performing health checks on targets. * 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.

With Network Load Balancers, you * can't modify this setting.

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

The port the load balancer uses when performing health checks on targets.

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

The port the load balancer uses when performing health checks on targets.

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

The port the load balancer uses when performing health checks on targets.

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

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

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

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

The port the load balancer uses when performing health checks on targets.

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

The port the load balancer uses when performing health checks on targets.

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

[HTTP/HTTPS health checks] The ping path that is the destination for the * health check request.

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

[HTTP/HTTPS health checks] The ping path that is the destination for the * health check request.

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

[HTTP/HTTPS health checks] The ping path that is the destination for the * health check request.

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

[HTTP/HTTPS health checks] The ping path that is the destination for the * health check request.

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

[HTTP/HTTPS health checks] The ping path that is the destination for the * health check request.

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

[HTTP/HTTPS health checks] The ping path that is the destination for the * health check request.

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

[HTTP/HTTPS health checks] The ping path that is the destination for the * health check request.

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

[HTTP/HTTPS health checks] The ping path that is the destination for the * health check request.

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

Indicates whether health checks are enabled.

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

Indicates whether health checks are enabled.

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

Indicates whether health checks are enabled.

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

Indicates whether health checks are enabled.

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

The approximate amount of time, in seconds, between health checks of an * individual target. For Application Load Balancers, the range is 5 to 300 * seconds. For Network Load Balancers, the supported values are 10 or 30 * seconds.

With Network Load Balancers, you can't modify this setting.

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

The approximate amount of time, in seconds, between health checks of an * individual target. For Application Load Balancers, the range is 5 to 300 * seconds. For Network Load Balancers, the supported values are 10 or 30 * seconds.

With Network Load Balancers, you can't modify this setting.

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

The approximate amount of time, in seconds, between health checks of an * individual target. For Application Load Balancers, the range is 5 to 300 * seconds. For Network Load Balancers, the supported values are 10 or 30 * seconds.

With Network Load Balancers, you can't modify this setting.

*/ 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. For Application Load Balancers, the range is 5 to 300 * seconds. For Network Load Balancers, the supported values are 10 or 30 * seconds.

With Network Load Balancers, you can't modify this setting.

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

[HTTP/HTTPS health checks] The amount of time, in seconds, during which no * response means a failed health check.

With Network Load Balancers, you * can't modify this setting.

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

[HTTP/HTTPS health checks] The amount of time, in seconds, during which no * response means a failed health check.

With Network Load Balancers, you * can't modify this setting.

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

[HTTP/HTTPS health checks] The amount of time, in seconds, during which no * response means a failed health check.

With Network Load Balancers, you * can't modify this setting.

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

[HTTP/HTTPS health checks] The amount of time, in seconds, during which no * response means a failed health check.

With Network Load Balancers, you * can't modify this setting.

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

The number of consecutive health checks successes required before considering * an unhealthy target healthy.

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

The number of consecutive health checks successes required before considering * an unhealthy target healthy.

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

The number of consecutive health checks successes required before considering * an unhealthy target healthy.

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

The number of consecutive health checks successes required before considering * an unhealthy target healthy.

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

The number of consecutive health check failures required before considering * the target unhealthy. For Network Load Balancers, this value must be the same as * the healthy threshold count.

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

The number of consecutive health check failures required before considering * the target unhealthy. For Network Load Balancers, this value must be the same as * the healthy threshold count.

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

The number of consecutive health check failures required before considering * the target unhealthy. For Network Load Balancers, this value must be the same as * the healthy threshold count.

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

The number of consecutive health check failures required before considering * the target unhealthy. For Network Load Balancers, this value must be the same as * the healthy threshold count.

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

[HTTP/HTTPS health checks] The HTTP codes to use when checking for a * successful response from a target. The possible values are from 200 to 499. You * can specify multiple values (for example, "200,202") or a range of values (for * example, "200-299"). The default is 200.

With Network Load Balancers, you * can't modify this setting.

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

[HTTP/HTTPS health checks] The HTTP codes to use when checking for a * successful response from a target. The possible values are from 200 to 499. You * can specify multiple values (for example, "200,202") or a range of values (for * example, "200-299"). The default is 200.

With Network Load Balancers, you * can't modify this setting.

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

[HTTP/HTTPS health checks] The HTTP codes to use when checking for a * successful response from a target. The possible values are from 200 to 499. You * can specify multiple values (for example, "200,202") or a range of values (for * example, "200-299"). The default is 200.

With Network Load Balancers, you * can't modify this setting.

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

[HTTP/HTTPS health checks] The HTTP codes to use when checking for a * successful response from a target. The possible values are from 200 to 499. You * can specify multiple values (for example, "200,202") or a range of values (for * example, "200-299"). The default is 200.

With Network Load Balancers, you * can't modify this setting.

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

[HTTP/HTTPS health checks] The HTTP codes to use when checking for a * successful response from a target. The possible values are from 200 to 499. You * can specify multiple values (for example, "200,202") or a range of values (for * example, "200-299"). The default is 200.

With Network Load Balancers, you * can't modify this setting.

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

[HTTP/HTTPS health checks] The HTTP codes to use when checking for a * successful response from a target. The possible values are from 200 to 499. You * can specify multiple values (for example, "200,202") or a range of values (for * example, "200-299"). The default is 200.

With Network Load Balancers, you * can't modify this setting.

*/ inline ModifyTargetGroupRequest& WithMatcher(Matcher&& value) { SetMatcher(std::move(value)); return *this;} private: Aws::String m_targetGroupArn; bool m_targetGroupArnHasBeenSet; ProtocolEnum m_healthCheckProtocol; bool m_healthCheckProtocolHasBeenSet; Aws::String m_healthCheckPort; bool m_healthCheckPortHasBeenSet; Aws::String m_healthCheckPath; bool m_healthCheckPathHasBeenSet; bool m_healthCheckEnabled; bool m_healthCheckEnabledHasBeenSet; 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; }; } // namespace Model } // namespace ElasticLoadBalancingv2 } // namespace Aws