stratosphere-0.57.0: library-gen/Stratosphere/ResourceProperties/AppMeshVirtualGatewayVirtualGatewaySpec.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayspec.html
module Stratosphere.ResourceProperties.AppMeshVirtualGatewayVirtualGatewaySpec where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AppMeshVirtualGatewayVirtualGatewayBackendDefaults
import Stratosphere.ResourceProperties.AppMeshVirtualGatewayVirtualGatewayListener
import Stratosphere.ResourceProperties.AppMeshVirtualGatewayVirtualGatewayLogging
-- | Full data type definition for AppMeshVirtualGatewayVirtualGatewaySpec.
-- See 'appMeshVirtualGatewayVirtualGatewaySpec' for a more convenient
-- constructor.
data AppMeshVirtualGatewayVirtualGatewaySpec =
AppMeshVirtualGatewayVirtualGatewaySpec
{ _appMeshVirtualGatewayVirtualGatewaySpecBackendDefaults :: Maybe AppMeshVirtualGatewayVirtualGatewayBackendDefaults
, _appMeshVirtualGatewayVirtualGatewaySpecListeners :: [AppMeshVirtualGatewayVirtualGatewayListener]
, _appMeshVirtualGatewayVirtualGatewaySpecLogging :: Maybe AppMeshVirtualGatewayVirtualGatewayLogging
} deriving (Show, Eq)
instance ToJSON AppMeshVirtualGatewayVirtualGatewaySpec where
toJSON AppMeshVirtualGatewayVirtualGatewaySpec{..} =
object $
catMaybes
[ fmap (("BackendDefaults",) . toJSON) _appMeshVirtualGatewayVirtualGatewaySpecBackendDefaults
, (Just . ("Listeners",) . toJSON) _appMeshVirtualGatewayVirtualGatewaySpecListeners
, fmap (("Logging",) . toJSON) _appMeshVirtualGatewayVirtualGatewaySpecLogging
]
-- | Constructor for 'AppMeshVirtualGatewayVirtualGatewaySpec' containing
-- required fields as arguments.
appMeshVirtualGatewayVirtualGatewaySpec
:: [AppMeshVirtualGatewayVirtualGatewayListener] -- ^ 'amvgvgsListeners'
-> AppMeshVirtualGatewayVirtualGatewaySpec
appMeshVirtualGatewayVirtualGatewaySpec listenersarg =
AppMeshVirtualGatewayVirtualGatewaySpec
{ _appMeshVirtualGatewayVirtualGatewaySpecBackendDefaults = Nothing
, _appMeshVirtualGatewayVirtualGatewaySpecListeners = listenersarg
, _appMeshVirtualGatewayVirtualGatewaySpecLogging = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayspec.html#cfn-appmesh-virtualgateway-virtualgatewayspec-backenddefaults
amvgvgsBackendDefaults :: Lens' AppMeshVirtualGatewayVirtualGatewaySpec (Maybe AppMeshVirtualGatewayVirtualGatewayBackendDefaults)
amvgvgsBackendDefaults = lens _appMeshVirtualGatewayVirtualGatewaySpecBackendDefaults (\s a -> s { _appMeshVirtualGatewayVirtualGatewaySpecBackendDefaults = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayspec.html#cfn-appmesh-virtualgateway-virtualgatewayspec-listeners
amvgvgsListeners :: Lens' AppMeshVirtualGatewayVirtualGatewaySpec [AppMeshVirtualGatewayVirtualGatewayListener]
amvgvgsListeners = lens _appMeshVirtualGatewayVirtualGatewaySpecListeners (\s a -> s { _appMeshVirtualGatewayVirtualGatewaySpecListeners = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayspec.html#cfn-appmesh-virtualgateway-virtualgatewayspec-logging
amvgvgsLogging :: Lens' AppMeshVirtualGatewayVirtualGatewaySpec (Maybe AppMeshVirtualGatewayVirtualGatewayLogging)
amvgvgsLogging = lens _appMeshVirtualGatewayVirtualGatewaySpecLogging (\s a -> s { _appMeshVirtualGatewayVirtualGatewaySpecLogging = a })