packages feed

stratosphere-0.34.0: library-gen/Stratosphere/ResourceProperties/GreengrassFunctionDefinitionVersionEnvironment.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html

module Stratosphere.ResourceProperties.GreengrassFunctionDefinitionVersionEnvironment where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.GreengrassFunctionDefinitionVersionExecution
import Stratosphere.ResourceProperties.GreengrassFunctionDefinitionVersionResourceAccessPolicy

-- | Full data type definition for
-- GreengrassFunctionDefinitionVersionEnvironment. See
-- 'greengrassFunctionDefinitionVersionEnvironment' for a more convenient
-- constructor.
data GreengrassFunctionDefinitionVersionEnvironment =
  GreengrassFunctionDefinitionVersionEnvironment
  { _greengrassFunctionDefinitionVersionEnvironmentAccessSysfs :: Maybe (Val Bool)
  , _greengrassFunctionDefinitionVersionEnvironmentExecution :: Maybe GreengrassFunctionDefinitionVersionExecution
  , _greengrassFunctionDefinitionVersionEnvironmentResourceAccessPolicies :: Maybe [GreengrassFunctionDefinitionVersionResourceAccessPolicy]
  , _greengrassFunctionDefinitionVersionEnvironmentVariables :: Maybe Object
  } deriving (Show, Eq)

instance ToJSON GreengrassFunctionDefinitionVersionEnvironment where
  toJSON GreengrassFunctionDefinitionVersionEnvironment{..} =
    object $
    catMaybes
    [ fmap (("AccessSysfs",) . toJSON) _greengrassFunctionDefinitionVersionEnvironmentAccessSysfs
    , fmap (("Execution",) . toJSON) _greengrassFunctionDefinitionVersionEnvironmentExecution
    , fmap (("ResourceAccessPolicies",) . toJSON) _greengrassFunctionDefinitionVersionEnvironmentResourceAccessPolicies
    , fmap (("Variables",) . toJSON) _greengrassFunctionDefinitionVersionEnvironmentVariables
    ]

-- | Constructor for 'GreengrassFunctionDefinitionVersionEnvironment'
-- containing required fields as arguments.
greengrassFunctionDefinitionVersionEnvironment
  :: GreengrassFunctionDefinitionVersionEnvironment
greengrassFunctionDefinitionVersionEnvironment  =
  GreengrassFunctionDefinitionVersionEnvironment
  { _greengrassFunctionDefinitionVersionEnvironmentAccessSysfs = Nothing
  , _greengrassFunctionDefinitionVersionEnvironmentExecution = Nothing
  , _greengrassFunctionDefinitionVersionEnvironmentResourceAccessPolicies = Nothing
  , _greengrassFunctionDefinitionVersionEnvironmentVariables = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html#cfn-greengrass-functiondefinitionversion-environment-accesssysfs
gfdveAccessSysfs :: Lens' GreengrassFunctionDefinitionVersionEnvironment (Maybe (Val Bool))
gfdveAccessSysfs = lens _greengrassFunctionDefinitionVersionEnvironmentAccessSysfs (\s a -> s { _greengrassFunctionDefinitionVersionEnvironmentAccessSysfs = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html#cfn-greengrass-functiondefinitionversion-environment-execution
gfdveExecution :: Lens' GreengrassFunctionDefinitionVersionEnvironment (Maybe GreengrassFunctionDefinitionVersionExecution)
gfdveExecution = lens _greengrassFunctionDefinitionVersionEnvironmentExecution (\s a -> s { _greengrassFunctionDefinitionVersionEnvironmentExecution = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html#cfn-greengrass-functiondefinitionversion-environment-resourceaccesspolicies
gfdveResourceAccessPolicies :: Lens' GreengrassFunctionDefinitionVersionEnvironment (Maybe [GreengrassFunctionDefinitionVersionResourceAccessPolicy])
gfdveResourceAccessPolicies = lens _greengrassFunctionDefinitionVersionEnvironmentResourceAccessPolicies (\s a -> s { _greengrassFunctionDefinitionVersionEnvironmentResourceAccessPolicies = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html#cfn-greengrass-functiondefinitionversion-environment-variables
gfdveVariables :: Lens' GreengrassFunctionDefinitionVersionEnvironment (Maybe Object)
gfdveVariables = lens _greengrassFunctionDefinitionVersionEnvironmentVariables (\s a -> s { _greengrassFunctionDefinitionVersionEnvironmentVariables = a })