/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace ElasticLoadBalancingv2 { namespace Model { /** *

Information about a target group attribute.

See Also:

AWS * API Reference

*/ class AWS_ELASTICLOADBALANCINGV2_API TargetGroupAttribute { public: TargetGroupAttribute(); TargetGroupAttribute(const Aws::Utils::Xml::XmlNode& xmlNode); TargetGroupAttribute& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The name of the attribute.

The following attributes are supported by * both Application Load Balancers and Network Load Balancers:

  • * deregistration_delay.timeout_seconds - The amount of time, in * seconds, for Elastic Load Balancing to wait before changing the state of a * deregistering target from draining to unused. The * range is 0-3600 seconds. The default value is 300 seconds. If the target is a * Lambda function, this attribute is not supported.

  • * stickiness.enabled - Indicates whether sticky sessions are enabled. * The value is true or false. The default is * false.

  • stickiness.type - The type * of sticky sessions. The possible values are lb_cookie for * Application Load Balancers or source_ip for Network Load * Balancers.

The following attributes are supported only if the * load balancer is an Application Load Balancer and the target is an instance or * an IP address:

  • load_balancing.algorithm.type - * The load balancing algorithm determines how the load balancer selects targets * when routing requests. The value is round_robin or * least_outstanding_requests. The default is * round_robin.

  • * slow_start.duration_seconds - The time period, in seconds, during * which a newly registered target receives an increasing share of the traffic to * the target group. After this time period ends, the target receives its full * share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 * seconds (disabled).

  • * stickiness.lb_cookie.duration_seconds - The time period, in * seconds, during which requests from a client should be routed to the same * target. After this time period expires, the load balancer-generated cookie is * considered stale. The range is 1 second to 1 week (604800 seconds). The default * value is 1 day (86400 seconds).

The following attribute is * supported only if the load balancer is an Application Load Balancer and the * target is a Lambda function:

  • * lambda.multi_value_headers.enabled - Indicates whether the request * and response headers that are exchanged between the load balancer and the Lambda * function include arrays of values or strings. The value is true or * false. The default is false. If the value is * false and the request contains a duplicate header field name or * query parameter key, the load balancer uses the last value sent by the * client.

The following attribute is supported only by Network * Load Balancers:

  • proxy_protocol_v2.enabled - * Indicates whether Proxy Protocol version 2 is enabled. The value is * true or false. The default is false.

    *
*/ inline const Aws::String& GetKey() const{ return m_key; } /** *

The name of the attribute.

The following attributes are supported by * both Application Load Balancers and Network Load Balancers:

  • * deregistration_delay.timeout_seconds - The amount of time, in * seconds, for Elastic Load Balancing to wait before changing the state of a * deregistering target from draining to unused. The * range is 0-3600 seconds. The default value is 300 seconds. If the target is a * Lambda function, this attribute is not supported.

  • * stickiness.enabled - Indicates whether sticky sessions are enabled. * The value is true or false. The default is * false.

  • stickiness.type - The type * of sticky sessions. The possible values are lb_cookie for * Application Load Balancers or source_ip for Network Load * Balancers.

The following attributes are supported only if the * load balancer is an Application Load Balancer and the target is an instance or * an IP address:

  • load_balancing.algorithm.type - * The load balancing algorithm determines how the load balancer selects targets * when routing requests. The value is round_robin or * least_outstanding_requests. The default is * round_robin.

  • * slow_start.duration_seconds - The time period, in seconds, during * which a newly registered target receives an increasing share of the traffic to * the target group. After this time period ends, the target receives its full * share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 * seconds (disabled).

  • * stickiness.lb_cookie.duration_seconds - The time period, in * seconds, during which requests from a client should be routed to the same * target. After this time period expires, the load balancer-generated cookie is * considered stale. The range is 1 second to 1 week (604800 seconds). The default * value is 1 day (86400 seconds).

The following attribute is * supported only if the load balancer is an Application Load Balancer and the * target is a Lambda function:

  • * lambda.multi_value_headers.enabled - Indicates whether the request * and response headers that are exchanged between the load balancer and the Lambda * function include arrays of values or strings. The value is true or * false. The default is false. If the value is * false and the request contains a duplicate header field name or * query parameter key, the load balancer uses the last value sent by the * client.

The following attribute is supported only by Network * Load Balancers:

  • proxy_protocol_v2.enabled - * Indicates whether Proxy Protocol version 2 is enabled. The value is * true or false. The default is false.

    *
*/ inline bool KeyHasBeenSet() const { return m_keyHasBeenSet; } /** *

The name of the attribute.

The following attributes are supported by * both Application Load Balancers and Network Load Balancers:

  • * deregistration_delay.timeout_seconds - The amount of time, in * seconds, for Elastic Load Balancing to wait before changing the state of a * deregistering target from draining to unused. The * range is 0-3600 seconds. The default value is 300 seconds. If the target is a * Lambda function, this attribute is not supported.

  • * stickiness.enabled - Indicates whether sticky sessions are enabled. * The value is true or false. The default is * false.

  • stickiness.type - The type * of sticky sessions. The possible values are lb_cookie for * Application Load Balancers or source_ip for Network Load * Balancers.

The following attributes are supported only if the * load balancer is an Application Load Balancer and the target is an instance or * an IP address:

  • load_balancing.algorithm.type - * The load balancing algorithm determines how the load balancer selects targets * when routing requests. The value is round_robin or * least_outstanding_requests. The default is * round_robin.

  • * slow_start.duration_seconds - The time period, in seconds, during * which a newly registered target receives an increasing share of the traffic to * the target group. After this time period ends, the target receives its full * share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 * seconds (disabled).

  • * stickiness.lb_cookie.duration_seconds - The time period, in * seconds, during which requests from a client should be routed to the same * target. After this time period expires, the load balancer-generated cookie is * considered stale. The range is 1 second to 1 week (604800 seconds). The default * value is 1 day (86400 seconds).

The following attribute is * supported only if the load balancer is an Application Load Balancer and the * target is a Lambda function:

  • * lambda.multi_value_headers.enabled - Indicates whether the request * and response headers that are exchanged between the load balancer and the Lambda * function include arrays of values or strings. The value is true or * false. The default is false. If the value is * false and the request contains a duplicate header field name or * query parameter key, the load balancer uses the last value sent by the * client.

The following attribute is supported only by Network * Load Balancers:

  • proxy_protocol_v2.enabled - * Indicates whether Proxy Protocol version 2 is enabled. The value is * true or false. The default is false.

    *
*/ inline void SetKey(const Aws::String& value) { m_keyHasBeenSet = true; m_key = value; } /** *

The name of the attribute.

The following attributes are supported by * both Application Load Balancers and Network Load Balancers:

  • * deregistration_delay.timeout_seconds - The amount of time, in * seconds, for Elastic Load Balancing to wait before changing the state of a * deregistering target from draining to unused. The * range is 0-3600 seconds. The default value is 300 seconds. If the target is a * Lambda function, this attribute is not supported.

  • * stickiness.enabled - Indicates whether sticky sessions are enabled. * The value is true or false. The default is * false.

  • stickiness.type - The type * of sticky sessions. The possible values are lb_cookie for * Application Load Balancers or source_ip for Network Load * Balancers.

The following attributes are supported only if the * load balancer is an Application Load Balancer and the target is an instance or * an IP address:

  • load_balancing.algorithm.type - * The load balancing algorithm determines how the load balancer selects targets * when routing requests. The value is round_robin or * least_outstanding_requests. The default is * round_robin.

  • * slow_start.duration_seconds - The time period, in seconds, during * which a newly registered target receives an increasing share of the traffic to * the target group. After this time period ends, the target receives its full * share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 * seconds (disabled).

  • * stickiness.lb_cookie.duration_seconds - The time period, in * seconds, during which requests from a client should be routed to the same * target. After this time period expires, the load balancer-generated cookie is * considered stale. The range is 1 second to 1 week (604800 seconds). The default * value is 1 day (86400 seconds).

The following attribute is * supported only if the load balancer is an Application Load Balancer and the * target is a Lambda function:

  • * lambda.multi_value_headers.enabled - Indicates whether the request * and response headers that are exchanged between the load balancer and the Lambda * function include arrays of values or strings. The value is true or * false. The default is false. If the value is * false and the request contains a duplicate header field name or * query parameter key, the load balancer uses the last value sent by the * client.

The following attribute is supported only by Network * Load Balancers:

  • proxy_protocol_v2.enabled - * Indicates whether Proxy Protocol version 2 is enabled. The value is * true or false. The default is false.

    *
*/ inline void SetKey(Aws::String&& value) { m_keyHasBeenSet = true; m_key = std::move(value); } /** *

The name of the attribute.

The following attributes are supported by * both Application Load Balancers and Network Load Balancers:

  • * deregistration_delay.timeout_seconds - The amount of time, in * seconds, for Elastic Load Balancing to wait before changing the state of a * deregistering target from draining to unused. The * range is 0-3600 seconds. The default value is 300 seconds. If the target is a * Lambda function, this attribute is not supported.

  • * stickiness.enabled - Indicates whether sticky sessions are enabled. * The value is true or false. The default is * false.

  • stickiness.type - The type * of sticky sessions. The possible values are lb_cookie for * Application Load Balancers or source_ip for Network Load * Balancers.

The following attributes are supported only if the * load balancer is an Application Load Balancer and the target is an instance or * an IP address:

  • load_balancing.algorithm.type - * The load balancing algorithm determines how the load balancer selects targets * when routing requests. The value is round_robin or * least_outstanding_requests. The default is * round_robin.

  • * slow_start.duration_seconds - The time period, in seconds, during * which a newly registered target receives an increasing share of the traffic to * the target group. After this time period ends, the target receives its full * share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 * seconds (disabled).

  • * stickiness.lb_cookie.duration_seconds - The time period, in * seconds, during which requests from a client should be routed to the same * target. After this time period expires, the load balancer-generated cookie is * considered stale. The range is 1 second to 1 week (604800 seconds). The default * value is 1 day (86400 seconds).

The following attribute is * supported only if the load balancer is an Application Load Balancer and the * target is a Lambda function:

  • * lambda.multi_value_headers.enabled - Indicates whether the request * and response headers that are exchanged between the load balancer and the Lambda * function include arrays of values or strings. The value is true or * false. The default is false. If the value is * false and the request contains a duplicate header field name or * query parameter key, the load balancer uses the last value sent by the * client.

The following attribute is supported only by Network * Load Balancers:

  • proxy_protocol_v2.enabled - * Indicates whether Proxy Protocol version 2 is enabled. The value is * true or false. The default is false.

    *
*/ inline void SetKey(const char* value) { m_keyHasBeenSet = true; m_key.assign(value); } /** *

The name of the attribute.

The following attributes are supported by * both Application Load Balancers and Network Load Balancers:

  • * deregistration_delay.timeout_seconds - The amount of time, in * seconds, for Elastic Load Balancing to wait before changing the state of a * deregistering target from draining to unused. The * range is 0-3600 seconds. The default value is 300 seconds. If the target is a * Lambda function, this attribute is not supported.

  • * stickiness.enabled - Indicates whether sticky sessions are enabled. * The value is true or false. The default is * false.

  • stickiness.type - The type * of sticky sessions. The possible values are lb_cookie for * Application Load Balancers or source_ip for Network Load * Balancers.

The following attributes are supported only if the * load balancer is an Application Load Balancer and the target is an instance or * an IP address:

  • load_balancing.algorithm.type - * The load balancing algorithm determines how the load balancer selects targets * when routing requests. The value is round_robin or * least_outstanding_requests. The default is * round_robin.

  • * slow_start.duration_seconds - The time period, in seconds, during * which a newly registered target receives an increasing share of the traffic to * the target group. After this time period ends, the target receives its full * share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 * seconds (disabled).

  • * stickiness.lb_cookie.duration_seconds - The time period, in * seconds, during which requests from a client should be routed to the same * target. After this time period expires, the load balancer-generated cookie is * considered stale. The range is 1 second to 1 week (604800 seconds). The default * value is 1 day (86400 seconds).

The following attribute is * supported only if the load balancer is an Application Load Balancer and the * target is a Lambda function:

  • * lambda.multi_value_headers.enabled - Indicates whether the request * and response headers that are exchanged between the load balancer and the Lambda * function include arrays of values or strings. The value is true or * false. The default is false. If the value is * false and the request contains a duplicate header field name or * query parameter key, the load balancer uses the last value sent by the * client.

The following attribute is supported only by Network * Load Balancers:

  • proxy_protocol_v2.enabled - * Indicates whether Proxy Protocol version 2 is enabled. The value is * true or false. The default is false.

    *
*/ inline TargetGroupAttribute& WithKey(const Aws::String& value) { SetKey(value); return *this;} /** *

The name of the attribute.

The following attributes are supported by * both Application Load Balancers and Network Load Balancers:

  • * deregistration_delay.timeout_seconds - The amount of time, in * seconds, for Elastic Load Balancing to wait before changing the state of a * deregistering target from draining to unused. The * range is 0-3600 seconds. The default value is 300 seconds. If the target is a * Lambda function, this attribute is not supported.

  • * stickiness.enabled - Indicates whether sticky sessions are enabled. * The value is true or false. The default is * false.

  • stickiness.type - The type * of sticky sessions. The possible values are lb_cookie for * Application Load Balancers or source_ip for Network Load * Balancers.

The following attributes are supported only if the * load balancer is an Application Load Balancer and the target is an instance or * an IP address:

  • load_balancing.algorithm.type - * The load balancing algorithm determines how the load balancer selects targets * when routing requests. The value is round_robin or * least_outstanding_requests. The default is * round_robin.

  • * slow_start.duration_seconds - The time period, in seconds, during * which a newly registered target receives an increasing share of the traffic to * the target group. After this time period ends, the target receives its full * share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 * seconds (disabled).

  • * stickiness.lb_cookie.duration_seconds - The time period, in * seconds, during which requests from a client should be routed to the same * target. After this time period expires, the load balancer-generated cookie is * considered stale. The range is 1 second to 1 week (604800 seconds). The default * value is 1 day (86400 seconds).

The following attribute is * supported only if the load balancer is an Application Load Balancer and the * target is a Lambda function:

  • * lambda.multi_value_headers.enabled - Indicates whether the request * and response headers that are exchanged between the load balancer and the Lambda * function include arrays of values or strings. The value is true or * false. The default is false. If the value is * false and the request contains a duplicate header field name or * query parameter key, the load balancer uses the last value sent by the * client.

The following attribute is supported only by Network * Load Balancers:

  • proxy_protocol_v2.enabled - * Indicates whether Proxy Protocol version 2 is enabled. The value is * true or false. The default is false.

    *
*/ inline TargetGroupAttribute& WithKey(Aws::String&& value) { SetKey(std::move(value)); return *this;} /** *

The name of the attribute.

The following attributes are supported by * both Application Load Balancers and Network Load Balancers:

  • * deregistration_delay.timeout_seconds - The amount of time, in * seconds, for Elastic Load Balancing to wait before changing the state of a * deregistering target from draining to unused. The * range is 0-3600 seconds. The default value is 300 seconds. If the target is a * Lambda function, this attribute is not supported.

  • * stickiness.enabled - Indicates whether sticky sessions are enabled. * The value is true or false. The default is * false.

  • stickiness.type - The type * of sticky sessions. The possible values are lb_cookie for * Application Load Balancers or source_ip for Network Load * Balancers.

The following attributes are supported only if the * load balancer is an Application Load Balancer and the target is an instance or * an IP address:

  • load_balancing.algorithm.type - * The load balancing algorithm determines how the load balancer selects targets * when routing requests. The value is round_robin or * least_outstanding_requests. The default is * round_robin.

  • * slow_start.duration_seconds - The time period, in seconds, during * which a newly registered target receives an increasing share of the traffic to * the target group. After this time period ends, the target receives its full * share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 * seconds (disabled).

  • * stickiness.lb_cookie.duration_seconds - The time period, in * seconds, during which requests from a client should be routed to the same * target. After this time period expires, the load balancer-generated cookie is * considered stale. The range is 1 second to 1 week (604800 seconds). The default * value is 1 day (86400 seconds).

The following attribute is * supported only if the load balancer is an Application Load Balancer and the * target is a Lambda function:

  • * lambda.multi_value_headers.enabled - Indicates whether the request * and response headers that are exchanged between the load balancer and the Lambda * function include arrays of values or strings. The value is true or * false. The default is false. If the value is * false and the request contains a duplicate header field name or * query parameter key, the load balancer uses the last value sent by the * client.

The following attribute is supported only by Network * Load Balancers:

  • proxy_protocol_v2.enabled - * Indicates whether Proxy Protocol version 2 is enabled. The value is * true or false. The default is false.

    *
*/ inline TargetGroupAttribute& WithKey(const char* value) { SetKey(value); return *this;} /** *

The value of the attribute.

*/ inline const Aws::String& GetValue() const{ return m_value; } /** *

The value of the attribute.

*/ inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; } /** *

The value of the attribute.

*/ inline void SetValue(const Aws::String& value) { m_valueHasBeenSet = true; m_value = value; } /** *

The value of the attribute.

*/ inline void SetValue(Aws::String&& value) { m_valueHasBeenSet = true; m_value = std::move(value); } /** *

The value of the attribute.

*/ inline void SetValue(const char* value) { m_valueHasBeenSet = true; m_value.assign(value); } /** *

The value of the attribute.

*/ inline TargetGroupAttribute& WithValue(const Aws::String& value) { SetValue(value); return *this;} /** *

The value of the attribute.

*/ inline TargetGroupAttribute& WithValue(Aws::String&& value) { SetValue(std::move(value)); return *this;} /** *

The value of the attribute.

*/ inline TargetGroupAttribute& WithValue(const char* value) { SetValue(value); return *this;} private: Aws::String m_key; bool m_keyHasBeenSet; Aws::String m_value; bool m_valueHasBeenSet; }; } // namespace Model } // namespace ElasticLoadBalancingv2 } // namespace Aws