stratosphere-0.32.0: library-gen/Stratosphere/Resources/IoT1ClickProject.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-project.html
module Stratosphere.Resources.IoT1ClickProject where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.IoT1ClickProjectPlacementTemplate
-- | Full data type definition for IoT1ClickProject. See 'ioT1ClickProject'
-- for a more convenient constructor.
data IoT1ClickProject =
IoT1ClickProject
{ _ioT1ClickProjectDescription :: Maybe (Val Text)
, _ioT1ClickProjectPlacementTemplate :: IoT1ClickProjectPlacementTemplate
, _ioT1ClickProjectProjectName :: Maybe (Val Text)
} deriving (Show, Eq)
instance ToJSON IoT1ClickProject where
toJSON IoT1ClickProject{..} =
object $
catMaybes
[ fmap (("Description",) . toJSON) _ioT1ClickProjectDescription
, (Just . ("PlacementTemplate",) . toJSON) _ioT1ClickProjectPlacementTemplate
, fmap (("ProjectName",) . toJSON) _ioT1ClickProjectProjectName
]
-- | Constructor for 'IoT1ClickProject' containing required fields as
-- arguments.
ioT1ClickProject
:: IoT1ClickProjectPlacementTemplate -- ^ 'itcprPlacementTemplate'
-> IoT1ClickProject
ioT1ClickProject placementTemplatearg =
IoT1ClickProject
{ _ioT1ClickProjectDescription = Nothing
, _ioT1ClickProjectPlacementTemplate = placementTemplatearg
, _ioT1ClickProjectProjectName = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-project.html#cfn-iot1click-project-description
itcprDescription :: Lens' IoT1ClickProject (Maybe (Val Text))
itcprDescription = lens _ioT1ClickProjectDescription (\s a -> s { _ioT1ClickProjectDescription = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-project.html#cfn-iot1click-project-placementtemplate
itcprPlacementTemplate :: Lens' IoT1ClickProject IoT1ClickProjectPlacementTemplate
itcprPlacementTemplate = lens _ioT1ClickProjectPlacementTemplate (\s a -> s { _ioT1ClickProjectPlacementTemplate = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-project.html#cfn-iot1click-project-projectname
itcprProjectName :: Lens' IoT1ClickProject (Maybe (Val Text))
itcprProjectName = lens _ioT1ClickProjectProjectName (\s a -> s { _ioT1ClickProjectProjectName = a })