stratosphere-0.15.2: library-gen/Stratosphere/ResourceProperties/ECSServiceNetworkConfiguration.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html
module Stratosphere.ResourceProperties.ECSServiceNetworkConfiguration where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.ECSServiceAwsVpcConfiguration
-- | Full data type definition for ECSServiceNetworkConfiguration. See
-- 'ecsServiceNetworkConfiguration' for a more convenient constructor.
data ECSServiceNetworkConfiguration =
ECSServiceNetworkConfiguration
{ _eCSServiceNetworkConfigurationAwsvpcConfiguration :: Maybe ECSServiceAwsVpcConfiguration
} deriving (Show, Eq)
instance ToJSON ECSServiceNetworkConfiguration where
toJSON ECSServiceNetworkConfiguration{..} =
object $
catMaybes
[ fmap (("AwsvpcConfiguration",) . toJSON) _eCSServiceNetworkConfigurationAwsvpcConfiguration
]
instance FromJSON ECSServiceNetworkConfiguration where
parseJSON (Object obj) =
ECSServiceNetworkConfiguration <$>
(obj .:? "AwsvpcConfiguration")
parseJSON _ = mempty
-- | Constructor for 'ECSServiceNetworkConfiguration' containing required
-- fields as arguments.
ecsServiceNetworkConfiguration
:: ECSServiceNetworkConfiguration
ecsServiceNetworkConfiguration =
ECSServiceNetworkConfiguration
{ _eCSServiceNetworkConfigurationAwsvpcConfiguration = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html#cfn-ecs-service-networkconfiguration-awsvpcconfiguration
ecssncAwsvpcConfiguration :: Lens' ECSServiceNetworkConfiguration (Maybe ECSServiceAwsVpcConfiguration)
ecssncAwsvpcConfiguration = lens _eCSServiceNetworkConfigurationAwsvpcConfiguration (\s a -> s { _eCSServiceNetworkConfigurationAwsvpcConfiguration = a })