stratosphere-0.26.0: library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionDockerVolumeConfiguration.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html
module Stratosphere.ResourceProperties.ECSTaskDefinitionDockerVolumeConfiguration where
import Stratosphere.ResourceImports
-- | Full data type definition for ECSTaskDefinitionDockerVolumeConfiguration.
-- See 'ecsTaskDefinitionDockerVolumeConfiguration' for a more convenient
-- constructor.
data ECSTaskDefinitionDockerVolumeConfiguration =
ECSTaskDefinitionDockerVolumeConfiguration
{ _eCSTaskDefinitionDockerVolumeConfigurationAutoprovision :: Maybe (Val Bool)
, _eCSTaskDefinitionDockerVolumeConfigurationDriver :: Maybe (Val Text)
, _eCSTaskDefinitionDockerVolumeConfigurationDriverOpts :: Maybe Object
, _eCSTaskDefinitionDockerVolumeConfigurationLabels :: Maybe Object
, _eCSTaskDefinitionDockerVolumeConfigurationScope :: Maybe (Val Text)
} deriving (Show, Eq)
instance ToJSON ECSTaskDefinitionDockerVolumeConfiguration where
toJSON ECSTaskDefinitionDockerVolumeConfiguration{..} =
object $
catMaybes
[ fmap (("Autoprovision",) . toJSON . fmap Bool') _eCSTaskDefinitionDockerVolumeConfigurationAutoprovision
, fmap (("Driver",) . toJSON) _eCSTaskDefinitionDockerVolumeConfigurationDriver
, fmap (("DriverOpts",) . toJSON) _eCSTaskDefinitionDockerVolumeConfigurationDriverOpts
, fmap (("Labels",) . toJSON) _eCSTaskDefinitionDockerVolumeConfigurationLabels
, fmap (("Scope",) . toJSON) _eCSTaskDefinitionDockerVolumeConfigurationScope
]
instance FromJSON ECSTaskDefinitionDockerVolumeConfiguration where
parseJSON (Object obj) =
ECSTaskDefinitionDockerVolumeConfiguration <$>
fmap (fmap (fmap unBool')) (obj .:? "Autoprovision") <*>
(obj .:? "Driver") <*>
(obj .:? "DriverOpts") <*>
(obj .:? "Labels") <*>
(obj .:? "Scope")
parseJSON _ = mempty
-- | Constructor for 'ECSTaskDefinitionDockerVolumeConfiguration' containing
-- required fields as arguments.
ecsTaskDefinitionDockerVolumeConfiguration
:: ECSTaskDefinitionDockerVolumeConfiguration
ecsTaskDefinitionDockerVolumeConfiguration =
ECSTaskDefinitionDockerVolumeConfiguration
{ _eCSTaskDefinitionDockerVolumeConfigurationAutoprovision = Nothing
, _eCSTaskDefinitionDockerVolumeConfigurationDriver = Nothing
, _eCSTaskDefinitionDockerVolumeConfigurationDriverOpts = Nothing
, _eCSTaskDefinitionDockerVolumeConfigurationLabels = Nothing
, _eCSTaskDefinitionDockerVolumeConfigurationScope = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-autoprovision
ecstddvcAutoprovision :: Lens' ECSTaskDefinitionDockerVolumeConfiguration (Maybe (Val Bool))
ecstddvcAutoprovision = lens _eCSTaskDefinitionDockerVolumeConfigurationAutoprovision (\s a -> s { _eCSTaskDefinitionDockerVolumeConfigurationAutoprovision = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-driver
ecstddvcDriver :: Lens' ECSTaskDefinitionDockerVolumeConfiguration (Maybe (Val Text))
ecstddvcDriver = lens _eCSTaskDefinitionDockerVolumeConfigurationDriver (\s a -> s { _eCSTaskDefinitionDockerVolumeConfigurationDriver = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-driveropts
ecstddvcDriverOpts :: Lens' ECSTaskDefinitionDockerVolumeConfiguration (Maybe Object)
ecstddvcDriverOpts = lens _eCSTaskDefinitionDockerVolumeConfigurationDriverOpts (\s a -> s { _eCSTaskDefinitionDockerVolumeConfigurationDriverOpts = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-labels
ecstddvcLabels :: Lens' ECSTaskDefinitionDockerVolumeConfiguration (Maybe Object)
ecstddvcLabels = lens _eCSTaskDefinitionDockerVolumeConfigurationLabels (\s a -> s { _eCSTaskDefinitionDockerVolumeConfigurationLabels = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-scope
ecstddvcScope :: Lens' ECSTaskDefinitionDockerVolumeConfiguration (Maybe (Val Text))
ecstddvcScope = lens _eCSTaskDefinitionDockerVolumeConfigurationScope (\s a -> s { _eCSTaskDefinitionDockerVolumeConfigurationScope = a })