stratosphere-0.34.0: library-gen/Stratosphere/ResourceProperties/GreengrassFunctionDefinitionEnvironment.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html
module Stratosphere.ResourceProperties.GreengrassFunctionDefinitionEnvironment where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.GreengrassFunctionDefinitionExecution
import Stratosphere.ResourceProperties.GreengrassFunctionDefinitionResourceAccessPolicy
-- | Full data type definition for GreengrassFunctionDefinitionEnvironment.
-- See 'greengrassFunctionDefinitionEnvironment' for a more convenient
-- constructor.
data GreengrassFunctionDefinitionEnvironment =
GreengrassFunctionDefinitionEnvironment
{ _greengrassFunctionDefinitionEnvironmentAccessSysfs :: Maybe (Val Bool)
, _greengrassFunctionDefinitionEnvironmentExecution :: Maybe GreengrassFunctionDefinitionExecution
, _greengrassFunctionDefinitionEnvironmentResourceAccessPolicies :: Maybe [GreengrassFunctionDefinitionResourceAccessPolicy]
, _greengrassFunctionDefinitionEnvironmentVariables :: Maybe Object
} deriving (Show, Eq)
instance ToJSON GreengrassFunctionDefinitionEnvironment where
toJSON GreengrassFunctionDefinitionEnvironment{..} =
object $
catMaybes
[ fmap (("AccessSysfs",) . toJSON) _greengrassFunctionDefinitionEnvironmentAccessSysfs
, fmap (("Execution",) . toJSON) _greengrassFunctionDefinitionEnvironmentExecution
, fmap (("ResourceAccessPolicies",) . toJSON) _greengrassFunctionDefinitionEnvironmentResourceAccessPolicies
, fmap (("Variables",) . toJSON) _greengrassFunctionDefinitionEnvironmentVariables
]
-- | Constructor for 'GreengrassFunctionDefinitionEnvironment' containing
-- required fields as arguments.
greengrassFunctionDefinitionEnvironment
:: GreengrassFunctionDefinitionEnvironment
greengrassFunctionDefinitionEnvironment =
GreengrassFunctionDefinitionEnvironment
{ _greengrassFunctionDefinitionEnvironmentAccessSysfs = Nothing
, _greengrassFunctionDefinitionEnvironmentExecution = Nothing
, _greengrassFunctionDefinitionEnvironmentResourceAccessPolicies = Nothing
, _greengrassFunctionDefinitionEnvironmentVariables = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html#cfn-greengrass-functiondefinition-environment-accesssysfs
gfdeAccessSysfs :: Lens' GreengrassFunctionDefinitionEnvironment (Maybe (Val Bool))
gfdeAccessSysfs = lens _greengrassFunctionDefinitionEnvironmentAccessSysfs (\s a -> s { _greengrassFunctionDefinitionEnvironmentAccessSysfs = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html#cfn-greengrass-functiondefinition-environment-execution
gfdeExecution :: Lens' GreengrassFunctionDefinitionEnvironment (Maybe GreengrassFunctionDefinitionExecution)
gfdeExecution = lens _greengrassFunctionDefinitionEnvironmentExecution (\s a -> s { _greengrassFunctionDefinitionEnvironmentExecution = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html#cfn-greengrass-functiondefinition-environment-resourceaccesspolicies
gfdeResourceAccessPolicies :: Lens' GreengrassFunctionDefinitionEnvironment (Maybe [GreengrassFunctionDefinitionResourceAccessPolicy])
gfdeResourceAccessPolicies = lens _greengrassFunctionDefinitionEnvironmentResourceAccessPolicies (\s a -> s { _greengrassFunctionDefinitionEnvironmentResourceAccessPolicies = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html#cfn-greengrass-functiondefinition-environment-variables
gfdeVariables :: Lens' GreengrassFunctionDefinitionEnvironment (Maybe Object)
gfdeVariables = lens _greengrassFunctionDefinitionEnvironmentVariables (\s a -> s { _greengrassFunctionDefinitionEnvironmentVariables = a })