stratosphere-0.38.0: library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionProxyConfiguration.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html
module Stratosphere.ResourceProperties.ECSTaskDefinitionProxyConfiguration where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.ECSTaskDefinitionKeyValuePair
-- | Full data type definition for ECSTaskDefinitionProxyConfiguration. See
-- 'ecsTaskDefinitionProxyConfiguration' for a more convenient constructor.
data ECSTaskDefinitionProxyConfiguration =
ECSTaskDefinitionProxyConfiguration
{ _eCSTaskDefinitionProxyConfigurationContainerName :: Val Text
, _eCSTaskDefinitionProxyConfigurationProxyConfigurationProperties :: Maybe [ECSTaskDefinitionKeyValuePair]
, _eCSTaskDefinitionProxyConfigurationType :: Maybe (Val Text)
} deriving (Show, Eq)
instance ToJSON ECSTaskDefinitionProxyConfiguration where
toJSON ECSTaskDefinitionProxyConfiguration{..} =
object $
catMaybes
[ (Just . ("ContainerName",) . toJSON) _eCSTaskDefinitionProxyConfigurationContainerName
, fmap (("ProxyConfigurationProperties",) . toJSON) _eCSTaskDefinitionProxyConfigurationProxyConfigurationProperties
, fmap (("Type",) . toJSON) _eCSTaskDefinitionProxyConfigurationType
]
-- | Constructor for 'ECSTaskDefinitionProxyConfiguration' containing required
-- fields as arguments.
ecsTaskDefinitionProxyConfiguration
:: Val Text -- ^ 'ecstdpcContainerName'
-> ECSTaskDefinitionProxyConfiguration
ecsTaskDefinitionProxyConfiguration containerNamearg =
ECSTaskDefinitionProxyConfiguration
{ _eCSTaskDefinitionProxyConfigurationContainerName = containerNamearg
, _eCSTaskDefinitionProxyConfigurationProxyConfigurationProperties = Nothing
, _eCSTaskDefinitionProxyConfigurationType = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html#cfn-ecs-taskdefinition-proxyconfiguration-containername
ecstdpcContainerName :: Lens' ECSTaskDefinitionProxyConfiguration (Val Text)
ecstdpcContainerName = lens _eCSTaskDefinitionProxyConfigurationContainerName (\s a -> s { _eCSTaskDefinitionProxyConfigurationContainerName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html#cfn-ecs-taskdefinition-proxyconfiguration-proxyconfigurationproperties
ecstdpcProxyConfigurationProperties :: Lens' ECSTaskDefinitionProxyConfiguration (Maybe [ECSTaskDefinitionKeyValuePair])
ecstdpcProxyConfigurationProperties = lens _eCSTaskDefinitionProxyConfigurationProxyConfigurationProperties (\s a -> s { _eCSTaskDefinitionProxyConfigurationProxyConfigurationProperties = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html#cfn-ecs-taskdefinition-proxyconfiguration-type
ecstdpcType :: Lens' ECSTaskDefinitionProxyConfiguration (Maybe (Val Text))
ecstdpcType = lens _eCSTaskDefinitionProxyConfigurationType (\s a -> s { _eCSTaskDefinitionProxyConfigurationType = a })