stratosphere-0.27.0: library-gen/Stratosphere/ResourceProperties/WorkSpacesWorkspaceWorkspaceProperties.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html
module Stratosphere.ResourceProperties.WorkSpacesWorkspaceWorkspaceProperties where
import Stratosphere.ResourceImports
-- | Full data type definition for WorkSpacesWorkspaceWorkspaceProperties. See
-- 'workSpacesWorkspaceWorkspaceProperties' for a more convenient
-- constructor.
data WorkSpacesWorkspaceWorkspaceProperties =
WorkSpacesWorkspaceWorkspaceProperties
{ _workSpacesWorkspaceWorkspacePropertiesComputeTypeName :: Maybe (Val Text)
, _workSpacesWorkspaceWorkspacePropertiesRootVolumeSizeGib :: Maybe (Val Integer)
, _workSpacesWorkspaceWorkspacePropertiesRunningMode :: Maybe (Val Text)
, _workSpacesWorkspaceWorkspacePropertiesRunningModeAutoStopTimeoutInMinutes :: Maybe (Val Integer)
, _workSpacesWorkspaceWorkspacePropertiesUserVolumeSizeGib :: Maybe (Val Integer)
} deriving (Show, Eq)
instance ToJSON WorkSpacesWorkspaceWorkspaceProperties where
toJSON WorkSpacesWorkspaceWorkspaceProperties{..} =
object $
catMaybes
[ fmap (("ComputeTypeName",) . toJSON) _workSpacesWorkspaceWorkspacePropertiesComputeTypeName
, fmap (("RootVolumeSizeGib",) . toJSON . fmap Integer') _workSpacesWorkspaceWorkspacePropertiesRootVolumeSizeGib
, fmap (("RunningMode",) . toJSON) _workSpacesWorkspaceWorkspacePropertiesRunningMode
, fmap (("RunningModeAutoStopTimeoutInMinutes",) . toJSON . fmap Integer') _workSpacesWorkspaceWorkspacePropertiesRunningModeAutoStopTimeoutInMinutes
, fmap (("UserVolumeSizeGib",) . toJSON . fmap Integer') _workSpacesWorkspaceWorkspacePropertiesUserVolumeSizeGib
]
instance FromJSON WorkSpacesWorkspaceWorkspaceProperties where
parseJSON (Object obj) =
WorkSpacesWorkspaceWorkspaceProperties <$>
(obj .:? "ComputeTypeName") <*>
fmap (fmap (fmap unInteger')) (obj .:? "RootVolumeSizeGib") <*>
(obj .:? "RunningMode") <*>
fmap (fmap (fmap unInteger')) (obj .:? "RunningModeAutoStopTimeoutInMinutes") <*>
fmap (fmap (fmap unInteger')) (obj .:? "UserVolumeSizeGib")
parseJSON _ = mempty
-- | Constructor for 'WorkSpacesWorkspaceWorkspaceProperties' containing
-- required fields as arguments.
workSpacesWorkspaceWorkspaceProperties
:: WorkSpacesWorkspaceWorkspaceProperties
workSpacesWorkspaceWorkspaceProperties =
WorkSpacesWorkspaceWorkspaceProperties
{ _workSpacesWorkspaceWorkspacePropertiesComputeTypeName = Nothing
, _workSpacesWorkspaceWorkspacePropertiesRootVolumeSizeGib = Nothing
, _workSpacesWorkspaceWorkspacePropertiesRunningMode = Nothing
, _workSpacesWorkspaceWorkspacePropertiesRunningModeAutoStopTimeoutInMinutes = Nothing
, _workSpacesWorkspaceWorkspacePropertiesUserVolumeSizeGib = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html#cfn-workspaces-workspace-workspaceproperties-computetypename
wswwpComputeTypeName :: Lens' WorkSpacesWorkspaceWorkspaceProperties (Maybe (Val Text))
wswwpComputeTypeName = lens _workSpacesWorkspaceWorkspacePropertiesComputeTypeName (\s a -> s { _workSpacesWorkspaceWorkspacePropertiesComputeTypeName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html#cfn-workspaces-workspace-workspaceproperties-rootvolumesizegib
wswwpRootVolumeSizeGib :: Lens' WorkSpacesWorkspaceWorkspaceProperties (Maybe (Val Integer))
wswwpRootVolumeSizeGib = lens _workSpacesWorkspaceWorkspacePropertiesRootVolumeSizeGib (\s a -> s { _workSpacesWorkspaceWorkspacePropertiesRootVolumeSizeGib = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html#cfn-workspaces-workspace-workspaceproperties-runningmode
wswwpRunningMode :: Lens' WorkSpacesWorkspaceWorkspaceProperties (Maybe (Val Text))
wswwpRunningMode = lens _workSpacesWorkspaceWorkspacePropertiesRunningMode (\s a -> s { _workSpacesWorkspaceWorkspacePropertiesRunningMode = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html#cfn-workspaces-workspace-workspaceproperties-runningmodeautostoptimeoutinminutes
wswwpRunningModeAutoStopTimeoutInMinutes :: Lens' WorkSpacesWorkspaceWorkspaceProperties (Maybe (Val Integer))
wswwpRunningModeAutoStopTimeoutInMinutes = lens _workSpacesWorkspaceWorkspacePropertiesRunningModeAutoStopTimeoutInMinutes (\s a -> s { _workSpacesWorkspaceWorkspacePropertiesRunningModeAutoStopTimeoutInMinutes = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html#cfn-workspaces-workspace-workspaceproperties-uservolumesizegib
wswwpUserVolumeSizeGib :: Lens' WorkSpacesWorkspaceWorkspaceProperties (Maybe (Val Integer))
wswwpUserVolumeSizeGib = lens _workSpacesWorkspaceWorkspacePropertiesUserVolumeSizeGib (\s a -> s { _workSpacesWorkspaceWorkspacePropertiesUserVolumeSizeGib = a })