{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Lambda.Types.FunctionConfiguration
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Lambda.Types.FunctionConfiguration where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Lambda.Types.Architecture
import Amazonka.Lambda.Types.DeadLetterConfig
import Amazonka.Lambda.Types.EnvironmentResponse
import Amazonka.Lambda.Types.EphemeralStorage
import Amazonka.Lambda.Types.FileSystemConfig
import Amazonka.Lambda.Types.ImageConfigResponse
import Amazonka.Lambda.Types.LastUpdateStatus
import Amazonka.Lambda.Types.LastUpdateStatusReasonCode
import Amazonka.Lambda.Types.Layer
import Amazonka.Lambda.Types.PackageType
import Amazonka.Lambda.Types.Runtime
import Amazonka.Lambda.Types.SnapStartResponse
import Amazonka.Lambda.Types.State
import Amazonka.Lambda.Types.StateReasonCode
import Amazonka.Lambda.Types.TracingConfigResponse
import Amazonka.Lambda.Types.VpcConfigResponse
import qualified Amazonka.Prelude as Prelude

-- | Details about a function\'s configuration.
--
-- /See:/ 'newFunctionConfiguration' smart constructor.
data FunctionConfiguration = FunctionConfiguration'
  { -- | The instruction set architecture that the function supports.
    -- Architecture is a string array with one of the valid values. The default
    -- architecture value is @x86_64@.
    FunctionConfiguration -> Maybe (NonEmpty Architecture)
architectures :: Prelude.Maybe (Prelude.NonEmpty Architecture),
    -- | The SHA256 hash of the function\'s deployment package.
    FunctionConfiguration -> Maybe Text
codeSha256 :: Prelude.Maybe Prelude.Text,
    -- | The size of the function\'s deployment package, in bytes.
    FunctionConfiguration -> Maybe Integer
codeSize :: Prelude.Maybe Prelude.Integer,
    -- | The function\'s dead letter queue.
    FunctionConfiguration -> Maybe DeadLetterConfig
deadLetterConfig :: Prelude.Maybe DeadLetterConfig,
    -- | The function\'s description.
    FunctionConfiguration -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The function\'s
    -- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html environment variables>.
    -- Omitted from CloudTrail logs.
    FunctionConfiguration -> Maybe EnvironmentResponse
environment :: Prelude.Maybe EnvironmentResponse,
    -- | The size of the function’s @\/tmp@ directory in MB. The default value is
    -- 512, but it can be any whole number between 512 and 10,240 MB.
    FunctionConfiguration -> Maybe EphemeralStorage
ephemeralStorage :: Prelude.Maybe EphemeralStorage,
    -- | Connection settings for an
    -- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html Amazon EFS file system>.
    FunctionConfiguration -> Maybe [FileSystemConfig]
fileSystemConfigs :: Prelude.Maybe [FileSystemConfig],
    -- | The function\'s Amazon Resource Name (ARN).
    FunctionConfiguration -> Maybe Text
functionArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the function.
    FunctionConfiguration -> Maybe Text
functionName :: Prelude.Maybe Prelude.Text,
    -- | The function that Lambda calls to begin running your function.
    FunctionConfiguration -> Maybe Text
handler :: Prelude.Maybe Prelude.Text,
    -- | The function\'s image configuration values.
    FunctionConfiguration -> Maybe ImageConfigResponse
imageConfigResponse :: Prelude.Maybe ImageConfigResponse,
    -- | The KMS key that\'s used to encrypt the function\'s environment
    -- variables. This key is returned only if you\'ve configured a customer
    -- managed key.
    FunctionConfiguration -> Maybe Text
kmsKeyArn :: Prelude.Maybe Prelude.Text,
    -- | The date and time that the function was last updated, in
    -- <https://www.w3.org/TR/NOTE-datetime ISO-8601 format>
    -- (YYYY-MM-DDThh:mm:ss.sTZD).
    FunctionConfiguration -> Maybe Text
lastModified :: Prelude.Maybe Prelude.Text,
    -- | The status of the last update that was performed on the function. This
    -- is first set to @Successful@ after function creation completes.
    FunctionConfiguration -> Maybe LastUpdateStatus
lastUpdateStatus :: Prelude.Maybe LastUpdateStatus,
    -- | The reason for the last update that was performed on the function.
    FunctionConfiguration -> Maybe Text
lastUpdateStatusReason :: Prelude.Maybe Prelude.Text,
    -- | The reason code for the last update that was performed on the function.
    FunctionConfiguration -> Maybe LastUpdateStatusReasonCode
lastUpdateStatusReasonCode :: Prelude.Maybe LastUpdateStatusReasonCode,
    -- | The function\'s
    -- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html layers>.
    FunctionConfiguration -> Maybe [Layer]
layers :: Prelude.Maybe [Layer],
    -- | For Lambda\@Edge functions, the ARN of the main function.
    FunctionConfiguration -> Maybe Text
masterArn :: Prelude.Maybe Prelude.Text,
    -- | The amount of memory available to the function at runtime.
    FunctionConfiguration -> Maybe Natural
memorySize :: Prelude.Maybe Prelude.Natural,
    -- | The type of deployment package. Set to @Image@ for container image and
    -- set @Zip@ for .zip file archive.
    FunctionConfiguration -> Maybe PackageType
packageType :: Prelude.Maybe PackageType,
    -- | The latest updated revision of the function or alias.
    FunctionConfiguration -> Maybe Text
revisionId :: Prelude.Maybe Prelude.Text,
    -- | The function\'s execution role.
    FunctionConfiguration -> Maybe Text
role' :: Prelude.Maybe Prelude.Text,
    -- | The runtime environment for the Lambda function.
    FunctionConfiguration -> Maybe Runtime
runtime :: Prelude.Maybe Runtime,
    -- | The ARN of the signing job.
    FunctionConfiguration -> Maybe Text
signingJobArn :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the signing profile version.
    FunctionConfiguration -> Maybe Text
signingProfileVersionArn :: Prelude.Maybe Prelude.Text,
    -- | Set @ApplyOn@ to @PublishedVersions@ to create a snapshot of the
    -- initialized execution environment when you publish a function version.
    -- For more information, see
    -- <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html Reducing startup time with Lambda SnapStart>.
    FunctionConfiguration -> Maybe SnapStartResponse
snapStart :: Prelude.Maybe SnapStartResponse,
    -- | The current state of the function. When the state is @Inactive@, you can
    -- reactivate the function by invoking it.
    FunctionConfiguration -> Maybe State
state :: Prelude.Maybe State,
    -- | The reason for the function\'s current state.
    FunctionConfiguration -> Maybe Text
stateReason :: Prelude.Maybe Prelude.Text,
    -- | The reason code for the function\'s current state. When the code is
    -- @Creating@, you can\'t invoke or modify the function.
    FunctionConfiguration -> Maybe StateReasonCode
stateReasonCode :: Prelude.Maybe StateReasonCode,
    -- | The amount of time in seconds that Lambda allows a function to run
    -- before stopping it.
    FunctionConfiguration -> Maybe Natural
timeout :: Prelude.Maybe Prelude.Natural,
    -- | The function\'s X-Ray tracing configuration.
    FunctionConfiguration -> Maybe TracingConfigResponse
tracingConfig :: Prelude.Maybe TracingConfigResponse,
    -- | The version of the Lambda function.
    FunctionConfiguration -> Maybe Text
version :: Prelude.Maybe Prelude.Text,
    -- | The function\'s networking configuration.
    FunctionConfiguration -> Maybe VpcConfigResponse
vpcConfig :: Prelude.Maybe VpcConfigResponse
  }
  deriving (FunctionConfiguration -> FunctionConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FunctionConfiguration -> FunctionConfiguration -> Bool
$c/= :: FunctionConfiguration -> FunctionConfiguration -> Bool
== :: FunctionConfiguration -> FunctionConfiguration -> Bool
$c== :: FunctionConfiguration -> FunctionConfiguration -> Bool
Prelude.Eq, Int -> FunctionConfiguration -> ShowS
[FunctionConfiguration] -> ShowS
FunctionConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FunctionConfiguration] -> ShowS
$cshowList :: [FunctionConfiguration] -> ShowS
show :: FunctionConfiguration -> String
$cshow :: FunctionConfiguration -> String
showsPrec :: Int -> FunctionConfiguration -> ShowS
$cshowsPrec :: Int -> FunctionConfiguration -> ShowS
Prelude.Show, forall x. Rep FunctionConfiguration x -> FunctionConfiguration
forall x. FunctionConfiguration -> Rep FunctionConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep FunctionConfiguration x -> FunctionConfiguration
$cfrom :: forall x. FunctionConfiguration -> Rep FunctionConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'FunctionConfiguration' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'architectures', 'functionConfiguration_architectures' - The instruction set architecture that the function supports.
-- Architecture is a string array with one of the valid values. The default
-- architecture value is @x86_64@.
--
-- 'codeSha256', 'functionConfiguration_codeSha256' - The SHA256 hash of the function\'s deployment package.
--
-- 'codeSize', 'functionConfiguration_codeSize' - The size of the function\'s deployment package, in bytes.
--
-- 'deadLetterConfig', 'functionConfiguration_deadLetterConfig' - The function\'s dead letter queue.
--
-- 'description', 'functionConfiguration_description' - The function\'s description.
--
-- 'environment', 'functionConfiguration_environment' - The function\'s
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html environment variables>.
-- Omitted from CloudTrail logs.
--
-- 'ephemeralStorage', 'functionConfiguration_ephemeralStorage' - The size of the function’s @\/tmp@ directory in MB. The default value is
-- 512, but it can be any whole number between 512 and 10,240 MB.
--
-- 'fileSystemConfigs', 'functionConfiguration_fileSystemConfigs' - Connection settings for an
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html Amazon EFS file system>.
--
-- 'functionArn', 'functionConfiguration_functionArn' - The function\'s Amazon Resource Name (ARN).
--
-- 'functionName', 'functionConfiguration_functionName' - The name of the function.
--
-- 'handler', 'functionConfiguration_handler' - The function that Lambda calls to begin running your function.
--
-- 'imageConfigResponse', 'functionConfiguration_imageConfigResponse' - The function\'s image configuration values.
--
-- 'kmsKeyArn', 'functionConfiguration_kmsKeyArn' - The KMS key that\'s used to encrypt the function\'s environment
-- variables. This key is returned only if you\'ve configured a customer
-- managed key.
--
-- 'lastModified', 'functionConfiguration_lastModified' - The date and time that the function was last updated, in
-- <https://www.w3.org/TR/NOTE-datetime ISO-8601 format>
-- (YYYY-MM-DDThh:mm:ss.sTZD).
--
-- 'lastUpdateStatus', 'functionConfiguration_lastUpdateStatus' - The status of the last update that was performed on the function. This
-- is first set to @Successful@ after function creation completes.
--
-- 'lastUpdateStatusReason', 'functionConfiguration_lastUpdateStatusReason' - The reason for the last update that was performed on the function.
--
-- 'lastUpdateStatusReasonCode', 'functionConfiguration_lastUpdateStatusReasonCode' - The reason code for the last update that was performed on the function.
--
-- 'layers', 'functionConfiguration_layers' - The function\'s
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html layers>.
--
-- 'masterArn', 'functionConfiguration_masterArn' - For Lambda\@Edge functions, the ARN of the main function.
--
-- 'memorySize', 'functionConfiguration_memorySize' - The amount of memory available to the function at runtime.
--
-- 'packageType', 'functionConfiguration_packageType' - The type of deployment package. Set to @Image@ for container image and
-- set @Zip@ for .zip file archive.
--
-- 'revisionId', 'functionConfiguration_revisionId' - The latest updated revision of the function or alias.
--
-- 'role'', 'functionConfiguration_role' - The function\'s execution role.
--
-- 'runtime', 'functionConfiguration_runtime' - The runtime environment for the Lambda function.
--
-- 'signingJobArn', 'functionConfiguration_signingJobArn' - The ARN of the signing job.
--
-- 'signingProfileVersionArn', 'functionConfiguration_signingProfileVersionArn' - The ARN of the signing profile version.
--
-- 'snapStart', 'functionConfiguration_snapStart' - Set @ApplyOn@ to @PublishedVersions@ to create a snapshot of the
-- initialized execution environment when you publish a function version.
-- For more information, see
-- <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html Reducing startup time with Lambda SnapStart>.
--
-- 'state', 'functionConfiguration_state' - The current state of the function. When the state is @Inactive@, you can
-- reactivate the function by invoking it.
--
-- 'stateReason', 'functionConfiguration_stateReason' - The reason for the function\'s current state.
--
-- 'stateReasonCode', 'functionConfiguration_stateReasonCode' - The reason code for the function\'s current state. When the code is
-- @Creating@, you can\'t invoke or modify the function.
--
-- 'timeout', 'functionConfiguration_timeout' - The amount of time in seconds that Lambda allows a function to run
-- before stopping it.
--
-- 'tracingConfig', 'functionConfiguration_tracingConfig' - The function\'s X-Ray tracing configuration.
--
-- 'version', 'functionConfiguration_version' - The version of the Lambda function.
--
-- 'vpcConfig', 'functionConfiguration_vpcConfig' - The function\'s networking configuration.
newFunctionConfiguration ::
  FunctionConfiguration
newFunctionConfiguration :: FunctionConfiguration
newFunctionConfiguration =
  FunctionConfiguration'
    { $sel:architectures:FunctionConfiguration' :: Maybe (NonEmpty Architecture)
architectures =
        forall a. Maybe a
Prelude.Nothing,
      $sel:codeSha256:FunctionConfiguration' :: Maybe Text
codeSha256 = forall a. Maybe a
Prelude.Nothing,
      $sel:codeSize:FunctionConfiguration' :: Maybe Integer
codeSize = forall a. Maybe a
Prelude.Nothing,
      $sel:deadLetterConfig:FunctionConfiguration' :: Maybe DeadLetterConfig
deadLetterConfig = forall a. Maybe a
Prelude.Nothing,
      $sel:description:FunctionConfiguration' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:environment:FunctionConfiguration' :: Maybe EnvironmentResponse
environment = forall a. Maybe a
Prelude.Nothing,
      $sel:ephemeralStorage:FunctionConfiguration' :: Maybe EphemeralStorage
ephemeralStorage = forall a. Maybe a
Prelude.Nothing,
      $sel:fileSystemConfigs:FunctionConfiguration' :: Maybe [FileSystemConfig]
fileSystemConfigs = forall a. Maybe a
Prelude.Nothing,
      $sel:functionArn:FunctionConfiguration' :: Maybe Text
functionArn = forall a. Maybe a
Prelude.Nothing,
      $sel:functionName:FunctionConfiguration' :: Maybe Text
functionName = forall a. Maybe a
Prelude.Nothing,
      $sel:handler:FunctionConfiguration' :: Maybe Text
handler = forall a. Maybe a
Prelude.Nothing,
      $sel:imageConfigResponse:FunctionConfiguration' :: Maybe ImageConfigResponse
imageConfigResponse = forall a. Maybe a
Prelude.Nothing,
      $sel:kmsKeyArn:FunctionConfiguration' :: Maybe Text
kmsKeyArn = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModified:FunctionConfiguration' :: Maybe Text
lastModified = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdateStatus:FunctionConfiguration' :: Maybe LastUpdateStatus
lastUpdateStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdateStatusReason:FunctionConfiguration' :: Maybe Text
lastUpdateStatusReason = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdateStatusReasonCode:FunctionConfiguration' :: Maybe LastUpdateStatusReasonCode
lastUpdateStatusReasonCode = forall a. Maybe a
Prelude.Nothing,
      $sel:layers:FunctionConfiguration' :: Maybe [Layer]
layers = forall a. Maybe a
Prelude.Nothing,
      $sel:masterArn:FunctionConfiguration' :: Maybe Text
masterArn = forall a. Maybe a
Prelude.Nothing,
      $sel:memorySize:FunctionConfiguration' :: Maybe Natural
memorySize = forall a. Maybe a
Prelude.Nothing,
      $sel:packageType:FunctionConfiguration' :: Maybe PackageType
packageType = forall a. Maybe a
Prelude.Nothing,
      $sel:revisionId:FunctionConfiguration' :: Maybe Text
revisionId = forall a. Maybe a
Prelude.Nothing,
      $sel:role':FunctionConfiguration' :: Maybe Text
role' = forall a. Maybe a
Prelude.Nothing,
      $sel:runtime:FunctionConfiguration' :: Maybe Runtime
runtime = forall a. Maybe a
Prelude.Nothing,
      $sel:signingJobArn:FunctionConfiguration' :: Maybe Text
signingJobArn = forall a. Maybe a
Prelude.Nothing,
      $sel:signingProfileVersionArn:FunctionConfiguration' :: Maybe Text
signingProfileVersionArn = forall a. Maybe a
Prelude.Nothing,
      $sel:snapStart:FunctionConfiguration' :: Maybe SnapStartResponse
snapStart = forall a. Maybe a
Prelude.Nothing,
      $sel:state:FunctionConfiguration' :: Maybe State
state = forall a. Maybe a
Prelude.Nothing,
      $sel:stateReason:FunctionConfiguration' :: Maybe Text
stateReason = forall a. Maybe a
Prelude.Nothing,
      $sel:stateReasonCode:FunctionConfiguration' :: Maybe StateReasonCode
stateReasonCode = forall a. Maybe a
Prelude.Nothing,
      $sel:timeout:FunctionConfiguration' :: Maybe Natural
timeout = forall a. Maybe a
Prelude.Nothing,
      $sel:tracingConfig:FunctionConfiguration' :: Maybe TracingConfigResponse
tracingConfig = forall a. Maybe a
Prelude.Nothing,
      $sel:version:FunctionConfiguration' :: Maybe Text
version = forall a. Maybe a
Prelude.Nothing,
      $sel:vpcConfig:FunctionConfiguration' :: Maybe VpcConfigResponse
vpcConfig = forall a. Maybe a
Prelude.Nothing
    }

-- | The instruction set architecture that the function supports.
-- Architecture is a string array with one of the valid values. The default
-- architecture value is @x86_64@.
functionConfiguration_architectures :: Lens.Lens' FunctionConfiguration (Prelude.Maybe (Prelude.NonEmpty Architecture))
functionConfiguration_architectures :: Lens' FunctionConfiguration (Maybe (NonEmpty Architecture))
functionConfiguration_architectures = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe (NonEmpty Architecture)
architectures :: Maybe (NonEmpty Architecture)
$sel:architectures:FunctionConfiguration' :: FunctionConfiguration -> Maybe (NonEmpty Architecture)
architectures} -> Maybe (NonEmpty Architecture)
architectures) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe (NonEmpty Architecture)
a -> FunctionConfiguration
s {$sel:architectures:FunctionConfiguration' :: Maybe (NonEmpty Architecture)
architectures = Maybe (NonEmpty Architecture)
a} :: FunctionConfiguration) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The SHA256 hash of the function\'s deployment package.
functionConfiguration_codeSha256 :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_codeSha256 :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_codeSha256 = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
codeSha256 :: Maybe Text
$sel:codeSha256:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
codeSha256} -> Maybe Text
codeSha256) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:codeSha256:FunctionConfiguration' :: Maybe Text
codeSha256 = Maybe Text
a} :: FunctionConfiguration)

-- | The size of the function\'s deployment package, in bytes.
functionConfiguration_codeSize :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Integer)
functionConfiguration_codeSize :: Lens' FunctionConfiguration (Maybe Integer)
functionConfiguration_codeSize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Integer
codeSize :: Maybe Integer
$sel:codeSize:FunctionConfiguration' :: FunctionConfiguration -> Maybe Integer
codeSize} -> Maybe Integer
codeSize) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Integer
a -> FunctionConfiguration
s {$sel:codeSize:FunctionConfiguration' :: Maybe Integer
codeSize = Maybe Integer
a} :: FunctionConfiguration)

-- | The function\'s dead letter queue.
functionConfiguration_deadLetterConfig :: Lens.Lens' FunctionConfiguration (Prelude.Maybe DeadLetterConfig)
functionConfiguration_deadLetterConfig :: Lens' FunctionConfiguration (Maybe DeadLetterConfig)
functionConfiguration_deadLetterConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe DeadLetterConfig
deadLetterConfig :: Maybe DeadLetterConfig
$sel:deadLetterConfig:FunctionConfiguration' :: FunctionConfiguration -> Maybe DeadLetterConfig
deadLetterConfig} -> Maybe DeadLetterConfig
deadLetterConfig) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe DeadLetterConfig
a -> FunctionConfiguration
s {$sel:deadLetterConfig:FunctionConfiguration' :: Maybe DeadLetterConfig
deadLetterConfig = Maybe DeadLetterConfig
a} :: FunctionConfiguration)

-- | The function\'s description.
functionConfiguration_description :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_description :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
description :: Maybe Text
$sel:description:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
description} -> Maybe Text
description) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:description:FunctionConfiguration' :: Maybe Text
description = Maybe Text
a} :: FunctionConfiguration)

-- | The function\'s
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html environment variables>.
-- Omitted from CloudTrail logs.
functionConfiguration_environment :: Lens.Lens' FunctionConfiguration (Prelude.Maybe EnvironmentResponse)
functionConfiguration_environment :: Lens' FunctionConfiguration (Maybe EnvironmentResponse)
functionConfiguration_environment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe EnvironmentResponse
environment :: Maybe EnvironmentResponse
$sel:environment:FunctionConfiguration' :: FunctionConfiguration -> Maybe EnvironmentResponse
environment} -> Maybe EnvironmentResponse
environment) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe EnvironmentResponse
a -> FunctionConfiguration
s {$sel:environment:FunctionConfiguration' :: Maybe EnvironmentResponse
environment = Maybe EnvironmentResponse
a} :: FunctionConfiguration)

-- | The size of the function’s @\/tmp@ directory in MB. The default value is
-- 512, but it can be any whole number between 512 and 10,240 MB.
functionConfiguration_ephemeralStorage :: Lens.Lens' FunctionConfiguration (Prelude.Maybe EphemeralStorage)
functionConfiguration_ephemeralStorage :: Lens' FunctionConfiguration (Maybe EphemeralStorage)
functionConfiguration_ephemeralStorage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe EphemeralStorage
ephemeralStorage :: Maybe EphemeralStorage
$sel:ephemeralStorage:FunctionConfiguration' :: FunctionConfiguration -> Maybe EphemeralStorage
ephemeralStorage} -> Maybe EphemeralStorage
ephemeralStorage) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe EphemeralStorage
a -> FunctionConfiguration
s {$sel:ephemeralStorage:FunctionConfiguration' :: Maybe EphemeralStorage
ephemeralStorage = Maybe EphemeralStorage
a} :: FunctionConfiguration)

-- | Connection settings for an
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html Amazon EFS file system>.
functionConfiguration_fileSystemConfigs :: Lens.Lens' FunctionConfiguration (Prelude.Maybe [FileSystemConfig])
functionConfiguration_fileSystemConfigs :: Lens' FunctionConfiguration (Maybe [FileSystemConfig])
functionConfiguration_fileSystemConfigs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe [FileSystemConfig]
fileSystemConfigs :: Maybe [FileSystemConfig]
$sel:fileSystemConfigs:FunctionConfiguration' :: FunctionConfiguration -> Maybe [FileSystemConfig]
fileSystemConfigs} -> Maybe [FileSystemConfig]
fileSystemConfigs) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe [FileSystemConfig]
a -> FunctionConfiguration
s {$sel:fileSystemConfigs:FunctionConfiguration' :: Maybe [FileSystemConfig]
fileSystemConfigs = Maybe [FileSystemConfig]
a} :: FunctionConfiguration) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The function\'s Amazon Resource Name (ARN).
functionConfiguration_functionArn :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_functionArn :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_functionArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
functionArn :: Maybe Text
$sel:functionArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
functionArn} -> Maybe Text
functionArn) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:functionArn:FunctionConfiguration' :: Maybe Text
functionArn = Maybe Text
a} :: FunctionConfiguration)

-- | The name of the function.
functionConfiguration_functionName :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_functionName :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_functionName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
functionName :: Maybe Text
$sel:functionName:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
functionName} -> Maybe Text
functionName) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:functionName:FunctionConfiguration' :: Maybe Text
functionName = Maybe Text
a} :: FunctionConfiguration)

-- | The function that Lambda calls to begin running your function.
functionConfiguration_handler :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_handler :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_handler = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
handler :: Maybe Text
$sel:handler:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
handler} -> Maybe Text
handler) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:handler:FunctionConfiguration' :: Maybe Text
handler = Maybe Text
a} :: FunctionConfiguration)

-- | The function\'s image configuration values.
functionConfiguration_imageConfigResponse :: Lens.Lens' FunctionConfiguration (Prelude.Maybe ImageConfigResponse)
functionConfiguration_imageConfigResponse :: Lens' FunctionConfiguration (Maybe ImageConfigResponse)
functionConfiguration_imageConfigResponse = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe ImageConfigResponse
imageConfigResponse :: Maybe ImageConfigResponse
$sel:imageConfigResponse:FunctionConfiguration' :: FunctionConfiguration -> Maybe ImageConfigResponse
imageConfigResponse} -> Maybe ImageConfigResponse
imageConfigResponse) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe ImageConfigResponse
a -> FunctionConfiguration
s {$sel:imageConfigResponse:FunctionConfiguration' :: Maybe ImageConfigResponse
imageConfigResponse = Maybe ImageConfigResponse
a} :: FunctionConfiguration)

-- | The KMS key that\'s used to encrypt the function\'s environment
-- variables. This key is returned only if you\'ve configured a customer
-- managed key.
functionConfiguration_kmsKeyArn :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_kmsKeyArn :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_kmsKeyArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
kmsKeyArn :: Maybe Text
$sel:kmsKeyArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
kmsKeyArn} -> Maybe Text
kmsKeyArn) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:kmsKeyArn:FunctionConfiguration' :: Maybe Text
kmsKeyArn = Maybe Text
a} :: FunctionConfiguration)

-- | The date and time that the function was last updated, in
-- <https://www.w3.org/TR/NOTE-datetime ISO-8601 format>
-- (YYYY-MM-DDThh:mm:ss.sTZD).
functionConfiguration_lastModified :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_lastModified :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_lastModified = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
lastModified :: Maybe Text
$sel:lastModified:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
lastModified} -> Maybe Text
lastModified) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:lastModified:FunctionConfiguration' :: Maybe Text
lastModified = Maybe Text
a} :: FunctionConfiguration)

-- | The status of the last update that was performed on the function. This
-- is first set to @Successful@ after function creation completes.
functionConfiguration_lastUpdateStatus :: Lens.Lens' FunctionConfiguration (Prelude.Maybe LastUpdateStatus)
functionConfiguration_lastUpdateStatus :: Lens' FunctionConfiguration (Maybe LastUpdateStatus)
functionConfiguration_lastUpdateStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe LastUpdateStatus
lastUpdateStatus :: Maybe LastUpdateStatus
$sel:lastUpdateStatus:FunctionConfiguration' :: FunctionConfiguration -> Maybe LastUpdateStatus
lastUpdateStatus} -> Maybe LastUpdateStatus
lastUpdateStatus) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe LastUpdateStatus
a -> FunctionConfiguration
s {$sel:lastUpdateStatus:FunctionConfiguration' :: Maybe LastUpdateStatus
lastUpdateStatus = Maybe LastUpdateStatus
a} :: FunctionConfiguration)

-- | The reason for the last update that was performed on the function.
functionConfiguration_lastUpdateStatusReason :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_lastUpdateStatusReason :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_lastUpdateStatusReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
lastUpdateStatusReason :: Maybe Text
$sel:lastUpdateStatusReason:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
lastUpdateStatusReason} -> Maybe Text
lastUpdateStatusReason) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:lastUpdateStatusReason:FunctionConfiguration' :: Maybe Text
lastUpdateStatusReason = Maybe Text
a} :: FunctionConfiguration)

-- | The reason code for the last update that was performed on the function.
functionConfiguration_lastUpdateStatusReasonCode :: Lens.Lens' FunctionConfiguration (Prelude.Maybe LastUpdateStatusReasonCode)
functionConfiguration_lastUpdateStatusReasonCode :: Lens' FunctionConfiguration (Maybe LastUpdateStatusReasonCode)
functionConfiguration_lastUpdateStatusReasonCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe LastUpdateStatusReasonCode
lastUpdateStatusReasonCode :: Maybe LastUpdateStatusReasonCode
$sel:lastUpdateStatusReasonCode:FunctionConfiguration' :: FunctionConfiguration -> Maybe LastUpdateStatusReasonCode
lastUpdateStatusReasonCode} -> Maybe LastUpdateStatusReasonCode
lastUpdateStatusReasonCode) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe LastUpdateStatusReasonCode
a -> FunctionConfiguration
s {$sel:lastUpdateStatusReasonCode:FunctionConfiguration' :: Maybe LastUpdateStatusReasonCode
lastUpdateStatusReasonCode = Maybe LastUpdateStatusReasonCode
a} :: FunctionConfiguration)

-- | The function\'s
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html layers>.
functionConfiguration_layers :: Lens.Lens' FunctionConfiguration (Prelude.Maybe [Layer])
functionConfiguration_layers :: Lens' FunctionConfiguration (Maybe [Layer])
functionConfiguration_layers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe [Layer]
layers :: Maybe [Layer]
$sel:layers:FunctionConfiguration' :: FunctionConfiguration -> Maybe [Layer]
layers} -> Maybe [Layer]
layers) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe [Layer]
a -> FunctionConfiguration
s {$sel:layers:FunctionConfiguration' :: Maybe [Layer]
layers = Maybe [Layer]
a} :: FunctionConfiguration) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | For Lambda\@Edge functions, the ARN of the main function.
functionConfiguration_masterArn :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_masterArn :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_masterArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
masterArn :: Maybe Text
$sel:masterArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
masterArn} -> Maybe Text
masterArn) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:masterArn:FunctionConfiguration' :: Maybe Text
masterArn = Maybe Text
a} :: FunctionConfiguration)

-- | The amount of memory available to the function at runtime.
functionConfiguration_memorySize :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Natural)
functionConfiguration_memorySize :: Lens' FunctionConfiguration (Maybe Natural)
functionConfiguration_memorySize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Natural
memorySize :: Maybe Natural
$sel:memorySize:FunctionConfiguration' :: FunctionConfiguration -> Maybe Natural
memorySize} -> Maybe Natural
memorySize) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Natural
a -> FunctionConfiguration
s {$sel:memorySize:FunctionConfiguration' :: Maybe Natural
memorySize = Maybe Natural
a} :: FunctionConfiguration)

-- | The type of deployment package. Set to @Image@ for container image and
-- set @Zip@ for .zip file archive.
functionConfiguration_packageType :: Lens.Lens' FunctionConfiguration (Prelude.Maybe PackageType)
functionConfiguration_packageType :: Lens' FunctionConfiguration (Maybe PackageType)
functionConfiguration_packageType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe PackageType
packageType :: Maybe PackageType
$sel:packageType:FunctionConfiguration' :: FunctionConfiguration -> Maybe PackageType
packageType} -> Maybe PackageType
packageType) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe PackageType
a -> FunctionConfiguration
s {$sel:packageType:FunctionConfiguration' :: Maybe PackageType
packageType = Maybe PackageType
a} :: FunctionConfiguration)

-- | The latest updated revision of the function or alias.
functionConfiguration_revisionId :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_revisionId :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_revisionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
revisionId :: Maybe Text
$sel:revisionId:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
revisionId} -> Maybe Text
revisionId) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:revisionId:FunctionConfiguration' :: Maybe Text
revisionId = Maybe Text
a} :: FunctionConfiguration)

-- | The function\'s execution role.
functionConfiguration_role :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_role :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_role = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
role' :: Maybe Text
$sel:role':FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
role'} -> Maybe Text
role') (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:role':FunctionConfiguration' :: Maybe Text
role' = Maybe Text
a} :: FunctionConfiguration)

-- | The runtime environment for the Lambda function.
functionConfiguration_runtime :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Runtime)
functionConfiguration_runtime :: Lens' FunctionConfiguration (Maybe Runtime)
functionConfiguration_runtime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Runtime
runtime :: Maybe Runtime
$sel:runtime:FunctionConfiguration' :: FunctionConfiguration -> Maybe Runtime
runtime} -> Maybe Runtime
runtime) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Runtime
a -> FunctionConfiguration
s {$sel:runtime:FunctionConfiguration' :: Maybe Runtime
runtime = Maybe Runtime
a} :: FunctionConfiguration)

-- | The ARN of the signing job.
functionConfiguration_signingJobArn :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_signingJobArn :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_signingJobArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
signingJobArn :: Maybe Text
$sel:signingJobArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
signingJobArn} -> Maybe Text
signingJobArn) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:signingJobArn:FunctionConfiguration' :: Maybe Text
signingJobArn = Maybe Text
a} :: FunctionConfiguration)

-- | The ARN of the signing profile version.
functionConfiguration_signingProfileVersionArn :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_signingProfileVersionArn :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_signingProfileVersionArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
signingProfileVersionArn :: Maybe Text
$sel:signingProfileVersionArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
signingProfileVersionArn} -> Maybe Text
signingProfileVersionArn) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:signingProfileVersionArn:FunctionConfiguration' :: Maybe Text
signingProfileVersionArn = Maybe Text
a} :: FunctionConfiguration)

-- | Set @ApplyOn@ to @PublishedVersions@ to create a snapshot of the
-- initialized execution environment when you publish a function version.
-- For more information, see
-- <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html Reducing startup time with Lambda SnapStart>.
functionConfiguration_snapStart :: Lens.Lens' FunctionConfiguration (Prelude.Maybe SnapStartResponse)
functionConfiguration_snapStart :: Lens' FunctionConfiguration (Maybe SnapStartResponse)
functionConfiguration_snapStart = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe SnapStartResponse
snapStart :: Maybe SnapStartResponse
$sel:snapStart:FunctionConfiguration' :: FunctionConfiguration -> Maybe SnapStartResponse
snapStart} -> Maybe SnapStartResponse
snapStart) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe SnapStartResponse
a -> FunctionConfiguration
s {$sel:snapStart:FunctionConfiguration' :: Maybe SnapStartResponse
snapStart = Maybe SnapStartResponse
a} :: FunctionConfiguration)

-- | The current state of the function. When the state is @Inactive@, you can
-- reactivate the function by invoking it.
functionConfiguration_state :: Lens.Lens' FunctionConfiguration (Prelude.Maybe State)
functionConfiguration_state :: Lens' FunctionConfiguration (Maybe State)
functionConfiguration_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe State
state :: Maybe State
$sel:state:FunctionConfiguration' :: FunctionConfiguration -> Maybe State
state} -> Maybe State
state) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe State
a -> FunctionConfiguration
s {$sel:state:FunctionConfiguration' :: Maybe State
state = Maybe State
a} :: FunctionConfiguration)

-- | The reason for the function\'s current state.
functionConfiguration_stateReason :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_stateReason :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_stateReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
stateReason :: Maybe Text
$sel:stateReason:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
stateReason} -> Maybe Text
stateReason) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:stateReason:FunctionConfiguration' :: Maybe Text
stateReason = Maybe Text
a} :: FunctionConfiguration)

-- | The reason code for the function\'s current state. When the code is
-- @Creating@, you can\'t invoke or modify the function.
functionConfiguration_stateReasonCode :: Lens.Lens' FunctionConfiguration (Prelude.Maybe StateReasonCode)
functionConfiguration_stateReasonCode :: Lens' FunctionConfiguration (Maybe StateReasonCode)
functionConfiguration_stateReasonCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe StateReasonCode
stateReasonCode :: Maybe StateReasonCode
$sel:stateReasonCode:FunctionConfiguration' :: FunctionConfiguration -> Maybe StateReasonCode
stateReasonCode} -> Maybe StateReasonCode
stateReasonCode) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe StateReasonCode
a -> FunctionConfiguration
s {$sel:stateReasonCode:FunctionConfiguration' :: Maybe StateReasonCode
stateReasonCode = Maybe StateReasonCode
a} :: FunctionConfiguration)

-- | The amount of time in seconds that Lambda allows a function to run
-- before stopping it.
functionConfiguration_timeout :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Natural)
functionConfiguration_timeout :: Lens' FunctionConfiguration (Maybe Natural)
functionConfiguration_timeout = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Natural
timeout :: Maybe Natural
$sel:timeout:FunctionConfiguration' :: FunctionConfiguration -> Maybe Natural
timeout} -> Maybe Natural
timeout) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Natural
a -> FunctionConfiguration
s {$sel:timeout:FunctionConfiguration' :: Maybe Natural
timeout = Maybe Natural
a} :: FunctionConfiguration)

-- | The function\'s X-Ray tracing configuration.
functionConfiguration_tracingConfig :: Lens.Lens' FunctionConfiguration (Prelude.Maybe TracingConfigResponse)
functionConfiguration_tracingConfig :: Lens' FunctionConfiguration (Maybe TracingConfigResponse)
functionConfiguration_tracingConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe TracingConfigResponse
tracingConfig :: Maybe TracingConfigResponse
$sel:tracingConfig:FunctionConfiguration' :: FunctionConfiguration -> Maybe TracingConfigResponse
tracingConfig} -> Maybe TracingConfigResponse
tracingConfig) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe TracingConfigResponse
a -> FunctionConfiguration
s {$sel:tracingConfig:FunctionConfiguration' :: Maybe TracingConfigResponse
tracingConfig = Maybe TracingConfigResponse
a} :: FunctionConfiguration)

-- | The version of the Lambda function.
functionConfiguration_version :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_version :: Lens' FunctionConfiguration (Maybe Text)
functionConfiguration_version = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe Text
version :: Maybe Text
$sel:version:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
version} -> Maybe Text
version) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe Text
a -> FunctionConfiguration
s {$sel:version:FunctionConfiguration' :: Maybe Text
version = Maybe Text
a} :: FunctionConfiguration)

-- | The function\'s networking configuration.
functionConfiguration_vpcConfig :: Lens.Lens' FunctionConfiguration (Prelude.Maybe VpcConfigResponse)
functionConfiguration_vpcConfig :: Lens' FunctionConfiguration (Maybe VpcConfigResponse)
functionConfiguration_vpcConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunctionConfiguration' {Maybe VpcConfigResponse
vpcConfig :: Maybe VpcConfigResponse
$sel:vpcConfig:FunctionConfiguration' :: FunctionConfiguration -> Maybe VpcConfigResponse
vpcConfig} -> Maybe VpcConfigResponse
vpcConfig) (\s :: FunctionConfiguration
s@FunctionConfiguration' {} Maybe VpcConfigResponse
a -> FunctionConfiguration
s {$sel:vpcConfig:FunctionConfiguration' :: Maybe VpcConfigResponse
vpcConfig = Maybe VpcConfigResponse
a} :: FunctionConfiguration)

instance Data.FromJSON FunctionConfiguration where
  parseJSON :: Value -> Parser FunctionConfiguration
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"FunctionConfiguration"
      ( \Object
x ->
          Maybe (NonEmpty Architecture)
-> Maybe Text
-> Maybe Integer
-> Maybe DeadLetterConfig
-> Maybe Text
-> Maybe EnvironmentResponse
-> Maybe EphemeralStorage
-> Maybe [FileSystemConfig]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe ImageConfigResponse
-> Maybe Text
-> Maybe Text
-> Maybe LastUpdateStatus
-> Maybe Text
-> Maybe LastUpdateStatusReasonCode
-> Maybe [Layer]
-> Maybe Text
-> Maybe Natural
-> Maybe PackageType
-> Maybe Text
-> Maybe Text
-> Maybe Runtime
-> Maybe Text
-> Maybe Text
-> Maybe SnapStartResponse
-> Maybe State
-> Maybe Text
-> Maybe StateReasonCode
-> Maybe Natural
-> Maybe TracingConfigResponse
-> Maybe Text
-> Maybe VpcConfigResponse
-> FunctionConfiguration
FunctionConfiguration'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Architectures")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CodeSha256")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CodeSize")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DeadLetterConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Environment")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EphemeralStorage")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FileSystemConfigs"
                            forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FunctionArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FunctionName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Handler")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ImageConfigResponse")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"KMSKeyArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LastModified")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LastUpdateStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LastUpdateStatusReason")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LastUpdateStatusReasonCode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Layers" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"MasterArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"MemorySize")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"PackageType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"RevisionId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Role")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Runtime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SigningJobArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SigningProfileVersionArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SnapStart")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"State")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StateReason")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StateReasonCode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Timeout")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TracingConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Version")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"VpcConfig")
      )

instance Prelude.Hashable FunctionConfiguration where
  hashWithSalt :: Int -> FunctionConfiguration -> Int
hashWithSalt Int
_salt FunctionConfiguration' {Maybe Integer
Maybe Natural
Maybe [FileSystemConfig]
Maybe [Layer]
Maybe (NonEmpty Architecture)
Maybe Text
Maybe DeadLetterConfig
Maybe EnvironmentResponse
Maybe EphemeralStorage
Maybe ImageConfigResponse
Maybe LastUpdateStatus
Maybe LastUpdateStatusReasonCode
Maybe PackageType
Maybe Runtime
Maybe SnapStartResponse
Maybe State
Maybe StateReasonCode
Maybe TracingConfigResponse
Maybe VpcConfigResponse
vpcConfig :: Maybe VpcConfigResponse
version :: Maybe Text
tracingConfig :: Maybe TracingConfigResponse
timeout :: Maybe Natural
stateReasonCode :: Maybe StateReasonCode
stateReason :: Maybe Text
state :: Maybe State
snapStart :: Maybe SnapStartResponse
signingProfileVersionArn :: Maybe Text
signingJobArn :: Maybe Text
runtime :: Maybe Runtime
role' :: Maybe Text
revisionId :: Maybe Text
packageType :: Maybe PackageType
memorySize :: Maybe Natural
masterArn :: Maybe Text
layers :: Maybe [Layer]
lastUpdateStatusReasonCode :: Maybe LastUpdateStatusReasonCode
lastUpdateStatusReason :: Maybe Text
lastUpdateStatus :: Maybe LastUpdateStatus
lastModified :: Maybe Text
kmsKeyArn :: Maybe Text
imageConfigResponse :: Maybe ImageConfigResponse
handler :: Maybe Text
functionName :: Maybe Text
functionArn :: Maybe Text
fileSystemConfigs :: Maybe [FileSystemConfig]
ephemeralStorage :: Maybe EphemeralStorage
environment :: Maybe EnvironmentResponse
description :: Maybe Text
deadLetterConfig :: Maybe DeadLetterConfig
codeSize :: Maybe Integer
codeSha256 :: Maybe Text
architectures :: Maybe (NonEmpty Architecture)
$sel:vpcConfig:FunctionConfiguration' :: FunctionConfiguration -> Maybe VpcConfigResponse
$sel:version:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:tracingConfig:FunctionConfiguration' :: FunctionConfiguration -> Maybe TracingConfigResponse
$sel:timeout:FunctionConfiguration' :: FunctionConfiguration -> Maybe Natural
$sel:stateReasonCode:FunctionConfiguration' :: FunctionConfiguration -> Maybe StateReasonCode
$sel:stateReason:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:state:FunctionConfiguration' :: FunctionConfiguration -> Maybe State
$sel:snapStart:FunctionConfiguration' :: FunctionConfiguration -> Maybe SnapStartResponse
$sel:signingProfileVersionArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:signingJobArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:runtime:FunctionConfiguration' :: FunctionConfiguration -> Maybe Runtime
$sel:role':FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:revisionId:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:packageType:FunctionConfiguration' :: FunctionConfiguration -> Maybe PackageType
$sel:memorySize:FunctionConfiguration' :: FunctionConfiguration -> Maybe Natural
$sel:masterArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:layers:FunctionConfiguration' :: FunctionConfiguration -> Maybe [Layer]
$sel:lastUpdateStatusReasonCode:FunctionConfiguration' :: FunctionConfiguration -> Maybe LastUpdateStatusReasonCode
$sel:lastUpdateStatusReason:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:lastUpdateStatus:FunctionConfiguration' :: FunctionConfiguration -> Maybe LastUpdateStatus
$sel:lastModified:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:kmsKeyArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:imageConfigResponse:FunctionConfiguration' :: FunctionConfiguration -> Maybe ImageConfigResponse
$sel:handler:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:functionName:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:functionArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:fileSystemConfigs:FunctionConfiguration' :: FunctionConfiguration -> Maybe [FileSystemConfig]
$sel:ephemeralStorage:FunctionConfiguration' :: FunctionConfiguration -> Maybe EphemeralStorage
$sel:environment:FunctionConfiguration' :: FunctionConfiguration -> Maybe EnvironmentResponse
$sel:description:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:deadLetterConfig:FunctionConfiguration' :: FunctionConfiguration -> Maybe DeadLetterConfig
$sel:codeSize:FunctionConfiguration' :: FunctionConfiguration -> Maybe Integer
$sel:codeSha256:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:architectures:FunctionConfiguration' :: FunctionConfiguration -> Maybe (NonEmpty Architecture)
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Architecture)
architectures
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
codeSha256
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
codeSize
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DeadLetterConfig
deadLetterConfig
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EnvironmentResponse
environment
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EphemeralStorage
ephemeralStorage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [FileSystemConfig]
fileSystemConfigs
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
functionArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
functionName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
handler
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImageConfigResponse
imageConfigResponse
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
kmsKeyArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
lastModified
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LastUpdateStatus
lastUpdateStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
lastUpdateStatusReason
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LastUpdateStatusReasonCode
lastUpdateStatusReasonCode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Layer]
layers
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
masterArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
memorySize
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PackageType
packageType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
revisionId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
role'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Runtime
runtime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
signingJobArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
signingProfileVersionArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SnapStartResponse
snapStart
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe State
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
stateReason
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe StateReasonCode
stateReasonCode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
timeout
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TracingConfigResponse
tracingConfig
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
version
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VpcConfigResponse
vpcConfig

instance Prelude.NFData FunctionConfiguration where
  rnf :: FunctionConfiguration -> ()
rnf FunctionConfiguration' {Maybe Integer
Maybe Natural
Maybe [FileSystemConfig]
Maybe [Layer]
Maybe (NonEmpty Architecture)
Maybe Text
Maybe DeadLetterConfig
Maybe EnvironmentResponse
Maybe EphemeralStorage
Maybe ImageConfigResponse
Maybe LastUpdateStatus
Maybe LastUpdateStatusReasonCode
Maybe PackageType
Maybe Runtime
Maybe SnapStartResponse
Maybe State
Maybe StateReasonCode
Maybe TracingConfigResponse
Maybe VpcConfigResponse
vpcConfig :: Maybe VpcConfigResponse
version :: Maybe Text
tracingConfig :: Maybe TracingConfigResponse
timeout :: Maybe Natural
stateReasonCode :: Maybe StateReasonCode
stateReason :: Maybe Text
state :: Maybe State
snapStart :: Maybe SnapStartResponse
signingProfileVersionArn :: Maybe Text
signingJobArn :: Maybe Text
runtime :: Maybe Runtime
role' :: Maybe Text
revisionId :: Maybe Text
packageType :: Maybe PackageType
memorySize :: Maybe Natural
masterArn :: Maybe Text
layers :: Maybe [Layer]
lastUpdateStatusReasonCode :: Maybe LastUpdateStatusReasonCode
lastUpdateStatusReason :: Maybe Text
lastUpdateStatus :: Maybe LastUpdateStatus
lastModified :: Maybe Text
kmsKeyArn :: Maybe Text
imageConfigResponse :: Maybe ImageConfigResponse
handler :: Maybe Text
functionName :: Maybe Text
functionArn :: Maybe Text
fileSystemConfigs :: Maybe [FileSystemConfig]
ephemeralStorage :: Maybe EphemeralStorage
environment :: Maybe EnvironmentResponse
description :: Maybe Text
deadLetterConfig :: Maybe DeadLetterConfig
codeSize :: Maybe Integer
codeSha256 :: Maybe Text
architectures :: Maybe (NonEmpty Architecture)
$sel:vpcConfig:FunctionConfiguration' :: FunctionConfiguration -> Maybe VpcConfigResponse
$sel:version:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:tracingConfig:FunctionConfiguration' :: FunctionConfiguration -> Maybe TracingConfigResponse
$sel:timeout:FunctionConfiguration' :: FunctionConfiguration -> Maybe Natural
$sel:stateReasonCode:FunctionConfiguration' :: FunctionConfiguration -> Maybe StateReasonCode
$sel:stateReason:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:state:FunctionConfiguration' :: FunctionConfiguration -> Maybe State
$sel:snapStart:FunctionConfiguration' :: FunctionConfiguration -> Maybe SnapStartResponse
$sel:signingProfileVersionArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:signingJobArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:runtime:FunctionConfiguration' :: FunctionConfiguration -> Maybe Runtime
$sel:role':FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:revisionId:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:packageType:FunctionConfiguration' :: FunctionConfiguration -> Maybe PackageType
$sel:memorySize:FunctionConfiguration' :: FunctionConfiguration -> Maybe Natural
$sel:masterArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:layers:FunctionConfiguration' :: FunctionConfiguration -> Maybe [Layer]
$sel:lastUpdateStatusReasonCode:FunctionConfiguration' :: FunctionConfiguration -> Maybe LastUpdateStatusReasonCode
$sel:lastUpdateStatusReason:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:lastUpdateStatus:FunctionConfiguration' :: FunctionConfiguration -> Maybe LastUpdateStatus
$sel:lastModified:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:kmsKeyArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:imageConfigResponse:FunctionConfiguration' :: FunctionConfiguration -> Maybe ImageConfigResponse
$sel:handler:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:functionName:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:functionArn:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:fileSystemConfigs:FunctionConfiguration' :: FunctionConfiguration -> Maybe [FileSystemConfig]
$sel:ephemeralStorage:FunctionConfiguration' :: FunctionConfiguration -> Maybe EphemeralStorage
$sel:environment:FunctionConfiguration' :: FunctionConfiguration -> Maybe EnvironmentResponse
$sel:description:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:deadLetterConfig:FunctionConfiguration' :: FunctionConfiguration -> Maybe DeadLetterConfig
$sel:codeSize:FunctionConfiguration' :: FunctionConfiguration -> Maybe Integer
$sel:codeSha256:FunctionConfiguration' :: FunctionConfiguration -> Maybe Text
$sel:architectures:FunctionConfiguration' :: FunctionConfiguration -> Maybe (NonEmpty Architecture)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Architecture)
architectures
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
codeSha256
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
codeSize
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DeadLetterConfig
deadLetterConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EnvironmentResponse
environment
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EphemeralStorage
ephemeralStorage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [FileSystemConfig]
fileSystemConfigs
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
functionArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
functionName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
handler
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImageConfigResponse
imageConfigResponse
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
kmsKeyArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastModified
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LastUpdateStatus
lastUpdateStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastUpdateStatusReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe LastUpdateStatusReasonCode
lastUpdateStatusReasonCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Layer]
layers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
masterArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
memorySize
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PackageType
packageType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
revisionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
role'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Runtime
runtime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
signingJobArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
signingProfileVersionArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe SnapStartResponse
snapStart
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe State
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
stateReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe StateReasonCode
stateReasonCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Natural
timeout
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe TracingConfigResponse
tracingConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
version
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe VpcConfigResponse
vpcConfig