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

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

-- |
-- Module      : Amazonka.Schemas.DescribeCodeBinding
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describe the code binding URI.
module Amazonka.Schemas.DescribeCodeBinding
  ( -- * Creating a Request
    DescribeCodeBinding (..),
    newDescribeCodeBinding,

    -- * Request Lenses
    describeCodeBinding_schemaVersion,
    describeCodeBinding_registryName,
    describeCodeBinding_schemaName,
    describeCodeBinding_language,

    -- * Destructuring the Response
    DescribeCodeBindingResponse (..),
    newDescribeCodeBindingResponse,

    -- * Response Lenses
    describeCodeBindingResponse_creationDate,
    describeCodeBindingResponse_lastModified,
    describeCodeBindingResponse_schemaVersion,
    describeCodeBindingResponse_status,
    describeCodeBindingResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.Schemas.Types

-- | /See:/ 'newDescribeCodeBinding' smart constructor.
data DescribeCodeBinding = DescribeCodeBinding'
  { -- | Specifying this limits the results to only this schema version.
    DescribeCodeBinding -> Maybe Text
schemaVersion :: Prelude.Maybe Prelude.Text,
    -- | The name of the registry.
    DescribeCodeBinding -> Text
registryName :: Prelude.Text,
    -- | The name of the schema.
    DescribeCodeBinding -> Text
schemaName :: Prelude.Text,
    -- | The language of the code binding.
    DescribeCodeBinding -> Text
language :: Prelude.Text
  }
  deriving (DescribeCodeBinding -> DescribeCodeBinding -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeCodeBinding -> DescribeCodeBinding -> Bool
$c/= :: DescribeCodeBinding -> DescribeCodeBinding -> Bool
== :: DescribeCodeBinding -> DescribeCodeBinding -> Bool
$c== :: DescribeCodeBinding -> DescribeCodeBinding -> Bool
Prelude.Eq, ReadPrec [DescribeCodeBinding]
ReadPrec DescribeCodeBinding
Int -> ReadS DescribeCodeBinding
ReadS [DescribeCodeBinding]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeCodeBinding]
$creadListPrec :: ReadPrec [DescribeCodeBinding]
readPrec :: ReadPrec DescribeCodeBinding
$creadPrec :: ReadPrec DescribeCodeBinding
readList :: ReadS [DescribeCodeBinding]
$creadList :: ReadS [DescribeCodeBinding]
readsPrec :: Int -> ReadS DescribeCodeBinding
$creadsPrec :: Int -> ReadS DescribeCodeBinding
Prelude.Read, Int -> DescribeCodeBinding -> ShowS
[DescribeCodeBinding] -> ShowS
DescribeCodeBinding -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeCodeBinding] -> ShowS
$cshowList :: [DescribeCodeBinding] -> ShowS
show :: DescribeCodeBinding -> String
$cshow :: DescribeCodeBinding -> String
showsPrec :: Int -> DescribeCodeBinding -> ShowS
$cshowsPrec :: Int -> DescribeCodeBinding -> ShowS
Prelude.Show, forall x. Rep DescribeCodeBinding x -> DescribeCodeBinding
forall x. DescribeCodeBinding -> Rep DescribeCodeBinding x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeCodeBinding x -> DescribeCodeBinding
$cfrom :: forall x. DescribeCodeBinding -> Rep DescribeCodeBinding x
Prelude.Generic)

-- |
-- Create a value of 'DescribeCodeBinding' 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:
--
-- 'schemaVersion', 'describeCodeBinding_schemaVersion' - Specifying this limits the results to only this schema version.
--
-- 'registryName', 'describeCodeBinding_registryName' - The name of the registry.
--
-- 'schemaName', 'describeCodeBinding_schemaName' - The name of the schema.
--
-- 'language', 'describeCodeBinding_language' - The language of the code binding.
newDescribeCodeBinding ::
  -- | 'registryName'
  Prelude.Text ->
  -- | 'schemaName'
  Prelude.Text ->
  -- | 'language'
  Prelude.Text ->
  DescribeCodeBinding
newDescribeCodeBinding :: Text -> Text -> Text -> DescribeCodeBinding
newDescribeCodeBinding
  Text
pRegistryName_
  Text
pSchemaName_
  Text
pLanguage_ =
    DescribeCodeBinding'
      { $sel:schemaVersion:DescribeCodeBinding' :: Maybe Text
schemaVersion =
          forall a. Maybe a
Prelude.Nothing,
        $sel:registryName:DescribeCodeBinding' :: Text
registryName = Text
pRegistryName_,
        $sel:schemaName:DescribeCodeBinding' :: Text
schemaName = Text
pSchemaName_,
        $sel:language:DescribeCodeBinding' :: Text
language = Text
pLanguage_
      }

-- | Specifying this limits the results to only this schema version.
describeCodeBinding_schemaVersion :: Lens.Lens' DescribeCodeBinding (Prelude.Maybe Prelude.Text)
describeCodeBinding_schemaVersion :: Lens' DescribeCodeBinding (Maybe Text)
describeCodeBinding_schemaVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCodeBinding' {Maybe Text
schemaVersion :: Maybe Text
$sel:schemaVersion:DescribeCodeBinding' :: DescribeCodeBinding -> Maybe Text
schemaVersion} -> Maybe Text
schemaVersion) (\s :: DescribeCodeBinding
s@DescribeCodeBinding' {} Maybe Text
a -> DescribeCodeBinding
s {$sel:schemaVersion:DescribeCodeBinding' :: Maybe Text
schemaVersion = Maybe Text
a} :: DescribeCodeBinding)

-- | The name of the registry.
describeCodeBinding_registryName :: Lens.Lens' DescribeCodeBinding Prelude.Text
describeCodeBinding_registryName :: Lens' DescribeCodeBinding Text
describeCodeBinding_registryName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCodeBinding' {Text
registryName :: Text
$sel:registryName:DescribeCodeBinding' :: DescribeCodeBinding -> Text
registryName} -> Text
registryName) (\s :: DescribeCodeBinding
s@DescribeCodeBinding' {} Text
a -> DescribeCodeBinding
s {$sel:registryName:DescribeCodeBinding' :: Text
registryName = Text
a} :: DescribeCodeBinding)

-- | The name of the schema.
describeCodeBinding_schemaName :: Lens.Lens' DescribeCodeBinding Prelude.Text
describeCodeBinding_schemaName :: Lens' DescribeCodeBinding Text
describeCodeBinding_schemaName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCodeBinding' {Text
schemaName :: Text
$sel:schemaName:DescribeCodeBinding' :: DescribeCodeBinding -> Text
schemaName} -> Text
schemaName) (\s :: DescribeCodeBinding
s@DescribeCodeBinding' {} Text
a -> DescribeCodeBinding
s {$sel:schemaName:DescribeCodeBinding' :: Text
schemaName = Text
a} :: DescribeCodeBinding)

-- | The language of the code binding.
describeCodeBinding_language :: Lens.Lens' DescribeCodeBinding Prelude.Text
describeCodeBinding_language :: Lens' DescribeCodeBinding Text
describeCodeBinding_language = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCodeBinding' {Text
language :: Text
$sel:language:DescribeCodeBinding' :: DescribeCodeBinding -> Text
language} -> Text
language) (\s :: DescribeCodeBinding
s@DescribeCodeBinding' {} Text
a -> DescribeCodeBinding
s {$sel:language:DescribeCodeBinding' :: Text
language = Text
a} :: DescribeCodeBinding)

instance Core.AWSRequest DescribeCodeBinding where
  type
    AWSResponse DescribeCodeBinding =
      DescribeCodeBindingResponse
  request :: (Service -> Service)
-> DescribeCodeBinding -> Request DescribeCodeBinding
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeCodeBinding
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeCodeBinding)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe ISO8601
-> Maybe ISO8601
-> Maybe Text
-> Maybe CodeGenerationStatus
-> Int
-> DescribeCodeBindingResponse
DescribeCodeBindingResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"CreationDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"LastModified")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"SchemaVersion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Status")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable DescribeCodeBinding where
  hashWithSalt :: Int -> DescribeCodeBinding -> Int
hashWithSalt Int
_salt DescribeCodeBinding' {Maybe Text
Text
language :: Text
schemaName :: Text
registryName :: Text
schemaVersion :: Maybe Text
$sel:language:DescribeCodeBinding' :: DescribeCodeBinding -> Text
$sel:schemaName:DescribeCodeBinding' :: DescribeCodeBinding -> Text
$sel:registryName:DescribeCodeBinding' :: DescribeCodeBinding -> Text
$sel:schemaVersion:DescribeCodeBinding' :: DescribeCodeBinding -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
schemaVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
registryName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
schemaName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
language

instance Prelude.NFData DescribeCodeBinding where
  rnf :: DescribeCodeBinding -> ()
rnf DescribeCodeBinding' {Maybe Text
Text
language :: Text
schemaName :: Text
registryName :: Text
schemaVersion :: Maybe Text
$sel:language:DescribeCodeBinding' :: DescribeCodeBinding -> Text
$sel:schemaName:DescribeCodeBinding' :: DescribeCodeBinding -> Text
$sel:registryName:DescribeCodeBinding' :: DescribeCodeBinding -> Text
$sel:schemaVersion:DescribeCodeBinding' :: DescribeCodeBinding -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
schemaVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
registryName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
schemaName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
language

instance Data.ToHeaders DescribeCodeBinding where
  toHeaders :: DescribeCodeBinding -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath DescribeCodeBinding where
  toPath :: DescribeCodeBinding -> ByteString
toPath DescribeCodeBinding' {Maybe Text
Text
language :: Text
schemaName :: Text
registryName :: Text
schemaVersion :: Maybe Text
$sel:language:DescribeCodeBinding' :: DescribeCodeBinding -> Text
$sel:schemaName:DescribeCodeBinding' :: DescribeCodeBinding -> Text
$sel:registryName:DescribeCodeBinding' :: DescribeCodeBinding -> Text
$sel:schemaVersion:DescribeCodeBinding' :: DescribeCodeBinding -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/v1/registries/name/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
registryName,
        ByteString
"/schemas/name/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
schemaName,
        ByteString
"/language/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
language
      ]

instance Data.ToQuery DescribeCodeBinding where
  toQuery :: DescribeCodeBinding -> QueryString
toQuery DescribeCodeBinding' {Maybe Text
Text
language :: Text
schemaName :: Text
registryName :: Text
schemaVersion :: Maybe Text
$sel:language:DescribeCodeBinding' :: DescribeCodeBinding -> Text
$sel:schemaName:DescribeCodeBinding' :: DescribeCodeBinding -> Text
$sel:registryName:DescribeCodeBinding' :: DescribeCodeBinding -> Text
$sel:schemaVersion:DescribeCodeBinding' :: DescribeCodeBinding -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"schemaVersion" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
schemaVersion]

-- | /See:/ 'newDescribeCodeBindingResponse' smart constructor.
data DescribeCodeBindingResponse = DescribeCodeBindingResponse'
  { -- | The time and date that the code binding was created.
    DescribeCodeBindingResponse -> Maybe ISO8601
creationDate :: Prelude.Maybe Data.ISO8601,
    -- | The date and time that code bindings were modified.
    DescribeCodeBindingResponse -> Maybe ISO8601
lastModified :: Prelude.Maybe Data.ISO8601,
    -- | The version number of the schema.
    DescribeCodeBindingResponse -> Maybe Text
schemaVersion :: Prelude.Maybe Prelude.Text,
    -- | The current status of code binding generation.
    DescribeCodeBindingResponse -> Maybe CodeGenerationStatus
status :: Prelude.Maybe CodeGenerationStatus,
    -- | The response's http status code.
    DescribeCodeBindingResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeCodeBindingResponse -> DescribeCodeBindingResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeCodeBindingResponse -> DescribeCodeBindingResponse -> Bool
$c/= :: DescribeCodeBindingResponse -> DescribeCodeBindingResponse -> Bool
== :: DescribeCodeBindingResponse -> DescribeCodeBindingResponse -> Bool
$c== :: DescribeCodeBindingResponse -> DescribeCodeBindingResponse -> Bool
Prelude.Eq, ReadPrec [DescribeCodeBindingResponse]
ReadPrec DescribeCodeBindingResponse
Int -> ReadS DescribeCodeBindingResponse
ReadS [DescribeCodeBindingResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeCodeBindingResponse]
$creadListPrec :: ReadPrec [DescribeCodeBindingResponse]
readPrec :: ReadPrec DescribeCodeBindingResponse
$creadPrec :: ReadPrec DescribeCodeBindingResponse
readList :: ReadS [DescribeCodeBindingResponse]
$creadList :: ReadS [DescribeCodeBindingResponse]
readsPrec :: Int -> ReadS DescribeCodeBindingResponse
$creadsPrec :: Int -> ReadS DescribeCodeBindingResponse
Prelude.Read, Int -> DescribeCodeBindingResponse -> ShowS
[DescribeCodeBindingResponse] -> ShowS
DescribeCodeBindingResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeCodeBindingResponse] -> ShowS
$cshowList :: [DescribeCodeBindingResponse] -> ShowS
show :: DescribeCodeBindingResponse -> String
$cshow :: DescribeCodeBindingResponse -> String
showsPrec :: Int -> DescribeCodeBindingResponse -> ShowS
$cshowsPrec :: Int -> DescribeCodeBindingResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeCodeBindingResponse x -> DescribeCodeBindingResponse
forall x.
DescribeCodeBindingResponse -> Rep DescribeCodeBindingResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeCodeBindingResponse x -> DescribeCodeBindingResponse
$cfrom :: forall x.
DescribeCodeBindingResponse -> Rep DescribeCodeBindingResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeCodeBindingResponse' 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:
--
-- 'creationDate', 'describeCodeBindingResponse_creationDate' - The time and date that the code binding was created.
--
-- 'lastModified', 'describeCodeBindingResponse_lastModified' - The date and time that code bindings were modified.
--
-- 'schemaVersion', 'describeCodeBindingResponse_schemaVersion' - The version number of the schema.
--
-- 'status', 'describeCodeBindingResponse_status' - The current status of code binding generation.
--
-- 'httpStatus', 'describeCodeBindingResponse_httpStatus' - The response's http status code.
newDescribeCodeBindingResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeCodeBindingResponse
newDescribeCodeBindingResponse :: Int -> DescribeCodeBindingResponse
newDescribeCodeBindingResponse Int
pHttpStatus_ =
  DescribeCodeBindingResponse'
    { $sel:creationDate:DescribeCodeBindingResponse' :: Maybe ISO8601
creationDate =
        forall a. Maybe a
Prelude.Nothing,
      $sel:lastModified:DescribeCodeBindingResponse' :: Maybe ISO8601
lastModified = forall a. Maybe a
Prelude.Nothing,
      $sel:schemaVersion:DescribeCodeBindingResponse' :: Maybe Text
schemaVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:status:DescribeCodeBindingResponse' :: Maybe CodeGenerationStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeCodeBindingResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The time and date that the code binding was created.
describeCodeBindingResponse_creationDate :: Lens.Lens' DescribeCodeBindingResponse (Prelude.Maybe Prelude.UTCTime)
describeCodeBindingResponse_creationDate :: Lens' DescribeCodeBindingResponse (Maybe UTCTime)
describeCodeBindingResponse_creationDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCodeBindingResponse' {Maybe ISO8601
creationDate :: Maybe ISO8601
$sel:creationDate:DescribeCodeBindingResponse' :: DescribeCodeBindingResponse -> Maybe ISO8601
creationDate} -> Maybe ISO8601
creationDate) (\s :: DescribeCodeBindingResponse
s@DescribeCodeBindingResponse' {} Maybe ISO8601
a -> DescribeCodeBindingResponse
s {$sel:creationDate:DescribeCodeBindingResponse' :: Maybe ISO8601
creationDate = Maybe ISO8601
a} :: DescribeCodeBindingResponse) 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 date and time that code bindings were modified.
describeCodeBindingResponse_lastModified :: Lens.Lens' DescribeCodeBindingResponse (Prelude.Maybe Prelude.UTCTime)
describeCodeBindingResponse_lastModified :: Lens' DescribeCodeBindingResponse (Maybe UTCTime)
describeCodeBindingResponse_lastModified = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCodeBindingResponse' {Maybe ISO8601
lastModified :: Maybe ISO8601
$sel:lastModified:DescribeCodeBindingResponse' :: DescribeCodeBindingResponse -> Maybe ISO8601
lastModified} -> Maybe ISO8601
lastModified) (\s :: DescribeCodeBindingResponse
s@DescribeCodeBindingResponse' {} Maybe ISO8601
a -> DescribeCodeBindingResponse
s {$sel:lastModified:DescribeCodeBindingResponse' :: Maybe ISO8601
lastModified = Maybe ISO8601
a} :: DescribeCodeBindingResponse) 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 version number of the schema.
describeCodeBindingResponse_schemaVersion :: Lens.Lens' DescribeCodeBindingResponse (Prelude.Maybe Prelude.Text)
describeCodeBindingResponse_schemaVersion :: Lens' DescribeCodeBindingResponse (Maybe Text)
describeCodeBindingResponse_schemaVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCodeBindingResponse' {Maybe Text
schemaVersion :: Maybe Text
$sel:schemaVersion:DescribeCodeBindingResponse' :: DescribeCodeBindingResponse -> Maybe Text
schemaVersion} -> Maybe Text
schemaVersion) (\s :: DescribeCodeBindingResponse
s@DescribeCodeBindingResponse' {} Maybe Text
a -> DescribeCodeBindingResponse
s {$sel:schemaVersion:DescribeCodeBindingResponse' :: Maybe Text
schemaVersion = Maybe Text
a} :: DescribeCodeBindingResponse)

-- | The current status of code binding generation.
describeCodeBindingResponse_status :: Lens.Lens' DescribeCodeBindingResponse (Prelude.Maybe CodeGenerationStatus)
describeCodeBindingResponse_status :: Lens' DescribeCodeBindingResponse (Maybe CodeGenerationStatus)
describeCodeBindingResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCodeBindingResponse' {Maybe CodeGenerationStatus
status :: Maybe CodeGenerationStatus
$sel:status:DescribeCodeBindingResponse' :: DescribeCodeBindingResponse -> Maybe CodeGenerationStatus
status} -> Maybe CodeGenerationStatus
status) (\s :: DescribeCodeBindingResponse
s@DescribeCodeBindingResponse' {} Maybe CodeGenerationStatus
a -> DescribeCodeBindingResponse
s {$sel:status:DescribeCodeBindingResponse' :: Maybe CodeGenerationStatus
status = Maybe CodeGenerationStatus
a} :: DescribeCodeBindingResponse)

-- | The response's http status code.
describeCodeBindingResponse_httpStatus :: Lens.Lens' DescribeCodeBindingResponse Prelude.Int
describeCodeBindingResponse_httpStatus :: Lens' DescribeCodeBindingResponse Int
describeCodeBindingResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCodeBindingResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeCodeBindingResponse' :: DescribeCodeBindingResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeCodeBindingResponse
s@DescribeCodeBindingResponse' {} Int
a -> DescribeCodeBindingResponse
s {$sel:httpStatus:DescribeCodeBindingResponse' :: Int
httpStatus = Int
a} :: DescribeCodeBindingResponse)

instance Prelude.NFData DescribeCodeBindingResponse where
  rnf :: DescribeCodeBindingResponse -> ()
rnf DescribeCodeBindingResponse' {Int
Maybe Text
Maybe ISO8601
Maybe CodeGenerationStatus
httpStatus :: Int
status :: Maybe CodeGenerationStatus
schemaVersion :: Maybe Text
lastModified :: Maybe ISO8601
creationDate :: Maybe ISO8601
$sel:httpStatus:DescribeCodeBindingResponse' :: DescribeCodeBindingResponse -> Int
$sel:status:DescribeCodeBindingResponse' :: DescribeCodeBindingResponse -> Maybe CodeGenerationStatus
$sel:schemaVersion:DescribeCodeBindingResponse' :: DescribeCodeBindingResponse -> Maybe Text
$sel:lastModified:DescribeCodeBindingResponse' :: DescribeCodeBindingResponse -> Maybe ISO8601
$sel:creationDate:DescribeCodeBindingResponse' :: DescribeCodeBindingResponse -> Maybe ISO8601
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
creationDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
lastModified
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
schemaVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CodeGenerationStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus