stratosphere-0.28.0: library-gen/Stratosphere/ResourceProperties/BatchJobDefinitionContainerProperties.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html
module Stratosphere.ResourceProperties.BatchJobDefinitionContainerProperties where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.BatchJobDefinitionEnvironment
import Stratosphere.ResourceProperties.BatchJobDefinitionMountPoints
import Stratosphere.ResourceProperties.BatchJobDefinitionUlimit
import Stratosphere.ResourceProperties.BatchJobDefinitionVolumes
-- | Full data type definition for BatchJobDefinitionContainerProperties. See
-- 'batchJobDefinitionContainerProperties' for a more convenient
-- constructor.
data BatchJobDefinitionContainerProperties =
BatchJobDefinitionContainerProperties
{ _batchJobDefinitionContainerPropertiesCommand :: Maybe (ValList Text)
, _batchJobDefinitionContainerPropertiesEnvironment :: Maybe [BatchJobDefinitionEnvironment]
, _batchJobDefinitionContainerPropertiesImage :: Val Text
, _batchJobDefinitionContainerPropertiesInstanceType :: Maybe (Val Text)
, _batchJobDefinitionContainerPropertiesJobRoleArn :: Maybe (Val Text)
, _batchJobDefinitionContainerPropertiesMemory :: Val Integer
, _batchJobDefinitionContainerPropertiesMountPoints :: Maybe [BatchJobDefinitionMountPoints]
, _batchJobDefinitionContainerPropertiesPrivileged :: Maybe (Val Bool)
, _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem :: Maybe (Val Bool)
, _batchJobDefinitionContainerPropertiesUlimits :: Maybe [BatchJobDefinitionUlimit]
, _batchJobDefinitionContainerPropertiesUser :: Maybe (Val Text)
, _batchJobDefinitionContainerPropertiesVcpus :: Val Integer
, _batchJobDefinitionContainerPropertiesVolumes :: Maybe [BatchJobDefinitionVolumes]
} deriving (Show, Eq)
instance ToJSON BatchJobDefinitionContainerProperties where
toJSON BatchJobDefinitionContainerProperties{..} =
object $
catMaybes
[ fmap (("Command",) . toJSON) _batchJobDefinitionContainerPropertiesCommand
, fmap (("Environment",) . toJSON) _batchJobDefinitionContainerPropertiesEnvironment
, (Just . ("Image",) . toJSON) _batchJobDefinitionContainerPropertiesImage
, fmap (("InstanceType",) . toJSON) _batchJobDefinitionContainerPropertiesInstanceType
, fmap (("JobRoleArn",) . toJSON) _batchJobDefinitionContainerPropertiesJobRoleArn
, (Just . ("Memory",) . toJSON . fmap Integer') _batchJobDefinitionContainerPropertiesMemory
, fmap (("MountPoints",) . toJSON) _batchJobDefinitionContainerPropertiesMountPoints
, fmap (("Privileged",) . toJSON . fmap Bool') _batchJobDefinitionContainerPropertiesPrivileged
, fmap (("ReadonlyRootFilesystem",) . toJSON . fmap Bool') _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem
, fmap (("Ulimits",) . toJSON) _batchJobDefinitionContainerPropertiesUlimits
, fmap (("User",) . toJSON) _batchJobDefinitionContainerPropertiesUser
, (Just . ("Vcpus",) . toJSON . fmap Integer') _batchJobDefinitionContainerPropertiesVcpus
, fmap (("Volumes",) . toJSON) _batchJobDefinitionContainerPropertiesVolumes
]
instance FromJSON BatchJobDefinitionContainerProperties where
parseJSON (Object obj) =
BatchJobDefinitionContainerProperties <$>
(obj .:? "Command") <*>
(obj .:? "Environment") <*>
(obj .: "Image") <*>
(obj .:? "InstanceType") <*>
(obj .:? "JobRoleArn") <*>
fmap (fmap unInteger') (obj .: "Memory") <*>
(obj .:? "MountPoints") <*>
fmap (fmap (fmap unBool')) (obj .:? "Privileged") <*>
fmap (fmap (fmap unBool')) (obj .:? "ReadonlyRootFilesystem") <*>
(obj .:? "Ulimits") <*>
(obj .:? "User") <*>
fmap (fmap unInteger') (obj .: "Vcpus") <*>
(obj .:? "Volumes")
parseJSON _ = mempty
-- | Constructor for 'BatchJobDefinitionContainerProperties' containing
-- required fields as arguments.
batchJobDefinitionContainerProperties
:: Val Text -- ^ 'bjdcpImage'
-> Val Integer -- ^ 'bjdcpMemory'
-> Val Integer -- ^ 'bjdcpVcpus'
-> BatchJobDefinitionContainerProperties
batchJobDefinitionContainerProperties imagearg memoryarg vcpusarg =
BatchJobDefinitionContainerProperties
{ _batchJobDefinitionContainerPropertiesCommand = Nothing
, _batchJobDefinitionContainerPropertiesEnvironment = Nothing
, _batchJobDefinitionContainerPropertiesImage = imagearg
, _batchJobDefinitionContainerPropertiesInstanceType = Nothing
, _batchJobDefinitionContainerPropertiesJobRoleArn = Nothing
, _batchJobDefinitionContainerPropertiesMemory = memoryarg
, _batchJobDefinitionContainerPropertiesMountPoints = Nothing
, _batchJobDefinitionContainerPropertiesPrivileged = Nothing
, _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem = Nothing
, _batchJobDefinitionContainerPropertiesUlimits = Nothing
, _batchJobDefinitionContainerPropertiesUser = Nothing
, _batchJobDefinitionContainerPropertiesVcpus = vcpusarg
, _batchJobDefinitionContainerPropertiesVolumes = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-command
bjdcpCommand :: Lens' BatchJobDefinitionContainerProperties (Maybe (ValList Text))
bjdcpCommand = lens _batchJobDefinitionContainerPropertiesCommand (\s a -> s { _batchJobDefinitionContainerPropertiesCommand = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-environment
bjdcpEnvironment :: Lens' BatchJobDefinitionContainerProperties (Maybe [BatchJobDefinitionEnvironment])
bjdcpEnvironment = lens _batchJobDefinitionContainerPropertiesEnvironment (\s a -> s { _batchJobDefinitionContainerPropertiesEnvironment = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-image
bjdcpImage :: Lens' BatchJobDefinitionContainerProperties (Val Text)
bjdcpImage = lens _batchJobDefinitionContainerPropertiesImage (\s a -> s { _batchJobDefinitionContainerPropertiesImage = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-instancetype
bjdcpInstanceType :: Lens' BatchJobDefinitionContainerProperties (Maybe (Val Text))
bjdcpInstanceType = lens _batchJobDefinitionContainerPropertiesInstanceType (\s a -> s { _batchJobDefinitionContainerPropertiesInstanceType = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-jobrolearn
bjdcpJobRoleArn :: Lens' BatchJobDefinitionContainerProperties (Maybe (Val Text))
bjdcpJobRoleArn = lens _batchJobDefinitionContainerPropertiesJobRoleArn (\s a -> s { _batchJobDefinitionContainerPropertiesJobRoleArn = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-memory
bjdcpMemory :: Lens' BatchJobDefinitionContainerProperties (Val Integer)
bjdcpMemory = lens _batchJobDefinitionContainerPropertiesMemory (\s a -> s { _batchJobDefinitionContainerPropertiesMemory = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-mountpoints
bjdcpMountPoints :: Lens' BatchJobDefinitionContainerProperties (Maybe [BatchJobDefinitionMountPoints])
bjdcpMountPoints = lens _batchJobDefinitionContainerPropertiesMountPoints (\s a -> s { _batchJobDefinitionContainerPropertiesMountPoints = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-privileged
bjdcpPrivileged :: Lens' BatchJobDefinitionContainerProperties (Maybe (Val Bool))
bjdcpPrivileged = lens _batchJobDefinitionContainerPropertiesPrivileged (\s a -> s { _batchJobDefinitionContainerPropertiesPrivileged = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-readonlyrootfilesystem
bjdcpReadonlyRootFilesystem :: Lens' BatchJobDefinitionContainerProperties (Maybe (Val Bool))
bjdcpReadonlyRootFilesystem = lens _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem (\s a -> s { _batchJobDefinitionContainerPropertiesReadonlyRootFilesystem = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-ulimits
bjdcpUlimits :: Lens' BatchJobDefinitionContainerProperties (Maybe [BatchJobDefinitionUlimit])
bjdcpUlimits = lens _batchJobDefinitionContainerPropertiesUlimits (\s a -> s { _batchJobDefinitionContainerPropertiesUlimits = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-user
bjdcpUser :: Lens' BatchJobDefinitionContainerProperties (Maybe (Val Text))
bjdcpUser = lens _batchJobDefinitionContainerPropertiesUser (\s a -> s { _batchJobDefinitionContainerPropertiesUser = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-vcpus
bjdcpVcpus :: Lens' BatchJobDefinitionContainerProperties (Val Integer)
bjdcpVcpus = lens _batchJobDefinitionContainerPropertiesVcpus (\s a -> s { _batchJobDefinitionContainerPropertiesVcpus = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-volumes
bjdcpVolumes :: Lens' BatchJobDefinitionContainerProperties (Maybe [BatchJobDefinitionVolumes])
bjdcpVolumes = lens _batchJobDefinitionContainerPropertiesVolumes (\s a -> s { _batchJobDefinitionContainerPropertiesVolumes = a })