/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the elasticloadbalancingv2-2015-12-01.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.ElasticLoadBalancingV2.Model
{
///
/// Information about a target group attribute.
///
public partial class TargetGroupAttribute
{
private string _key;
private string _value;
///
/// Gets and sets the property Key.
///
/// The name of the attribute.
///
///
///
/// The following attributes are supported by all 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 target stickiness is enabled.
/// The value is true
or false
. The default is false
.
///
/// -
///
///
stickiness.type
- Indicates the type of stickiness. The possible values
/// are:
///
/// -
///
///
lb_cookie
and app_cookie
for Application Load Balancers.
///
/// -
///
///
source_ip
for Network Load Balancers.
///
/// -
///
///
source_ip_dest_ip
and source_ip_dest_ip_proto
for Gateway
/// Load Balancers.
///
///
///
/// The following attributes are supported by Application Load Balancers and Network Load
/// Balancers:
///
/// -
///
///
load_balancing.cross_zone.enabled
- Indicates whether cross zone load
/// balancing is enabled. The value is true
, false
or use_load_balancer_configuration
.
/// The default is use_load_balancer_configuration
.
///
/// -
///
///
target_group_health.dns_failover.minimum_healthy_targets.count
- The
/// minimum number of targets that must be healthy. If the number of healthy targets is
/// below this value, mark the zone as unhealthy in DNS, so that traffic is routed only
/// to healthy zones. The possible values are off
or an integer from 1 to
/// the maximum number of targets. The default is off
.
///
/// -
///
///
target_group_health.dns_failover.minimum_healthy_targets.percentage
/// - The minimum percentage of targets that must be healthy. If the percentage of healthy
/// targets is below this value, mark the zone as unhealthy in DNS, so that traffic is
/// routed only to healthy zones. The possible values are off
or an integer
/// from 1 to 100. The default is off
.
///
/// -
///
///
target_group_health.unhealthy_state_routing.minimum_healthy_targets.count
/// - The minimum number of targets that must be healthy. If the number of healthy targets
/// is below this value, send traffic to all targets, including unhealthy targets. The
/// possible values are 1 to the maximum number of targets. The default is 1.
///
/// -
///
///
target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage
/// - The minimum percentage of targets that must be healthy. If the percentage of healthy
/// targets is below this value, send traffic to all targets, including unhealthy targets.
/// The possible values are off
or an integer from 1 to 100. The default
/// is off
.
///
///
///
/// 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.app_cookie.cookie_name
- Indicates the name of the application-based
/// cookie. Names that start with the following prefixes are not allowed: AWSALB
,
/// AWSALBAPP
, and AWSALBTG
; they're reserved for use by the
/// load balancer.
///
/// -
///
///
stickiness.app_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 application-based cookie is considered stale. The range is
/// 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).
///
/// -
///
///
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 attributes are supported only by Network Load Balancers:
///
/// -
///
///
deregistration_delay.connection_termination.enabled
- Indicates whether
/// the load balancer terminates connections at the end of the deregistration timeout.
/// The value is true
or false
. The default is false
.
///
/// -
///
///
preserve_client_ip.enabled
- Indicates whether client IP preservation
/// is enabled. The value is true
or false
. The default is disabled
/// if the target group type is IP address and the target group protocol is TCP or TLS.
/// Otherwise, the default is enabled. Client IP preservation cannot be disabled for UDP
/// and TCP_UDP target groups.
///
/// -
///
///
proxy_protocol_v2.enabled
- Indicates whether Proxy Protocol version
/// 2 is enabled. The value is true
or false
. The default is
/// false
.
///
///
///
/// The following attributes are supported only by Gateway Load Balancers:
///
/// -
///
///
target_failover.on_deregistration
- Indicates how the Gateway Load Balancer
/// handles existing flows when a target is deregistered. The possible values are rebalance
/// and no_rebalance
. The default is no_rebalance
. The two attributes
/// (target_failover.on_deregistration
and target_failover.on_unhealthy
)
/// can't be set independently. The value you set for both attributes must be the same.
///
///
/// -
///
///
target_failover.on_unhealthy
- Indicates how the Gateway Load Balancer
/// handles existing flows when a target is unhealthy. The possible values are rebalance
/// and no_rebalance
. The default is no_rebalance
. The two attributes
/// (target_failover.on_deregistration
and target_failover.on_unhealthy
)
/// cannot be set independently. The value you set for both attributes must be the same.
///
///
///
///
[AWSProperty(Max=256)]
public string Key
{
get { return this._key; }
set { this._key = value; }
}
// Check to see if Key property is set
internal bool IsSetKey()
{
return this._key != null;
}
///
/// Gets and sets the property Value.
///
/// The value of the attribute.
///
///
public string Value
{
get { return this._value; }
set { this._value = value; }
}
// Check to see if Value property is set
internal bool IsSetValue()
{
return this._value != null;
}
}
}