/*
* 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
{
///
/// Container for the parameters to the ModifyTargetGroup operation.
/// Modifies the health checks used when evaluating the health state of the targets in
/// the specified target group.
///
public partial class ModifyTargetGroupRequest : AmazonElasticLoadBalancingV2Request
{
private bool? _healthCheckEnabled;
private int? _healthCheckIntervalSeconds;
private string _healthCheckPath;
private string _healthCheckPort;
private ProtocolEnum _healthCheckProtocol;
private int? _healthCheckTimeoutSeconds;
private int? _healthyThresholdCount;
private Matcher _matcher;
private string _targetGroupArn;
private int? _unhealthyThresholdCount;
///
/// Gets and sets the property HealthCheckEnabled.
///
/// Indicates whether health checks are enabled.
///
///
public bool HealthCheckEnabled
{
get { return this._healthCheckEnabled.GetValueOrDefault(); }
set { this._healthCheckEnabled = value; }
}
// Check to see if HealthCheckEnabled property is set
internal bool IsSetHealthCheckEnabled()
{
return this._healthCheckEnabled.HasValue;
}
///
/// Gets and sets the property HealthCheckIntervalSeconds.
///
/// The approximate amount of time, in seconds, between health checks of an individual
/// target.
///
///
[AWSProperty(Min=5, Max=300)]
public int HealthCheckIntervalSeconds
{
get { return this._healthCheckIntervalSeconds.GetValueOrDefault(); }
set { this._healthCheckIntervalSeconds = value; }
}
// Check to see if HealthCheckIntervalSeconds property is set
internal bool IsSetHealthCheckIntervalSeconds()
{
return this._healthCheckIntervalSeconds.HasValue;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=1, Max=1024)]
public string HealthCheckPath
{
get { return this._healthCheckPath; }
set { this._healthCheckPath = value; }
}
// Check to see if HealthCheckPath property is set
internal bool IsSetHealthCheckPath()
{
return this._healthCheckPath != null;
}
///
/// Gets and sets the property HealthCheckPort.
///
/// The port the load balancer uses when performing health checks on targets.
///
///
public string HealthCheckPort
{
get { return this._healthCheckPort; }
set { this._healthCheckPort = value; }
}
// Check to see if HealthCheckPort property is set
internal bool IsSetHealthCheckPort()
{
return this._healthCheckPort != null;
}
///
/// Gets and sets the property 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. It is supported for health checks
/// only if the protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The GENEVE,
/// TLS, UDP, and TCP_UDP protocols are not supported for health checks.
///
///
public ProtocolEnum HealthCheckProtocol
{
get { return this._healthCheckProtocol; }
set { this._healthCheckProtocol = value; }
}
// Check to see if HealthCheckProtocol property is set
internal bool IsSetHealthCheckProtocol()
{
return this._healthCheckProtocol != null;
}
///
/// Gets and sets the property HealthCheckTimeoutSeconds.
///
/// [HTTP/HTTPS health checks] The amount of time, in seconds, during which no response
/// means a failed health check.
///
///
[AWSProperty(Min=2, Max=120)]
public int HealthCheckTimeoutSeconds
{
get { return this._healthCheckTimeoutSeconds.GetValueOrDefault(); }
set { this._healthCheckTimeoutSeconds = value; }
}
// Check to see if HealthCheckTimeoutSeconds property is set
internal bool IsSetHealthCheckTimeoutSeconds()
{
return this._healthCheckTimeoutSeconds.HasValue;
}
///
/// Gets and sets the property HealthyThresholdCount.
///
/// The number of consecutive health checks successes required before considering an unhealthy
/// target healthy.
///
///
[AWSProperty(Min=2, Max=10)]
public int HealthyThresholdCount
{
get { return this._healthyThresholdCount.GetValueOrDefault(); }
set { this._healthyThresholdCount = value; }
}
// Check to see if HealthyThresholdCount property is set
internal bool IsSetHealthyThresholdCount()
{
return this._healthyThresholdCount.HasValue;
}
///
/// Gets and sets the property 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.
///
///
public Matcher Matcher
{
get { return this._matcher; }
set { this._matcher = value; }
}
// Check to see if Matcher property is set
internal bool IsSetMatcher()
{
return this._matcher != null;
}
///
/// Gets and sets the property TargetGroupArn.
///
/// The Amazon Resource Name (ARN) of the target group.
///
///
[AWSProperty(Required=true)]
public string TargetGroupArn
{
get { return this._targetGroupArn; }
set { this._targetGroupArn = value; }
}
// Check to see if TargetGroupArn property is set
internal bool IsSetTargetGroupArn()
{
return this._targetGroupArn != null;
}
///
/// Gets and sets the property UnhealthyThresholdCount.
///
/// The number of consecutive health check failures required before considering the target
/// unhealthy.
///
///
[AWSProperty(Min=2, Max=10)]
public int UnhealthyThresholdCount
{
get { return this._unhealthyThresholdCount.GetValueOrDefault(); }
set { this._unhealthyThresholdCount = value; }
}
// Check to see if UnhealthyThresholdCount property is set
internal bool IsSetUnhealthyThresholdCount()
{
return this._unhealthyThresholdCount.HasValue;
}
}
}