packages feed

stratosphere-0.57.0: library-gen/Stratosphere/ResourceProperties/AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html

module Stratosphere.ResourceProperties.AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy where

import Stratosphere.ResourceImports


-- | Full data type definition for
-- AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy. See
-- 'appMeshVirtualGatewayVirtualGatewayHealthCheckPolicy' for a more
-- convenient constructor.
data AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy =
  AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy
  { _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyHealthyThreshold :: Val Integer
  , _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyIntervalMillis :: Val Integer
  , _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyPath :: Maybe (Val Text)
  , _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyPort :: Maybe (Val Integer)
  , _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyProtocol :: Val Text
  , _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyTimeoutMillis :: Val Integer
  , _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyUnhealthyThreshold :: Val Integer
  } deriving (Show, Eq)

instance ToJSON AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy where
  toJSON AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy{..} =
    object $
    catMaybes
    [ (Just . ("HealthyThreshold",) . toJSON) _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyHealthyThreshold
    , (Just . ("IntervalMillis",) . toJSON) _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyIntervalMillis
    , fmap (("Path",) . toJSON) _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyPath
    , fmap (("Port",) . toJSON) _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyPort
    , (Just . ("Protocol",) . toJSON) _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyProtocol
    , (Just . ("TimeoutMillis",) . toJSON) _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyTimeoutMillis
    , (Just . ("UnhealthyThreshold",) . toJSON) _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyUnhealthyThreshold
    ]

-- | Constructor for 'AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy'
-- containing required fields as arguments.
appMeshVirtualGatewayVirtualGatewayHealthCheckPolicy
  :: Val Integer -- ^ 'amvgvghcpHealthyThreshold'
  -> Val Integer -- ^ 'amvgvghcpIntervalMillis'
  -> Val Text -- ^ 'amvgvghcpProtocol'
  -> Val Integer -- ^ 'amvgvghcpTimeoutMillis'
  -> Val Integer -- ^ 'amvgvghcpUnhealthyThreshold'
  -> AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy
appMeshVirtualGatewayVirtualGatewayHealthCheckPolicy healthyThresholdarg intervalMillisarg protocolarg timeoutMillisarg unhealthyThresholdarg =
  AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy
  { _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyHealthyThreshold = healthyThresholdarg
  , _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyIntervalMillis = intervalMillisarg
  , _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyPath = Nothing
  , _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyPort = Nothing
  , _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyProtocol = protocolarg
  , _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyTimeoutMillis = timeoutMillisarg
  , _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyUnhealthyThreshold = unhealthyThresholdarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-healthythreshold
amvgvghcpHealthyThreshold :: Lens' AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy (Val Integer)
amvgvghcpHealthyThreshold = lens _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyHealthyThreshold (\s a -> s { _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyHealthyThreshold = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-intervalmillis
amvgvghcpIntervalMillis :: Lens' AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy (Val Integer)
amvgvghcpIntervalMillis = lens _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyIntervalMillis (\s a -> s { _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyIntervalMillis = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-path
amvgvghcpPath :: Lens' AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy (Maybe (Val Text))
amvgvghcpPath = lens _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyPath (\s a -> s { _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyPath = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-port
amvgvghcpPort :: Lens' AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy (Maybe (Val Integer))
amvgvghcpPort = lens _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyPort (\s a -> s { _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyPort = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-protocol
amvgvghcpProtocol :: Lens' AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy (Val Text)
amvgvghcpProtocol = lens _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyProtocol (\s a -> s { _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyProtocol = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-timeoutmillis
amvgvghcpTimeoutMillis :: Lens' AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy (Val Integer)
amvgvghcpTimeoutMillis = lens _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyTimeoutMillis (\s a -> s { _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyTimeoutMillis = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-unhealthythreshold
amvgvghcpUnhealthyThreshold :: Lens' AppMeshVirtualGatewayVirtualGatewayHealthCheckPolicy (Val Integer)
amvgvghcpUnhealthyThreshold = lens _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyUnhealthyThreshold (\s a -> s { _appMeshVirtualGatewayVirtualGatewayHealthCheckPolicyUnhealthyThreshold = a })