stratosphere-0.34.0: library-gen/Stratosphere/Resources/GreengrassGroup.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html
module Stratosphere.Resources.GreengrassGroup where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.GreengrassGroupGroupVersion
-- | Full data type definition for GreengrassGroup. See 'greengrassGroup' for
-- a more convenient constructor.
data GreengrassGroup =
GreengrassGroup
{ _greengrassGroupInitialVersion :: Maybe GreengrassGroupGroupVersion
, _greengrassGroupName :: Val Text
, _greengrassGroupRoleArn :: Maybe (Val Text)
} deriving (Show, Eq)
instance ToResourceProperties GreengrassGroup where
toResourceProperties GreengrassGroup{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::Greengrass::Group"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ fmap (("InitialVersion",) . toJSON) _greengrassGroupInitialVersion
, (Just . ("Name",) . toJSON) _greengrassGroupName
, fmap (("RoleArn",) . toJSON) _greengrassGroupRoleArn
]
}
-- | Constructor for 'GreengrassGroup' containing required fields as
-- arguments.
greengrassGroup
:: Val Text -- ^ 'ggName'
-> GreengrassGroup
greengrassGroup namearg =
GreengrassGroup
{ _greengrassGroupInitialVersion = Nothing
, _greengrassGroupName = namearg
, _greengrassGroupRoleArn = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html#cfn-greengrass-group-initialversion
ggInitialVersion :: Lens' GreengrassGroup (Maybe GreengrassGroupGroupVersion)
ggInitialVersion = lens _greengrassGroupInitialVersion (\s a -> s { _greengrassGroupInitialVersion = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html#cfn-greengrass-group-name
ggName :: Lens' GreengrassGroup (Val Text)
ggName = lens _greengrassGroupName (\s a -> s { _greengrassGroupName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html#cfn-greengrass-group-rolearn
ggRoleArn :: Lens' GreengrassGroup (Maybe (Val Text))
ggRoleArn = lens _greengrassGroupRoleArn (\s a -> s { _greengrassGroupRoleArn = a })