{-# 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 })