{-# 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.SSM.Types.DocumentVersionInfo
-- 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.SSM.Types.DocumentVersionInfo 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 Amazonka.SSM.Types.DocumentFormat
import Amazonka.SSM.Types.DocumentStatus
import Amazonka.SSM.Types.ReviewStatus

-- | Version information about the document.
--
-- /See:/ 'newDocumentVersionInfo' smart constructor.
data DocumentVersionInfo = DocumentVersionInfo'
  { -- | The date the document was created.
    DocumentVersionInfo -> Maybe POSIX
createdDate :: Prelude.Maybe Data.POSIX,
    -- | The friendly name of the SSM document. This value can differ for each
    -- version of the document. If you want to update this value, see
    -- UpdateDocument.
    DocumentVersionInfo -> Maybe Text
displayName :: Prelude.Maybe Prelude.Text,
    -- | The document format, either JSON or YAML.
    DocumentVersionInfo -> Maybe DocumentFormat
documentFormat :: Prelude.Maybe DocumentFormat,
    -- | The document version.
    DocumentVersionInfo -> Maybe Text
documentVersion :: Prelude.Maybe Prelude.Text,
    -- | An identifier for the default version of the document.
    DocumentVersionInfo -> Maybe Bool
isDefaultVersion :: Prelude.Maybe Prelude.Bool,
    -- | The document name.
    DocumentVersionInfo -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The current status of the approval review for the latest version of the
    -- document.
    DocumentVersionInfo -> Maybe ReviewStatus
reviewStatus :: Prelude.Maybe ReviewStatus,
    -- | The status of the SSM document, such as @Creating@, @Active@, @Failed@,
    -- and @Deleting@.
    DocumentVersionInfo -> Maybe DocumentStatus
status :: Prelude.Maybe DocumentStatus,
    -- | A message returned by Amazon Web Services Systems Manager that explains
    -- the @Status@ value. For example, a @Failed@ status might be explained by
    -- the @StatusInformation@ message, \"The specified S3 bucket doesn\'t
    -- exist. Verify that the URL of the S3 bucket is correct.\"
    DocumentVersionInfo -> Maybe Text
statusInformation :: Prelude.Maybe Prelude.Text,
    -- | The version of the artifact associated with the document. For example,
    -- \"Release 12, Update 6\". This value is unique across all versions of a
    -- document, and can\'t be changed.
    DocumentVersionInfo -> Maybe Text
versionName :: Prelude.Maybe Prelude.Text
  }
  deriving (DocumentVersionInfo -> DocumentVersionInfo -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DocumentVersionInfo -> DocumentVersionInfo -> Bool
$c/= :: DocumentVersionInfo -> DocumentVersionInfo -> Bool
== :: DocumentVersionInfo -> DocumentVersionInfo -> Bool
$c== :: DocumentVersionInfo -> DocumentVersionInfo -> Bool
Prelude.Eq, ReadPrec [DocumentVersionInfo]
ReadPrec DocumentVersionInfo
Int -> ReadS DocumentVersionInfo
ReadS [DocumentVersionInfo]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DocumentVersionInfo]
$creadListPrec :: ReadPrec [DocumentVersionInfo]
readPrec :: ReadPrec DocumentVersionInfo
$creadPrec :: ReadPrec DocumentVersionInfo
readList :: ReadS [DocumentVersionInfo]
$creadList :: ReadS [DocumentVersionInfo]
readsPrec :: Int -> ReadS DocumentVersionInfo
$creadsPrec :: Int -> ReadS DocumentVersionInfo
Prelude.Read, Int -> DocumentVersionInfo -> ShowS
[DocumentVersionInfo] -> ShowS
DocumentVersionInfo -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DocumentVersionInfo] -> ShowS
$cshowList :: [DocumentVersionInfo] -> ShowS
show :: DocumentVersionInfo -> String
$cshow :: DocumentVersionInfo -> String
showsPrec :: Int -> DocumentVersionInfo -> ShowS
$cshowsPrec :: Int -> DocumentVersionInfo -> ShowS
Prelude.Show, forall x. Rep DocumentVersionInfo x -> DocumentVersionInfo
forall x. DocumentVersionInfo -> Rep DocumentVersionInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DocumentVersionInfo x -> DocumentVersionInfo
$cfrom :: forall x. DocumentVersionInfo -> Rep DocumentVersionInfo x
Prelude.Generic)

-- |
-- Create a value of 'DocumentVersionInfo' 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:
--
-- 'createdDate', 'documentVersionInfo_createdDate' - The date the document was created.
--
-- 'displayName', 'documentVersionInfo_displayName' - The friendly name of the SSM document. This value can differ for each
-- version of the document. If you want to update this value, see
-- UpdateDocument.
--
-- 'documentFormat', 'documentVersionInfo_documentFormat' - The document format, either JSON or YAML.
--
-- 'documentVersion', 'documentVersionInfo_documentVersion' - The document version.
--
-- 'isDefaultVersion', 'documentVersionInfo_isDefaultVersion' - An identifier for the default version of the document.
--
-- 'name', 'documentVersionInfo_name' - The document name.
--
-- 'reviewStatus', 'documentVersionInfo_reviewStatus' - The current status of the approval review for the latest version of the
-- document.
--
-- 'status', 'documentVersionInfo_status' - The status of the SSM document, such as @Creating@, @Active@, @Failed@,
-- and @Deleting@.
--
-- 'statusInformation', 'documentVersionInfo_statusInformation' - A message returned by Amazon Web Services Systems Manager that explains
-- the @Status@ value. For example, a @Failed@ status might be explained by
-- the @StatusInformation@ message, \"The specified S3 bucket doesn\'t
-- exist. Verify that the URL of the S3 bucket is correct.\"
--
-- 'versionName', 'documentVersionInfo_versionName' - The version of the artifact associated with the document. For example,
-- \"Release 12, Update 6\". This value is unique across all versions of a
-- document, and can\'t be changed.
newDocumentVersionInfo ::
  DocumentVersionInfo
newDocumentVersionInfo :: DocumentVersionInfo
newDocumentVersionInfo =
  DocumentVersionInfo'
    { $sel:createdDate:DocumentVersionInfo' :: Maybe POSIX
createdDate = forall a. Maybe a
Prelude.Nothing,
      $sel:displayName:DocumentVersionInfo' :: Maybe Text
displayName = forall a. Maybe a
Prelude.Nothing,
      $sel:documentFormat:DocumentVersionInfo' :: Maybe DocumentFormat
documentFormat = forall a. Maybe a
Prelude.Nothing,
      $sel:documentVersion:DocumentVersionInfo' :: Maybe Text
documentVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:isDefaultVersion:DocumentVersionInfo' :: Maybe Bool
isDefaultVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:name:DocumentVersionInfo' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:reviewStatus:DocumentVersionInfo' :: Maybe ReviewStatus
reviewStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:status:DocumentVersionInfo' :: Maybe DocumentStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:statusInformation:DocumentVersionInfo' :: Maybe Text
statusInformation = forall a. Maybe a
Prelude.Nothing,
      $sel:versionName:DocumentVersionInfo' :: Maybe Text
versionName = forall a. Maybe a
Prelude.Nothing
    }

-- | The date the document was created.
documentVersionInfo_createdDate :: Lens.Lens' DocumentVersionInfo (Prelude.Maybe Prelude.UTCTime)
documentVersionInfo_createdDate :: Lens' DocumentVersionInfo (Maybe UTCTime)
documentVersionInfo_createdDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentVersionInfo' {Maybe POSIX
createdDate :: Maybe POSIX
$sel:createdDate:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe POSIX
createdDate} -> Maybe POSIX
createdDate) (\s :: DocumentVersionInfo
s@DocumentVersionInfo' {} Maybe POSIX
a -> DocumentVersionInfo
s {$sel:createdDate:DocumentVersionInfo' :: Maybe POSIX
createdDate = Maybe POSIX
a} :: DocumentVersionInfo) 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 friendly name of the SSM document. This value can differ for each
-- version of the document. If you want to update this value, see
-- UpdateDocument.
documentVersionInfo_displayName :: Lens.Lens' DocumentVersionInfo (Prelude.Maybe Prelude.Text)
documentVersionInfo_displayName :: Lens' DocumentVersionInfo (Maybe Text)
documentVersionInfo_displayName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentVersionInfo' {Maybe Text
displayName :: Maybe Text
$sel:displayName:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
displayName} -> Maybe Text
displayName) (\s :: DocumentVersionInfo
s@DocumentVersionInfo' {} Maybe Text
a -> DocumentVersionInfo
s {$sel:displayName:DocumentVersionInfo' :: Maybe Text
displayName = Maybe Text
a} :: DocumentVersionInfo)

-- | The document format, either JSON or YAML.
documentVersionInfo_documentFormat :: Lens.Lens' DocumentVersionInfo (Prelude.Maybe DocumentFormat)
documentVersionInfo_documentFormat :: Lens' DocumentVersionInfo (Maybe DocumentFormat)
documentVersionInfo_documentFormat = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentVersionInfo' {Maybe DocumentFormat
documentFormat :: Maybe DocumentFormat
$sel:documentFormat:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe DocumentFormat
documentFormat} -> Maybe DocumentFormat
documentFormat) (\s :: DocumentVersionInfo
s@DocumentVersionInfo' {} Maybe DocumentFormat
a -> DocumentVersionInfo
s {$sel:documentFormat:DocumentVersionInfo' :: Maybe DocumentFormat
documentFormat = Maybe DocumentFormat
a} :: DocumentVersionInfo)

-- | The document version.
documentVersionInfo_documentVersion :: Lens.Lens' DocumentVersionInfo (Prelude.Maybe Prelude.Text)
documentVersionInfo_documentVersion :: Lens' DocumentVersionInfo (Maybe Text)
documentVersionInfo_documentVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentVersionInfo' {Maybe Text
documentVersion :: Maybe Text
$sel:documentVersion:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
documentVersion} -> Maybe Text
documentVersion) (\s :: DocumentVersionInfo
s@DocumentVersionInfo' {} Maybe Text
a -> DocumentVersionInfo
s {$sel:documentVersion:DocumentVersionInfo' :: Maybe Text
documentVersion = Maybe Text
a} :: DocumentVersionInfo)

-- | An identifier for the default version of the document.
documentVersionInfo_isDefaultVersion :: Lens.Lens' DocumentVersionInfo (Prelude.Maybe Prelude.Bool)
documentVersionInfo_isDefaultVersion :: Lens' DocumentVersionInfo (Maybe Bool)
documentVersionInfo_isDefaultVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentVersionInfo' {Maybe Bool
isDefaultVersion :: Maybe Bool
$sel:isDefaultVersion:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Bool
isDefaultVersion} -> Maybe Bool
isDefaultVersion) (\s :: DocumentVersionInfo
s@DocumentVersionInfo' {} Maybe Bool
a -> DocumentVersionInfo
s {$sel:isDefaultVersion:DocumentVersionInfo' :: Maybe Bool
isDefaultVersion = Maybe Bool
a} :: DocumentVersionInfo)

-- | The document name.
documentVersionInfo_name :: Lens.Lens' DocumentVersionInfo (Prelude.Maybe Prelude.Text)
documentVersionInfo_name :: Lens' DocumentVersionInfo (Maybe Text)
documentVersionInfo_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentVersionInfo' {Maybe Text
name :: Maybe Text
$sel:name:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
name} -> Maybe Text
name) (\s :: DocumentVersionInfo
s@DocumentVersionInfo' {} Maybe Text
a -> DocumentVersionInfo
s {$sel:name:DocumentVersionInfo' :: Maybe Text
name = Maybe Text
a} :: DocumentVersionInfo)

-- | The current status of the approval review for the latest version of the
-- document.
documentVersionInfo_reviewStatus :: Lens.Lens' DocumentVersionInfo (Prelude.Maybe ReviewStatus)
documentVersionInfo_reviewStatus :: Lens' DocumentVersionInfo (Maybe ReviewStatus)
documentVersionInfo_reviewStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentVersionInfo' {Maybe ReviewStatus
reviewStatus :: Maybe ReviewStatus
$sel:reviewStatus:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe ReviewStatus
reviewStatus} -> Maybe ReviewStatus
reviewStatus) (\s :: DocumentVersionInfo
s@DocumentVersionInfo' {} Maybe ReviewStatus
a -> DocumentVersionInfo
s {$sel:reviewStatus:DocumentVersionInfo' :: Maybe ReviewStatus
reviewStatus = Maybe ReviewStatus
a} :: DocumentVersionInfo)

-- | The status of the SSM document, such as @Creating@, @Active@, @Failed@,
-- and @Deleting@.
documentVersionInfo_status :: Lens.Lens' DocumentVersionInfo (Prelude.Maybe DocumentStatus)
documentVersionInfo_status :: Lens' DocumentVersionInfo (Maybe DocumentStatus)
documentVersionInfo_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentVersionInfo' {Maybe DocumentStatus
status :: Maybe DocumentStatus
$sel:status:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe DocumentStatus
status} -> Maybe DocumentStatus
status) (\s :: DocumentVersionInfo
s@DocumentVersionInfo' {} Maybe DocumentStatus
a -> DocumentVersionInfo
s {$sel:status:DocumentVersionInfo' :: Maybe DocumentStatus
status = Maybe DocumentStatus
a} :: DocumentVersionInfo)

-- | A message returned by Amazon Web Services Systems Manager that explains
-- the @Status@ value. For example, a @Failed@ status might be explained by
-- the @StatusInformation@ message, \"The specified S3 bucket doesn\'t
-- exist. Verify that the URL of the S3 bucket is correct.\"
documentVersionInfo_statusInformation :: Lens.Lens' DocumentVersionInfo (Prelude.Maybe Prelude.Text)
documentVersionInfo_statusInformation :: Lens' DocumentVersionInfo (Maybe Text)
documentVersionInfo_statusInformation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentVersionInfo' {Maybe Text
statusInformation :: Maybe Text
$sel:statusInformation:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
statusInformation} -> Maybe Text
statusInformation) (\s :: DocumentVersionInfo
s@DocumentVersionInfo' {} Maybe Text
a -> DocumentVersionInfo
s {$sel:statusInformation:DocumentVersionInfo' :: Maybe Text
statusInformation = Maybe Text
a} :: DocumentVersionInfo)

-- | The version of the artifact associated with the document. For example,
-- \"Release 12, Update 6\". This value is unique across all versions of a
-- document, and can\'t be changed.
documentVersionInfo_versionName :: Lens.Lens' DocumentVersionInfo (Prelude.Maybe Prelude.Text)
documentVersionInfo_versionName :: Lens' DocumentVersionInfo (Maybe Text)
documentVersionInfo_versionName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentVersionInfo' {Maybe Text
versionName :: Maybe Text
$sel:versionName:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
versionName} -> Maybe Text
versionName) (\s :: DocumentVersionInfo
s@DocumentVersionInfo' {} Maybe Text
a -> DocumentVersionInfo
s {$sel:versionName:DocumentVersionInfo' :: Maybe Text
versionName = Maybe Text
a} :: DocumentVersionInfo)

instance Data.FromJSON DocumentVersionInfo where
  parseJSON :: Value -> Parser DocumentVersionInfo
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"DocumentVersionInfo"
      ( \Object
x ->
          Maybe POSIX
-> Maybe Text
-> Maybe DocumentFormat
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe ReviewStatus
-> Maybe DocumentStatus
-> Maybe Text
-> Maybe Text
-> DocumentVersionInfo
DocumentVersionInfo'
            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
"CreatedDate")
            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
"DisplayName")
            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
"DocumentFormat")
            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
"DocumentVersion")
            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
"IsDefaultVersion")
            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
"Name")
            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
"ReviewStatus")
            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
"Status")
            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
"StatusInformation")
            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
"VersionName")
      )

instance Prelude.Hashable DocumentVersionInfo where
  hashWithSalt :: Int -> DocumentVersionInfo -> Int
hashWithSalt Int
_salt DocumentVersionInfo' {Maybe Bool
Maybe Text
Maybe POSIX
Maybe DocumentFormat
Maybe DocumentStatus
Maybe ReviewStatus
versionName :: Maybe Text
statusInformation :: Maybe Text
status :: Maybe DocumentStatus
reviewStatus :: Maybe ReviewStatus
name :: Maybe Text
isDefaultVersion :: Maybe Bool
documentVersion :: Maybe Text
documentFormat :: Maybe DocumentFormat
displayName :: Maybe Text
createdDate :: Maybe POSIX
$sel:versionName:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
$sel:statusInformation:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
$sel:status:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe DocumentStatus
$sel:reviewStatus:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe ReviewStatus
$sel:name:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
$sel:isDefaultVersion:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Bool
$sel:documentVersion:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
$sel:documentFormat:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe DocumentFormat
$sel:displayName:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
$sel:createdDate:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe POSIX
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
displayName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DocumentFormat
documentFormat
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
documentVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
isDefaultVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ReviewStatus
reviewStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DocumentStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
statusInformation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
versionName

instance Prelude.NFData DocumentVersionInfo where
  rnf :: DocumentVersionInfo -> ()
rnf DocumentVersionInfo' {Maybe Bool
Maybe Text
Maybe POSIX
Maybe DocumentFormat
Maybe DocumentStatus
Maybe ReviewStatus
versionName :: Maybe Text
statusInformation :: Maybe Text
status :: Maybe DocumentStatus
reviewStatus :: Maybe ReviewStatus
name :: Maybe Text
isDefaultVersion :: Maybe Bool
documentVersion :: Maybe Text
documentFormat :: Maybe DocumentFormat
displayName :: Maybe Text
createdDate :: Maybe POSIX
$sel:versionName:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
$sel:statusInformation:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
$sel:status:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe DocumentStatus
$sel:reviewStatus:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe ReviewStatus
$sel:name:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
$sel:isDefaultVersion:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Bool
$sel:documentVersion:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
$sel:documentFormat:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe DocumentFormat
$sel:displayName:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe Text
$sel:createdDate:DocumentVersionInfo' :: DocumentVersionInfo -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
displayName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DocumentFormat
documentFormat
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
documentVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
isDefaultVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ReviewStatus
reviewStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DocumentStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
statusInformation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
versionName