packages feed

stratosphere-0.37.0: library-gen/Stratosphere/ResourceProperties/GreengrassFunctionDefinitionVersionFunctionConfiguration.hs

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

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

module Stratosphere.ResourceProperties.GreengrassFunctionDefinitionVersionFunctionConfiguration where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.GreengrassFunctionDefinitionVersionEnvironment

-- | Full data type definition for
-- GreengrassFunctionDefinitionVersionFunctionConfiguration. See
-- 'greengrassFunctionDefinitionVersionFunctionConfiguration' for a more
-- convenient constructor.
data GreengrassFunctionDefinitionVersionFunctionConfiguration =
  GreengrassFunctionDefinitionVersionFunctionConfiguration
  { _greengrassFunctionDefinitionVersionFunctionConfigurationEncodingType :: Maybe (Val Text)
  , _greengrassFunctionDefinitionVersionFunctionConfigurationEnvironment :: Maybe GreengrassFunctionDefinitionVersionEnvironment
  , _greengrassFunctionDefinitionVersionFunctionConfigurationExecArgs :: Maybe (Val Text)
  , _greengrassFunctionDefinitionVersionFunctionConfigurationExecutable :: Maybe (Val Text)
  , _greengrassFunctionDefinitionVersionFunctionConfigurationMemorySize :: Maybe (Val Integer)
  , _greengrassFunctionDefinitionVersionFunctionConfigurationPinned :: Maybe (Val Bool)
  , _greengrassFunctionDefinitionVersionFunctionConfigurationTimeout :: Maybe (Val Integer)
  } deriving (Show, Eq)

instance ToJSON GreengrassFunctionDefinitionVersionFunctionConfiguration where
  toJSON GreengrassFunctionDefinitionVersionFunctionConfiguration{..} =
    object $
    catMaybes
    [ fmap (("EncodingType",) . toJSON) _greengrassFunctionDefinitionVersionFunctionConfigurationEncodingType
    , fmap (("Environment",) . toJSON) _greengrassFunctionDefinitionVersionFunctionConfigurationEnvironment
    , fmap (("ExecArgs",) . toJSON) _greengrassFunctionDefinitionVersionFunctionConfigurationExecArgs
    , fmap (("Executable",) . toJSON) _greengrassFunctionDefinitionVersionFunctionConfigurationExecutable
    , fmap (("MemorySize",) . toJSON) _greengrassFunctionDefinitionVersionFunctionConfigurationMemorySize
    , fmap (("Pinned",) . toJSON) _greengrassFunctionDefinitionVersionFunctionConfigurationPinned
    , fmap (("Timeout",) . toJSON) _greengrassFunctionDefinitionVersionFunctionConfigurationTimeout
    ]

-- | Constructor for
-- 'GreengrassFunctionDefinitionVersionFunctionConfiguration' containing
-- required fields as arguments.
greengrassFunctionDefinitionVersionFunctionConfiguration
  :: GreengrassFunctionDefinitionVersionFunctionConfiguration
greengrassFunctionDefinitionVersionFunctionConfiguration  =
  GreengrassFunctionDefinitionVersionFunctionConfiguration
  { _greengrassFunctionDefinitionVersionFunctionConfigurationEncodingType = Nothing
  , _greengrassFunctionDefinitionVersionFunctionConfigurationEnvironment = Nothing
  , _greengrassFunctionDefinitionVersionFunctionConfigurationExecArgs = Nothing
  , _greengrassFunctionDefinitionVersionFunctionConfigurationExecutable = Nothing
  , _greengrassFunctionDefinitionVersionFunctionConfigurationMemorySize = Nothing
  , _greengrassFunctionDefinitionVersionFunctionConfigurationPinned = Nothing
  , _greengrassFunctionDefinitionVersionFunctionConfigurationTimeout = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-encodingtype
gfdvfcEncodingType :: Lens' GreengrassFunctionDefinitionVersionFunctionConfiguration (Maybe (Val Text))
gfdvfcEncodingType = lens _greengrassFunctionDefinitionVersionFunctionConfigurationEncodingType (\s a -> s { _greengrassFunctionDefinitionVersionFunctionConfigurationEncodingType = a })

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-execargs
gfdvfcExecArgs :: Lens' GreengrassFunctionDefinitionVersionFunctionConfiguration (Maybe (Val Text))
gfdvfcExecArgs = lens _greengrassFunctionDefinitionVersionFunctionConfigurationExecArgs (\s a -> s { _greengrassFunctionDefinitionVersionFunctionConfigurationExecArgs = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-executable
gfdvfcExecutable :: Lens' GreengrassFunctionDefinitionVersionFunctionConfiguration (Maybe (Val Text))
gfdvfcExecutable = lens _greengrassFunctionDefinitionVersionFunctionConfigurationExecutable (\s a -> s { _greengrassFunctionDefinitionVersionFunctionConfigurationExecutable = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-memorysize
gfdvfcMemorySize :: Lens' GreengrassFunctionDefinitionVersionFunctionConfiguration (Maybe (Val Integer))
gfdvfcMemorySize = lens _greengrassFunctionDefinitionVersionFunctionConfigurationMemorySize (\s a -> s { _greengrassFunctionDefinitionVersionFunctionConfigurationMemorySize = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-pinned
gfdvfcPinned :: Lens' GreengrassFunctionDefinitionVersionFunctionConfiguration (Maybe (Val Bool))
gfdvfcPinned = lens _greengrassFunctionDefinitionVersionFunctionConfigurationPinned (\s a -> s { _greengrassFunctionDefinitionVersionFunctionConfigurationPinned = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-timeout
gfdvfcTimeout :: Lens' GreengrassFunctionDefinitionVersionFunctionConfiguration (Maybe (Val Integer))
gfdvfcTimeout = lens _greengrassFunctionDefinitionVersionFunctionConfigurationTimeout (\s a -> s { _greengrassFunctionDefinitionVersionFunctionConfigurationTimeout = a })