stratosphere-0.33.0: library-gen/Stratosphere/Resources/IoT1ClickPlacement.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-placement.html
module Stratosphere.Resources.IoT1ClickPlacement where
import Stratosphere.ResourceImports
-- | Full data type definition for IoT1ClickPlacement. See
-- 'ioT1ClickPlacement' for a more convenient constructor.
data IoT1ClickPlacement =
IoT1ClickPlacement
{ _ioT1ClickPlacementAssociatedDevices :: Maybe Object
, _ioT1ClickPlacementAttributes :: Maybe Object
, _ioT1ClickPlacementPlacementName :: Maybe (Val Text)
, _ioT1ClickPlacementProjectName :: Val Text
} deriving (Show, Eq)
instance ToResourceProperties IoT1ClickPlacement where
toResourceProperties IoT1ClickPlacement{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::IoT1Click::Placement"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ fmap (("AssociatedDevices",) . toJSON) _ioT1ClickPlacementAssociatedDevices
, fmap (("Attributes",) . toJSON) _ioT1ClickPlacementAttributes
, fmap (("PlacementName",) . toJSON) _ioT1ClickPlacementPlacementName
, (Just . ("ProjectName",) . toJSON) _ioT1ClickPlacementProjectName
]
}
-- | Constructor for 'IoT1ClickPlacement' containing required fields as
-- arguments.
ioT1ClickPlacement
:: Val Text -- ^ 'itcplProjectName'
-> IoT1ClickPlacement
ioT1ClickPlacement projectNamearg =
IoT1ClickPlacement
{ _ioT1ClickPlacementAssociatedDevices = Nothing
, _ioT1ClickPlacementAttributes = Nothing
, _ioT1ClickPlacementPlacementName = Nothing
, _ioT1ClickPlacementProjectName = projectNamearg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-placement.html#cfn-iot1click-placement-associateddevices
itcplAssociatedDevices :: Lens' IoT1ClickPlacement (Maybe Object)
itcplAssociatedDevices = lens _ioT1ClickPlacementAssociatedDevices (\s a -> s { _ioT1ClickPlacementAssociatedDevices = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-placement.html#cfn-iot1click-placement-attributes
itcplAttributes :: Lens' IoT1ClickPlacement (Maybe Object)
itcplAttributes = lens _ioT1ClickPlacementAttributes (\s a -> s { _ioT1ClickPlacementAttributes = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-placement.html#cfn-iot1click-placement-placementname
itcplPlacementName :: Lens' IoT1ClickPlacement (Maybe (Val Text))
itcplPlacementName = lens _ioT1ClickPlacementPlacementName (\s a -> s { _ioT1ClickPlacementPlacementName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-placement.html#cfn-iot1click-placement-projectname
itcplProjectName :: Lens' IoT1ClickPlacement (Val Text)
itcplProjectName = lens _ioT1ClickPlacementProjectName (\s a -> s { _ioT1ClickPlacementProjectName = a })