stratosphere-0.1.0: library-gen/Stratosphere/ResourceProperties/ConnectionSettings.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
-- | ConnectionSettings is a property of the
-- AWS::ElasticLoadBalancing::LoadBalancer resource that describes how long
-- the front-end and back-end connections of your load balancer can remain
-- idle. For more information, see Configure Idle Connection Timeout in the
-- Elastic Load Balancing Developer Guide.
module Stratosphere.ResourceProperties.ConnectionSettings where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
-- | Full data type definition for ConnectionSettings. See
-- 'connectionSettings' for a more convenient constructor.
data ConnectionSettings =
ConnectionSettings
{ _connectionSettingsIdleTimeout :: Val Integer'
} deriving (Show, Generic)
instance ToJSON ConnectionSettings where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }
instance FromJSON ConnectionSettings where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 19, omitNothingFields = True }
-- | Constructor for 'ConnectionSettings' containing required fields as
-- arguments.
connectionSettings
:: Val Integer' -- ^ 'csIdleTimeout'
-> ConnectionSettings
connectionSettings idleTimeoutarg =
ConnectionSettings
{ _connectionSettingsIdleTimeout = idleTimeoutarg
}
-- | The time (in seconds) that a connection to the load balancer can remain
-- idle, which means no data is sent over the connection. After the specified
-- time, the load balancer closes the connection.
csIdleTimeout :: Lens' ConnectionSettings (Val Integer')
csIdleTimeout = lens _connectionSettingsIdleTimeout (\s a -> s { _connectionSettingsIdleTimeout = a })