{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Lambda.Types.FunctionConfiguration where

import qualified Amazonka.Core as Core
import Amazonka.Lambda.Types.Architecture
import Amazonka.Lambda.Types.DeadLetterConfig
import Amazonka.Lambda.Types.EnvironmentResponse
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.State
import Amazonka.Lambda.Types.StateReasonCode
import Amazonka.Lambda.Types.TracingConfigResponse
import Amazonka.Lambda.Types.VpcConfigResponse
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Details about a function\'s configuration.
--
-- /See:/ 'newFunctionConfiguration' smart constructor.
data FunctionConfiguration = FunctionConfiguration'
  { -- | The amount of memory available to the function at runtime.
    FunctionConfiguration -> Maybe Natural
memorySize :: Prelude.Maybe Prelude.Natural,
    -- | The runtime environment for the Lambda function.
    FunctionConfiguration -> Maybe Runtime
runtime :: Prelude.Maybe Runtime,
    -- | 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 ARN of the signing profile version.
    FunctionConfiguration -> Maybe Text
signingProfileVersionArn :: 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 function\'s Amazon Resource Name (ARN).
    FunctionConfiguration -> Maybe Text
functionArn :: Prelude.Maybe Prelude.Text,
    -- | The KMS key that\'s used to encrypt the function\'s environment
    -- variables. This key is only returned if you\'ve configured a customer
    -- managed CMK.
    FunctionConfiguration -> Maybe Text
kmsKeyArn :: Prelude.Maybe Prelude.Text,
    -- | 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,
    -- | 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
    -- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html environment variables>.
    FunctionConfiguration -> Maybe EnvironmentResponse
environment :: Prelude.Maybe EnvironmentResponse,
    -- | The function\'s dead letter queue.
    FunctionConfiguration -> Maybe DeadLetterConfig
deadLetterConfig :: Prelude.Maybe DeadLetterConfig,
    -- | 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 ARN of the signing job.
    FunctionConfiguration -> Maybe Text
signingJobArn :: Prelude.Maybe Prelude.Text,
    -- | The function\'s execution role.
    FunctionConfiguration -> Maybe Text
role' :: Prelude.Maybe Prelude.Text,
    -- | The function\'s networking configuration.
    FunctionConfiguration -> Maybe VpcConfigResponse
vpcConfig :: Prelude.Maybe VpcConfigResponse,
    -- | The version of the Lambda function.
    FunctionConfiguration -> Maybe Text
version :: Prelude.Maybe Prelude.Text,
    -- | The name of the function.
    FunctionConfiguration -> Maybe Text
functionName :: Prelude.Maybe Prelude.Text,
    -- | The function\'s
    -- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html layers>.
    FunctionConfiguration -> Maybe [Layer]
layers :: Prelude.Maybe [Layer],
    -- | The size of the function\'s deployment package, in bytes.
    FunctionConfiguration -> Maybe Integer
codeSize :: Prelude.Maybe Prelude.Integer,
    -- | The function that Lambda calls to begin executing your function.
    FunctionConfiguration -> Maybe Text
handler :: Prelude.Maybe Prelude.Text,
    -- | 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 reason for the last update that was performed on the function.
    FunctionConfiguration -> Maybe Text
lastUpdateStatusReason :: Prelude.Maybe Prelude.Text,
    -- | The reason for the function\'s current state.
    FunctionConfiguration -> Maybe Text
stateReason :: 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 SHA256 hash of the function\'s deployment package.
    FunctionConfiguration -> Maybe Text
codeSha256 :: Prelude.Maybe Prelude.Text,
    -- | The function\'s X-Ray tracing configuration.
    FunctionConfiguration -> Maybe TracingConfigResponse
tracingConfig :: Prelude.Maybe TracingConfigResponse,
    -- | 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 function\'s image configuration values.
    FunctionConfiguration -> Maybe ImageConfigResponse
imageConfigResponse :: Prelude.Maybe ImageConfigResponse,
    -- | The function\'s description.
    FunctionConfiguration -> Maybe Text
description :: 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 latest updated revision of the function or alias.
    FunctionConfiguration -> Maybe Text
revisionId :: Prelude.Maybe Prelude.Text,
    -- | For Lambda\@Edge functions, the ARN of the master function.
    FunctionConfiguration -> Maybe Text
masterArn :: Prelude.Maybe Prelude.Text
  }
  deriving (FunctionConfiguration -> FunctionConfiguration -> Bool
(FunctionConfiguration -> FunctionConfiguration -> Bool)
-> (FunctionConfiguration -> FunctionConfiguration -> Bool)
-> Eq FunctionConfiguration
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
(Int -> FunctionConfiguration -> ShowS)
-> (FunctionConfiguration -> String)
-> ([FunctionConfiguration] -> ShowS)
-> Show FunctionConfiguration
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. FunctionConfiguration -> Rep FunctionConfiguration x)
-> (forall x. Rep FunctionConfiguration x -> FunctionConfiguration)
-> Generic FunctionConfiguration
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:
--
-- 'memorySize', 'functionConfiguration_memorySize' - The amount of memory available to the function at runtime.
--
-- 'runtime', 'functionConfiguration_runtime' - The runtime environment for the Lambda function.
--
-- 'state', 'functionConfiguration_state' - The current state of the function. When the state is @Inactive@, you can
-- reactivate the function by invoking it.
--
-- 'signingProfileVersionArn', 'functionConfiguration_signingProfileVersionArn' - The ARN of the signing profile version.
--
-- '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.
--
-- 'functionArn', 'functionConfiguration_functionArn' - The function\'s Amazon Resource Name (ARN).
--
-- 'kmsKeyArn', 'functionConfiguration_kmsKeyArn' - The KMS key that\'s used to encrypt the function\'s environment
-- variables. This key is only returned if you\'ve configured a customer
-- managed CMK.
--
-- 'packageType', 'functionConfiguration_packageType' - The type of deployment package. Set to @Image@ for container image and
-- set @Zip@ for .zip file archive.
--
-- 'fileSystemConfigs', 'functionConfiguration_fileSystemConfigs' - Connection settings for an
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html Amazon EFS file system>.
--
-- 'environment', 'functionConfiguration_environment' - The function\'s
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html environment variables>.
--
-- 'deadLetterConfig', 'functionConfiguration_deadLetterConfig' - The function\'s dead letter queue.
--
-- '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@.
--
-- 'signingJobArn', 'functionConfiguration_signingJobArn' - The ARN of the signing job.
--
-- 'role'', 'functionConfiguration_role' - The function\'s execution role.
--
-- 'vpcConfig', 'functionConfiguration_vpcConfig' - The function\'s networking configuration.
--
-- 'version', 'functionConfiguration_version' - The version of the Lambda function.
--
-- 'functionName', 'functionConfiguration_functionName' - The name of the function.
--
-- 'layers', 'functionConfiguration_layers' - The function\'s
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html layers>.
--
-- 'codeSize', 'functionConfiguration_codeSize' - The size of the function\'s deployment package, in bytes.
--
-- 'handler', 'functionConfiguration_handler' - The function that Lambda calls to begin executing your function.
--
-- 'timeout', 'functionConfiguration_timeout' - The amount of time in seconds that Lambda allows a function to run
-- before stopping it.
--
-- 'lastUpdateStatusReason', 'functionConfiguration_lastUpdateStatusReason' - The reason for the last update that was performed on the function.
--
-- 'stateReason', 'functionConfiguration_stateReason' - The reason for the function\'s current state.
--
-- '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).
--
-- 'codeSha256', 'functionConfiguration_codeSha256' - The SHA256 hash of the function\'s deployment package.
--
-- 'tracingConfig', 'functionConfiguration_tracingConfig' - The function\'s X-Ray tracing configuration.
--
-- '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.
--
-- 'imageConfigResponse', 'functionConfiguration_imageConfigResponse' - The function\'s image configuration values.
--
-- 'description', 'functionConfiguration_description' - The function\'s description.
--
-- 'lastUpdateStatusReasonCode', 'functionConfiguration_lastUpdateStatusReasonCode' - The reason code for the last update that was performed on the function.
--
-- 'revisionId', 'functionConfiguration_revisionId' - The latest updated revision of the function or alias.
--
-- 'masterArn', 'functionConfiguration_masterArn' - For Lambda\@Edge functions, the ARN of the master function.
newFunctionConfiguration ::
  FunctionConfiguration
newFunctionConfiguration :: FunctionConfiguration
newFunctionConfiguration =
  FunctionConfiguration' :: Maybe Natural
-> Maybe Runtime
-> Maybe State
-> Maybe Text
-> Maybe LastUpdateStatus
-> Maybe Text
-> Maybe Text
-> Maybe PackageType
-> Maybe [FileSystemConfig]
-> Maybe EnvironmentResponse
-> Maybe DeadLetterConfig
-> Maybe (NonEmpty Architecture)
-> Maybe Text
-> Maybe Text
-> Maybe VpcConfigResponse
-> Maybe Text
-> Maybe Text
-> Maybe [Layer]
-> Maybe Integer
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe TracingConfigResponse
-> Maybe StateReasonCode
-> Maybe ImageConfigResponse
-> Maybe Text
-> Maybe LastUpdateStatusReasonCode
-> Maybe Text
-> Maybe Text
-> FunctionConfiguration
FunctionConfiguration'
    { $sel:memorySize:FunctionConfiguration' :: Maybe Natural
memorySize =
        Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:runtime:FunctionConfiguration' :: Maybe Runtime
runtime = Maybe Runtime
forall a. Maybe a
Prelude.Nothing,
      $sel:state:FunctionConfiguration' :: Maybe State
state = Maybe State
forall a. Maybe a
Prelude.Nothing,
      $sel:signingProfileVersionArn:FunctionConfiguration' :: Maybe Text
signingProfileVersionArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdateStatus:FunctionConfiguration' :: Maybe LastUpdateStatus
lastUpdateStatus = Maybe LastUpdateStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:functionArn:FunctionConfiguration' :: Maybe Text
functionArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:kmsKeyArn:FunctionConfiguration' :: Maybe Text
kmsKeyArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:packageType:FunctionConfiguration' :: Maybe PackageType
packageType = Maybe PackageType
forall a. Maybe a
Prelude.Nothing,
      $sel:fileSystemConfigs:FunctionConfiguration' :: Maybe [FileSystemConfig]
fileSystemConfigs = Maybe [FileSystemConfig]
forall a. Maybe a
Prelude.Nothing,
      $sel:environment:FunctionConfiguration' :: Maybe EnvironmentResponse
environment = Maybe EnvironmentResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:deadLetterConfig:FunctionConfiguration' :: Maybe DeadLetterConfig
deadLetterConfig = Maybe DeadLetterConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:architectures:FunctionConfiguration' :: Maybe (NonEmpty Architecture)
architectures = Maybe (NonEmpty Architecture)
forall a. Maybe a
Prelude.Nothing,
      $sel:signingJobArn:FunctionConfiguration' :: Maybe Text
signingJobArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:role':FunctionConfiguration' :: Maybe Text
role' = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:vpcConfig:FunctionConfiguration' :: Maybe VpcConfigResponse
vpcConfig = Maybe VpcConfigResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:version:FunctionConfiguration' :: Maybe Text
version = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:functionName:FunctionConfiguration' :: Maybe Text
functionName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:layers:FunctionConfiguration' :: Maybe [Layer]
layers = Maybe [Layer]
forall a. Maybe a
Prelude.Nothing,
      $sel:codeSize:FunctionConfiguration' :: Maybe Integer
codeSize = Maybe Integer
forall a. Maybe a
Prelude.Nothing,
      $sel:handler:FunctionConfiguration' :: Maybe Text
handler = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:timeout:FunctionConfiguration' :: Maybe Natural
timeout = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdateStatusReason:FunctionConfiguration' :: Maybe Text
lastUpdateStatusReason = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:stateReason:FunctionConfiguration' :: Maybe Text
stateReason = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:lastModified:FunctionConfiguration' :: Maybe Text
lastModified = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:codeSha256:FunctionConfiguration' :: Maybe Text
codeSha256 = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:tracingConfig:FunctionConfiguration' :: Maybe TracingConfigResponse
tracingConfig = Maybe TracingConfigResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:stateReasonCode:FunctionConfiguration' :: Maybe StateReasonCode
stateReasonCode = Maybe StateReasonCode
forall a. Maybe a
Prelude.Nothing,
      $sel:imageConfigResponse:FunctionConfiguration' :: Maybe ImageConfigResponse
imageConfigResponse = Maybe ImageConfigResponse
forall a. Maybe a
Prelude.Nothing,
      $sel:description:FunctionConfiguration' :: Maybe Text
description = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdateStatusReasonCode:FunctionConfiguration' :: Maybe LastUpdateStatusReasonCode
lastUpdateStatusReasonCode = Maybe LastUpdateStatusReasonCode
forall a. Maybe a
Prelude.Nothing,
      $sel:revisionId:FunctionConfiguration' :: Maybe Text
revisionId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:masterArn:FunctionConfiguration' :: Maybe Text
masterArn = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | The amount of memory available to the function at runtime.
functionConfiguration_memorySize :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Natural)
functionConfiguration_memorySize :: (Maybe Natural -> f (Maybe Natural))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_memorySize = (FunctionConfiguration -> Maybe Natural)
-> (FunctionConfiguration
    -> Maybe Natural -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Natural)
     (Maybe Natural)
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 runtime environment for the Lambda function.
functionConfiguration_runtime :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Runtime)
functionConfiguration_runtime :: (Maybe Runtime -> f (Maybe Runtime))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_runtime = (FunctionConfiguration -> Maybe Runtime)
-> (FunctionConfiguration
    -> Maybe Runtime -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Runtime)
     (Maybe 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 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 :: (Maybe State -> f (Maybe State))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_state = (FunctionConfiguration -> Maybe State)
-> (FunctionConfiguration -> Maybe State -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe State)
     (Maybe 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 ARN of the signing profile version.
functionConfiguration_signingProfileVersionArn :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_signingProfileVersionArn :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_signingProfileVersionArn = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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)

-- | 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 :: (Maybe LastUpdateStatus -> f (Maybe LastUpdateStatus))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_lastUpdateStatus = (FunctionConfiguration -> Maybe LastUpdateStatus)
-> (FunctionConfiguration
    -> Maybe LastUpdateStatus -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe LastUpdateStatus)
     (Maybe 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 function\'s Amazon Resource Name (ARN).
functionConfiguration_functionArn :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_functionArn :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_functionArn = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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 KMS key that\'s used to encrypt the function\'s environment
-- variables. This key is only returned if you\'ve configured a customer
-- managed CMK.
functionConfiguration_kmsKeyArn :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_kmsKeyArn :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_kmsKeyArn = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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 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 :: (Maybe PackageType -> f (Maybe PackageType))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_packageType = (FunctionConfiguration -> Maybe PackageType)
-> (FunctionConfiguration
    -> Maybe PackageType -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe PackageType)
     (Maybe 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)

-- | 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 :: (Maybe [FileSystemConfig] -> f (Maybe [FileSystemConfig]))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_fileSystemConfigs = (FunctionConfiguration -> Maybe [FileSystemConfig])
-> (FunctionConfiguration
    -> Maybe [FileSystemConfig] -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe [FileSystemConfig])
     (Maybe [FileSystemConfig])
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) ((Maybe [FileSystemConfig] -> f (Maybe [FileSystemConfig]))
 -> FunctionConfiguration -> f FunctionConfiguration)
-> ((Maybe [FileSystemConfig] -> f (Maybe [FileSystemConfig]))
    -> Maybe [FileSystemConfig] -> f (Maybe [FileSystemConfig]))
-> (Maybe [FileSystemConfig] -> f (Maybe [FileSystemConfig]))
-> FunctionConfiguration
-> f FunctionConfiguration
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [FileSystemConfig]
  [FileSystemConfig]
  [FileSystemConfig]
  [FileSystemConfig]
-> Iso
     (Maybe [FileSystemConfig])
     (Maybe [FileSystemConfig])
     (Maybe [FileSystemConfig])
     (Maybe [FileSystemConfig])
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 AnIso
  [FileSystemConfig]
  [FileSystemConfig]
  [FileSystemConfig]
  [FileSystemConfig]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The function\'s
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html environment variables>.
functionConfiguration_environment :: Lens.Lens' FunctionConfiguration (Prelude.Maybe EnvironmentResponse)
functionConfiguration_environment :: (Maybe EnvironmentResponse -> f (Maybe EnvironmentResponse))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_environment = (FunctionConfiguration -> Maybe EnvironmentResponse)
-> (FunctionConfiguration
    -> Maybe EnvironmentResponse -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe EnvironmentResponse)
     (Maybe EnvironmentResponse)
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 function\'s dead letter queue.
functionConfiguration_deadLetterConfig :: Lens.Lens' FunctionConfiguration (Prelude.Maybe DeadLetterConfig)
functionConfiguration_deadLetterConfig :: (Maybe DeadLetterConfig -> f (Maybe DeadLetterConfig))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_deadLetterConfig = (FunctionConfiguration -> Maybe DeadLetterConfig)
-> (FunctionConfiguration
    -> Maybe DeadLetterConfig -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe DeadLetterConfig)
     (Maybe 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 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 :: (Maybe (NonEmpty Architecture)
 -> f (Maybe (NonEmpty Architecture)))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_architectures = (FunctionConfiguration -> Maybe (NonEmpty Architecture))
-> (FunctionConfiguration
    -> Maybe (NonEmpty Architecture) -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe (NonEmpty Architecture))
     (Maybe (NonEmpty Architecture))
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) ((Maybe (NonEmpty Architecture)
  -> f (Maybe (NonEmpty Architecture)))
 -> FunctionConfiguration -> f FunctionConfiguration)
-> ((Maybe (NonEmpty Architecture)
     -> f (Maybe (NonEmpty Architecture)))
    -> Maybe (NonEmpty Architecture)
    -> f (Maybe (NonEmpty Architecture)))
-> (Maybe (NonEmpty Architecture)
    -> f (Maybe (NonEmpty Architecture)))
-> FunctionConfiguration
-> f FunctionConfiguration
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (NonEmpty Architecture)
  (NonEmpty Architecture)
  (NonEmpty Architecture)
  (NonEmpty Architecture)
-> Iso
     (Maybe (NonEmpty Architecture))
     (Maybe (NonEmpty Architecture))
     (Maybe (NonEmpty Architecture))
     (Maybe (NonEmpty Architecture))
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 AnIso
  (NonEmpty Architecture)
  (NonEmpty Architecture)
  (NonEmpty Architecture)
  (NonEmpty Architecture)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The ARN of the signing job.
functionConfiguration_signingJobArn :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_signingJobArn :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_signingJobArn = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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 function\'s execution role.
functionConfiguration_role :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_role :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_role = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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 function\'s networking configuration.
functionConfiguration_vpcConfig :: Lens.Lens' FunctionConfiguration (Prelude.Maybe VpcConfigResponse)
functionConfiguration_vpcConfig :: (Maybe VpcConfigResponse -> f (Maybe VpcConfigResponse))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_vpcConfig = (FunctionConfiguration -> Maybe VpcConfigResponse)
-> (FunctionConfiguration
    -> Maybe VpcConfigResponse -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe VpcConfigResponse)
     (Maybe VpcConfigResponse)
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)

-- | The version of the Lambda function.
functionConfiguration_version :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_version :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_version = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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 name of the function.
functionConfiguration_functionName :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_functionName :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_functionName = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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\'s
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html layers>.
functionConfiguration_layers :: Lens.Lens' FunctionConfiguration (Prelude.Maybe [Layer])
functionConfiguration_layers :: (Maybe [Layer] -> f (Maybe [Layer]))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_layers = (FunctionConfiguration -> Maybe [Layer])
-> (FunctionConfiguration
    -> Maybe [Layer] -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe [Layer])
     (Maybe [Layer])
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) ((Maybe [Layer] -> f (Maybe [Layer]))
 -> FunctionConfiguration -> f FunctionConfiguration)
-> ((Maybe [Layer] -> f (Maybe [Layer]))
    -> Maybe [Layer] -> f (Maybe [Layer]))
-> (Maybe [Layer] -> f (Maybe [Layer]))
-> FunctionConfiguration
-> f FunctionConfiguration
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Layer] [Layer] [Layer] [Layer]
-> Iso
     (Maybe [Layer]) (Maybe [Layer]) (Maybe [Layer]) (Maybe [Layer])
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 AnIso [Layer] [Layer] [Layer] [Layer]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The size of the function\'s deployment package, in bytes.
functionConfiguration_codeSize :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Integer)
functionConfiguration_codeSize :: (Maybe Integer -> f (Maybe Integer))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_codeSize = (FunctionConfiguration -> Maybe Integer)
-> (FunctionConfiguration
    -> Maybe Integer -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Integer)
     (Maybe Integer)
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 that Lambda calls to begin executing your function.
functionConfiguration_handler :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_handler :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_handler = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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 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 :: (Maybe Natural -> f (Maybe Natural))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_timeout = (FunctionConfiguration -> Maybe Natural)
-> (FunctionConfiguration
    -> Maybe Natural -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Natural)
     (Maybe Natural)
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 reason for the last update that was performed on the function.
functionConfiguration_lastUpdateStatusReason :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_lastUpdateStatusReason :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_lastUpdateStatusReason = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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 for the function\'s current state.
functionConfiguration_stateReason :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_stateReason :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_stateReason = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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 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 :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_lastModified = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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 SHA256 hash of the function\'s deployment package.
functionConfiguration_codeSha256 :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_codeSha256 :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_codeSha256 = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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 function\'s X-Ray tracing configuration.
functionConfiguration_tracingConfig :: Lens.Lens' FunctionConfiguration (Prelude.Maybe TracingConfigResponse)
functionConfiguration_tracingConfig :: (Maybe TracingConfigResponse -> f (Maybe TracingConfigResponse))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_tracingConfig = (FunctionConfiguration -> Maybe TracingConfigResponse)
-> (FunctionConfiguration
    -> Maybe TracingConfigResponse -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe TracingConfigResponse)
     (Maybe TracingConfigResponse)
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 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 :: (Maybe StateReasonCode -> f (Maybe StateReasonCode))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_stateReasonCode = (FunctionConfiguration -> Maybe StateReasonCode)
-> (FunctionConfiguration
    -> Maybe StateReasonCode -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe StateReasonCode)
     (Maybe 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 function\'s image configuration values.
functionConfiguration_imageConfigResponse :: Lens.Lens' FunctionConfiguration (Prelude.Maybe ImageConfigResponse)
functionConfiguration_imageConfigResponse :: (Maybe ImageConfigResponse -> f (Maybe ImageConfigResponse))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_imageConfigResponse = (FunctionConfiguration -> Maybe ImageConfigResponse)
-> (FunctionConfiguration
    -> Maybe ImageConfigResponse -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe ImageConfigResponse)
     (Maybe 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 function\'s description.
functionConfiguration_description :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_description :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_description = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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 reason code for the last update that was performed on the function.
functionConfiguration_lastUpdateStatusReasonCode :: Lens.Lens' FunctionConfiguration (Prelude.Maybe LastUpdateStatusReasonCode)
functionConfiguration_lastUpdateStatusReasonCode :: (Maybe LastUpdateStatusReasonCode
 -> f (Maybe LastUpdateStatusReasonCode))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_lastUpdateStatusReasonCode = (FunctionConfiguration -> Maybe LastUpdateStatusReasonCode)
-> (FunctionConfiguration
    -> Maybe LastUpdateStatusReasonCode -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe LastUpdateStatusReasonCode)
     (Maybe 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 latest updated revision of the function or alias.
functionConfiguration_revisionId :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_revisionId :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_revisionId = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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)

-- | For Lambda\@Edge functions, the ARN of the master function.
functionConfiguration_masterArn :: Lens.Lens' FunctionConfiguration (Prelude.Maybe Prelude.Text)
functionConfiguration_masterArn :: (Maybe Text -> f (Maybe Text))
-> FunctionConfiguration -> f FunctionConfiguration
functionConfiguration_masterArn = (FunctionConfiguration -> Maybe Text)
-> (FunctionConfiguration -> Maybe Text -> FunctionConfiguration)
-> Lens
     FunctionConfiguration
     FunctionConfiguration
     (Maybe Text)
     (Maybe Text)
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)

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

instance Prelude.Hashable FunctionConfiguration

instance Prelude.NFData FunctionConfiguration