/*
* 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 route53-2013-04-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.Route53.Model
{
///
/// Container for the parameters to the UpdateHealthCheck operation.
/// Updates an existing health check. Note that some values can't be updated.
///
///
///
/// For more information about updating health checks, see Creating,
/// Updating, and Deleting Health Checks in the Amazon Route 53 Developer Guide.
///
///
public partial class UpdateHealthCheckRequest : AmazonRoute53Request
{
private string _healthCheckId;
private long? _healthCheckVersion;
private string _ipAddress;
private int? _port;
private string _resourcePath;
private string _fullyQualifiedDomainName;
private string _searchString;
private int? _failureThreshold;
private bool? _inverted;
private bool? _disabled;
private int? _healthThreshold;
private List _childHealthChecks = new List();
private bool? _enableSNI;
private List _regions = new List();
private AlarmIdentifier _alarmIdentifier;
private InsufficientDataHealthStatus _insufficientDataHealthStatus;
private List _resetElements = new List();
///
/// Gets and sets the property HealthCheckId.
///
/// The ID for the health check for which you want detailed information. When you created
/// the health check, CreateHealthCheck
returned the ID in the response,
/// in the HealthCheckId
element.
///
///
[AWSProperty(Required=true, Max=64)]
public string HealthCheckId
{
get { return this._healthCheckId; }
set { this._healthCheckId = value; }
}
// Check to see if HealthCheckId property is set
internal bool IsSetHealthCheckId()
{
return this._healthCheckId != null;
}
///
/// Gets and sets the property HealthCheckVersion.
///
/// A sequential counter that Amazon Route 53 sets to 1
when you create a
/// health check and increments by 1 each time you update settings for the health check.
///
///
///
/// We recommend that you use GetHealthCheck
or ListHealthChecks
/// to get the current value of HealthCheckVersion
for the health check that
/// you want to update, and that you include that value in your UpdateHealthCheck
/// request. This prevents Route 53 from overwriting an intervening update:
///
/// -
///
/// If the value in the
UpdateHealthCheck
request matches the value of HealthCheckVersion
/// in the health check, Route 53 updates the health check with the new settings.
///
/// -
///
/// If the value of
HealthCheckVersion
in the health check is greater, the
/// health check was changed after you got the version number. Route 53 does not update
/// the health check, and it returns a HealthCheckVersionMismatch
error.
///
///
///
[AWSProperty(Min=1)]
public long HealthCheckVersion
{
get { return this._healthCheckVersion.GetValueOrDefault(); }
set { this._healthCheckVersion = value; }
}
// Check to see if HealthCheckVersion property is set
internal bool IsSetHealthCheckVersion()
{
return this._healthCheckVersion.HasValue;
}
///
/// Gets and sets the property IPAddress.
///
/// The IPv4 or IPv6 IP address for the endpoint that you want Amazon Route 53 to perform
/// health checks on. If you don't specify a value for IPAddress
, Route 53
/// sends a DNS request to resolve the domain name that you specify in FullyQualifiedDomainName
/// at the interval that you specify in RequestInterval
. Using an IP address
/// that is returned by DNS, Route 53 then checks the health of the endpoint.
///
///
///
/// Use one of the following formats for the value of IPAddress
:
///
/// -
///
/// IPv4 address: four values between 0 and 255, separated by periods (.), for
/// example,
192.0.2.44
.
///
/// -
///
/// IPv6 address: eight groups of four hexadecimal values, separated by colons
/// (:), for example,
2001:0db8:85a3:0000:0000:abcd:0001:2345
. You can also
/// shorten IPv6 addresses as described in RFC 5952, for example, 2001:db8:85a3::abcd:1:2345
.
///
///
///
/// If the endpoint is an EC2 instance, we recommend that you create an Elastic IP address,
/// associate it with your EC2 instance, and specify the Elastic IP address for IPAddress
.
/// This ensures that the IP address of your instance never changes. For more information,
/// see the applicable documentation:
///
///
///
/// If a health check already has a value for IPAddress
, you can change the
/// value. However, you can't update an existing health check to add or remove the value
/// of IPAddress
.
///
///
///
/// For more information, see FullyQualifiedDomainName.
///
///
///
///
/// Constraints: Route 53 can't check the health of endpoints for which the IP address
/// is in local, private, non-routable, or multicast ranges. For more information about
/// IP addresses for which you can't create health checks, see the following documents:
///
///
///
[AWSProperty(Max=45)]
public string IPAddress
{
get { return this._ipAddress; }
set { this._ipAddress = value; }
}
// Check to see if IPAddress property is set
internal bool IsSetIPAddress()
{
return this._ipAddress != null;
}
///
/// Gets and sets the property Port.
///
/// The port on the endpoint that you want Amazon Route 53 to perform health checks on.
///
///
///
/// Don't specify a value for Port
when you specify a value for Type
/// of CLOUDWATCH_METRIC
or CALCULATED
.
///
///
///
[AWSProperty(Min=1, Max=65535)]
public int Port
{
get { return this._port.GetValueOrDefault(); }
set { this._port = value; }
}
// Check to see if Port property is set
internal bool IsSetPort()
{
return this._port.HasValue;
}
///
/// Gets and sets the property ResourcePath.
///
/// The path that you want Amazon Route 53 to request when performing health checks. The
/// path can be any value for which your endpoint will return an HTTP status code of 2xx
/// or 3xx when the endpoint is healthy, for example the file /docs/route53-health-check.html.
/// You can also include query string parameters, for example, /welcome.html?language=jp&login=y
.
///
///
///
///
/// Specify this value only if you want to change it.
///
///
[AWSProperty(Max=255)]
public string ResourcePath
{
get { return this._resourcePath; }
set { this._resourcePath = value; }
}
// Check to see if ResourcePath property is set
internal bool IsSetResourcePath()
{
return this._resourcePath != null;
}
///
/// Gets and sets the property FullyQualifiedDomainName.
///
/// Amazon Route 53 behavior depends on whether you specify a value for IPAddress
.
///
///
///
/// If a health check already has a value for IPAddress
, you can change the
/// value. However, you can't update an existing health check to add or remove the value
/// of IPAddress
.
///
///
///
/// If you specify a value for IPAddress
:
///
///
///
/// Route 53 sends health check requests to the specified IPv4 or IPv6 address and passes
/// the value of FullyQualifiedDomainName
in the Host
header
/// for all health checks except TCP health checks. This is typically the fully qualified
/// DNS name of the endpoint on which you want Route 53 to perform health checks.
///
///
///
/// When Route 53 checks the health of an endpoint, here is how it constructs the Host
/// header:
///
/// -
///
/// If you specify a value of
80
for Port
and HTTP
/// or HTTP_STR_MATCH
for Type
, Route 53 passes the value of
/// FullyQualifiedDomainName
to the endpoint in the Host
header.
///
/// -
///
/// If you specify a value of
443
for Port
and HTTPS
/// or HTTPS_STR_MATCH
for Type
, Route 53 passes the value of
/// FullyQualifiedDomainName
to the endpoint in the Host
header.
///
/// -
///
/// If you specify another value for
Port
and any value except TCP
/// for Type
, Route 53 passes FullyQualifiedDomainName
:Port
/// to the endpoint in the Host
header.
///
///
///
/// If you don't specify a value for FullyQualifiedDomainName
, Route 53 substitutes
/// the value of IPAddress
in the Host
header in each of the
/// above cases.
///
///
///
/// If you don't specify a value for IPAddress
:
///
///
///
/// If you don't specify a value for IPAddress
, Route 53 sends a DNS request
/// to the domain that you specify in FullyQualifiedDomainName
at the interval
/// you specify in RequestInterval
. Using an IPv4 address that is returned
/// by DNS, Route 53 then checks the health of the endpoint.
///
///
///
/// If you don't specify a value for IPAddress
, Route 53 uses only IPv4 to
/// send health checks to the endpoint. If there's no resource record set with a type
/// of A for the name that you specify for FullyQualifiedDomainName
, the
/// health check fails with a "DNS resolution failed" error.
///
///
///
/// If you want to check the health of weighted, latency, or failover resource record
/// sets and you choose to specify the endpoint only by FullyQualifiedDomainName
,
/// we recommend that you create a separate health check for each endpoint. For example,
/// create a health check for each HTTP server that is serving content for www.example.com.
/// For the value of FullyQualifiedDomainName
, specify the domain name of
/// the server (such as us-east-2-www.example.com
), not the name of the resource
/// record sets (www.example.com).
///
///
///
/// In this configuration, if the value of FullyQualifiedDomainName
matches
/// the name of the resource record sets and you then associate the health check with
/// those resource record sets, health check results will be unpredictable.
///
///
///
/// In addition, if the value of Type
is HTTP
, HTTPS
,
/// HTTP_STR_MATCH
, or HTTPS_STR_MATCH
, Route 53 passes the
/// value of FullyQualifiedDomainName
in the Host
header, as
/// it does when you specify a value for IPAddress
. If the value of Type
/// is TCP
, Route 53 doesn't pass a Host
header.
///
///
[AWSProperty(Max=255)]
public string FullyQualifiedDomainName
{
get { return this._fullyQualifiedDomainName; }
set { this._fullyQualifiedDomainName = value; }
}
// Check to see if FullyQualifiedDomainName property is set
internal bool IsSetFullyQualifiedDomainName()
{
return this._fullyQualifiedDomainName != null;
}
///
/// Gets and sets the property SearchString.
///
/// If the value of Type
is HTTP_STR_MATCH
or HTTPS_STR_MATCH
,
/// the string that you want Amazon Route 53 to search for in the response body from the
/// specified resource. If the string appears in the response body, Route 53 considers
/// the resource healthy. (You can't change the value of Type
when you update
/// a health check.)
///
///
[AWSProperty(Max=255)]
public string SearchString
{
get { return this._searchString; }
set { this._searchString = value; }
}
// Check to see if SearchString property is set
internal bool IsSetSearchString()
{
return this._searchString != null;
}
///
/// Gets and sets the property FailureThreshold.
///
/// The number of consecutive health checks that an endpoint must pass or fail for Amazon
/// Route 53 to change the current status of the endpoint from unhealthy to healthy or
/// vice versa. For more information, see How
/// Amazon Route 53 Determines Whether an Endpoint Is Healthy in the Amazon Route
/// 53 Developer Guide.
///
///
///
/// If you don't specify a value for FailureThreshold
, the default value
/// is three health checks.
///
///
[AWSProperty(Min=1, Max=10)]
public int FailureThreshold
{
get { return this._failureThreshold.GetValueOrDefault(); }
set { this._failureThreshold = value; }
}
// Check to see if FailureThreshold property is set
internal bool IsSetFailureThreshold()
{
return this._failureThreshold.HasValue;
}
///
/// Gets and sets the property Inverted.
///
/// Specify whether you want Amazon Route 53 to invert the status of a health check, for
/// example, to consider a health check unhealthy when it otherwise would be considered
/// healthy.
///
///
public bool Inverted
{
get { return this._inverted.GetValueOrDefault(); }
set { this._inverted = value; }
}
// Check to see if Inverted property is set
internal bool IsSetInverted()
{
return this._inverted.HasValue;
}
///
/// Gets and sets the property Disabled.
///
/// Stops Route 53 from performing health checks. When you disable a health check, here's
/// what happens:
///
/// -
///
/// Health checks that check the health of endpoints: Route 53 stops submitting
/// requests to your application, server, or other resource.
///
///
-
///
/// Calculated health checks: Route 53 stops aggregating the status of the referenced
/// health checks.
///
///
-
///
/// Health checks that monitor CloudWatch alarms: Route 53 stops monitoring the
/// corresponding CloudWatch metrics.
///
///
///
/// After you disable a health check, Route 53 considers the status of the health check
/// to always be healthy. If you configured DNS failover, Route 53 continues to route
/// traffic to the corresponding resources. If you want to stop routing traffic to a resource,
/// change the value of Inverted.
///
///
///
///
/// Charges for a health check still apply when the health check is disabled. For more
/// information, see Amazon Route 53
/// Pricing.
///
///
public bool Disabled
{
get { return this._disabled.GetValueOrDefault(); }
set { this._disabled = value; }
}
// Check to see if Disabled property is set
internal bool IsSetDisabled()
{
return this._disabled.HasValue;
}
///
/// Gets and sets the property HealthThreshold.
///
/// The number of child health checks that are associated with a CALCULATED
/// health that Amazon Route 53 must consider healthy for the CALCULATED
/// health check to be considered healthy. To specify the child health checks that you
/// want to associate with a CALCULATED
health check, use the ChildHealthChecks
/// and ChildHealthCheck
elements.
///
///
///
/// Note the following:
///
/// -
///
/// If you specify a number greater than the number of child health checks, Route 53 always
/// considers this health check to be unhealthy.
///
///
-
///
/// If you specify
0
, Route 53 always considers this health check to be healthy.
///
///
///
[AWSProperty(Min=0, Max=256)]
public int HealthThreshold
{
get { return this._healthThreshold.GetValueOrDefault(); }
set { this._healthThreshold = value; }
}
// Check to see if HealthThreshold property is set
internal bool IsSetHealthThreshold()
{
return this._healthThreshold.HasValue;
}
///
/// Gets and sets the property ChildHealthChecks.
///
/// A complex type that contains one ChildHealthCheck
element for each health
/// check that you want to associate with a CALCULATED
health check.
///
///
[AWSProperty(Max=256)]
public List ChildHealthChecks
{
get { return this._childHealthChecks; }
set { this._childHealthChecks = value; }
}
// Check to see if ChildHealthChecks property is set
internal bool IsSetChildHealthChecks()
{
return this._childHealthChecks != null && this._childHealthChecks.Count > 0;
}
///
/// Gets and sets the property EnableSNI.
///
/// Specify whether you want Amazon Route 53 to send the value of FullyQualifiedDomainName
/// to the endpoint in the client_hello
message during TLS
negotiation.
/// This allows the endpoint to respond to HTTPS
health check requests with
/// the applicable SSL/TLS certificate.
///
///
///
/// Some endpoints require that HTTPS requests include the host name in the client_hello
/// message. If you don't enable SNI, the status of the health check will be SSL alert
/// handshake_failure
. A health check can also have that status for other
/// reasons. If SNI is enabled and you're still getting the error, check the SSL/TLS configuration
/// on your endpoint and confirm that your certificate is valid.
///
///
///
/// The SSL/TLS certificate on your endpoint includes a domain name in the Common
/// Name
field and possibly several more in the Subject Alternative Names
/// field. One of the domain names in the certificate should match the value that you
/// specify for FullyQualifiedDomainName
. If the endpoint responds to the
/// client_hello
message with a certificate that does not include the domain
/// name that you specified in FullyQualifiedDomainName
, a health checker
/// will retry the handshake. In the second attempt, the health checker will omit FullyQualifiedDomainName
/// from the client_hello
message.
///
///
public bool EnableSNI
{
get { return this._enableSNI.GetValueOrDefault(); }
set { this._enableSNI = value; }
}
// Check to see if EnableSNI property is set
internal bool IsSetEnableSNI()
{
return this._enableSNI.HasValue;
}
///
/// Gets and sets the property Regions.
///
/// A complex type that contains one Region
element for each region that
/// you want Amazon Route 53 health checkers to check the specified endpoint from.
///
///
[AWSProperty(Min=3, Max=64)]
public List Regions
{
get { return this._regions; }
set { this._regions = value; }
}
// Check to see if Regions property is set
internal bool IsSetRegions()
{
return this._regions != null && this._regions.Count > 0;
}
///
/// Gets and sets the property AlarmIdentifier.
///
/// A complex type that identifies the CloudWatch alarm that you want Amazon Route 53
/// health checkers to use to determine whether the specified health check is healthy.
///
///
public AlarmIdentifier AlarmIdentifier
{
get { return this._alarmIdentifier; }
set { this._alarmIdentifier = value; }
}
// Check to see if AlarmIdentifier property is set
internal bool IsSetAlarmIdentifier()
{
return this._alarmIdentifier != null;
}
///
/// Gets and sets the property InsufficientDataHealthStatus.
///
/// When CloudWatch has insufficient data about the metric to determine the alarm state,
/// the status that you want Amazon Route 53 to assign to the health check:
///
/// -
///
///
Healthy
: Route 53 considers the health check to be healthy.
///
/// -
///
///
Unhealthy
: Route 53 considers the health check to be unhealthy.
///
/// -
///
///
LastKnownStatus
: By default, Route 53 uses the status of the health
/// check from the last time CloudWatch had sufficient data to determine the alarm state.
/// For new health checks that have no last known status, the status for the health check
/// is healthy.
///
///
///
public InsufficientDataHealthStatus InsufficientDataHealthStatus
{
get { return this._insufficientDataHealthStatus; }
set { this._insufficientDataHealthStatus = value; }
}
// Check to see if InsufficientDataHealthStatus property is set
internal bool IsSetInsufficientDataHealthStatus()
{
return this._insufficientDataHealthStatus != null;
}
///
/// Gets and sets the property ResetElements.
///
/// A complex type that contains one ResettableElementName
element for each
/// element that you want to reset to the default value. Valid values for ResettableElementName
/// include the following:
///
/// -
///
///
ChildHealthChecks
: Amazon Route 53 resets ChildHealthChecks
/// to null.
///
/// -
///
///
FullyQualifiedDomainName
: Route 53 resets FullyQualifiedDomainName.
/// to null.
///
/// -
///
///
Regions
: Route 53 resets the Regions
/// list to the default set of regions.
///
/// -
///
///
ResourcePath
: Route 53 resets ResourcePath
/// to null.
///
///
///
[AWSProperty(Max=64)]
public List ResetElements
{
get { return this._resetElements; }
set { this._resetElements = value; }
}
// Check to see if ResetElements property is set
internal bool IsSetResetElements()
{
return this._resetElements != null && this._resetElements.Count > 0;
}
}
}