{-# 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.Inspector2.Types.AwsLambdaFunctionDetails
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Inspector2.Types.AwsLambdaFunctionDetails where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Inspector2.Types.Architecture
import Amazonka.Inspector2.Types.LambdaVpcConfig
import Amazonka.Inspector2.Types.PackageType
import Amazonka.Inspector2.Types.Runtime
import qualified Amazonka.Prelude as Prelude

-- | A summary of information about the AWS Lambda function.
--
-- /See:/ 'newAwsLambdaFunctionDetails' smart constructor.
data AwsLambdaFunctionDetails = AwsLambdaFunctionDetails'
  { -- | The instruction set architecture that the AWS Lambda function supports.
    -- Architecture is a string array with one of the valid values. The default
    -- architecture value is @x86_64@.
    AwsLambdaFunctionDetails -> Maybe (NonEmpty Architecture)
architectures :: Prelude.Maybe (Prelude.NonEmpty Architecture),
    -- | The date and time that a user last updated the configuration, in
    -- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601 format>
    AwsLambdaFunctionDetails -> Maybe POSIX
lastModifiedAt :: Prelude.Maybe Data.POSIX,
    -- | The AWS Lambda function\'s
    -- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html layers>.
    -- A Lambda function can have up to five layers.
    AwsLambdaFunctionDetails -> Maybe (NonEmpty Text)
layers :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    -- | The type of deployment package. Set to @Image@ for container image and
    -- set @Zip@ for .zip file archive.
    AwsLambdaFunctionDetails -> Maybe PackageType
packageType :: Prelude.Maybe PackageType,
    -- | The AWS Lambda function\'s networking configuration.
    AwsLambdaFunctionDetails -> Maybe LambdaVpcConfig
vpcConfig :: Prelude.Maybe LambdaVpcConfig,
    -- | The SHA256 hash of the AWS Lambda function\'s deployment package.
    AwsLambdaFunctionDetails -> Text
codeSha256 :: Prelude.Text,
    -- | The AWS Lambda function\'s execution role.
    AwsLambdaFunctionDetails -> Text
executionRoleArn :: Prelude.Text,
    -- | The name of the AWS Lambda function.
    AwsLambdaFunctionDetails -> Text
functionName :: Prelude.Text,
    -- | The runtime environment for the AWS Lambda function.
    AwsLambdaFunctionDetails -> Runtime
runtime :: Runtime,
    -- | The version of the AWS Lambda function.
    AwsLambdaFunctionDetails -> Text
version :: Prelude.Text
  }
  deriving (AwsLambdaFunctionDetails -> AwsLambdaFunctionDetails -> Bool
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]
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
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.
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:
--
-- 'architectures', 'awsLambdaFunctionDetails_architectures' - The instruction set architecture that the AWS Lambda function supports.
-- Architecture is a string array with one of the valid values. The default
-- architecture value is @x86_64@.
--
-- 'lastModifiedAt', 'awsLambdaFunctionDetails_lastModifiedAt' - The date and time that a user last updated the configuration, in
-- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601 format>
--
-- 'layers', 'awsLambdaFunctionDetails_layers' - The AWS Lambda function\'s
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html layers>.
-- A Lambda function can have up to five layers.
--
-- 'packageType', 'awsLambdaFunctionDetails_packageType' - The type of deployment package. Set to @Image@ for container image and
-- set @Zip@ for .zip file archive.
--
-- 'vpcConfig', 'awsLambdaFunctionDetails_vpcConfig' - The AWS Lambda function\'s networking configuration.
--
-- 'codeSha256', 'awsLambdaFunctionDetails_codeSha256' - The SHA256 hash of the AWS Lambda function\'s deployment package.
--
-- 'executionRoleArn', 'awsLambdaFunctionDetails_executionRoleArn' - The AWS Lambda function\'s execution role.
--
-- 'functionName', 'awsLambdaFunctionDetails_functionName' - The name of the AWS Lambda function.
--
-- 'runtime', 'awsLambdaFunctionDetails_runtime' - The runtime environment for the AWS Lambda function.
--
-- 'version', 'awsLambdaFunctionDetails_version' - The version of the AWS Lambda function.
newAwsLambdaFunctionDetails ::
  -- | 'codeSha256'
  Prelude.Text ->
  -- | 'executionRoleArn'
  Prelude.Text ->
  -- | 'functionName'
  Prelude.Text ->
  -- | 'runtime'
  Runtime ->
  -- | 'version'
  Prelude.Text ->
  AwsLambdaFunctionDetails
newAwsLambdaFunctionDetails :: Text -> Text -> Text -> Runtime -> Text -> AwsLambdaFunctionDetails
newAwsLambdaFunctionDetails
  Text
pCodeSha256_
  Text
pExecutionRoleArn_
  Text
pFunctionName_
  Runtime
pRuntime_
  Text
pVersion_ =
    AwsLambdaFunctionDetails'
      { $sel:architectures:AwsLambdaFunctionDetails' :: Maybe (NonEmpty Architecture)
architectures =
          forall a. Maybe a
Prelude.Nothing,
        $sel:lastModifiedAt:AwsLambdaFunctionDetails' :: Maybe POSIX
lastModifiedAt = forall a. Maybe a
Prelude.Nothing,
        $sel:layers:AwsLambdaFunctionDetails' :: Maybe (NonEmpty Text)
layers = forall a. Maybe a
Prelude.Nothing,
        $sel:packageType:AwsLambdaFunctionDetails' :: Maybe PackageType
packageType = forall a. Maybe a
Prelude.Nothing,
        $sel:vpcConfig:AwsLambdaFunctionDetails' :: Maybe LambdaVpcConfig
vpcConfig = forall a. Maybe a
Prelude.Nothing,
        $sel:codeSha256:AwsLambdaFunctionDetails' :: Text
codeSha256 = Text
pCodeSha256_,
        $sel:executionRoleArn:AwsLambdaFunctionDetails' :: Text
executionRoleArn = Text
pExecutionRoleArn_,
        $sel:functionName:AwsLambdaFunctionDetails' :: Text
functionName = Text
pFunctionName_,
        $sel:runtime:AwsLambdaFunctionDetails' :: Runtime
runtime = Runtime
pRuntime_,
        $sel:version:AwsLambdaFunctionDetails' :: Text
version = Text
pVersion_
      }

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

-- | The date and time that a user last updated the configuration, in
-- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601 format>
awsLambdaFunctionDetails_lastModifiedAt :: Lens.Lens' AwsLambdaFunctionDetails (Prelude.Maybe Prelude.UTCTime)
awsLambdaFunctionDetails_lastModifiedAt :: Lens' AwsLambdaFunctionDetails (Maybe UTCTime)
awsLambdaFunctionDetails_lastModifiedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsLambdaFunctionDetails' {Maybe POSIX
lastModifiedAt :: Maybe POSIX
$sel:lastModifiedAt:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe POSIX
lastModifiedAt} -> Maybe POSIX
lastModifiedAt) (\s :: AwsLambdaFunctionDetails
s@AwsLambdaFunctionDetails' {} Maybe POSIX
a -> AwsLambdaFunctionDetails
s {$sel:lastModifiedAt:AwsLambdaFunctionDetails' :: Maybe POSIX
lastModifiedAt = Maybe POSIX
a} :: AwsLambdaFunctionDetails) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The AWS Lambda function\'s
-- <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html layers>.
-- A Lambda function can have up to five layers.
awsLambdaFunctionDetails_layers :: Lens.Lens' AwsLambdaFunctionDetails (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
awsLambdaFunctionDetails_layers :: Lens' AwsLambdaFunctionDetails (Maybe (NonEmpty Text))
awsLambdaFunctionDetails_layers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsLambdaFunctionDetails' {Maybe (NonEmpty Text)
layers :: Maybe (NonEmpty Text)
$sel:layers:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe (NonEmpty Text)
layers} -> Maybe (NonEmpty Text)
layers) (\s :: AwsLambdaFunctionDetails
s@AwsLambdaFunctionDetails' {} Maybe (NonEmpty Text)
a -> AwsLambdaFunctionDetails
s {$sel:layers:AwsLambdaFunctionDetails' :: Maybe (NonEmpty Text)
layers = Maybe (NonEmpty Text)
a} :: AwsLambdaFunctionDetails) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

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

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

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

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

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

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

instance Data.FromJSON AwsLambdaFunctionDetails where
  parseJSON :: Value -> Parser AwsLambdaFunctionDetails
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"AwsLambdaFunctionDetails"
      ( \Object
x ->
          Maybe (NonEmpty Architecture)
-> Maybe POSIX
-> Maybe (NonEmpty Text)
-> Maybe PackageType
-> Maybe LambdaVpcConfig
-> Text
-> Text
-> Text
-> Runtime
-> Text
-> AwsLambdaFunctionDetails
AwsLambdaFunctionDetails'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"architectures")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"lastModifiedAt")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"layers")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"packageType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"vpcConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"codeSha256")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"executionRoleArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"functionName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"runtime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"version")
      )

instance Prelude.Hashable AwsLambdaFunctionDetails where
  hashWithSalt :: Int -> AwsLambdaFunctionDetails -> Int
hashWithSalt Int
_salt AwsLambdaFunctionDetails' {Maybe (NonEmpty Text)
Maybe (NonEmpty Architecture)
Maybe POSIX
Maybe LambdaVpcConfig
Maybe PackageType
Text
Runtime
version :: Text
runtime :: Runtime
functionName :: Text
executionRoleArn :: Text
codeSha256 :: Text
vpcConfig :: Maybe LambdaVpcConfig
packageType :: Maybe PackageType
layers :: Maybe (NonEmpty Text)
lastModifiedAt :: Maybe POSIX
architectures :: Maybe (NonEmpty Architecture)
$sel:version:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Text
$sel:runtime:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Runtime
$sel:functionName:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Text
$sel:executionRoleArn:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Text
$sel:codeSha256:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Text
$sel:vpcConfig:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe LambdaVpcConfig
$sel:packageType:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe PackageType
$sel:layers:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe (NonEmpty Text)
$sel:lastModifiedAt:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe POSIX
$sel:architectures:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe (NonEmpty Architecture)
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Architecture)
architectures
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastModifiedAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
layers
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PackageType
packageType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LambdaVpcConfig
vpcConfig
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
codeSha256
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
executionRoleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
functionName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Runtime
runtime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
version

instance Prelude.NFData AwsLambdaFunctionDetails where
  rnf :: AwsLambdaFunctionDetails -> ()
rnf AwsLambdaFunctionDetails' {Maybe (NonEmpty Text)
Maybe (NonEmpty Architecture)
Maybe POSIX
Maybe LambdaVpcConfig
Maybe PackageType
Text
Runtime
version :: Text
runtime :: Runtime
functionName :: Text
executionRoleArn :: Text
codeSha256 :: Text
vpcConfig :: Maybe LambdaVpcConfig
packageType :: Maybe PackageType
layers :: Maybe (NonEmpty Text)
lastModifiedAt :: Maybe POSIX
architectures :: Maybe (NonEmpty Architecture)
$sel:version:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Text
$sel:runtime:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Runtime
$sel:functionName:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Text
$sel:executionRoleArn:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Text
$sel:codeSha256:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Text
$sel:vpcConfig:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe LambdaVpcConfig
$sel:packageType:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe PackageType
$sel:layers:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe (NonEmpty Text)
$sel:lastModifiedAt:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe POSIX
$sel:architectures:AwsLambdaFunctionDetails' :: AwsLambdaFunctionDetails -> Maybe (NonEmpty Architecture)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Architecture)
architectures
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
layers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PackageType
packageType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LambdaVpcConfig
vpcConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
codeSha256
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
executionRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
functionName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Runtime
runtime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
version