{-# 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.SecurityHub.Types.AwsLambdaFunctionDetails
-- 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.SecurityHub.Types.AwsLambdaFunctionDetails where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.SecurityHub.Types.AwsLambdaFunctionCode
import Amazonka.SecurityHub.Types.AwsLambdaFunctionDeadLetterConfig
import Amazonka.SecurityHub.Types.AwsLambdaFunctionEnvironment
import Amazonka.SecurityHub.Types.AwsLambdaFunctionLayer
import Amazonka.SecurityHub.Types.AwsLambdaFunctionTracingConfig
import Amazonka.SecurityHub.Types.AwsLambdaFunctionVpcConfig

-- | Details about a function\'s configuration.
--
-- /See:/ 'newAwsLambdaFunctionDetails' smart constructor.
data AwsLambdaFunctionDetails = AwsLambdaFunctionDetails'
  { -- | The memory that is allocated to the function.
    AwsLambdaFunctionDetails -> Maybe Int
memorySize :: Prelude.Maybe Prelude.Int,
    -- | The runtime environment for the Lambda function.
    AwsLambdaFunctionDetails -> Maybe Text
runtime :: Prelude.Maybe Prelude.Text,
    -- | The KMS key that is used to encrypt the function\'s environment
    -- variables. This key is only returned if you\'ve configured a customer
    -- managed customer managed key.
    AwsLambdaFunctionDetails -> Maybe Text
kmsKeyArn :: Prelude.Maybe Prelude.Text,
    -- | The function\'s environment variables.
    AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionEnvironment
environment :: Prelude.Maybe AwsLambdaFunctionEnvironment,
    -- | The function\'s dead letter queue.
    AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionDeadLetterConfig
deadLetterConfig :: Prelude.Maybe AwsLambdaFunctionDeadLetterConfig,
    -- | The function\'s execution role.
    AwsLambdaFunctionDetails -> Maybe Text
role' :: Prelude.Maybe Prelude.Text,
    -- | The function\'s networking configuration.
    AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionVpcConfig
vpcConfig :: Prelude.Maybe AwsLambdaFunctionVpcConfig,
    -- | The version of the Lambda function.
    AwsLambdaFunctionDetails -> Maybe Text
version :: Prelude.Maybe Prelude.Text,
    -- | The name of the function.
    AwsLambdaFunctionDetails -> Maybe Text
functionName :: Prelude.Maybe Prelude.Text,
    -- | An @AwsLambdaFunctionCode@ object.
    AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionCode
code :: Prelude.Maybe AwsLambdaFunctionCode,
    -- | The function\'s layers.
    AwsLambdaFunctionDetails -> Maybe [AwsLambdaFunctionLayer]
layers :: Prelude.Maybe [AwsLambdaFunctionLayer],
    -- | The function that Lambda calls to begin executing your function.
    AwsLambdaFunctionDetails -> Maybe Text
handler :: Prelude.Maybe Prelude.Text,
    -- | The amount of time that Lambda allows a function to run before stopping
    -- it.
    AwsLambdaFunctionDetails -> Maybe Int
timeout :: Prelude.Maybe Prelude.Int,
    -- | Indicates when the function was last updated.
    --
    -- Uses the @date-time@ format specified in
    -- <https://tools.ietf.org/html/rfc3339#section-5.6 RFC 3339 section 5.6, Internet Date\/Time Format>.
    -- The value cannot contain spaces. For example,
    -- @2020-03-22T13:22:13.933Z@.
    AwsLambdaFunctionDetails -> Maybe Text
lastModified :: Prelude.Maybe Prelude.Text,
    -- | The SHA256 hash of the function\'s deployment package.
    AwsLambdaFunctionDetails -> Maybe Text
codeSha256 :: Prelude.Maybe Prelude.Text,
    -- | The function\'s X-Ray tracing configuration.
    AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionTracingConfig
tracingConfig :: Prelude.Maybe AwsLambdaFunctionTracingConfig,
    -- | The latest updated revision of the function or alias.
    AwsLambdaFunctionDetails -> Maybe Text
revisionId :: Prelude.Maybe Prelude.Text,
    -- | For Lambda\@Edge functions, the ARN of the master function.
    AwsLambdaFunctionDetails -> Maybe Text
masterArn :: Prelude.Maybe Prelude.Text
  }
  deriving (AwsLambdaFunctionDetails -> AwsLambdaFunctionDetails -> Bool
(AwsLambdaFunctionDetails -> AwsLambdaFunctionDetails -> Bool)
-> (AwsLambdaFunctionDetails -> AwsLambdaFunctionDetails -> Bool)
-> Eq AwsLambdaFunctionDetails
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AwsLambdaFunctionDetails -> AwsLambdaFunctionDetails -> Bool
$c/= :: AwsLambdaFunctionDetails -> AwsLambdaFunctionDetails -> Bool
== :: AwsLambdaFunctionDetails -> AwsLambdaFunctionDetails -> Bool
$c== :: AwsLambdaFunctionDetails -> AwsLambdaFunctionDetails -> Bool
Prelude.Eq, ReadPrec [AwsLambdaFunctionDetails]
ReadPrec AwsLambdaFunctionDetails
Int -> ReadS AwsLambdaFunctionDetails
ReadS [AwsLambdaFunctionDetails]
(Int -> ReadS AwsLambdaFunctionDetails)
-> ReadS [AwsLambdaFunctionDetails]
-> ReadPrec AwsLambdaFunctionDetails
-> ReadPrec [AwsLambdaFunctionDetails]
-> Read AwsLambdaFunctionDetails
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AwsLambdaFunctionDetails]
$creadListPrec :: ReadPrec [AwsLambdaFunctionDetails]
readPrec :: ReadPrec AwsLambdaFunctionDetails
$creadPrec :: ReadPrec AwsLambdaFunctionDetails
readList :: ReadS [AwsLambdaFunctionDetails]
$creadList :: ReadS [AwsLambdaFunctionDetails]
readsPrec :: Int -> ReadS AwsLambdaFunctionDetails
$creadsPrec :: Int -> ReadS AwsLambdaFunctionDetails
Prelude.Read, Int -> AwsLambdaFunctionDetails -> ShowS
[AwsLambdaFunctionDetails] -> ShowS
AwsLambdaFunctionDetails -> String
(Int -> AwsLambdaFunctionDetails -> ShowS)
-> (AwsLambdaFunctionDetails -> String)
-> ([AwsLambdaFunctionDetails] -> ShowS)
-> Show AwsLambdaFunctionDetails
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AwsLambdaFunctionDetails] -> ShowS
$cshowList :: [AwsLambdaFunctionDetails] -> ShowS
show :: AwsLambdaFunctionDetails -> String
$cshow :: AwsLambdaFunctionDetails -> String
showsPrec :: Int -> AwsLambdaFunctionDetails -> ShowS
$cshowsPrec :: Int -> AwsLambdaFunctionDetails -> ShowS
Prelude.Show, (forall x.
 AwsLambdaFunctionDetails -> Rep AwsLambdaFunctionDetails x)
-> (forall x.
    Rep AwsLambdaFunctionDetails x -> AwsLambdaFunctionDetails)
-> Generic AwsLambdaFunctionDetails
forall x.
Rep AwsLambdaFunctionDetails x -> AwsLambdaFunctionDetails
forall x.
AwsLambdaFunctionDetails -> Rep AwsLambdaFunctionDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AwsLambdaFunctionDetails x -> AwsLambdaFunctionDetails
$cfrom :: forall x.
AwsLambdaFunctionDetails -> Rep AwsLambdaFunctionDetails x
Prelude.Generic)

-- |
-- Create a value of 'AwsLambdaFunctionDetails' 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', 'awsLambdaFunctionDetails_memorySize' - The memory that is allocated to the function.
--
-- 'runtime', 'awsLambdaFunctionDetails_runtime' - The runtime environment for the Lambda function.
--
-- 'kmsKeyArn', 'awsLambdaFunctionDetails_kmsKeyArn' - The KMS key that is used to encrypt the function\'s environment
-- variables. This key is only returned if you\'ve configured a customer
-- managed customer managed key.
--
-- 'environment', 'awsLambdaFunctionDetails_environment' - The function\'s environment variables.
--
-- 'deadLetterConfig', 'awsLambdaFunctionDetails_deadLetterConfig' - The function\'s dead letter queue.
--
-- 'role'', 'awsLambdaFunctionDetails_role' - The function\'s execution role.
--
-- 'vpcConfig', 'awsLambdaFunctionDetails_vpcConfig' - The function\'s networking configuration.
--
-- 'version', 'awsLambdaFunctionDetails_version' - The version of the Lambda function.
--
-- 'functionName', 'awsLambdaFunctionDetails_functionName' - The name of the function.
--
-- 'code', 'awsLambdaFunctionDetails_code' - An @AwsLambdaFunctionCode@ object.
--
-- 'layers', 'awsLambdaFunctionDetails_layers' - The function\'s layers.
--
-- 'handler', 'awsLambdaFunctionDetails_handler' - The function that Lambda calls to begin executing your function.
--
-- 'timeout', 'awsLambdaFunctionDetails_timeout' - The amount of time that Lambda allows a function to run before stopping
-- it.
--
-- 'lastModified', 'awsLambdaFunctionDetails_lastModified' - Indicates when the function was last updated.
--
-- Uses the @date-time@ format specified in
-- <https://tools.ietf.org/html/rfc3339#section-5.6 RFC 3339 section 5.6, Internet Date\/Time Format>.
-- The value cannot contain spaces. For example,
-- @2020-03-22T13:22:13.933Z@.
--
-- 'codeSha256', 'awsLambdaFunctionDetails_codeSha256' - The SHA256 hash of the function\'s deployment package.
--
-- 'tracingConfig', 'awsLambdaFunctionDetails_tracingConfig' - The function\'s X-Ray tracing configuration.
--
-- 'revisionId', 'awsLambdaFunctionDetails_revisionId' - The latest updated revision of the function or alias.
--
-- 'masterArn', 'awsLambdaFunctionDetails_masterArn' - For Lambda\@Edge functions, the ARN of the master function.
newAwsLambdaFunctionDetails ::
  AwsLambdaFunctionDetails
newAwsLambdaFunctionDetails :: AwsLambdaFunctionDetails
newAwsLambdaFunctionDetails =
  AwsLambdaFunctionDetails' :: Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe AwsLambdaFunctionEnvironment
-> Maybe AwsLambdaFunctionDeadLetterConfig
-> Maybe Text
-> Maybe AwsLambdaFunctionVpcConfig
-> Maybe Text
-> Maybe Text
-> Maybe AwsLambdaFunctionCode
-> Maybe [AwsLambdaFunctionLayer]
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe AwsLambdaFunctionTracingConfig
-> Maybe Text
-> Maybe Text
-> AwsLambdaFunctionDetails
AwsLambdaFunctionDetails'
    { $sel:memorySize:AwsLambdaFunctionDetails' :: Maybe Int
memorySize =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:runtime:AwsLambdaFunctionDetails' :: Maybe Text
runtime = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:kmsKeyArn:AwsLambdaFunctionDetails' :: Maybe Text
kmsKeyArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:environment:AwsLambdaFunctionDetails' :: Maybe AwsLambdaFunctionEnvironment
environment = Maybe AwsLambdaFunctionEnvironment
forall a. Maybe a
Prelude.Nothing,
      $sel:deadLetterConfig:AwsLambdaFunctionDetails' :: Maybe AwsLambdaFunctionDeadLetterConfig
deadLetterConfig = Maybe AwsLambdaFunctionDeadLetterConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:role':AwsLambdaFunctionDetails' :: Maybe Text
role' = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:vpcConfig:AwsLambdaFunctionDetails' :: Maybe AwsLambdaFunctionVpcConfig
vpcConfig = Maybe AwsLambdaFunctionVpcConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:version:AwsLambdaFunctionDetails' :: Maybe Text
version = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:functionName:AwsLambdaFunctionDetails' :: Maybe Text
functionName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:code:AwsLambdaFunctionDetails' :: Maybe AwsLambdaFunctionCode
code = Maybe AwsLambdaFunctionCode
forall a. Maybe a
Prelude.Nothing,
      $sel:layers:AwsLambdaFunctionDetails' :: Maybe [AwsLambdaFunctionLayer]
layers = Maybe [AwsLambdaFunctionLayer]
forall a. Maybe a
Prelude.Nothing,
      $sel:handler:AwsLambdaFunctionDetails' :: Maybe Text
handler = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:timeout:AwsLambdaFunctionDetails' :: Maybe Int
timeout = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:lastModified:AwsLambdaFunctionDetails' :: Maybe Text
lastModified = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:codeSha256:AwsLambdaFunctionDetails' :: Maybe Text
codeSha256 = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:tracingConfig:AwsLambdaFunctionDetails' :: Maybe AwsLambdaFunctionTracingConfig
tracingConfig = Maybe AwsLambdaFunctionTracingConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:revisionId:AwsLambdaFunctionDetails' :: Maybe Text
revisionId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:masterArn:AwsLambdaFunctionDetails' :: Maybe Text
masterArn = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | The memory that is allocated to the function.
awsLambdaFunctionDetails_memorySize :: Lens.Lens' AwsLambdaFunctionDetails (Prelude.Maybe Prelude.Int)
awsLambdaFunctionDetails_memorySize :: (Maybe Int -> f (Maybe Int))
-> AwsLambdaFunctionDetails -> f AwsLambdaFunctionDetails
awsLambdaFunctionDetails_memorySize = (AwsLambdaFunctionDetails -> Maybe Int)
-> (AwsLambdaFunctionDetails
    -> Maybe Int -> AwsLambdaFunctionDetails)
-> Lens
     AwsLambdaFunctionDetails
     AwsLambdaFunctionDetails
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsLambdaFunctionDetails' {Maybe Int
memorySize :: Maybe Int
$sel:memorySize:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Int
memorySize} -> Maybe Int
memorySize) (\s :: AwsLambdaFunctionDetails
s@AwsLambdaFunctionDetails' {} Maybe Int
a -> AwsLambdaFunctionDetails
s {$sel:memorySize:AwsLambdaFunctionDetails' :: Maybe Int
memorySize = Maybe Int
a} :: AwsLambdaFunctionDetails)

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

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

-- | The function\'s environment variables.
awsLambdaFunctionDetails_environment :: Lens.Lens' AwsLambdaFunctionDetails (Prelude.Maybe AwsLambdaFunctionEnvironment)
awsLambdaFunctionDetails_environment :: (Maybe AwsLambdaFunctionEnvironment
 -> f (Maybe AwsLambdaFunctionEnvironment))
-> AwsLambdaFunctionDetails -> f AwsLambdaFunctionDetails
awsLambdaFunctionDetails_environment = (AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionEnvironment)
-> (AwsLambdaFunctionDetails
    -> Maybe AwsLambdaFunctionEnvironment -> AwsLambdaFunctionDetails)
-> Lens
     AwsLambdaFunctionDetails
     AwsLambdaFunctionDetails
     (Maybe AwsLambdaFunctionEnvironment)
     (Maybe AwsLambdaFunctionEnvironment)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsLambdaFunctionDetails' {Maybe AwsLambdaFunctionEnvironment
environment :: Maybe AwsLambdaFunctionEnvironment
$sel:environment:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionEnvironment
environment} -> Maybe AwsLambdaFunctionEnvironment
environment) (\s :: AwsLambdaFunctionDetails
s@AwsLambdaFunctionDetails' {} Maybe AwsLambdaFunctionEnvironment
a -> AwsLambdaFunctionDetails
s {$sel:environment:AwsLambdaFunctionDetails' :: Maybe AwsLambdaFunctionEnvironment
environment = Maybe AwsLambdaFunctionEnvironment
a} :: AwsLambdaFunctionDetails)

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

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

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

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

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

-- | An @AwsLambdaFunctionCode@ object.
awsLambdaFunctionDetails_code :: Lens.Lens' AwsLambdaFunctionDetails (Prelude.Maybe AwsLambdaFunctionCode)
awsLambdaFunctionDetails_code :: (Maybe AwsLambdaFunctionCode -> f (Maybe AwsLambdaFunctionCode))
-> AwsLambdaFunctionDetails -> f AwsLambdaFunctionDetails
awsLambdaFunctionDetails_code = (AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionCode)
-> (AwsLambdaFunctionDetails
    -> Maybe AwsLambdaFunctionCode -> AwsLambdaFunctionDetails)
-> Lens
     AwsLambdaFunctionDetails
     AwsLambdaFunctionDetails
     (Maybe AwsLambdaFunctionCode)
     (Maybe AwsLambdaFunctionCode)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsLambdaFunctionDetails' {Maybe AwsLambdaFunctionCode
code :: Maybe AwsLambdaFunctionCode
$sel:code:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionCode
code} -> Maybe AwsLambdaFunctionCode
code) (\s :: AwsLambdaFunctionDetails
s@AwsLambdaFunctionDetails' {} Maybe AwsLambdaFunctionCode
a -> AwsLambdaFunctionDetails
s {$sel:code:AwsLambdaFunctionDetails' :: Maybe AwsLambdaFunctionCode
code = Maybe AwsLambdaFunctionCode
a} :: AwsLambdaFunctionDetails)

-- | The function\'s layers.
awsLambdaFunctionDetails_layers :: Lens.Lens' AwsLambdaFunctionDetails (Prelude.Maybe [AwsLambdaFunctionLayer])
awsLambdaFunctionDetails_layers :: (Maybe [AwsLambdaFunctionLayer]
 -> f (Maybe [AwsLambdaFunctionLayer]))
-> AwsLambdaFunctionDetails -> f AwsLambdaFunctionDetails
awsLambdaFunctionDetails_layers = (AwsLambdaFunctionDetails -> Maybe [AwsLambdaFunctionLayer])
-> (AwsLambdaFunctionDetails
    -> Maybe [AwsLambdaFunctionLayer] -> AwsLambdaFunctionDetails)
-> Lens
     AwsLambdaFunctionDetails
     AwsLambdaFunctionDetails
     (Maybe [AwsLambdaFunctionLayer])
     (Maybe [AwsLambdaFunctionLayer])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsLambdaFunctionDetails' {Maybe [AwsLambdaFunctionLayer]
layers :: Maybe [AwsLambdaFunctionLayer]
$sel:layers:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe [AwsLambdaFunctionLayer]
layers} -> Maybe [AwsLambdaFunctionLayer]
layers) (\s :: AwsLambdaFunctionDetails
s@AwsLambdaFunctionDetails' {} Maybe [AwsLambdaFunctionLayer]
a -> AwsLambdaFunctionDetails
s {$sel:layers:AwsLambdaFunctionDetails' :: Maybe [AwsLambdaFunctionLayer]
layers = Maybe [AwsLambdaFunctionLayer]
a} :: AwsLambdaFunctionDetails) ((Maybe [AwsLambdaFunctionLayer]
  -> f (Maybe [AwsLambdaFunctionLayer]))
 -> AwsLambdaFunctionDetails -> f AwsLambdaFunctionDetails)
-> ((Maybe [AwsLambdaFunctionLayer]
     -> f (Maybe [AwsLambdaFunctionLayer]))
    -> Maybe [AwsLambdaFunctionLayer]
    -> f (Maybe [AwsLambdaFunctionLayer]))
-> (Maybe [AwsLambdaFunctionLayer]
    -> f (Maybe [AwsLambdaFunctionLayer]))
-> AwsLambdaFunctionDetails
-> f AwsLambdaFunctionDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AwsLambdaFunctionLayer]
  [AwsLambdaFunctionLayer]
  [AwsLambdaFunctionLayer]
  [AwsLambdaFunctionLayer]
-> Iso
     (Maybe [AwsLambdaFunctionLayer])
     (Maybe [AwsLambdaFunctionLayer])
     (Maybe [AwsLambdaFunctionLayer])
     (Maybe [AwsLambdaFunctionLayer])
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
  [AwsLambdaFunctionLayer]
  [AwsLambdaFunctionLayer]
  [AwsLambdaFunctionLayer]
  [AwsLambdaFunctionLayer]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

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

-- | Indicates when the function was last updated.
--
-- Uses the @date-time@ format specified in
-- <https://tools.ietf.org/html/rfc3339#section-5.6 RFC 3339 section 5.6, Internet Date\/Time Format>.
-- The value cannot contain spaces. For example,
-- @2020-03-22T13:22:13.933Z@.
awsLambdaFunctionDetails_lastModified :: Lens.Lens' AwsLambdaFunctionDetails (Prelude.Maybe Prelude.Text)
awsLambdaFunctionDetails_lastModified :: (Maybe Text -> f (Maybe Text))
-> AwsLambdaFunctionDetails -> f AwsLambdaFunctionDetails
awsLambdaFunctionDetails_lastModified = (AwsLambdaFunctionDetails -> Maybe Text)
-> (AwsLambdaFunctionDetails
    -> Maybe Text -> AwsLambdaFunctionDetails)
-> Lens
     AwsLambdaFunctionDetails
     AwsLambdaFunctionDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsLambdaFunctionDetails' {Maybe Text
lastModified :: Maybe Text
$sel:lastModified:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Text
lastModified} -> Maybe Text
lastModified) (\s :: AwsLambdaFunctionDetails
s@AwsLambdaFunctionDetails' {} Maybe Text
a -> AwsLambdaFunctionDetails
s {$sel:lastModified:AwsLambdaFunctionDetails' :: Maybe Text
lastModified = Maybe Text
a} :: AwsLambdaFunctionDetails)

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

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

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

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

instance Core.FromJSON AwsLambdaFunctionDetails where
  parseJSON :: Value -> Parser AwsLambdaFunctionDetails
parseJSON =
    String
-> (Object -> Parser AwsLambdaFunctionDetails)
-> Value
-> Parser AwsLambdaFunctionDetails
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"AwsLambdaFunctionDetails"
      ( \Object
x ->
          Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe AwsLambdaFunctionEnvironment
-> Maybe AwsLambdaFunctionDeadLetterConfig
-> Maybe Text
-> Maybe AwsLambdaFunctionVpcConfig
-> Maybe Text
-> Maybe Text
-> Maybe AwsLambdaFunctionCode
-> Maybe [AwsLambdaFunctionLayer]
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe AwsLambdaFunctionTracingConfig
-> Maybe Text
-> Maybe Text
-> AwsLambdaFunctionDetails
AwsLambdaFunctionDetails'
            (Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe AwsLambdaFunctionEnvironment
 -> Maybe AwsLambdaFunctionDeadLetterConfig
 -> Maybe Text
 -> Maybe AwsLambdaFunctionVpcConfig
 -> Maybe Text
 -> Maybe Text
 -> Maybe AwsLambdaFunctionCode
 -> Maybe [AwsLambdaFunctionLayer]
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe AwsLambdaFunctionTracingConfig
 -> Maybe Text
 -> Maybe Text
 -> AwsLambdaFunctionDetails)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionEnvironment
      -> Maybe AwsLambdaFunctionDeadLetterConfig
      -> Maybe Text
      -> Maybe AwsLambdaFunctionVpcConfig
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionCode
      -> Maybe [AwsLambdaFunctionLayer]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"MemorySize")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionEnvironment
   -> Maybe AwsLambdaFunctionDeadLetterConfig
   -> Maybe Text
   -> Maybe AwsLambdaFunctionVpcConfig
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionCode
   -> Maybe [AwsLambdaFunctionLayer]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe AwsLambdaFunctionEnvironment
      -> Maybe AwsLambdaFunctionDeadLetterConfig
      -> Maybe Text
      -> Maybe AwsLambdaFunctionVpcConfig
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionCode
      -> Maybe [AwsLambdaFunctionLayer]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
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
"Runtime")
            Parser
  (Maybe Text
   -> Maybe AwsLambdaFunctionEnvironment
   -> Maybe AwsLambdaFunctionDeadLetterConfig
   -> Maybe Text
   -> Maybe AwsLambdaFunctionVpcConfig
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionCode
   -> Maybe [AwsLambdaFunctionLayer]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe AwsLambdaFunctionEnvironment
      -> Maybe AwsLambdaFunctionDeadLetterConfig
      -> Maybe Text
      -> Maybe AwsLambdaFunctionVpcConfig
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionCode
      -> Maybe [AwsLambdaFunctionLayer]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
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 AwsLambdaFunctionEnvironment
   -> Maybe AwsLambdaFunctionDeadLetterConfig
   -> Maybe Text
   -> Maybe AwsLambdaFunctionVpcConfig
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionCode
   -> Maybe [AwsLambdaFunctionLayer]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe AwsLambdaFunctionEnvironment)
-> Parser
     (Maybe AwsLambdaFunctionDeadLetterConfig
      -> Maybe Text
      -> Maybe AwsLambdaFunctionVpcConfig
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionCode
      -> Maybe [AwsLambdaFunctionLayer]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AwsLambdaFunctionEnvironment)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Environment")
            Parser
  (Maybe AwsLambdaFunctionDeadLetterConfig
   -> Maybe Text
   -> Maybe AwsLambdaFunctionVpcConfig
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionCode
   -> Maybe [AwsLambdaFunctionLayer]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe AwsLambdaFunctionDeadLetterConfig)
-> Parser
     (Maybe Text
      -> Maybe AwsLambdaFunctionVpcConfig
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionCode
      -> Maybe [AwsLambdaFunctionLayer]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AwsLambdaFunctionDeadLetterConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DeadLetterConfig")
            Parser
  (Maybe Text
   -> Maybe AwsLambdaFunctionVpcConfig
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionCode
   -> Maybe [AwsLambdaFunctionLayer]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe AwsLambdaFunctionVpcConfig
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionCode
      -> Maybe [AwsLambdaFunctionLayer]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
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 AwsLambdaFunctionVpcConfig
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionCode
   -> Maybe [AwsLambdaFunctionLayer]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe AwsLambdaFunctionVpcConfig)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionCode
      -> Maybe [AwsLambdaFunctionLayer]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AwsLambdaFunctionVpcConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"VpcConfig")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionCode
   -> Maybe [AwsLambdaFunctionLayer]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe AwsLambdaFunctionCode
      -> Maybe [AwsLambdaFunctionLayer]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
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 AwsLambdaFunctionCode
   -> Maybe [AwsLambdaFunctionLayer]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe AwsLambdaFunctionCode
      -> Maybe [AwsLambdaFunctionLayer]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
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 AwsLambdaFunctionCode
   -> Maybe [AwsLambdaFunctionLayer]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe AwsLambdaFunctionCode)
-> Parser
     (Maybe [AwsLambdaFunctionLayer]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AwsLambdaFunctionCode)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Code")
            Parser
  (Maybe [AwsLambdaFunctionLayer]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe [AwsLambdaFunctionLayer])
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [AwsLambdaFunctionLayer]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Layers" Parser (Maybe (Maybe [AwsLambdaFunctionLayer]))
-> Maybe [AwsLambdaFunctionLayer]
-> Parser (Maybe [AwsLambdaFunctionLayer])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsLambdaFunctionLayer]
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
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 Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Timeout")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text
      -> Maybe Text
      -> AwsLambdaFunctionDetails)
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 AwsLambdaFunctionTracingConfig
   -> Maybe Text
   -> Maybe Text
   -> AwsLambdaFunctionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe AwsLambdaFunctionTracingConfig
      -> Maybe Text -> Maybe Text -> AwsLambdaFunctionDetails)
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 AwsLambdaFunctionTracingConfig
   -> Maybe Text -> Maybe Text -> AwsLambdaFunctionDetails)
-> Parser (Maybe AwsLambdaFunctionTracingConfig)
-> Parser (Maybe Text -> Maybe Text -> AwsLambdaFunctionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AwsLambdaFunctionTracingConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TracingConfig")
            Parser (Maybe Text -> Maybe Text -> AwsLambdaFunctionDetails)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> AwsLambdaFunctionDetails)
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 -> AwsLambdaFunctionDetails)
-> Parser (Maybe Text) -> Parser AwsLambdaFunctionDetails
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 AwsLambdaFunctionDetails

instance Prelude.NFData AwsLambdaFunctionDetails

instance Core.ToJSON AwsLambdaFunctionDetails where
  toJSON :: AwsLambdaFunctionDetails -> Value
toJSON AwsLambdaFunctionDetails' {Maybe Int
Maybe [AwsLambdaFunctionLayer]
Maybe Text
Maybe AwsLambdaFunctionCode
Maybe AwsLambdaFunctionDeadLetterConfig
Maybe AwsLambdaFunctionEnvironment
Maybe AwsLambdaFunctionTracingConfig
Maybe AwsLambdaFunctionVpcConfig
masterArn :: Maybe Text
revisionId :: Maybe Text
tracingConfig :: Maybe AwsLambdaFunctionTracingConfig
codeSha256 :: Maybe Text
lastModified :: Maybe Text
timeout :: Maybe Int
handler :: Maybe Text
layers :: Maybe [AwsLambdaFunctionLayer]
code :: Maybe AwsLambdaFunctionCode
functionName :: Maybe Text
version :: Maybe Text
vpcConfig :: Maybe AwsLambdaFunctionVpcConfig
role' :: Maybe Text
deadLetterConfig :: Maybe AwsLambdaFunctionDeadLetterConfig
environment :: Maybe AwsLambdaFunctionEnvironment
kmsKeyArn :: Maybe Text
runtime :: Maybe Text
memorySize :: Maybe Int
$sel:masterArn:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Text
$sel:revisionId:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Text
$sel:tracingConfig:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionTracingConfig
$sel:codeSha256:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Text
$sel:lastModified:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Text
$sel:timeout:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Int
$sel:handler:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Text
$sel:layers:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe [AwsLambdaFunctionLayer]
$sel:code:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionCode
$sel:functionName:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Text
$sel:version:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Text
$sel:vpcConfig:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionVpcConfig
$sel:role':AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Text
$sel:deadLetterConfig:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionDeadLetterConfig
$sel:environment:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe AwsLambdaFunctionEnvironment
$sel:kmsKeyArn:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Text
$sel:runtime:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Text
$sel:memorySize:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe Int
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"MemorySize" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
memorySize,
            (Text
"Runtime" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
runtime,
            (Text
"KmsKeyArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
kmsKeyArn,
            (Text
"Environment" Text -> AwsLambdaFunctionEnvironment -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (AwsLambdaFunctionEnvironment -> Pair)
-> Maybe AwsLambdaFunctionEnvironment -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AwsLambdaFunctionEnvironment
environment,
            (Text
"DeadLetterConfig" Text -> AwsLambdaFunctionDeadLetterConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (AwsLambdaFunctionDeadLetterConfig -> Pair)
-> Maybe AwsLambdaFunctionDeadLetterConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AwsLambdaFunctionDeadLetterConfig
deadLetterConfig,
            (Text
"Role" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
role',
            (Text
"VpcConfig" Text -> AwsLambdaFunctionVpcConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (AwsLambdaFunctionVpcConfig -> Pair)
-> Maybe AwsLambdaFunctionVpcConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AwsLambdaFunctionVpcConfig
vpcConfig,
            (Text
"Version" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
version,
            (Text
"FunctionName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
functionName,
            (Text
"Code" Text -> AwsLambdaFunctionCode -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (AwsLambdaFunctionCode -> Pair)
-> Maybe AwsLambdaFunctionCode -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AwsLambdaFunctionCode
code,
            (Text
"Layers" Text -> [AwsLambdaFunctionLayer] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([AwsLambdaFunctionLayer] -> Pair)
-> Maybe [AwsLambdaFunctionLayer] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsLambdaFunctionLayer]
layers,
            (Text
"Handler" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
handler,
            (Text
"Timeout" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
timeout,
            (Text
"LastModified" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
lastModified,
            (Text
"CodeSha256" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
codeSha256,
            (Text
"TracingConfig" Text -> AwsLambdaFunctionTracingConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (AwsLambdaFunctionTracingConfig -> Pair)
-> Maybe AwsLambdaFunctionTracingConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AwsLambdaFunctionTracingConfig
tracingConfig,
            (Text
"RevisionId" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
revisionId,
            (Text
"MasterArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
masterArn
          ]
      )