{-# 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.Glue.GetSchemaVersion
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Get the specified schema by its unique ID assigned when a version of the
-- schema is created or registered. Schema versions in Deleted status will
-- not be included in the results.
module Amazonka.Glue.GetSchemaVersion
  ( -- * Creating a Request
    GetSchemaVersion (..),
    newGetSchemaVersion,

    -- * Request Lenses
    getSchemaVersion_schemaId,
    getSchemaVersion_schemaVersionId,
    getSchemaVersion_schemaVersionNumber,

    -- * Destructuring the Response
    GetSchemaVersionResponse (..),
    newGetSchemaVersionResponse,

    -- * Response Lenses
    getSchemaVersionResponse_createdTime,
    getSchemaVersionResponse_dataFormat,
    getSchemaVersionResponse_schemaArn,
    getSchemaVersionResponse_schemaDefinition,
    getSchemaVersionResponse_schemaVersionId,
    getSchemaVersionResponse_status,
    getSchemaVersionResponse_versionNumber,
    getSchemaVersionResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetSchemaVersion' smart constructor.
data GetSchemaVersion = GetSchemaVersion'
  { -- | This is a wrapper structure to contain schema identity fields. The
    -- structure contains:
    --
    -- -   SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema.
    --     Either @SchemaArn@ or @SchemaName@ and @RegistryName@ has to be
    --     provided.
    --
    -- -   SchemaId$SchemaName: The name of the schema. Either @SchemaArn@ or
    --     @SchemaName@ and @RegistryName@ has to be provided.
    GetSchemaVersion -> Maybe SchemaId
schemaId :: Prelude.Maybe SchemaId,
    -- | The @SchemaVersionId@ of the schema version. This field is required for
    -- fetching by schema ID. Either this or the @SchemaId@ wrapper has to be
    -- provided.
    GetSchemaVersion -> Maybe Text
schemaVersionId :: Prelude.Maybe Prelude.Text,
    -- | The version number of the schema.
    GetSchemaVersion -> Maybe SchemaVersionNumber
schemaVersionNumber :: Prelude.Maybe SchemaVersionNumber
  }
  deriving (GetSchemaVersion -> GetSchemaVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetSchemaVersion -> GetSchemaVersion -> Bool
$c/= :: GetSchemaVersion -> GetSchemaVersion -> Bool
== :: GetSchemaVersion -> GetSchemaVersion -> Bool
$c== :: GetSchemaVersion -> GetSchemaVersion -> Bool
Prelude.Eq, ReadPrec [GetSchemaVersion]
ReadPrec GetSchemaVersion
Int -> ReadS GetSchemaVersion
ReadS [GetSchemaVersion]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetSchemaVersion]
$creadListPrec :: ReadPrec [GetSchemaVersion]
readPrec :: ReadPrec GetSchemaVersion
$creadPrec :: ReadPrec GetSchemaVersion
readList :: ReadS [GetSchemaVersion]
$creadList :: ReadS [GetSchemaVersion]
readsPrec :: Int -> ReadS GetSchemaVersion
$creadsPrec :: Int -> ReadS GetSchemaVersion
Prelude.Read, Int -> GetSchemaVersion -> ShowS
[GetSchemaVersion] -> ShowS
GetSchemaVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetSchemaVersion] -> ShowS
$cshowList :: [GetSchemaVersion] -> ShowS
show :: GetSchemaVersion -> String
$cshow :: GetSchemaVersion -> String
showsPrec :: Int -> GetSchemaVersion -> ShowS
$cshowsPrec :: Int -> GetSchemaVersion -> ShowS
Prelude.Show, forall x. Rep GetSchemaVersion x -> GetSchemaVersion
forall x. GetSchemaVersion -> Rep GetSchemaVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetSchemaVersion x -> GetSchemaVersion
$cfrom :: forall x. GetSchemaVersion -> Rep GetSchemaVersion x
Prelude.Generic)

-- |
-- Create a value of 'GetSchemaVersion' 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:
--
-- 'schemaId', 'getSchemaVersion_schemaId' - This is a wrapper structure to contain schema identity fields. The
-- structure contains:
--
-- -   SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema.
--     Either @SchemaArn@ or @SchemaName@ and @RegistryName@ has to be
--     provided.
--
-- -   SchemaId$SchemaName: The name of the schema. Either @SchemaArn@ or
--     @SchemaName@ and @RegistryName@ has to be provided.
--
-- 'schemaVersionId', 'getSchemaVersion_schemaVersionId' - The @SchemaVersionId@ of the schema version. This field is required for
-- fetching by schema ID. Either this or the @SchemaId@ wrapper has to be
-- provided.
--
-- 'schemaVersionNumber', 'getSchemaVersion_schemaVersionNumber' - The version number of the schema.
newGetSchemaVersion ::
  GetSchemaVersion
newGetSchemaVersion :: GetSchemaVersion
newGetSchemaVersion =
  GetSchemaVersion'
    { $sel:schemaId:GetSchemaVersion' :: Maybe SchemaId
schemaId = forall a. Maybe a
Prelude.Nothing,
      $sel:schemaVersionId:GetSchemaVersion' :: Maybe Text
schemaVersionId = forall a. Maybe a
Prelude.Nothing,
      $sel:schemaVersionNumber:GetSchemaVersion' :: Maybe SchemaVersionNumber
schemaVersionNumber = forall a. Maybe a
Prelude.Nothing
    }

-- | This is a wrapper structure to contain schema identity fields. The
-- structure contains:
--
-- -   SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema.
--     Either @SchemaArn@ or @SchemaName@ and @RegistryName@ has to be
--     provided.
--
-- -   SchemaId$SchemaName: The name of the schema. Either @SchemaArn@ or
--     @SchemaName@ and @RegistryName@ has to be provided.
getSchemaVersion_schemaId :: Lens.Lens' GetSchemaVersion (Prelude.Maybe SchemaId)
getSchemaVersion_schemaId :: Lens' GetSchemaVersion (Maybe SchemaId)
getSchemaVersion_schemaId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSchemaVersion' {Maybe SchemaId
schemaId :: Maybe SchemaId
$sel:schemaId:GetSchemaVersion' :: GetSchemaVersion -> Maybe SchemaId
schemaId} -> Maybe SchemaId
schemaId) (\s :: GetSchemaVersion
s@GetSchemaVersion' {} Maybe SchemaId
a -> GetSchemaVersion
s {$sel:schemaId:GetSchemaVersion' :: Maybe SchemaId
schemaId = Maybe SchemaId
a} :: GetSchemaVersion)

-- | The @SchemaVersionId@ of the schema version. This field is required for
-- fetching by schema ID. Either this or the @SchemaId@ wrapper has to be
-- provided.
getSchemaVersion_schemaVersionId :: Lens.Lens' GetSchemaVersion (Prelude.Maybe Prelude.Text)
getSchemaVersion_schemaVersionId :: Lens' GetSchemaVersion (Maybe Text)
getSchemaVersion_schemaVersionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSchemaVersion' {Maybe Text
schemaVersionId :: Maybe Text
$sel:schemaVersionId:GetSchemaVersion' :: GetSchemaVersion -> Maybe Text
schemaVersionId} -> Maybe Text
schemaVersionId) (\s :: GetSchemaVersion
s@GetSchemaVersion' {} Maybe Text
a -> GetSchemaVersion
s {$sel:schemaVersionId:GetSchemaVersion' :: Maybe Text
schemaVersionId = Maybe Text
a} :: GetSchemaVersion)

-- | The version number of the schema.
getSchemaVersion_schemaVersionNumber :: Lens.Lens' GetSchemaVersion (Prelude.Maybe SchemaVersionNumber)
getSchemaVersion_schemaVersionNumber :: Lens' GetSchemaVersion (Maybe SchemaVersionNumber)
getSchemaVersion_schemaVersionNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSchemaVersion' {Maybe SchemaVersionNumber
schemaVersionNumber :: Maybe SchemaVersionNumber
$sel:schemaVersionNumber:GetSchemaVersion' :: GetSchemaVersion -> Maybe SchemaVersionNumber
schemaVersionNumber} -> Maybe SchemaVersionNumber
schemaVersionNumber) (\s :: GetSchemaVersion
s@GetSchemaVersion' {} Maybe SchemaVersionNumber
a -> GetSchemaVersion
s {$sel:schemaVersionNumber:GetSchemaVersion' :: Maybe SchemaVersionNumber
schemaVersionNumber = Maybe SchemaVersionNumber
a} :: GetSchemaVersion)

instance Core.AWSRequest GetSchemaVersion where
  type
    AWSResponse GetSchemaVersion =
      GetSchemaVersionResponse
  request :: (Service -> Service)
-> GetSchemaVersion -> Request GetSchemaVersion
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetSchemaVersion
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetSchemaVersion)))
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 Text
-> Maybe DataFormat
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SchemaVersionStatus
-> Maybe Natural
-> Int
-> GetSchemaVersionResponse
GetSchemaVersionResponse'
            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
"CreatedTime")
            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
"DataFormat")
            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
"SchemaArn")
            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
"SchemaDefinition")
            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
"SchemaVersionId")
            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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"VersionNumber")
            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 GetSchemaVersion where
  hashWithSalt :: Int -> GetSchemaVersion -> Int
hashWithSalt Int
_salt GetSchemaVersion' {Maybe Text
Maybe SchemaId
Maybe SchemaVersionNumber
schemaVersionNumber :: Maybe SchemaVersionNumber
schemaVersionId :: Maybe Text
schemaId :: Maybe SchemaId
$sel:schemaVersionNumber:GetSchemaVersion' :: GetSchemaVersion -> Maybe SchemaVersionNumber
$sel:schemaVersionId:GetSchemaVersion' :: GetSchemaVersion -> Maybe Text
$sel:schemaId:GetSchemaVersion' :: GetSchemaVersion -> Maybe SchemaId
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SchemaId
schemaId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
schemaVersionId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SchemaVersionNumber
schemaVersionNumber

instance Prelude.NFData GetSchemaVersion where
  rnf :: GetSchemaVersion -> ()
rnf GetSchemaVersion' {Maybe Text
Maybe SchemaId
Maybe SchemaVersionNumber
schemaVersionNumber :: Maybe SchemaVersionNumber
schemaVersionId :: Maybe Text
schemaId :: Maybe SchemaId
$sel:schemaVersionNumber:GetSchemaVersion' :: GetSchemaVersion -> Maybe SchemaVersionNumber
$sel:schemaVersionId:GetSchemaVersion' :: GetSchemaVersion -> Maybe Text
$sel:schemaId:GetSchemaVersion' :: GetSchemaVersion -> Maybe SchemaId
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe SchemaId
schemaId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
schemaVersionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SchemaVersionNumber
schemaVersionNumber

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

instance Data.ToJSON GetSchemaVersion where
  toJSON :: GetSchemaVersion -> Value
toJSON GetSchemaVersion' {Maybe Text
Maybe SchemaId
Maybe SchemaVersionNumber
schemaVersionNumber :: Maybe SchemaVersionNumber
schemaVersionId :: Maybe Text
schemaId :: Maybe SchemaId
$sel:schemaVersionNumber:GetSchemaVersion' :: GetSchemaVersion -> Maybe SchemaVersionNumber
$sel:schemaVersionId:GetSchemaVersion' :: GetSchemaVersion -> Maybe Text
$sel:schemaId:GetSchemaVersion' :: GetSchemaVersion -> Maybe SchemaId
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"SchemaId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SchemaId
schemaId,
            (Key
"SchemaVersionId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
schemaVersionId,
            (Key
"SchemaVersionNumber" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SchemaVersionNumber
schemaVersionNumber
          ]
      )

instance Data.ToPath GetSchemaVersion where
  toPath :: GetSchemaVersion -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery GetSchemaVersion where
  toQuery :: GetSchemaVersion -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newGetSchemaVersionResponse' smart constructor.
data GetSchemaVersionResponse = GetSchemaVersionResponse'
  { -- | The date and time the schema version was created.
    GetSchemaVersionResponse -> Maybe Text
createdTime :: Prelude.Maybe Prelude.Text,
    -- | The data format of the schema definition. Currently @AVRO@, @JSON@ and
    -- @PROTOBUF@ are supported.
    GetSchemaVersionResponse -> Maybe DataFormat
dataFormat :: Prelude.Maybe DataFormat,
    -- | The Amazon Resource Name (ARN) of the schema.
    GetSchemaVersionResponse -> Maybe Text
schemaArn :: Prelude.Maybe Prelude.Text,
    -- | The schema definition for the schema ID.
    GetSchemaVersionResponse -> Maybe Text
schemaDefinition :: Prelude.Maybe Prelude.Text,
    -- | The @SchemaVersionId@ of the schema version.
    GetSchemaVersionResponse -> Maybe Text
schemaVersionId :: Prelude.Maybe Prelude.Text,
    -- | The status of the schema version.
    GetSchemaVersionResponse -> Maybe SchemaVersionStatus
status :: Prelude.Maybe SchemaVersionStatus,
    -- | The version number of the schema.
    GetSchemaVersionResponse -> Maybe Natural
versionNumber :: Prelude.Maybe Prelude.Natural,
    -- | The response's http status code.
    GetSchemaVersionResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetSchemaVersionResponse -> GetSchemaVersionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetSchemaVersionResponse -> GetSchemaVersionResponse -> Bool
$c/= :: GetSchemaVersionResponse -> GetSchemaVersionResponse -> Bool
== :: GetSchemaVersionResponse -> GetSchemaVersionResponse -> Bool
$c== :: GetSchemaVersionResponse -> GetSchemaVersionResponse -> Bool
Prelude.Eq, ReadPrec [GetSchemaVersionResponse]
ReadPrec GetSchemaVersionResponse
Int -> ReadS GetSchemaVersionResponse
ReadS [GetSchemaVersionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetSchemaVersionResponse]
$creadListPrec :: ReadPrec [GetSchemaVersionResponse]
readPrec :: ReadPrec GetSchemaVersionResponse
$creadPrec :: ReadPrec GetSchemaVersionResponse
readList :: ReadS [GetSchemaVersionResponse]
$creadList :: ReadS [GetSchemaVersionResponse]
readsPrec :: Int -> ReadS GetSchemaVersionResponse
$creadsPrec :: Int -> ReadS GetSchemaVersionResponse
Prelude.Read, Int -> GetSchemaVersionResponse -> ShowS
[GetSchemaVersionResponse] -> ShowS
GetSchemaVersionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetSchemaVersionResponse] -> ShowS
$cshowList :: [GetSchemaVersionResponse] -> ShowS
show :: GetSchemaVersionResponse -> String
$cshow :: GetSchemaVersionResponse -> String
showsPrec :: Int -> GetSchemaVersionResponse -> ShowS
$cshowsPrec :: Int -> GetSchemaVersionResponse -> ShowS
Prelude.Show, forall x.
Rep GetSchemaVersionResponse x -> GetSchemaVersionResponse
forall x.
GetSchemaVersionResponse -> Rep GetSchemaVersionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetSchemaVersionResponse x -> GetSchemaVersionResponse
$cfrom :: forall x.
GetSchemaVersionResponse -> Rep GetSchemaVersionResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetSchemaVersionResponse' 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:
--
-- 'createdTime', 'getSchemaVersionResponse_createdTime' - The date and time the schema version was created.
--
-- 'dataFormat', 'getSchemaVersionResponse_dataFormat' - The data format of the schema definition. Currently @AVRO@, @JSON@ and
-- @PROTOBUF@ are supported.
--
-- 'schemaArn', 'getSchemaVersionResponse_schemaArn' - The Amazon Resource Name (ARN) of the schema.
--
-- 'schemaDefinition', 'getSchemaVersionResponse_schemaDefinition' - The schema definition for the schema ID.
--
-- 'schemaVersionId', 'getSchemaVersionResponse_schemaVersionId' - The @SchemaVersionId@ of the schema version.
--
-- 'status', 'getSchemaVersionResponse_status' - The status of the schema version.
--
-- 'versionNumber', 'getSchemaVersionResponse_versionNumber' - The version number of the schema.
--
-- 'httpStatus', 'getSchemaVersionResponse_httpStatus' - The response's http status code.
newGetSchemaVersionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetSchemaVersionResponse
newGetSchemaVersionResponse :: Int -> GetSchemaVersionResponse
newGetSchemaVersionResponse Int
pHttpStatus_ =
  GetSchemaVersionResponse'
    { $sel:createdTime:GetSchemaVersionResponse' :: Maybe Text
createdTime =
        forall a. Maybe a
Prelude.Nothing,
      $sel:dataFormat:GetSchemaVersionResponse' :: Maybe DataFormat
dataFormat = forall a. Maybe a
Prelude.Nothing,
      $sel:schemaArn:GetSchemaVersionResponse' :: Maybe Text
schemaArn = forall a. Maybe a
Prelude.Nothing,
      $sel:schemaDefinition:GetSchemaVersionResponse' :: Maybe Text
schemaDefinition = forall a. Maybe a
Prelude.Nothing,
      $sel:schemaVersionId:GetSchemaVersionResponse' :: Maybe Text
schemaVersionId = forall a. Maybe a
Prelude.Nothing,
      $sel:status:GetSchemaVersionResponse' :: Maybe SchemaVersionStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:versionNumber:GetSchemaVersionResponse' :: Maybe Natural
versionNumber = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetSchemaVersionResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The date and time the schema version was created.
getSchemaVersionResponse_createdTime :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe Prelude.Text)
getSchemaVersionResponse_createdTime :: Lens' GetSchemaVersionResponse (Maybe Text)
getSchemaVersionResponse_createdTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSchemaVersionResponse' {Maybe Text
createdTime :: Maybe Text
$sel:createdTime:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe Text
createdTime} -> Maybe Text
createdTime) (\s :: GetSchemaVersionResponse
s@GetSchemaVersionResponse' {} Maybe Text
a -> GetSchemaVersionResponse
s {$sel:createdTime:GetSchemaVersionResponse' :: Maybe Text
createdTime = Maybe Text
a} :: GetSchemaVersionResponse)

-- | The data format of the schema definition. Currently @AVRO@, @JSON@ and
-- @PROTOBUF@ are supported.
getSchemaVersionResponse_dataFormat :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe DataFormat)
getSchemaVersionResponse_dataFormat :: Lens' GetSchemaVersionResponse (Maybe DataFormat)
getSchemaVersionResponse_dataFormat = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSchemaVersionResponse' {Maybe DataFormat
dataFormat :: Maybe DataFormat
$sel:dataFormat:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe DataFormat
dataFormat} -> Maybe DataFormat
dataFormat) (\s :: GetSchemaVersionResponse
s@GetSchemaVersionResponse' {} Maybe DataFormat
a -> GetSchemaVersionResponse
s {$sel:dataFormat:GetSchemaVersionResponse' :: Maybe DataFormat
dataFormat = Maybe DataFormat
a} :: GetSchemaVersionResponse)

-- | The Amazon Resource Name (ARN) of the schema.
getSchemaVersionResponse_schemaArn :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe Prelude.Text)
getSchemaVersionResponse_schemaArn :: Lens' GetSchemaVersionResponse (Maybe Text)
getSchemaVersionResponse_schemaArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSchemaVersionResponse' {Maybe Text
schemaArn :: Maybe Text
$sel:schemaArn:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe Text
schemaArn} -> Maybe Text
schemaArn) (\s :: GetSchemaVersionResponse
s@GetSchemaVersionResponse' {} Maybe Text
a -> GetSchemaVersionResponse
s {$sel:schemaArn:GetSchemaVersionResponse' :: Maybe Text
schemaArn = Maybe Text
a} :: GetSchemaVersionResponse)

-- | The schema definition for the schema ID.
getSchemaVersionResponse_schemaDefinition :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe Prelude.Text)
getSchemaVersionResponse_schemaDefinition :: Lens' GetSchemaVersionResponse (Maybe Text)
getSchemaVersionResponse_schemaDefinition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSchemaVersionResponse' {Maybe Text
schemaDefinition :: Maybe Text
$sel:schemaDefinition:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe Text
schemaDefinition} -> Maybe Text
schemaDefinition) (\s :: GetSchemaVersionResponse
s@GetSchemaVersionResponse' {} Maybe Text
a -> GetSchemaVersionResponse
s {$sel:schemaDefinition:GetSchemaVersionResponse' :: Maybe Text
schemaDefinition = Maybe Text
a} :: GetSchemaVersionResponse)

-- | The @SchemaVersionId@ of the schema version.
getSchemaVersionResponse_schemaVersionId :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe Prelude.Text)
getSchemaVersionResponse_schemaVersionId :: Lens' GetSchemaVersionResponse (Maybe Text)
getSchemaVersionResponse_schemaVersionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSchemaVersionResponse' {Maybe Text
schemaVersionId :: Maybe Text
$sel:schemaVersionId:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe Text
schemaVersionId} -> Maybe Text
schemaVersionId) (\s :: GetSchemaVersionResponse
s@GetSchemaVersionResponse' {} Maybe Text
a -> GetSchemaVersionResponse
s {$sel:schemaVersionId:GetSchemaVersionResponse' :: Maybe Text
schemaVersionId = Maybe Text
a} :: GetSchemaVersionResponse)

-- | The status of the schema version.
getSchemaVersionResponse_status :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe SchemaVersionStatus)
getSchemaVersionResponse_status :: Lens' GetSchemaVersionResponse (Maybe SchemaVersionStatus)
getSchemaVersionResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSchemaVersionResponse' {Maybe SchemaVersionStatus
status :: Maybe SchemaVersionStatus
$sel:status:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe SchemaVersionStatus
status} -> Maybe SchemaVersionStatus
status) (\s :: GetSchemaVersionResponse
s@GetSchemaVersionResponse' {} Maybe SchemaVersionStatus
a -> GetSchemaVersionResponse
s {$sel:status:GetSchemaVersionResponse' :: Maybe SchemaVersionStatus
status = Maybe SchemaVersionStatus
a} :: GetSchemaVersionResponse)

-- | The version number of the schema.
getSchemaVersionResponse_versionNumber :: Lens.Lens' GetSchemaVersionResponse (Prelude.Maybe Prelude.Natural)
getSchemaVersionResponse_versionNumber :: Lens' GetSchemaVersionResponse (Maybe Natural)
getSchemaVersionResponse_versionNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSchemaVersionResponse' {Maybe Natural
versionNumber :: Maybe Natural
$sel:versionNumber:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe Natural
versionNumber} -> Maybe Natural
versionNumber) (\s :: GetSchemaVersionResponse
s@GetSchemaVersionResponse' {} Maybe Natural
a -> GetSchemaVersionResponse
s {$sel:versionNumber:GetSchemaVersionResponse' :: Maybe Natural
versionNumber = Maybe Natural
a} :: GetSchemaVersionResponse)

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

instance Prelude.NFData GetSchemaVersionResponse where
  rnf :: GetSchemaVersionResponse -> ()
rnf GetSchemaVersionResponse' {Int
Maybe Natural
Maybe Text
Maybe DataFormat
Maybe SchemaVersionStatus
httpStatus :: Int
versionNumber :: Maybe Natural
status :: Maybe SchemaVersionStatus
schemaVersionId :: Maybe Text
schemaDefinition :: Maybe Text
schemaArn :: Maybe Text
dataFormat :: Maybe DataFormat
createdTime :: Maybe Text
$sel:httpStatus:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Int
$sel:versionNumber:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe Natural
$sel:status:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe SchemaVersionStatus
$sel:schemaVersionId:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe Text
$sel:schemaDefinition:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe Text
$sel:schemaArn:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe Text
$sel:dataFormat:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe DataFormat
$sel:createdTime:GetSchemaVersionResponse' :: GetSchemaVersionResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createdTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DataFormat
dataFormat
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
schemaArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
schemaDefinition
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
schemaVersionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SchemaVersionStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
versionNumber
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus