stratosphere-0.36.0: library-gen/Stratosphere/ResourceProperties/AppMeshVirtualRouterPortMapping.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-portmapping.html
module Stratosphere.ResourceProperties.AppMeshVirtualRouterPortMapping where
import Stratosphere.ResourceImports
-- | Full data type definition for AppMeshVirtualRouterPortMapping. See
-- 'appMeshVirtualRouterPortMapping' for a more convenient constructor.
data AppMeshVirtualRouterPortMapping =
AppMeshVirtualRouterPortMapping
{ _appMeshVirtualRouterPortMappingPort :: Val Integer
, _appMeshVirtualRouterPortMappingProtocol :: Val Text
} deriving (Show, Eq)
instance ToJSON AppMeshVirtualRouterPortMapping where
toJSON AppMeshVirtualRouterPortMapping{..} =
object $
catMaybes
[ (Just . ("Port",) . toJSON) _appMeshVirtualRouterPortMappingPort
, (Just . ("Protocol",) . toJSON) _appMeshVirtualRouterPortMappingProtocol
]
-- | Constructor for 'AppMeshVirtualRouterPortMapping' containing required
-- fields as arguments.
appMeshVirtualRouterPortMapping
:: Val Integer -- ^ 'amvrpmPort'
-> Val Text -- ^ 'amvrpmProtocol'
-> AppMeshVirtualRouterPortMapping
appMeshVirtualRouterPortMapping portarg protocolarg =
AppMeshVirtualRouterPortMapping
{ _appMeshVirtualRouterPortMappingPort = portarg
, _appMeshVirtualRouterPortMappingProtocol = protocolarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-portmapping.html#cfn-appmesh-virtualrouter-portmapping-port
amvrpmPort :: Lens' AppMeshVirtualRouterPortMapping (Val Integer)
amvrpmPort = lens _appMeshVirtualRouterPortMappingPort (\s a -> s { _appMeshVirtualRouterPortMappingPort = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-portmapping.html#cfn-appmesh-virtualrouter-portmapping-protocol
amvrpmProtocol :: Lens' AppMeshVirtualRouterPortMapping (Val Text)
amvrpmProtocol = lens _appMeshVirtualRouterPortMappingProtocol (\s a -> s { _appMeshVirtualRouterPortMappingProtocol = a })