{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Module : Network.AWS.Route53.UpdateHealthCheck -- Copyright : (c) 2013-2014 Brendan Hay -- License : This Source Code Form is subject to the terms of -- the Mozilla Public License, v. 2.0. -- A copy of the MPL can be found in the LICENSE file or -- you can obtain it at http://mozilla.org/MPL/2.0/. -- Maintainer : Brendan Hay -- Stability : experimental -- Portability : non-portable (GHC extensions) -- -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | This action updates an existing health check. -- -- To update a health check, send a 'POST' request to the '2013-04-01/healthcheck//health check ID/ resource. The request body must include an XML document with -- an 'UpdateHealthCheckRequest' element. The response returns an 'UpdateHealthCheckResponse' element, which contains metadata about the health check. -- -- module Network.AWS.Route53.UpdateHealthCheck ( -- * Request UpdateHealthCheck -- ** Request constructor , updateHealthCheck -- ** Request lenses , uhcFailureThreshold , uhcFullyQualifiedDomainName , uhcHealthCheckId , uhcHealthCheckVersion , uhcIPAddress , uhcPort , uhcResourcePath , uhcSearchString -- * Response , UpdateHealthCheckResponse -- ** Response constructor , updateHealthCheckResponse -- ** Response lenses , uhcrHealthCheck ) where import Network.AWS.Prelude import Network.AWS.Request.RestXML import Network.AWS.Route53.Types import qualified GHC.Exts data UpdateHealthCheck = UpdateHealthCheck { _uhcFailureThreshold :: Maybe Nat , _uhcFullyQualifiedDomainName :: Maybe Text , _uhcHealthCheckId :: Text , _uhcHealthCheckVersion :: Maybe Nat , _uhcIPAddress :: Maybe Text , _uhcPort :: Maybe Nat , _uhcResourcePath :: Maybe Text , _uhcSearchString :: Maybe Text } deriving (Eq, Ord, Show) -- | 'UpdateHealthCheck' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'uhcFailureThreshold' @::@ 'Maybe' 'Natural' -- -- * 'uhcFullyQualifiedDomainName' @::@ 'Maybe' 'Text' -- -- * 'uhcHealthCheckId' @::@ 'Text' -- -- * 'uhcHealthCheckVersion' @::@ 'Maybe' 'Natural' -- -- * 'uhcIPAddress' @::@ 'Maybe' 'Text' -- -- * 'uhcPort' @::@ 'Maybe' 'Natural' -- -- * 'uhcResourcePath' @::@ 'Maybe' 'Text' -- -- * 'uhcSearchString' @::@ 'Maybe' 'Text' -- updateHealthCheck :: Text -- ^ 'uhcHealthCheckId' -> UpdateHealthCheck updateHealthCheck p1 = UpdateHealthCheck { _uhcHealthCheckId = p1 , _uhcHealthCheckVersion = Nothing , _uhcIPAddress = Nothing , _uhcPort = Nothing , _uhcResourcePath = Nothing , _uhcFullyQualifiedDomainName = Nothing , _uhcSearchString = Nothing , _uhcFailureThreshold = Nothing } -- | The number of consecutive health checks that an endpoint must pass or fail -- for Route 53 to change the current status of the endpoint from unhealthy to -- healthy or vice versa. -- -- Valid values are integers between 1 and 10. For more information, see "How -- Amazon Route 53 Determines Whether an Endpoint Is Healthy" in the Amazon -- Route 53 Developer Guide. -- -- Specify this value only if you want to change it. uhcFailureThreshold :: Lens' UpdateHealthCheck (Maybe Natural) uhcFailureThreshold = lens _uhcFailureThreshold (\s a -> s { _uhcFailureThreshold = a }) . mapping _Nat -- | Fully qualified domain name of the instance to be health checked. -- -- Specify this value only if you want to change it. uhcFullyQualifiedDomainName :: Lens' UpdateHealthCheck (Maybe Text) uhcFullyQualifiedDomainName = lens _uhcFullyQualifiedDomainName (\s a -> s { _uhcFullyQualifiedDomainName = a }) -- | The ID of the health check to update. uhcHealthCheckId :: Lens' UpdateHealthCheck Text uhcHealthCheckId = lens _uhcHealthCheckId (\s a -> s { _uhcHealthCheckId = a }) -- | Optional. When you specify a health check version, Route 53 compares this -- value with the current value in the health check, which prevents you from -- updating the health check when the versions don't match. Using 'HealthCheckVersion' lets you prevent overwriting another change to the health check. uhcHealthCheckVersion :: Lens' UpdateHealthCheck (Maybe Natural) uhcHealthCheckVersion = lens _uhcHealthCheckVersion (\s a -> s { _uhcHealthCheckVersion = a }) . mapping _Nat -- | The IP address of the resource that you want to check. -- -- Specify this value only if you want to change it. uhcIPAddress :: Lens' UpdateHealthCheck (Maybe Text) uhcIPAddress = lens _uhcIPAddress (\s a -> s { _uhcIPAddress = a }) -- | The port on which you want Route 53 to open a connection to perform health -- checks. -- -- Specify this value only if you want to change it. uhcPort :: Lens' UpdateHealthCheck (Maybe Natural) uhcPort = lens _uhcPort (\s a -> s { _uhcPort = a }) . mapping _Nat -- | 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. -- -- Specify this value only if you want to change it. uhcResourcePath :: Lens' UpdateHealthCheck (Maybe Text) uhcResourcePath = lens _uhcResourcePath (\s a -> s { _uhcResourcePath = a }) -- | If the value of 'Type' is 'HTTP_STR_MATCH' or 'HTTP_STR_MATCH', the string that you -- want 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. -- -- Specify this value only if you want to change it. uhcSearchString :: Lens' UpdateHealthCheck (Maybe Text) uhcSearchString = lens _uhcSearchString (\s a -> s { _uhcSearchString = a }) newtype UpdateHealthCheckResponse = UpdateHealthCheckResponse { _uhcrHealthCheck :: HealthCheck } deriving (Eq, Show) -- | 'UpdateHealthCheckResponse' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'uhcrHealthCheck' @::@ 'HealthCheck' -- updateHealthCheckResponse :: HealthCheck -- ^ 'uhcrHealthCheck' -> UpdateHealthCheckResponse updateHealthCheckResponse p1 = UpdateHealthCheckResponse { _uhcrHealthCheck = p1 } uhcrHealthCheck :: Lens' UpdateHealthCheckResponse HealthCheck uhcrHealthCheck = lens _uhcrHealthCheck (\s a -> s { _uhcrHealthCheck = a }) instance ToPath UpdateHealthCheck where toPath UpdateHealthCheck{..} = mconcat [ "/2013-04-01/healthcheck/" , toText _uhcHealthCheckId ] instance ToQuery UpdateHealthCheck where toQuery = const mempty instance ToHeaders UpdateHealthCheck instance ToXMLRoot UpdateHealthCheck where toXMLRoot UpdateHealthCheck{..} = namespaced ns "UpdateHealthCheck" [ "HealthCheckVersion" =@ _uhcHealthCheckVersion , "IPAddress" =@ _uhcIPAddress , "Port" =@ _uhcPort , "ResourcePath" =@ _uhcResourcePath , "FullyQualifiedDomainName" =@ _uhcFullyQualifiedDomainName , "SearchString" =@ _uhcSearchString , "FailureThreshold" =@ _uhcFailureThreshold ] instance ToXML UpdateHealthCheck instance AWSRequest UpdateHealthCheck where type Sv UpdateHealthCheck = Route53 type Rs UpdateHealthCheck = UpdateHealthCheckResponse request = post response = xmlResponse instance FromXML UpdateHealthCheckResponse where parseXML x = UpdateHealthCheckResponse <$> x .@ "HealthCheck"