{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.Route53.UpdateHealthCheck -- Copyright : (c) 2013-2021 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Updates an existing health check. Note that some values can\'t be -- updated. -- -- For more information about updating health checks, see -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html Creating, Updating, and Deleting Health Checks> -- in the /Amazon Route 53 Developer Guide/. module Amazonka.Route53.UpdateHealthCheck ( -- * Creating a Request UpdateHealthCheck (..), newUpdateHealthCheck, -- * Request Lenses updateHealthCheck_failureThreshold, updateHealthCheck_iPAddress, updateHealthCheck_enableSNI, updateHealthCheck_disabled, updateHealthCheck_resetElements, updateHealthCheck_searchString, updateHealthCheck_healthThreshold, updateHealthCheck_regions, updateHealthCheck_resourcePath, updateHealthCheck_insufficientDataHealthStatus, updateHealthCheck_healthCheckVersion, updateHealthCheck_alarmIdentifier, updateHealthCheck_inverted, updateHealthCheck_fullyQualifiedDomainName, updateHealthCheck_childHealthChecks, updateHealthCheck_port, updateHealthCheck_healthCheckId, -- * Destructuring the Response UpdateHealthCheckResponse (..), newUpdateHealthCheckResponse, -- * Response Lenses updateHealthCheckResponse_httpStatus, updateHealthCheckResponse_healthCheck, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Lens as Lens import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response import Amazonka.Route53.Types -- | A complex type that contains information about a request to update a -- health check. -- -- /See:/ 'newUpdateHealthCheck' smart constructor. data UpdateHealthCheck = UpdateHealthCheck' { -- | 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 -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html 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. UpdateHealthCheck -> Maybe Natural failureThreshold :: Prelude.Maybe Prelude.Natural, -- | 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: -- -- - Linux: -- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses (EIP)> -- in the /Amazon EC2 User Guide for Linux Instances/ -- -- - Windows: -- <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-ip-addresses-eip.html Elastic IP Addresses (EIP)> -- in the /Amazon EC2 User Guide for Windows Instances/ -- -- 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 -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName 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: -- -- - <https://tools.ietf.org/html/rfc5735 RFC 5735, Special Use IPv4 Addresses> -- -- - <https://tools.ietf.org/html/rfc6598 RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space> -- -- - <https://tools.ietf.org/html/rfc5156 RFC 5156, Special-Use IPv6 Addresses> UpdateHealthCheck -> Maybe Text iPAddress :: Prelude.Maybe Prelude.Text, -- | 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. UpdateHealthCheck -> Maybe Bool enableSNI :: Prelude.Maybe Prelude.Bool, -- | 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 -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-Inverted Inverted>. -- -- Charges for a health check still apply when the health check is -- disabled. For more information, see -- <http://aws.amazon.com/route53/pricing/ Amazon Route 53 Pricing>. UpdateHealthCheck -> Maybe Bool disabled :: Prelude.Maybe Prelude.Bool, -- | 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 -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-ChildHealthChecks ChildHealthChecks> -- to null. -- -- - @FullyQualifiedDomainName@: Route 53 resets -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName FullyQualifiedDomainName>. -- to null. -- -- - @Regions@: Route 53 resets the -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions Regions> -- list to the default set of regions. -- -- - @ResourcePath@: Route 53 resets -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-ResourcePath ResourcePath> -- to null. UpdateHealthCheck -> Maybe [ResettableElementName] resetElements :: Prelude.Maybe [ResettableElementName], -- | 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.) UpdateHealthCheck -> Maybe Text searchString :: Prelude.Maybe Prelude.Text, -- | 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. UpdateHealthCheck -> Maybe Natural healthThreshold :: Prelude.Maybe Prelude.Natural, -- | 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. UpdateHealthCheck -> Maybe (NonEmpty HealthCheckRegion) regions :: Prelude.Maybe (Prelude.NonEmpty HealthCheckRegion), -- | 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. UpdateHealthCheck -> Maybe Text resourcePath :: Prelude.Maybe Prelude.Text, -- | 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@: 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 -- default status for the health check is healthy. UpdateHealthCheck -> Maybe InsufficientDataHealthStatus insufficientDataHealthStatus :: Prelude.Maybe InsufficientDataHealthStatus, -- | 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. UpdateHealthCheck -> Maybe Natural healthCheckVersion :: Prelude.Maybe Prelude.Natural, -- | 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. UpdateHealthCheck -> Maybe AlarmIdentifier alarmIdentifier :: Prelude.Maybe AlarmIdentifier, -- | 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. UpdateHealthCheck -> Maybe Bool inverted :: Prelude.Maybe Prelude.Bool, -- | 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. UpdateHealthCheck -> Maybe Text fullyQualifiedDomainName :: Prelude.Maybe Prelude.Text, -- | A complex type that contains one @ChildHealthCheck@ element for each -- health check that you want to associate with a @CALCULATED@ health -- check. UpdateHealthCheck -> Maybe [Text] childHealthChecks :: Prelude.Maybe [Prelude.Text], -- | 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@. UpdateHealthCheck -> Maybe Natural port :: Prelude.Maybe Prelude.Natural, -- | 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. UpdateHealthCheck -> Text healthCheckId :: Prelude.Text } deriving (UpdateHealthCheck -> UpdateHealthCheck -> Bool (UpdateHealthCheck -> UpdateHealthCheck -> Bool) -> (UpdateHealthCheck -> UpdateHealthCheck -> Bool) -> Eq UpdateHealthCheck forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: UpdateHealthCheck -> UpdateHealthCheck -> Bool $c/= :: UpdateHealthCheck -> UpdateHealthCheck -> Bool == :: UpdateHealthCheck -> UpdateHealthCheck -> Bool $c== :: UpdateHealthCheck -> UpdateHealthCheck -> Bool Prelude.Eq, ReadPrec [UpdateHealthCheck] ReadPrec UpdateHealthCheck Int -> ReadS UpdateHealthCheck ReadS [UpdateHealthCheck] (Int -> ReadS UpdateHealthCheck) -> ReadS [UpdateHealthCheck] -> ReadPrec UpdateHealthCheck -> ReadPrec [UpdateHealthCheck] -> Read UpdateHealthCheck forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [UpdateHealthCheck] $creadListPrec :: ReadPrec [UpdateHealthCheck] readPrec :: ReadPrec UpdateHealthCheck $creadPrec :: ReadPrec UpdateHealthCheck readList :: ReadS [UpdateHealthCheck] $creadList :: ReadS [UpdateHealthCheck] readsPrec :: Int -> ReadS UpdateHealthCheck $creadsPrec :: Int -> ReadS UpdateHealthCheck Prelude.Read, Int -> UpdateHealthCheck -> ShowS [UpdateHealthCheck] -> ShowS UpdateHealthCheck -> String (Int -> UpdateHealthCheck -> ShowS) -> (UpdateHealthCheck -> String) -> ([UpdateHealthCheck] -> ShowS) -> Show UpdateHealthCheck forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [UpdateHealthCheck] -> ShowS $cshowList :: [UpdateHealthCheck] -> ShowS show :: UpdateHealthCheck -> String $cshow :: UpdateHealthCheck -> String showsPrec :: Int -> UpdateHealthCheck -> ShowS $cshowsPrec :: Int -> UpdateHealthCheck -> ShowS Prelude.Show, (forall x. UpdateHealthCheck -> Rep UpdateHealthCheck x) -> (forall x. Rep UpdateHealthCheck x -> UpdateHealthCheck) -> Generic UpdateHealthCheck forall x. Rep UpdateHealthCheck x -> UpdateHealthCheck forall x. UpdateHealthCheck -> Rep UpdateHealthCheck x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep UpdateHealthCheck x -> UpdateHealthCheck $cfrom :: forall x. UpdateHealthCheck -> Rep UpdateHealthCheck x Prelude.Generic) -- | -- Create a value of 'UpdateHealthCheck' with all optional fields omitted. -- -- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'failureThreshold', 'updateHealthCheck_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 -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html 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. -- -- 'iPAddress', 'updateHealthCheck_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: -- -- - Linux: -- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses (EIP)> -- in the /Amazon EC2 User Guide for Linux Instances/ -- -- - Windows: -- <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-ip-addresses-eip.html Elastic IP Addresses (EIP)> -- in the /Amazon EC2 User Guide for Windows Instances/ -- -- 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 -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName 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: -- -- - <https://tools.ietf.org/html/rfc5735 RFC 5735, Special Use IPv4 Addresses> -- -- - <https://tools.ietf.org/html/rfc6598 RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space> -- -- - <https://tools.ietf.org/html/rfc5156 RFC 5156, Special-Use IPv6 Addresses> -- -- 'enableSNI', 'updateHealthCheck_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. -- -- 'disabled', 'updateHealthCheck_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 -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-Inverted Inverted>. -- -- Charges for a health check still apply when the health check is -- disabled. For more information, see -- <http://aws.amazon.com/route53/pricing/ Amazon Route 53 Pricing>. -- -- 'resetElements', 'updateHealthCheck_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 -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-ChildHealthChecks ChildHealthChecks> -- to null. -- -- - @FullyQualifiedDomainName@: Route 53 resets -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName FullyQualifiedDomainName>. -- to null. -- -- - @Regions@: Route 53 resets the -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions Regions> -- list to the default set of regions. -- -- - @ResourcePath@: Route 53 resets -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-ResourcePath ResourcePath> -- to null. -- -- 'searchString', 'updateHealthCheck_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.) -- -- 'healthThreshold', 'updateHealthCheck_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. -- -- 'regions', 'updateHealthCheck_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. -- -- 'resourcePath', 'updateHealthCheck_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. -- -- 'insufficientDataHealthStatus', 'updateHealthCheck_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@: 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 -- default status for the health check is healthy. -- -- 'healthCheckVersion', 'updateHealthCheck_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. -- -- 'alarmIdentifier', 'updateHealthCheck_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. -- -- 'inverted', 'updateHealthCheck_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. -- -- 'fullyQualifiedDomainName', 'updateHealthCheck_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. -- -- 'childHealthChecks', 'updateHealthCheck_childHealthChecks' - A complex type that contains one @ChildHealthCheck@ element for each -- health check that you want to associate with a @CALCULATED@ health -- check. -- -- 'port', 'updateHealthCheck_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@. -- -- 'healthCheckId', 'updateHealthCheck_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. newUpdateHealthCheck :: -- | 'healthCheckId' Prelude.Text -> UpdateHealthCheck newUpdateHealthCheck :: Text -> UpdateHealthCheck newUpdateHealthCheck Text pHealthCheckId_ = UpdateHealthCheck' :: Maybe Natural -> Maybe Text -> Maybe Bool -> Maybe Bool -> Maybe [ResettableElementName] -> Maybe Text -> Maybe Natural -> Maybe (NonEmpty HealthCheckRegion) -> Maybe Text -> Maybe InsufficientDataHealthStatus -> Maybe Natural -> Maybe AlarmIdentifier -> Maybe Bool -> Maybe Text -> Maybe [Text] -> Maybe Natural -> Text -> UpdateHealthCheck UpdateHealthCheck' { $sel:failureThreshold:UpdateHealthCheck' :: Maybe Natural failureThreshold = Maybe Natural forall a. Maybe a Prelude.Nothing, $sel:iPAddress:UpdateHealthCheck' :: Maybe Text iPAddress = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:enableSNI:UpdateHealthCheck' :: Maybe Bool enableSNI = Maybe Bool forall a. Maybe a Prelude.Nothing, $sel:disabled:UpdateHealthCheck' :: Maybe Bool disabled = Maybe Bool forall a. Maybe a Prelude.Nothing, $sel:resetElements:UpdateHealthCheck' :: Maybe [ResettableElementName] resetElements = Maybe [ResettableElementName] forall a. Maybe a Prelude.Nothing, $sel:searchString:UpdateHealthCheck' :: Maybe Text searchString = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:healthThreshold:UpdateHealthCheck' :: Maybe Natural healthThreshold = Maybe Natural forall a. Maybe a Prelude.Nothing, $sel:regions:UpdateHealthCheck' :: Maybe (NonEmpty HealthCheckRegion) regions = Maybe (NonEmpty HealthCheckRegion) forall a. Maybe a Prelude.Nothing, $sel:resourcePath:UpdateHealthCheck' :: Maybe Text resourcePath = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:insufficientDataHealthStatus:UpdateHealthCheck' :: Maybe InsufficientDataHealthStatus insufficientDataHealthStatus = Maybe InsufficientDataHealthStatus forall a. Maybe a Prelude.Nothing, $sel:healthCheckVersion:UpdateHealthCheck' :: Maybe Natural healthCheckVersion = Maybe Natural forall a. Maybe a Prelude.Nothing, $sel:alarmIdentifier:UpdateHealthCheck' :: Maybe AlarmIdentifier alarmIdentifier = Maybe AlarmIdentifier forall a. Maybe a Prelude.Nothing, $sel:inverted:UpdateHealthCheck' :: Maybe Bool inverted = Maybe Bool forall a. Maybe a Prelude.Nothing, $sel:fullyQualifiedDomainName:UpdateHealthCheck' :: Maybe Text fullyQualifiedDomainName = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:childHealthChecks:UpdateHealthCheck' :: Maybe [Text] childHealthChecks = Maybe [Text] forall a. Maybe a Prelude.Nothing, $sel:port:UpdateHealthCheck' :: Maybe Natural port = Maybe Natural forall a. Maybe a Prelude.Nothing, $sel:healthCheckId:UpdateHealthCheck' :: Text healthCheckId = Text pHealthCheckId_ } -- | 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 -- <https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html 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. updateHealthCheck_failureThreshold :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe Prelude.Natural) updateHealthCheck_failureThreshold :: (Maybe Natural -> f (Maybe Natural)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_failureThreshold = (UpdateHealthCheck -> Maybe Natural) -> (UpdateHealthCheck -> Maybe Natural -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe Natural) (Maybe Natural) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe Natural failureThreshold :: Maybe Natural $sel:failureThreshold:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Natural failureThreshold} -> Maybe Natural failureThreshold) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe Natural a -> UpdateHealthCheck s {$sel:failureThreshold:UpdateHealthCheck' :: Maybe Natural failureThreshold = Maybe Natural a} :: UpdateHealthCheck) -- | 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: -- -- - Linux: -- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses (EIP)> -- in the /Amazon EC2 User Guide for Linux Instances/ -- -- - Windows: -- <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-ip-addresses-eip.html Elastic IP Addresses (EIP)> -- in the /Amazon EC2 User Guide for Windows Instances/ -- -- 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 -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName 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: -- -- - <https://tools.ietf.org/html/rfc5735 RFC 5735, Special Use IPv4 Addresses> -- -- - <https://tools.ietf.org/html/rfc6598 RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space> -- -- - <https://tools.ietf.org/html/rfc5156 RFC 5156, Special-Use IPv6 Addresses> updateHealthCheck_iPAddress :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe Prelude.Text) updateHealthCheck_iPAddress :: (Maybe Text -> f (Maybe Text)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_iPAddress = (UpdateHealthCheck -> Maybe Text) -> (UpdateHealthCheck -> Maybe Text -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe Text iPAddress :: Maybe Text $sel:iPAddress:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Text iPAddress} -> Maybe Text iPAddress) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe Text a -> UpdateHealthCheck s {$sel:iPAddress:UpdateHealthCheck' :: Maybe Text iPAddress = Maybe Text a} :: UpdateHealthCheck) -- | 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. updateHealthCheck_enableSNI :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe Prelude.Bool) updateHealthCheck_enableSNI :: (Maybe Bool -> f (Maybe Bool)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_enableSNI = (UpdateHealthCheck -> Maybe Bool) -> (UpdateHealthCheck -> Maybe Bool -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe Bool) (Maybe Bool) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe Bool enableSNI :: Maybe Bool $sel:enableSNI:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Bool enableSNI} -> Maybe Bool enableSNI) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe Bool a -> UpdateHealthCheck s {$sel:enableSNI:UpdateHealthCheck' :: Maybe Bool enableSNI = Maybe Bool a} :: UpdateHealthCheck) -- | 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 -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-Inverted Inverted>. -- -- Charges for a health check still apply when the health check is -- disabled. For more information, see -- <http://aws.amazon.com/route53/pricing/ Amazon Route 53 Pricing>. updateHealthCheck_disabled :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe Prelude.Bool) updateHealthCheck_disabled :: (Maybe Bool -> f (Maybe Bool)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_disabled = (UpdateHealthCheck -> Maybe Bool) -> (UpdateHealthCheck -> Maybe Bool -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe Bool) (Maybe Bool) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe Bool disabled :: Maybe Bool $sel:disabled:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Bool disabled} -> Maybe Bool disabled) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe Bool a -> UpdateHealthCheck s {$sel:disabled:UpdateHealthCheck' :: Maybe Bool disabled = Maybe Bool a} :: UpdateHealthCheck) -- | 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 -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-ChildHealthChecks ChildHealthChecks> -- to null. -- -- - @FullyQualifiedDomainName@: Route 53 resets -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName FullyQualifiedDomainName>. -- to null. -- -- - @Regions@: Route 53 resets the -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions Regions> -- list to the default set of regions. -- -- - @ResourcePath@: Route 53 resets -- <https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-ResourcePath ResourcePath> -- to null. updateHealthCheck_resetElements :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe [ResettableElementName]) updateHealthCheck_resetElements :: (Maybe [ResettableElementName] -> f (Maybe [ResettableElementName])) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_resetElements = (UpdateHealthCheck -> Maybe [ResettableElementName]) -> (UpdateHealthCheck -> Maybe [ResettableElementName] -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe [ResettableElementName]) (Maybe [ResettableElementName]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe [ResettableElementName] resetElements :: Maybe [ResettableElementName] $sel:resetElements:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe [ResettableElementName] resetElements} -> Maybe [ResettableElementName] resetElements) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe [ResettableElementName] a -> UpdateHealthCheck s {$sel:resetElements:UpdateHealthCheck' :: Maybe [ResettableElementName] resetElements = Maybe [ResettableElementName] a} :: UpdateHealthCheck) ((Maybe [ResettableElementName] -> f (Maybe [ResettableElementName])) -> UpdateHealthCheck -> f UpdateHealthCheck) -> ((Maybe [ResettableElementName] -> f (Maybe [ResettableElementName])) -> Maybe [ResettableElementName] -> f (Maybe [ResettableElementName])) -> (Maybe [ResettableElementName] -> f (Maybe [ResettableElementName])) -> UpdateHealthCheck -> f UpdateHealthCheck forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [ResettableElementName] [ResettableElementName] [ResettableElementName] [ResettableElementName] -> Iso (Maybe [ResettableElementName]) (Maybe [ResettableElementName]) (Maybe [ResettableElementName]) (Maybe [ResettableElementName]) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso [ResettableElementName] [ResettableElementName] [ResettableElementName] [ResettableElementName] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | 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.) updateHealthCheck_searchString :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe Prelude.Text) updateHealthCheck_searchString :: (Maybe Text -> f (Maybe Text)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_searchString = (UpdateHealthCheck -> Maybe Text) -> (UpdateHealthCheck -> Maybe Text -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe Text searchString :: Maybe Text $sel:searchString:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Text searchString} -> Maybe Text searchString) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe Text a -> UpdateHealthCheck s {$sel:searchString:UpdateHealthCheck' :: Maybe Text searchString = Maybe Text a} :: UpdateHealthCheck) -- | 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. updateHealthCheck_healthThreshold :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe Prelude.Natural) updateHealthCheck_healthThreshold :: (Maybe Natural -> f (Maybe Natural)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_healthThreshold = (UpdateHealthCheck -> Maybe Natural) -> (UpdateHealthCheck -> Maybe Natural -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe Natural) (Maybe Natural) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe Natural healthThreshold :: Maybe Natural $sel:healthThreshold:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Natural healthThreshold} -> Maybe Natural healthThreshold) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe Natural a -> UpdateHealthCheck s {$sel:healthThreshold:UpdateHealthCheck' :: Maybe Natural healthThreshold = Maybe Natural a} :: UpdateHealthCheck) -- | 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. updateHealthCheck_regions :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe (Prelude.NonEmpty HealthCheckRegion)) updateHealthCheck_regions :: (Maybe (NonEmpty HealthCheckRegion) -> f (Maybe (NonEmpty HealthCheckRegion))) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_regions = (UpdateHealthCheck -> Maybe (NonEmpty HealthCheckRegion)) -> (UpdateHealthCheck -> Maybe (NonEmpty HealthCheckRegion) -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe (NonEmpty HealthCheckRegion)) (Maybe (NonEmpty HealthCheckRegion)) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe (NonEmpty HealthCheckRegion) regions :: Maybe (NonEmpty HealthCheckRegion) $sel:regions:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe (NonEmpty HealthCheckRegion) regions} -> Maybe (NonEmpty HealthCheckRegion) regions) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe (NonEmpty HealthCheckRegion) a -> UpdateHealthCheck s {$sel:regions:UpdateHealthCheck' :: Maybe (NonEmpty HealthCheckRegion) regions = Maybe (NonEmpty HealthCheckRegion) a} :: UpdateHealthCheck) ((Maybe (NonEmpty HealthCheckRegion) -> f (Maybe (NonEmpty HealthCheckRegion))) -> UpdateHealthCheck -> f UpdateHealthCheck) -> ((Maybe (NonEmpty HealthCheckRegion) -> f (Maybe (NonEmpty HealthCheckRegion))) -> Maybe (NonEmpty HealthCheckRegion) -> f (Maybe (NonEmpty HealthCheckRegion))) -> (Maybe (NonEmpty HealthCheckRegion) -> f (Maybe (NonEmpty HealthCheckRegion))) -> UpdateHealthCheck -> f UpdateHealthCheck forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso (NonEmpty HealthCheckRegion) (NonEmpty HealthCheckRegion) (NonEmpty HealthCheckRegion) (NonEmpty HealthCheckRegion) -> Iso (Maybe (NonEmpty HealthCheckRegion)) (Maybe (NonEmpty HealthCheckRegion)) (Maybe (NonEmpty HealthCheckRegion)) (Maybe (NonEmpty HealthCheckRegion)) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso (NonEmpty HealthCheckRegion) (NonEmpty HealthCheckRegion) (NonEmpty HealthCheckRegion) (NonEmpty HealthCheckRegion) forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | 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. updateHealthCheck_resourcePath :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe Prelude.Text) updateHealthCheck_resourcePath :: (Maybe Text -> f (Maybe Text)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_resourcePath = (UpdateHealthCheck -> Maybe Text) -> (UpdateHealthCheck -> Maybe Text -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe Text resourcePath :: Maybe Text $sel:resourcePath:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Text resourcePath} -> Maybe Text resourcePath) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe Text a -> UpdateHealthCheck s {$sel:resourcePath:UpdateHealthCheck' :: Maybe Text resourcePath = Maybe Text a} :: UpdateHealthCheck) -- | 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@: 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 -- default status for the health check is healthy. updateHealthCheck_insufficientDataHealthStatus :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe InsufficientDataHealthStatus) updateHealthCheck_insufficientDataHealthStatus :: (Maybe InsufficientDataHealthStatus -> f (Maybe InsufficientDataHealthStatus)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_insufficientDataHealthStatus = (UpdateHealthCheck -> Maybe InsufficientDataHealthStatus) -> (UpdateHealthCheck -> Maybe InsufficientDataHealthStatus -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe InsufficientDataHealthStatus) (Maybe InsufficientDataHealthStatus) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe InsufficientDataHealthStatus insufficientDataHealthStatus :: Maybe InsufficientDataHealthStatus $sel:insufficientDataHealthStatus:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe InsufficientDataHealthStatus insufficientDataHealthStatus} -> Maybe InsufficientDataHealthStatus insufficientDataHealthStatus) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe InsufficientDataHealthStatus a -> UpdateHealthCheck s {$sel:insufficientDataHealthStatus:UpdateHealthCheck' :: Maybe InsufficientDataHealthStatus insufficientDataHealthStatus = Maybe InsufficientDataHealthStatus a} :: UpdateHealthCheck) -- | 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. updateHealthCheck_healthCheckVersion :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe Prelude.Natural) updateHealthCheck_healthCheckVersion :: (Maybe Natural -> f (Maybe Natural)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_healthCheckVersion = (UpdateHealthCheck -> Maybe Natural) -> (UpdateHealthCheck -> Maybe Natural -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe Natural) (Maybe Natural) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe Natural healthCheckVersion :: Maybe Natural $sel:healthCheckVersion:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Natural healthCheckVersion} -> Maybe Natural healthCheckVersion) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe Natural a -> UpdateHealthCheck s {$sel:healthCheckVersion:UpdateHealthCheck' :: Maybe Natural healthCheckVersion = Maybe Natural a} :: UpdateHealthCheck) -- | 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. updateHealthCheck_alarmIdentifier :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe AlarmIdentifier) updateHealthCheck_alarmIdentifier :: (Maybe AlarmIdentifier -> f (Maybe AlarmIdentifier)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_alarmIdentifier = (UpdateHealthCheck -> Maybe AlarmIdentifier) -> (UpdateHealthCheck -> Maybe AlarmIdentifier -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe AlarmIdentifier) (Maybe AlarmIdentifier) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe AlarmIdentifier alarmIdentifier :: Maybe AlarmIdentifier $sel:alarmIdentifier:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe AlarmIdentifier alarmIdentifier} -> Maybe AlarmIdentifier alarmIdentifier) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe AlarmIdentifier a -> UpdateHealthCheck s {$sel:alarmIdentifier:UpdateHealthCheck' :: Maybe AlarmIdentifier alarmIdentifier = Maybe AlarmIdentifier a} :: UpdateHealthCheck) -- | 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. updateHealthCheck_inverted :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe Prelude.Bool) updateHealthCheck_inverted :: (Maybe Bool -> f (Maybe Bool)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_inverted = (UpdateHealthCheck -> Maybe Bool) -> (UpdateHealthCheck -> Maybe Bool -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe Bool) (Maybe Bool) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe Bool inverted :: Maybe Bool $sel:inverted:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Bool inverted} -> Maybe Bool inverted) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe Bool a -> UpdateHealthCheck s {$sel:inverted:UpdateHealthCheck' :: Maybe Bool inverted = Maybe Bool a} :: UpdateHealthCheck) -- | 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. updateHealthCheck_fullyQualifiedDomainName :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe Prelude.Text) updateHealthCheck_fullyQualifiedDomainName :: (Maybe Text -> f (Maybe Text)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_fullyQualifiedDomainName = (UpdateHealthCheck -> Maybe Text) -> (UpdateHealthCheck -> Maybe Text -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe Text fullyQualifiedDomainName :: Maybe Text $sel:fullyQualifiedDomainName:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Text fullyQualifiedDomainName} -> Maybe Text fullyQualifiedDomainName) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe Text a -> UpdateHealthCheck s {$sel:fullyQualifiedDomainName:UpdateHealthCheck' :: Maybe Text fullyQualifiedDomainName = Maybe Text a} :: UpdateHealthCheck) -- | A complex type that contains one @ChildHealthCheck@ element for each -- health check that you want to associate with a @CALCULATED@ health -- check. updateHealthCheck_childHealthChecks :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe [Prelude.Text]) updateHealthCheck_childHealthChecks :: (Maybe [Text] -> f (Maybe [Text])) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_childHealthChecks = (UpdateHealthCheck -> Maybe [Text]) -> (UpdateHealthCheck -> Maybe [Text] -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe [Text]) (Maybe [Text]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe [Text] childHealthChecks :: Maybe [Text] $sel:childHealthChecks:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe [Text] childHealthChecks} -> Maybe [Text] childHealthChecks) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe [Text] a -> UpdateHealthCheck s {$sel:childHealthChecks:UpdateHealthCheck' :: Maybe [Text] childHealthChecks = Maybe [Text] a} :: UpdateHealthCheck) ((Maybe [Text] -> f (Maybe [Text])) -> UpdateHealthCheck -> f UpdateHealthCheck) -> ((Maybe [Text] -> f (Maybe [Text])) -> Maybe [Text] -> f (Maybe [Text])) -> (Maybe [Text] -> f (Maybe [Text])) -> UpdateHealthCheck -> f UpdateHealthCheck forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [Text] [Text] [Text] [Text] -> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso [Text] [Text] [Text] [Text] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | 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@. updateHealthCheck_port :: Lens.Lens' UpdateHealthCheck (Prelude.Maybe Prelude.Natural) updateHealthCheck_port :: (Maybe Natural -> f (Maybe Natural)) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_port = (UpdateHealthCheck -> Maybe Natural) -> (UpdateHealthCheck -> Maybe Natural -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck (Maybe Natural) (Maybe Natural) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Maybe Natural port :: Maybe Natural $sel:port:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Natural port} -> Maybe Natural port) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Maybe Natural a -> UpdateHealthCheck s {$sel:port:UpdateHealthCheck' :: Maybe Natural port = Maybe Natural a} :: UpdateHealthCheck) -- | 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. updateHealthCheck_healthCheckId :: Lens.Lens' UpdateHealthCheck Prelude.Text updateHealthCheck_healthCheckId :: (Text -> f Text) -> UpdateHealthCheck -> f UpdateHealthCheck updateHealthCheck_healthCheckId = (UpdateHealthCheck -> Text) -> (UpdateHealthCheck -> Text -> UpdateHealthCheck) -> Lens UpdateHealthCheck UpdateHealthCheck Text Text forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheck' {Text healthCheckId :: Text $sel:healthCheckId:UpdateHealthCheck' :: UpdateHealthCheck -> Text healthCheckId} -> Text healthCheckId) (\s :: UpdateHealthCheck s@UpdateHealthCheck' {} Text a -> UpdateHealthCheck s {$sel:healthCheckId:UpdateHealthCheck' :: Text healthCheckId = Text a} :: UpdateHealthCheck) instance Core.AWSRequest UpdateHealthCheck where type AWSResponse UpdateHealthCheck = UpdateHealthCheckResponse request :: UpdateHealthCheck -> Request UpdateHealthCheck request = Service -> UpdateHealthCheck -> Request UpdateHealthCheck forall a. (ToRequest a, ToElement a) => Service -> a -> Request a Request.postXML Service defaultService response :: Logger -> Service -> Proxy UpdateHealthCheck -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse UpdateHealthCheck))) response = (Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse UpdateHealthCheck)) -> Logger -> Service -> Proxy UpdateHealthCheck -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse UpdateHealthCheck))) forall (m :: * -> *) a. MonadResource m => (Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a)) -> Logger -> Service -> Proxy a -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse a))) Response.receiveXML ( \Int s ResponseHeaders h [Node] x -> Int -> HealthCheck -> UpdateHealthCheckResponse UpdateHealthCheckResponse' (Int -> HealthCheck -> UpdateHealthCheckResponse) -> Either String Int -> Either String (HealthCheck -> UpdateHealthCheckResponse) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> (Int -> Either String Int forall (f :: * -> *) a. Applicative f => a -> f a Prelude.pure (Int -> Int forall a. Enum a => a -> Int Prelude.fromEnum Int s)) Either String (HealthCheck -> UpdateHealthCheckResponse) -> Either String HealthCheck -> Either String UpdateHealthCheckResponse forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> ([Node] x [Node] -> Text -> Either String HealthCheck forall a. FromXML a => [Node] -> Text -> Either String a Core..@ Text "HealthCheck") ) instance Prelude.Hashable UpdateHealthCheck instance Prelude.NFData UpdateHealthCheck instance Core.ToElement UpdateHealthCheck where toElement :: UpdateHealthCheck -> Element toElement = Name -> UpdateHealthCheck -> Element forall a. ToXML a => Name -> a -> Element Core.mkElement Name "{https://route53.amazonaws.com/doc/2013-04-01/}UpdateHealthCheckRequest" instance Core.ToHeaders UpdateHealthCheck where toHeaders :: UpdateHealthCheck -> ResponseHeaders toHeaders = ResponseHeaders -> UpdateHealthCheck -> ResponseHeaders forall a b. a -> b -> a Prelude.const ResponseHeaders forall a. Monoid a => a Prelude.mempty instance Core.ToPath UpdateHealthCheck where toPath :: UpdateHealthCheck -> ByteString toPath UpdateHealthCheck' {Maybe Bool Maybe Natural Maybe [Text] Maybe [ResettableElementName] Maybe (NonEmpty HealthCheckRegion) Maybe Text Maybe AlarmIdentifier Maybe InsufficientDataHealthStatus Text healthCheckId :: Text port :: Maybe Natural childHealthChecks :: Maybe [Text] fullyQualifiedDomainName :: Maybe Text inverted :: Maybe Bool alarmIdentifier :: Maybe AlarmIdentifier healthCheckVersion :: Maybe Natural insufficientDataHealthStatus :: Maybe InsufficientDataHealthStatus resourcePath :: Maybe Text regions :: Maybe (NonEmpty HealthCheckRegion) healthThreshold :: Maybe Natural searchString :: Maybe Text resetElements :: Maybe [ResettableElementName] disabled :: Maybe Bool enableSNI :: Maybe Bool iPAddress :: Maybe Text failureThreshold :: Maybe Natural $sel:healthCheckId:UpdateHealthCheck' :: UpdateHealthCheck -> Text $sel:port:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Natural $sel:childHealthChecks:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe [Text] $sel:fullyQualifiedDomainName:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Text $sel:inverted:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Bool $sel:alarmIdentifier:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe AlarmIdentifier $sel:healthCheckVersion:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Natural $sel:insufficientDataHealthStatus:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe InsufficientDataHealthStatus $sel:resourcePath:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Text $sel:regions:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe (NonEmpty HealthCheckRegion) $sel:healthThreshold:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Natural $sel:searchString:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Text $sel:resetElements:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe [ResettableElementName] $sel:disabled:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Bool $sel:enableSNI:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Bool $sel:iPAddress:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Text $sel:failureThreshold:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Natural ..} = [ByteString] -> ByteString forall a. Monoid a => [a] -> a Prelude.mconcat [ByteString "/2013-04-01/healthcheck/", Text -> ByteString forall a. ToByteString a => a -> ByteString Core.toBS Text healthCheckId] instance Core.ToQuery UpdateHealthCheck where toQuery :: UpdateHealthCheck -> QueryString toQuery = QueryString -> UpdateHealthCheck -> QueryString forall a b. a -> b -> a Prelude.const QueryString forall a. Monoid a => a Prelude.mempty instance Core.ToXML UpdateHealthCheck where toXML :: UpdateHealthCheck -> XML toXML UpdateHealthCheck' {Maybe Bool Maybe Natural Maybe [Text] Maybe [ResettableElementName] Maybe (NonEmpty HealthCheckRegion) Maybe Text Maybe AlarmIdentifier Maybe InsufficientDataHealthStatus Text healthCheckId :: Text port :: Maybe Natural childHealthChecks :: Maybe [Text] fullyQualifiedDomainName :: Maybe Text inverted :: Maybe Bool alarmIdentifier :: Maybe AlarmIdentifier healthCheckVersion :: Maybe Natural insufficientDataHealthStatus :: Maybe InsufficientDataHealthStatus resourcePath :: Maybe Text regions :: Maybe (NonEmpty HealthCheckRegion) healthThreshold :: Maybe Natural searchString :: Maybe Text resetElements :: Maybe [ResettableElementName] disabled :: Maybe Bool enableSNI :: Maybe Bool iPAddress :: Maybe Text failureThreshold :: Maybe Natural $sel:healthCheckId:UpdateHealthCheck' :: UpdateHealthCheck -> Text $sel:port:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Natural $sel:childHealthChecks:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe [Text] $sel:fullyQualifiedDomainName:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Text $sel:inverted:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Bool $sel:alarmIdentifier:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe AlarmIdentifier $sel:healthCheckVersion:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Natural $sel:insufficientDataHealthStatus:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe InsufficientDataHealthStatus $sel:resourcePath:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Text $sel:regions:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe (NonEmpty HealthCheckRegion) $sel:healthThreshold:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Natural $sel:searchString:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Text $sel:resetElements:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe [ResettableElementName] $sel:disabled:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Bool $sel:enableSNI:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Bool $sel:iPAddress:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Text $sel:failureThreshold:UpdateHealthCheck' :: UpdateHealthCheck -> Maybe Natural ..} = [XML] -> XML forall a. Monoid a => [a] -> a Prelude.mconcat [ Name "FailureThreshold" Name -> Maybe Natural -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe Natural failureThreshold, Name "IPAddress" Name -> Maybe Text -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe Text iPAddress, Name "EnableSNI" Name -> Maybe Bool -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe Bool enableSNI, Name "Disabled" Name -> Maybe Bool -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe Bool disabled, Name "ResetElements" Name -> XML -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe XML -> XML forall a. ToXML a => a -> XML Core.toXML ( Name -> [ResettableElementName] -> XML forall a. (IsList a, ToXML (Item a)) => Name -> a -> XML Core.toXMLList Name "ResettableElementName" ([ResettableElementName] -> XML) -> Maybe [ResettableElementName] -> Maybe XML forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe [ResettableElementName] resetElements ), Name "SearchString" Name -> Maybe Text -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe Text searchString, Name "HealthThreshold" Name -> Maybe Natural -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe Natural healthThreshold, Name "Regions" Name -> XML -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe XML -> XML forall a. ToXML a => a -> XML Core.toXML (Name -> NonEmpty HealthCheckRegion -> XML forall a. (IsList a, ToXML (Item a)) => Name -> a -> XML Core.toXMLList Name "Region" (NonEmpty HealthCheckRegion -> XML) -> Maybe (NonEmpty HealthCheckRegion) -> Maybe XML forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe (NonEmpty HealthCheckRegion) regions), Name "ResourcePath" Name -> Maybe Text -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe Text resourcePath, Name "InsufficientDataHealthStatus" Name -> Maybe InsufficientDataHealthStatus -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe InsufficientDataHealthStatus insufficientDataHealthStatus, Name "HealthCheckVersion" Name -> Maybe Natural -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe Natural healthCheckVersion, Name "AlarmIdentifier" Name -> Maybe AlarmIdentifier -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe AlarmIdentifier alarmIdentifier, Name "Inverted" Name -> Maybe Bool -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe Bool inverted, Name "FullyQualifiedDomainName" Name -> Maybe Text -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe Text fullyQualifiedDomainName, Name "ChildHealthChecks" Name -> XML -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe XML -> XML forall a. ToXML a => a -> XML Core.toXML ( Name -> [Text] -> XML forall a. (IsList a, ToXML (Item a)) => Name -> a -> XML Core.toXMLList Name "ChildHealthCheck" ([Text] -> XML) -> Maybe [Text] -> Maybe XML forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe [Text] childHealthChecks ), Name "Port" Name -> Maybe Natural -> XML forall a. ToXML a => Name -> a -> XML Core.@= Maybe Natural port ] -- | A complex type that contains the response to the @UpdateHealthCheck@ -- request. -- -- /See:/ 'newUpdateHealthCheckResponse' smart constructor. data UpdateHealthCheckResponse = UpdateHealthCheckResponse' { -- | The response's http status code. UpdateHealthCheckResponse -> Int httpStatus :: Prelude.Int, -- | A complex type that contains the response to an @UpdateHealthCheck@ -- request. UpdateHealthCheckResponse -> HealthCheck healthCheck :: HealthCheck } deriving (UpdateHealthCheckResponse -> UpdateHealthCheckResponse -> Bool (UpdateHealthCheckResponse -> UpdateHealthCheckResponse -> Bool) -> (UpdateHealthCheckResponse -> UpdateHealthCheckResponse -> Bool) -> Eq UpdateHealthCheckResponse forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: UpdateHealthCheckResponse -> UpdateHealthCheckResponse -> Bool $c/= :: UpdateHealthCheckResponse -> UpdateHealthCheckResponse -> Bool == :: UpdateHealthCheckResponse -> UpdateHealthCheckResponse -> Bool $c== :: UpdateHealthCheckResponse -> UpdateHealthCheckResponse -> Bool Prelude.Eq, ReadPrec [UpdateHealthCheckResponse] ReadPrec UpdateHealthCheckResponse Int -> ReadS UpdateHealthCheckResponse ReadS [UpdateHealthCheckResponse] (Int -> ReadS UpdateHealthCheckResponse) -> ReadS [UpdateHealthCheckResponse] -> ReadPrec UpdateHealthCheckResponse -> ReadPrec [UpdateHealthCheckResponse] -> Read UpdateHealthCheckResponse forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [UpdateHealthCheckResponse] $creadListPrec :: ReadPrec [UpdateHealthCheckResponse] readPrec :: ReadPrec UpdateHealthCheckResponse $creadPrec :: ReadPrec UpdateHealthCheckResponse readList :: ReadS [UpdateHealthCheckResponse] $creadList :: ReadS [UpdateHealthCheckResponse] readsPrec :: Int -> ReadS UpdateHealthCheckResponse $creadsPrec :: Int -> ReadS UpdateHealthCheckResponse Prelude.Read, Int -> UpdateHealthCheckResponse -> ShowS [UpdateHealthCheckResponse] -> ShowS UpdateHealthCheckResponse -> String (Int -> UpdateHealthCheckResponse -> ShowS) -> (UpdateHealthCheckResponse -> String) -> ([UpdateHealthCheckResponse] -> ShowS) -> Show UpdateHealthCheckResponse forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [UpdateHealthCheckResponse] -> ShowS $cshowList :: [UpdateHealthCheckResponse] -> ShowS show :: UpdateHealthCheckResponse -> String $cshow :: UpdateHealthCheckResponse -> String showsPrec :: Int -> UpdateHealthCheckResponse -> ShowS $cshowsPrec :: Int -> UpdateHealthCheckResponse -> ShowS Prelude.Show, (forall x. UpdateHealthCheckResponse -> Rep UpdateHealthCheckResponse x) -> (forall x. Rep UpdateHealthCheckResponse x -> UpdateHealthCheckResponse) -> Generic UpdateHealthCheckResponse forall x. Rep UpdateHealthCheckResponse x -> UpdateHealthCheckResponse forall x. UpdateHealthCheckResponse -> Rep UpdateHealthCheckResponse x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep UpdateHealthCheckResponse x -> UpdateHealthCheckResponse $cfrom :: forall x. UpdateHealthCheckResponse -> Rep UpdateHealthCheckResponse x Prelude.Generic) -- | -- Create a value of 'UpdateHealthCheckResponse' with all optional fields omitted. -- -- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'httpStatus', 'updateHealthCheckResponse_httpStatus' - The response's http status code. -- -- 'healthCheck', 'updateHealthCheckResponse_healthCheck' - A complex type that contains the response to an @UpdateHealthCheck@ -- request. newUpdateHealthCheckResponse :: -- | 'httpStatus' Prelude.Int -> -- | 'healthCheck' HealthCheck -> UpdateHealthCheckResponse newUpdateHealthCheckResponse :: Int -> HealthCheck -> UpdateHealthCheckResponse newUpdateHealthCheckResponse Int pHttpStatus_ HealthCheck pHealthCheck_ = UpdateHealthCheckResponse' :: Int -> HealthCheck -> UpdateHealthCheckResponse UpdateHealthCheckResponse' { $sel:httpStatus:UpdateHealthCheckResponse' :: Int httpStatus = Int pHttpStatus_, $sel:healthCheck:UpdateHealthCheckResponse' :: HealthCheck healthCheck = HealthCheck pHealthCheck_ } -- | The response's http status code. updateHealthCheckResponse_httpStatus :: Lens.Lens' UpdateHealthCheckResponse Prelude.Int updateHealthCheckResponse_httpStatus :: (Int -> f Int) -> UpdateHealthCheckResponse -> f UpdateHealthCheckResponse updateHealthCheckResponse_httpStatus = (UpdateHealthCheckResponse -> Int) -> (UpdateHealthCheckResponse -> Int -> UpdateHealthCheckResponse) -> Lens UpdateHealthCheckResponse UpdateHealthCheckResponse Int Int forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheckResponse' {Int httpStatus :: Int $sel:httpStatus:UpdateHealthCheckResponse' :: UpdateHealthCheckResponse -> Int httpStatus} -> Int httpStatus) (\s :: UpdateHealthCheckResponse s@UpdateHealthCheckResponse' {} Int a -> UpdateHealthCheckResponse s {$sel:httpStatus:UpdateHealthCheckResponse' :: Int httpStatus = Int a} :: UpdateHealthCheckResponse) -- | A complex type that contains the response to an @UpdateHealthCheck@ -- request. updateHealthCheckResponse_healthCheck :: Lens.Lens' UpdateHealthCheckResponse HealthCheck updateHealthCheckResponse_healthCheck :: (HealthCheck -> f HealthCheck) -> UpdateHealthCheckResponse -> f UpdateHealthCheckResponse updateHealthCheckResponse_healthCheck = (UpdateHealthCheckResponse -> HealthCheck) -> (UpdateHealthCheckResponse -> HealthCheck -> UpdateHealthCheckResponse) -> Lens UpdateHealthCheckResponse UpdateHealthCheckResponse HealthCheck HealthCheck forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\UpdateHealthCheckResponse' {HealthCheck healthCheck :: HealthCheck $sel:healthCheck:UpdateHealthCheckResponse' :: UpdateHealthCheckResponse -> HealthCheck healthCheck} -> HealthCheck healthCheck) (\s :: UpdateHealthCheckResponse s@UpdateHealthCheckResponse' {} HealthCheck a -> UpdateHealthCheckResponse s {$sel:healthCheck:UpdateHealthCheckResponse' :: HealthCheck healthCheck = HealthCheck a} :: UpdateHealthCheckResponse) instance Prelude.NFData UpdateHealthCheckResponse