{-# 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.WorkDocs.GetDocumentVersion
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves version metadata for the specified document.
module Amazonka.WorkDocs.GetDocumentVersion
  ( -- * Creating a Request
    GetDocumentVersion (..),
    newGetDocumentVersion,

    -- * Request Lenses
    getDocumentVersion_authenticationToken,
    getDocumentVersion_fields,
    getDocumentVersion_includeCustomMetadata,
    getDocumentVersion_documentId,
    getDocumentVersion_versionId,

    -- * Destructuring the Response
    GetDocumentVersionResponse (..),
    newGetDocumentVersionResponse,

    -- * Response Lenses
    getDocumentVersionResponse_customMetadata,
    getDocumentVersionResponse_metadata,
    getDocumentVersionResponse_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.WorkDocs.Types

-- | /See:/ 'newGetDocumentVersion' smart constructor.
data GetDocumentVersion = GetDocumentVersion'
  { -- | Amazon WorkDocs authentication token. Not required when using AWS
    -- administrator credentials to access the API.
    GetDocumentVersion -> Maybe (Sensitive Text)
authenticationToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | A comma-separated list of values. Specify \"SOURCE\" to include a URL
    -- for the source document.
    GetDocumentVersion -> Maybe Text
fields :: Prelude.Maybe Prelude.Text,
    -- | Set this to TRUE to include custom metadata in the response.
    GetDocumentVersion -> Maybe Bool
includeCustomMetadata :: Prelude.Maybe Prelude.Bool,
    -- | The ID of the document.
    GetDocumentVersion -> Text
documentId :: Prelude.Text,
    -- | The version ID of the document.
    GetDocumentVersion -> Text
versionId :: Prelude.Text
  }
  deriving (GetDocumentVersion -> GetDocumentVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetDocumentVersion -> GetDocumentVersion -> Bool
$c/= :: GetDocumentVersion -> GetDocumentVersion -> Bool
== :: GetDocumentVersion -> GetDocumentVersion -> Bool
$c== :: GetDocumentVersion -> GetDocumentVersion -> Bool
Prelude.Eq, Int -> GetDocumentVersion -> ShowS
[GetDocumentVersion] -> ShowS
GetDocumentVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetDocumentVersion] -> ShowS
$cshowList :: [GetDocumentVersion] -> ShowS
show :: GetDocumentVersion -> String
$cshow :: GetDocumentVersion -> String
showsPrec :: Int -> GetDocumentVersion -> ShowS
$cshowsPrec :: Int -> GetDocumentVersion -> ShowS
Prelude.Show, forall x. Rep GetDocumentVersion x -> GetDocumentVersion
forall x. GetDocumentVersion -> Rep GetDocumentVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetDocumentVersion x -> GetDocumentVersion
$cfrom :: forall x. GetDocumentVersion -> Rep GetDocumentVersion x
Prelude.Generic)

-- |
-- Create a value of 'GetDocumentVersion' 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:
--
-- 'authenticationToken', 'getDocumentVersion_authenticationToken' - Amazon WorkDocs authentication token. Not required when using AWS
-- administrator credentials to access the API.
--
-- 'fields', 'getDocumentVersion_fields' - A comma-separated list of values. Specify \"SOURCE\" to include a URL
-- for the source document.
--
-- 'includeCustomMetadata', 'getDocumentVersion_includeCustomMetadata' - Set this to TRUE to include custom metadata in the response.
--
-- 'documentId', 'getDocumentVersion_documentId' - The ID of the document.
--
-- 'versionId', 'getDocumentVersion_versionId' - The version ID of the document.
newGetDocumentVersion ::
  -- | 'documentId'
  Prelude.Text ->
  -- | 'versionId'
  Prelude.Text ->
  GetDocumentVersion
newGetDocumentVersion :: Text -> Text -> GetDocumentVersion
newGetDocumentVersion Text
pDocumentId_ Text
pVersionId_ =
  GetDocumentVersion'
    { $sel:authenticationToken:GetDocumentVersion' :: Maybe (Sensitive Text)
authenticationToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:fields:GetDocumentVersion' :: Maybe Text
fields = forall a. Maybe a
Prelude.Nothing,
      $sel:includeCustomMetadata:GetDocumentVersion' :: Maybe Bool
includeCustomMetadata = forall a. Maybe a
Prelude.Nothing,
      $sel:documentId:GetDocumentVersion' :: Text
documentId = Text
pDocumentId_,
      $sel:versionId:GetDocumentVersion' :: Text
versionId = Text
pVersionId_
    }

-- | Amazon WorkDocs authentication token. Not required when using AWS
-- administrator credentials to access the API.
getDocumentVersion_authenticationToken :: Lens.Lens' GetDocumentVersion (Prelude.Maybe Prelude.Text)
getDocumentVersion_authenticationToken :: Lens' GetDocumentVersion (Maybe Text)
getDocumentVersion_authenticationToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDocumentVersion' {Maybe (Sensitive Text)
authenticationToken :: Maybe (Sensitive Text)
$sel:authenticationToken:GetDocumentVersion' :: GetDocumentVersion -> Maybe (Sensitive Text)
authenticationToken} -> Maybe (Sensitive Text)
authenticationToken) (\s :: GetDocumentVersion
s@GetDocumentVersion' {} Maybe (Sensitive Text)
a -> GetDocumentVersion
s {$sel:authenticationToken:GetDocumentVersion' :: Maybe (Sensitive Text)
authenticationToken = Maybe (Sensitive Text)
a} :: GetDocumentVersion) 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. Iso' (Sensitive a) a
Data._Sensitive

-- | A comma-separated list of values. Specify \"SOURCE\" to include a URL
-- for the source document.
getDocumentVersion_fields :: Lens.Lens' GetDocumentVersion (Prelude.Maybe Prelude.Text)
getDocumentVersion_fields :: Lens' GetDocumentVersion (Maybe Text)
getDocumentVersion_fields = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDocumentVersion' {Maybe Text
fields :: Maybe Text
$sel:fields:GetDocumentVersion' :: GetDocumentVersion -> Maybe Text
fields} -> Maybe Text
fields) (\s :: GetDocumentVersion
s@GetDocumentVersion' {} Maybe Text
a -> GetDocumentVersion
s {$sel:fields:GetDocumentVersion' :: Maybe Text
fields = Maybe Text
a} :: GetDocumentVersion)

-- | Set this to TRUE to include custom metadata in the response.
getDocumentVersion_includeCustomMetadata :: Lens.Lens' GetDocumentVersion (Prelude.Maybe Prelude.Bool)
getDocumentVersion_includeCustomMetadata :: Lens' GetDocumentVersion (Maybe Bool)
getDocumentVersion_includeCustomMetadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDocumentVersion' {Maybe Bool
includeCustomMetadata :: Maybe Bool
$sel:includeCustomMetadata:GetDocumentVersion' :: GetDocumentVersion -> Maybe Bool
includeCustomMetadata} -> Maybe Bool
includeCustomMetadata) (\s :: GetDocumentVersion
s@GetDocumentVersion' {} Maybe Bool
a -> GetDocumentVersion
s {$sel:includeCustomMetadata:GetDocumentVersion' :: Maybe Bool
includeCustomMetadata = Maybe Bool
a} :: GetDocumentVersion)

-- | The ID of the document.
getDocumentVersion_documentId :: Lens.Lens' GetDocumentVersion Prelude.Text
getDocumentVersion_documentId :: Lens' GetDocumentVersion Text
getDocumentVersion_documentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDocumentVersion' {Text
documentId :: Text
$sel:documentId:GetDocumentVersion' :: GetDocumentVersion -> Text
documentId} -> Text
documentId) (\s :: GetDocumentVersion
s@GetDocumentVersion' {} Text
a -> GetDocumentVersion
s {$sel:documentId:GetDocumentVersion' :: Text
documentId = Text
a} :: GetDocumentVersion)

-- | The version ID of the document.
getDocumentVersion_versionId :: Lens.Lens' GetDocumentVersion Prelude.Text
getDocumentVersion_versionId :: Lens' GetDocumentVersion Text
getDocumentVersion_versionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDocumentVersion' {Text
versionId :: Text
$sel:versionId:GetDocumentVersion' :: GetDocumentVersion -> Text
versionId} -> Text
versionId) (\s :: GetDocumentVersion
s@GetDocumentVersion' {} Text
a -> GetDocumentVersion
s {$sel:versionId:GetDocumentVersion' :: Text
versionId = Text
a} :: GetDocumentVersion)

instance Core.AWSRequest GetDocumentVersion where
  type
    AWSResponse GetDocumentVersion =
      GetDocumentVersionResponse
  request :: (Service -> Service)
-> GetDocumentVersion -> Request GetDocumentVersion
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 GetDocumentVersion
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetDocumentVersion)))
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 (HashMap Text Text)
-> Maybe DocumentVersionMetadata
-> Int
-> GetDocumentVersionResponse
GetDocumentVersionResponse'
            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
"CustomMetadata" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            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
"Metadata")
            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 GetDocumentVersion where
  hashWithSalt :: Int -> GetDocumentVersion -> Int
hashWithSalt Int
_salt GetDocumentVersion' {Maybe Bool
Maybe Text
Maybe (Sensitive Text)
Text
versionId :: Text
documentId :: Text
includeCustomMetadata :: Maybe Bool
fields :: Maybe Text
authenticationToken :: Maybe (Sensitive Text)
$sel:versionId:GetDocumentVersion' :: GetDocumentVersion -> Text
$sel:documentId:GetDocumentVersion' :: GetDocumentVersion -> Text
$sel:includeCustomMetadata:GetDocumentVersion' :: GetDocumentVersion -> Maybe Bool
$sel:fields:GetDocumentVersion' :: GetDocumentVersion -> Maybe Text
$sel:authenticationToken:GetDocumentVersion' :: GetDocumentVersion -> Maybe (Sensitive Text)
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
authenticationToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
fields
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
includeCustomMetadata
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
documentId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
versionId

instance Prelude.NFData GetDocumentVersion where
  rnf :: GetDocumentVersion -> ()
rnf GetDocumentVersion' {Maybe Bool
Maybe Text
Maybe (Sensitive Text)
Text
versionId :: Text
documentId :: Text
includeCustomMetadata :: Maybe Bool
fields :: Maybe Text
authenticationToken :: Maybe (Sensitive Text)
$sel:versionId:GetDocumentVersion' :: GetDocumentVersion -> Text
$sel:documentId:GetDocumentVersion' :: GetDocumentVersion -> Text
$sel:includeCustomMetadata:GetDocumentVersion' :: GetDocumentVersion -> Maybe Bool
$sel:fields:GetDocumentVersion' :: GetDocumentVersion -> Maybe Text
$sel:authenticationToken:GetDocumentVersion' :: GetDocumentVersion -> Maybe (Sensitive Text)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
authenticationToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
fields
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
includeCustomMetadata
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
documentId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
versionId

instance Data.ToHeaders GetDocumentVersion where
  toHeaders :: GetDocumentVersion -> ResponseHeaders
toHeaders GetDocumentVersion' {Maybe Bool
Maybe Text
Maybe (Sensitive Text)
Text
versionId :: Text
documentId :: Text
includeCustomMetadata :: Maybe Bool
fields :: Maybe Text
authenticationToken :: Maybe (Sensitive Text)
$sel:versionId:GetDocumentVersion' :: GetDocumentVersion -> Text
$sel:documentId:GetDocumentVersion' :: GetDocumentVersion -> Text
$sel:includeCustomMetadata:GetDocumentVersion' :: GetDocumentVersion -> Maybe Bool
$sel:fields:GetDocumentVersion' :: GetDocumentVersion -> Maybe Text
$sel:authenticationToken:GetDocumentVersion' :: GetDocumentVersion -> Maybe (Sensitive Text)
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ HeaderName
"Authentication" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe (Sensitive Text)
authenticationToken,
        HeaderName
"Content-Type"
          forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# (ByteString
"application/x-amz-json-1.1" :: Prelude.ByteString)
      ]

instance Data.ToPath GetDocumentVersion where
  toPath :: GetDocumentVersion -> ByteString
toPath GetDocumentVersion' {Maybe Bool
Maybe Text
Maybe (Sensitive Text)
Text
versionId :: Text
documentId :: Text
includeCustomMetadata :: Maybe Bool
fields :: Maybe Text
authenticationToken :: Maybe (Sensitive Text)
$sel:versionId:GetDocumentVersion' :: GetDocumentVersion -> Text
$sel:documentId:GetDocumentVersion' :: GetDocumentVersion -> Text
$sel:includeCustomMetadata:GetDocumentVersion' :: GetDocumentVersion -> Maybe Bool
$sel:fields:GetDocumentVersion' :: GetDocumentVersion -> Maybe Text
$sel:authenticationToken:GetDocumentVersion' :: GetDocumentVersion -> Maybe (Sensitive Text)
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/api/v1/documents/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
documentId,
        ByteString
"/versions/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
versionId
      ]

instance Data.ToQuery GetDocumentVersion where
  toQuery :: GetDocumentVersion -> QueryString
toQuery GetDocumentVersion' {Maybe Bool
Maybe Text
Maybe (Sensitive Text)
Text
versionId :: Text
documentId :: Text
includeCustomMetadata :: Maybe Bool
fields :: Maybe Text
authenticationToken :: Maybe (Sensitive Text)
$sel:versionId:GetDocumentVersion' :: GetDocumentVersion -> Text
$sel:documentId:GetDocumentVersion' :: GetDocumentVersion -> Text
$sel:includeCustomMetadata:GetDocumentVersion' :: GetDocumentVersion -> Maybe Bool
$sel:fields:GetDocumentVersion' :: GetDocumentVersion -> Maybe Text
$sel:authenticationToken:GetDocumentVersion' :: GetDocumentVersion -> Maybe (Sensitive Text)
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"fields" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
fields,
        ByteString
"includeCustomMetadata"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
includeCustomMetadata
      ]

-- | /See:/ 'newGetDocumentVersionResponse' smart constructor.
data GetDocumentVersionResponse = GetDocumentVersionResponse'
  { -- | The custom metadata on the document version.
    GetDocumentVersionResponse -> Maybe (HashMap Text Text)
customMetadata :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The version metadata.
    GetDocumentVersionResponse -> Maybe DocumentVersionMetadata
metadata :: Prelude.Maybe DocumentVersionMetadata,
    -- | The response's http status code.
    GetDocumentVersionResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetDocumentVersionResponse -> GetDocumentVersionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetDocumentVersionResponse -> GetDocumentVersionResponse -> Bool
$c/= :: GetDocumentVersionResponse -> GetDocumentVersionResponse -> Bool
== :: GetDocumentVersionResponse -> GetDocumentVersionResponse -> Bool
$c== :: GetDocumentVersionResponse -> GetDocumentVersionResponse -> Bool
Prelude.Eq, Int -> GetDocumentVersionResponse -> ShowS
[GetDocumentVersionResponse] -> ShowS
GetDocumentVersionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetDocumentVersionResponse] -> ShowS
$cshowList :: [GetDocumentVersionResponse] -> ShowS
show :: GetDocumentVersionResponse -> String
$cshow :: GetDocumentVersionResponse -> String
showsPrec :: Int -> GetDocumentVersionResponse -> ShowS
$cshowsPrec :: Int -> GetDocumentVersionResponse -> ShowS
Prelude.Show, forall x.
Rep GetDocumentVersionResponse x -> GetDocumentVersionResponse
forall x.
GetDocumentVersionResponse -> Rep GetDocumentVersionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetDocumentVersionResponse x -> GetDocumentVersionResponse
$cfrom :: forall x.
GetDocumentVersionResponse -> Rep GetDocumentVersionResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetDocumentVersionResponse' 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:
--
-- 'customMetadata', 'getDocumentVersionResponse_customMetadata' - The custom metadata on the document version.
--
-- 'metadata', 'getDocumentVersionResponse_metadata' - The version metadata.
--
-- 'httpStatus', 'getDocumentVersionResponse_httpStatus' - The response's http status code.
newGetDocumentVersionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetDocumentVersionResponse
newGetDocumentVersionResponse :: Int -> GetDocumentVersionResponse
newGetDocumentVersionResponse Int
pHttpStatus_ =
  GetDocumentVersionResponse'
    { $sel:customMetadata:GetDocumentVersionResponse' :: Maybe (HashMap Text Text)
customMetadata =
        forall a. Maybe a
Prelude.Nothing,
      $sel:metadata:GetDocumentVersionResponse' :: Maybe DocumentVersionMetadata
metadata = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetDocumentVersionResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The custom metadata on the document version.
getDocumentVersionResponse_customMetadata :: Lens.Lens' GetDocumentVersionResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
getDocumentVersionResponse_customMetadata :: Lens' GetDocumentVersionResponse (Maybe (HashMap Text Text))
getDocumentVersionResponse_customMetadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDocumentVersionResponse' {Maybe (HashMap Text Text)
customMetadata :: Maybe (HashMap Text Text)
$sel:customMetadata:GetDocumentVersionResponse' :: GetDocumentVersionResponse -> Maybe (HashMap Text Text)
customMetadata} -> Maybe (HashMap Text Text)
customMetadata) (\s :: GetDocumentVersionResponse
s@GetDocumentVersionResponse' {} Maybe (HashMap Text Text)
a -> GetDocumentVersionResponse
s {$sel:customMetadata:GetDocumentVersionResponse' :: Maybe (HashMap Text Text)
customMetadata = Maybe (HashMap Text Text)
a} :: GetDocumentVersionResponse) 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 version metadata.
getDocumentVersionResponse_metadata :: Lens.Lens' GetDocumentVersionResponse (Prelude.Maybe DocumentVersionMetadata)
getDocumentVersionResponse_metadata :: Lens' GetDocumentVersionResponse (Maybe DocumentVersionMetadata)
getDocumentVersionResponse_metadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDocumentVersionResponse' {Maybe DocumentVersionMetadata
metadata :: Maybe DocumentVersionMetadata
$sel:metadata:GetDocumentVersionResponse' :: GetDocumentVersionResponse -> Maybe DocumentVersionMetadata
metadata} -> Maybe DocumentVersionMetadata
metadata) (\s :: GetDocumentVersionResponse
s@GetDocumentVersionResponse' {} Maybe DocumentVersionMetadata
a -> GetDocumentVersionResponse
s {$sel:metadata:GetDocumentVersionResponse' :: Maybe DocumentVersionMetadata
metadata = Maybe DocumentVersionMetadata
a} :: GetDocumentVersionResponse)

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

instance Prelude.NFData GetDocumentVersionResponse where
  rnf :: GetDocumentVersionResponse -> ()
rnf GetDocumentVersionResponse' {Int
Maybe (HashMap Text Text)
Maybe DocumentVersionMetadata
httpStatus :: Int
metadata :: Maybe DocumentVersionMetadata
customMetadata :: Maybe (HashMap Text Text)
$sel:httpStatus:GetDocumentVersionResponse' :: GetDocumentVersionResponse -> Int
$sel:metadata:GetDocumentVersionResponse' :: GetDocumentVersionResponse -> Maybe DocumentVersionMetadata
$sel:customMetadata:GetDocumentVersionResponse' :: GetDocumentVersionResponse -> Maybe (HashMap Text Text)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
customMetadata
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DocumentVersionMetadata
metadata
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus