/*******************************************************************************
* Copyright 2012-2019 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.
* *****************************************************************************
*
* AWS Tools for Windows (TM) PowerShell (TM)
*
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Management.Automation;
using System.Text;
using Amazon.PowerShell.Common;
using Amazon.Runtime;
using Amazon.Route53;
using Amazon.Route53.Model;
namespace Amazon.PowerShell.Cmdlets.R53
{
///
/// 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.
///
///
[Cmdlet("Update", "R53HealthCheck", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.Medium)]
[OutputType("Amazon.Route53.Model.HealthCheck")]
[AWSCmdlet("Calls the Amazon Route 53 UpdateHealthCheck API operation.", Operation = new[] {"UpdateHealthCheck"}, SelectReturnType = typeof(Amazon.Route53.Model.UpdateHealthCheckResponse))]
[AWSCmdletOutput("Amazon.Route53.Model.HealthCheck or Amazon.Route53.Model.UpdateHealthCheckResponse",
"This cmdlet returns an Amazon.Route53.Model.HealthCheck object.",
"The service call response (type Amazon.Route53.Model.UpdateHealthCheckResponse) can also be referenced from properties attached to the cmdlet entry in the $AWSHistory stack."
)]
public partial class UpdateR53HealthCheckCmdlet : AmazonRoute53ClientCmdlet, IExecutor
{
#region Parameter ChildHealthCheck
///
///
/// A complex type that contains one ChildHealthCheck
element for each health
/// check that you want to associate with a CALCULATED
health check.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("ChildHealthChecks")]
public System.String[] ChildHealthCheck { get; set; }
#endregion
#region Parameter 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.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? Disabled { get; set; }
#endregion
#region Parameter 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.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? EnableSNI { get; set; }
#endregion
#region Parameter 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.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? FailureThreshold { get; set; }
#endregion
#region Parameter 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 forIPAddress
: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 forIPAddress
: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.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String FullyQualifiedDomainName { get; set; }
#endregion
#region Parameter 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.
///
///
#if !MODULAR
[System.Management.Automation.Parameter(Position = 0, ValueFromPipelineByPropertyName = true, ValueFromPipeline = true)]
#else
[System.Management.Automation.Parameter(Position = 0, ValueFromPipelineByPropertyName = true, ValueFromPipeline = true, Mandatory = true)]
[System.Management.Automation.AllowEmptyString]
[System.Management.Automation.AllowNull]
#endif
[Amazon.PowerShell.Common.AWSRequiredParameter]
public System.String HealthCheckId { get; set; }
#endregion
#region Parameter 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.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int64? HealthCheckVersion { get; set; }
#endregion
#region Parameter 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.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? HealthThreshold { get; set; }
#endregion
#region Parameter 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.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[AWSConstantClassSource("Amazon.Route53.InsufficientDataHealthStatus")]
public Amazon.Route53.InsufficientDataHealthStatus InsufficientDataHealthStatus { get; set; }
#endregion
#region Parameter 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.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? Inverted { get; set; }
#endregion
#region Parameter 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:
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String IPAddress { get; set; }
#endregion
#region Parameter AlarmIdentifier_Name
///
///
/// The name of the CloudWatch alarm that you want Amazon Route 53 health checkers to
/// use to determine whether this health check is healthy.Route 53 supports CloudWatch alarms with the following features:- Standard-resolution metrics. High-resolution metrics aren't supported. For more information,
/// see High-Resolution
/// Metrics in the Amazon CloudWatch User Guide.
- Statistics: Average, Minimum, Maximum, Sum, and SampleCount. Extended statistics aren't
/// supported.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String AlarmIdentifier_Name { get; set; }
#endregion
#region Parameter 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
.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? Port { get; set; }
#endregion
#region Parameter AlarmIdentifier_Region
///
///
/// For the CloudWatch alarm that you want Route 53 health checkers to use to determine
/// whether this health check is healthy, the region that the alarm was created in.For the current list of CloudWatch regions, see Amazon
/// CloudWatch endpoints and quotas in the Amazon Web Services General Reference.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[AWSConstantClassSource("Amazon.Route53.CloudWatchRegion")]
public Amazon.Route53.CloudWatchRegion AlarmIdentifier_Region { get; set; }
#endregion
#region Parameter HealthCheckRegion
///
///
/// 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.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("Regions")]
public System.String[] HealthCheckRegion { get; set; }
#endregion
#region Parameter ResetElement
///
///
/// 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:
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("ResetElements")]
public System.String[] ResetElement { get; set; }
#endregion
#region Parameter 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.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String ResourcePath { get; set; }
#endregion
#region Parameter 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.)
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String SearchString { get; set; }
#endregion
#region Parameter Select
///
/// Use the -Select parameter to control the cmdlet output. The default value is 'HealthCheck'.
/// Specifying -Select '*' will result in the cmdlet returning the whole service response (Amazon.Route53.Model.UpdateHealthCheckResponse).
/// Specifying the name of a property of type Amazon.Route53.Model.UpdateHealthCheckResponse will result in that property being returned.
/// Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value.
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public string Select { get; set; } = "HealthCheck";
#endregion
#region Parameter PassThru
///
/// Changes the cmdlet behavior to return the value passed to the HealthCheckId parameter.
/// The -PassThru parameter is deprecated, use -Select '^HealthCheckId' instead. This parameter will be removed in a future version.
///
[System.Obsolete("The -PassThru parameter is deprecated, use -Select '^HealthCheckId' instead. This parameter will be removed in a future version.")]
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public SwitchParameter PassThru { get; set; }
#endregion
#region Parameter Force
///
/// This parameter overrides confirmation prompts to force
/// the cmdlet to continue its operation. This parameter should always
/// be used with caution.
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public SwitchParameter Force { get; set; }
#endregion
protected override void ProcessRecord()
{
this._AWSSignerType = "v4";
base.ProcessRecord();
var resourceIdentifiersText = FormatParameterValuesForConfirmationMsg(nameof(this.HealthCheckId), MyInvocation.BoundParameters);
if (!ConfirmShouldProceed(this.Force.IsPresent, resourceIdentifiersText, "Update-R53HealthCheck (UpdateHealthCheck)"))
{
return;
}
var context = new CmdletContext();
// allow for manipulation of parameters prior to loading into context
PreExecutionContextLoad(context);
#pragma warning disable CS0618, CS0612 //A class member was marked with the Obsolete attribute
if (ParameterWasBound(nameof(this.Select)))
{
context.Select = CreateSelectDelegate(Select) ??
throw new System.ArgumentException("Invalid value for -Select parameter.", nameof(this.Select));
if (this.PassThru.IsPresent)
{
throw new System.ArgumentException("-PassThru cannot be used when -Select is specified.", nameof(this.Select));
}
}
else if (this.PassThru.IsPresent)
{
context.Select = (response, cmdlet) => this.HealthCheckId;
}
#pragma warning restore CS0618, CS0612 //A class member was marked with the Obsolete attribute
context.HealthCheckId = this.HealthCheckId;
#if MODULAR
if (this.HealthCheckId == null && ParameterWasBound(nameof(this.HealthCheckId)))
{
WriteWarning("You are passing $null as a value for parameter HealthCheckId which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues.");
}
#endif
context.HealthCheckVersion = this.HealthCheckVersion;
context.IPAddress = this.IPAddress;
context.Port = this.Port;
context.ResourcePath = this.ResourcePath;
context.FullyQualifiedDomainName = this.FullyQualifiedDomainName;
context.SearchString = this.SearchString;
context.FailureThreshold = this.FailureThreshold;
context.Inverted = this.Inverted;
context.Disabled = this.Disabled;
context.HealthThreshold = this.HealthThreshold;
if (this.ChildHealthCheck != null)
{
context.ChildHealthCheck = new List(this.ChildHealthCheck);
}
context.EnableSNI = this.EnableSNI;
if (this.HealthCheckRegion != null)
{
context.HealthCheckRegion = new List(this.HealthCheckRegion);
}
context.AlarmIdentifier_Region = this.AlarmIdentifier_Region;
context.AlarmIdentifier_Name = this.AlarmIdentifier_Name;
context.InsufficientDataHealthStatus = this.InsufficientDataHealthStatus;
if (this.ResetElement != null)
{
context.ResetElement = new List(this.ResetElement);
}
// allow further manipulation of loaded context prior to processing
PostExecutionContextLoad(context);
var output = Execute(context) as CmdletOutput;
ProcessOutput(output);
}
#region IExecutor Members
public object Execute(ExecutorContext context)
{
var cmdletContext = context as CmdletContext;
// create request
var request = new Amazon.Route53.Model.UpdateHealthCheckRequest();
if (cmdletContext.HealthCheckId != null)
{
request.HealthCheckId = cmdletContext.HealthCheckId;
}
if (cmdletContext.HealthCheckVersion != null)
{
request.HealthCheckVersion = cmdletContext.HealthCheckVersion.Value;
}
if (cmdletContext.IPAddress != null)
{
request.IPAddress = cmdletContext.IPAddress;
}
if (cmdletContext.Port != null)
{
request.Port = cmdletContext.Port.Value;
}
if (cmdletContext.ResourcePath != null)
{
request.ResourcePath = cmdletContext.ResourcePath;
}
if (cmdletContext.FullyQualifiedDomainName != null)
{
request.FullyQualifiedDomainName = cmdletContext.FullyQualifiedDomainName;
}
if (cmdletContext.SearchString != null)
{
request.SearchString = cmdletContext.SearchString;
}
if (cmdletContext.FailureThreshold != null)
{
request.FailureThreshold = cmdletContext.FailureThreshold.Value;
}
if (cmdletContext.Inverted != null)
{
request.Inverted = cmdletContext.Inverted.Value;
}
if (cmdletContext.Disabled != null)
{
request.Disabled = cmdletContext.Disabled.Value;
}
if (cmdletContext.HealthThreshold != null)
{
request.HealthThreshold = cmdletContext.HealthThreshold.Value;
}
if (cmdletContext.ChildHealthCheck != null)
{
request.ChildHealthChecks = cmdletContext.ChildHealthCheck;
}
if (cmdletContext.EnableSNI != null)
{
request.EnableSNI = cmdletContext.EnableSNI.Value;
}
if (cmdletContext.HealthCheckRegion != null)
{
request.Regions = cmdletContext.HealthCheckRegion;
}
// populate AlarmIdentifier
var requestAlarmIdentifierIsNull = true;
request.AlarmIdentifier = new Amazon.Route53.Model.AlarmIdentifier();
Amazon.Route53.CloudWatchRegion requestAlarmIdentifier_alarmIdentifier_Region = null;
if (cmdletContext.AlarmIdentifier_Region != null)
{
requestAlarmIdentifier_alarmIdentifier_Region = cmdletContext.AlarmIdentifier_Region;
}
if (requestAlarmIdentifier_alarmIdentifier_Region != null)
{
request.AlarmIdentifier.Region = requestAlarmIdentifier_alarmIdentifier_Region;
requestAlarmIdentifierIsNull = false;
}
System.String requestAlarmIdentifier_alarmIdentifier_Name = null;
if (cmdletContext.AlarmIdentifier_Name != null)
{
requestAlarmIdentifier_alarmIdentifier_Name = cmdletContext.AlarmIdentifier_Name;
}
if (requestAlarmIdentifier_alarmIdentifier_Name != null)
{
request.AlarmIdentifier.Name = requestAlarmIdentifier_alarmIdentifier_Name;
requestAlarmIdentifierIsNull = false;
}
// determine if request.AlarmIdentifier should be set to null
if (requestAlarmIdentifierIsNull)
{
request.AlarmIdentifier = null;
}
if (cmdletContext.InsufficientDataHealthStatus != null)
{
request.InsufficientDataHealthStatus = cmdletContext.InsufficientDataHealthStatus;
}
if (cmdletContext.ResetElement != null)
{
request.ResetElements = cmdletContext.ResetElement;
}
CmdletOutput output;
// issue call
var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint);
try
{
var response = CallAWSServiceOperation(client, request);
object pipelineOutput = null;
pipelineOutput = cmdletContext.Select(response, this);
output = new CmdletOutput
{
PipelineOutput = pipelineOutput,
ServiceResponse = response
};
}
catch (Exception e)
{
output = new CmdletOutput { ErrorResponse = e };
}
return output;
}
public ExecutorContext CreateContext()
{
return new CmdletContext();
}
#endregion
#region AWS Service Operation Call
private Amazon.Route53.Model.UpdateHealthCheckResponse CallAWSServiceOperation(IAmazonRoute53 client, Amazon.Route53.Model.UpdateHealthCheckRequest request)
{
Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Route 53", "UpdateHealthCheck");
try
{
#if DESKTOP
return client.UpdateHealthCheck(request);
#elif CORECLR
return client.UpdateHealthCheckAsync(request).GetAwaiter().GetResult();
#else
#error "Unknown build edition"
#endif
}
catch (AmazonServiceException exc)
{
var webException = exc.InnerException as System.Net.WebException;
if (webException != null)
{
throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException);
}
throw;
}
}
#endregion
internal partial class CmdletContext : ExecutorContext
{
public System.String HealthCheckId { get; set; }
public System.Int64? HealthCheckVersion { get; set; }
public System.String IPAddress { get; set; }
public System.Int32? Port { get; set; }
public System.String ResourcePath { get; set; }
public System.String FullyQualifiedDomainName { get; set; }
public System.String SearchString { get; set; }
public System.Int32? FailureThreshold { get; set; }
public System.Boolean? Inverted { get; set; }
public System.Boolean? Disabled { get; set; }
public System.Int32? HealthThreshold { get; set; }
public List ChildHealthCheck { get; set; }
public System.Boolean? EnableSNI { get; set; }
public List HealthCheckRegion { get; set; }
public Amazon.Route53.CloudWatchRegion AlarmIdentifier_Region { get; set; }
public System.String AlarmIdentifier_Name { get; set; }
public Amazon.Route53.InsufficientDataHealthStatus InsufficientDataHealthStatus { get; set; }
public List ResetElement { get; set; }
public System.Func Select { get; set; } =
(response, cmdlet) => response.HealthCheck;
}
}
}