{-# 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.Glacier.Types.GlacierJobDescription
-- 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.Glacier.Types.GlacierJobDescription where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Glacier.Types.ActionCode
import Amazonka.Glacier.Types.InventoryRetrievalJobDescription
import Amazonka.Glacier.Types.OutputLocation
import Amazonka.Glacier.Types.SelectParameters
import Amazonka.Glacier.Types.StatusCode
import qualified Amazonka.Prelude as Prelude

-- | Contains the description of an Amazon S3 Glacier job.
--
-- /See:/ 'newGlacierJobDescription' smart constructor.
data GlacierJobDescription = GlacierJobDescription'
  { -- | The job type. This value is either @ArchiveRetrieval@,
    -- @InventoryRetrieval@, or @Select@.
    GlacierJobDescription -> Maybe ActionCode
action :: Prelude.Maybe ActionCode,
    -- | The archive ID requested for a select job or archive retrieval.
    -- Otherwise, this field is null.
    GlacierJobDescription -> Maybe Text
archiveId :: Prelude.Maybe Prelude.Text,
    -- | The SHA256 tree hash of the entire archive for an archive retrieval. For
    -- inventory retrieval or select jobs, this field is null.
    GlacierJobDescription -> Maybe Text
archiveSHA256TreeHash :: Prelude.Maybe Prelude.Text,
    -- | For an archive retrieval job, this value is the size in bytes of the
    -- archive being requested for download. For an inventory retrieval or
    -- select job, this value is null.
    GlacierJobDescription -> Maybe Integer
archiveSizeInBytes :: Prelude.Maybe Prelude.Integer,
    -- | The job status. When a job is completed, you get the job\'s output using
    -- Get Job Output (GET output).
    GlacierJobDescription -> Maybe Bool
completed :: Prelude.Maybe Prelude.Bool,
    -- | The UTC time that the job request completed. While the job is in
    -- progress, the value is null.
    GlacierJobDescription -> Maybe Text
completionDate :: Prelude.Maybe Prelude.Text,
    -- | The UTC date when the job was created. This value is a string
    -- representation of ISO 8601 date format, for example
    -- @\"2012-03-20T17:03:43.221Z\"@.
    GlacierJobDescription -> Maybe Text
creationDate :: Prelude.Maybe Prelude.Text,
    -- | Parameters used for range inventory retrieval.
    GlacierJobDescription -> Maybe InventoryRetrievalJobDescription
inventoryRetrievalParameters :: Prelude.Maybe InventoryRetrievalJobDescription,
    -- | For an inventory retrieval job, this value is the size in bytes of the
    -- inventory requested for download. For an archive retrieval or select
    -- job, this value is null.
    GlacierJobDescription -> Maybe Integer
inventorySizeInBytes :: Prelude.Maybe Prelude.Integer,
    -- | The job description provided when initiating the job.
    GlacierJobDescription -> Maybe Text
jobDescription :: Prelude.Maybe Prelude.Text,
    -- | An opaque string that identifies an Amazon S3 Glacier job.
    GlacierJobDescription -> Maybe Text
jobId :: Prelude.Maybe Prelude.Text,
    -- | Contains the job output location.
    GlacierJobDescription -> Maybe Text
jobOutputPath :: Prelude.Maybe Prelude.Text,
    -- | Contains the location where the data from the select job is stored.
    GlacierJobDescription -> Maybe OutputLocation
outputLocation :: Prelude.Maybe OutputLocation,
    -- | The retrieved byte range for archive retrieval jobs in the form
    -- /StartByteValue/-/EndByteValue/. If no range was specified in the
    -- archive retrieval, then the whole archive is retrieved. In this case,
    -- /StartByteValue/ equals 0 and /EndByteValue/ equals the size of the
    -- archive minus 1. For inventory retrieval or select jobs, this field is
    -- null.
    GlacierJobDescription -> Maybe Text
retrievalByteRange :: Prelude.Maybe Prelude.Text,
    -- | For an archive retrieval job, this value is the checksum of the archive.
    -- Otherwise, this value is null.
    --
    -- The SHA256 tree hash value for the requested range of an archive. If the
    -- __InitiateJob__ request for an archive specified a tree-hash aligned
    -- range, then this field returns a value.
    --
    -- If the whole archive is retrieved, this value is the same as the
    -- ArchiveSHA256TreeHash value.
    --
    -- This field is null for the following:
    --
    -- -   Archive retrieval jobs that specify a range that is not tree-hash
    --     aligned
    --
    -- -   Archival jobs that specify a range that is equal to the whole
    --     archive, when the job status is @InProgress@
    --
    -- -   Inventory jobs
    --
    -- -   Select jobs
    GlacierJobDescription -> Maybe Text
sHA256TreeHash :: Prelude.Maybe Prelude.Text,
    -- | An Amazon SNS topic that receives notification.
    GlacierJobDescription -> Maybe Text
sNSTopic :: Prelude.Maybe Prelude.Text,
    -- | Contains the parameters used for a select.
    GlacierJobDescription -> Maybe SelectParameters
selectParameters :: Prelude.Maybe SelectParameters,
    -- | The status code can be @InProgress@, @Succeeded@, or @Failed@, and
    -- indicates the status of the job.
    GlacierJobDescription -> Maybe StatusCode
statusCode :: Prelude.Maybe StatusCode,
    -- | A friendly message that describes the job status.
    GlacierJobDescription -> Maybe Text
statusMessage :: Prelude.Maybe Prelude.Text,
    -- | The tier to use for a select or an archive retrieval. Valid values are
    -- @Expedited@, @Standard@, or @Bulk@. @Standard@ is the default.
    GlacierJobDescription -> Maybe Text
tier :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the vault from which an archive
    -- retrieval was requested.
    GlacierJobDescription -> Maybe Text
vaultARN :: Prelude.Maybe Prelude.Text
  }
  deriving (GlacierJobDescription -> GlacierJobDescription -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GlacierJobDescription -> GlacierJobDescription -> Bool
$c/= :: GlacierJobDescription -> GlacierJobDescription -> Bool
== :: GlacierJobDescription -> GlacierJobDescription -> Bool
$c== :: GlacierJobDescription -> GlacierJobDescription -> Bool
Prelude.Eq, ReadPrec [GlacierJobDescription]
ReadPrec GlacierJobDescription
Int -> ReadS GlacierJobDescription
ReadS [GlacierJobDescription]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GlacierJobDescription]
$creadListPrec :: ReadPrec [GlacierJobDescription]
readPrec :: ReadPrec GlacierJobDescription
$creadPrec :: ReadPrec GlacierJobDescription
readList :: ReadS [GlacierJobDescription]
$creadList :: ReadS [GlacierJobDescription]
readsPrec :: Int -> ReadS GlacierJobDescription
$creadsPrec :: Int -> ReadS GlacierJobDescription
Prelude.Read, Int -> GlacierJobDescription -> ShowS
[GlacierJobDescription] -> ShowS
GlacierJobDescription -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GlacierJobDescription] -> ShowS
$cshowList :: [GlacierJobDescription] -> ShowS
show :: GlacierJobDescription -> String
$cshow :: GlacierJobDescription -> String
showsPrec :: Int -> GlacierJobDescription -> ShowS
$cshowsPrec :: Int -> GlacierJobDescription -> ShowS
Prelude.Show, forall x. Rep GlacierJobDescription x -> GlacierJobDescription
forall x. GlacierJobDescription -> Rep GlacierJobDescription x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GlacierJobDescription x -> GlacierJobDescription
$cfrom :: forall x. GlacierJobDescription -> Rep GlacierJobDescription x
Prelude.Generic)

-- |
-- Create a value of 'GlacierJobDescription' 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:
--
-- 'action', 'glacierJobDescription_action' - The job type. This value is either @ArchiveRetrieval@,
-- @InventoryRetrieval@, or @Select@.
--
-- 'archiveId', 'glacierJobDescription_archiveId' - The archive ID requested for a select job or archive retrieval.
-- Otherwise, this field is null.
--
-- 'archiveSHA256TreeHash', 'glacierJobDescription_archiveSHA256TreeHash' - The SHA256 tree hash of the entire archive for an archive retrieval. For
-- inventory retrieval or select jobs, this field is null.
--
-- 'archiveSizeInBytes', 'glacierJobDescription_archiveSizeInBytes' - For an archive retrieval job, this value is the size in bytes of the
-- archive being requested for download. For an inventory retrieval or
-- select job, this value is null.
--
-- 'completed', 'glacierJobDescription_completed' - The job status. When a job is completed, you get the job\'s output using
-- Get Job Output (GET output).
--
-- 'completionDate', 'glacierJobDescription_completionDate' - The UTC time that the job request completed. While the job is in
-- progress, the value is null.
--
-- 'creationDate', 'glacierJobDescription_creationDate' - The UTC date when the job was created. This value is a string
-- representation of ISO 8601 date format, for example
-- @\"2012-03-20T17:03:43.221Z\"@.
--
-- 'inventoryRetrievalParameters', 'glacierJobDescription_inventoryRetrievalParameters' - Parameters used for range inventory retrieval.
--
-- 'inventorySizeInBytes', 'glacierJobDescription_inventorySizeInBytes' - For an inventory retrieval job, this value is the size in bytes of the
-- inventory requested for download. For an archive retrieval or select
-- job, this value is null.
--
-- 'jobDescription', 'glacierJobDescription_jobDescription' - The job description provided when initiating the job.
--
-- 'jobId', 'glacierJobDescription_jobId' - An opaque string that identifies an Amazon S3 Glacier job.
--
-- 'jobOutputPath', 'glacierJobDescription_jobOutputPath' - Contains the job output location.
--
-- 'outputLocation', 'glacierJobDescription_outputLocation' - Contains the location where the data from the select job is stored.
--
-- 'retrievalByteRange', 'glacierJobDescription_retrievalByteRange' - The retrieved byte range for archive retrieval jobs in the form
-- /StartByteValue/-/EndByteValue/. If no range was specified in the
-- archive retrieval, then the whole archive is retrieved. In this case,
-- /StartByteValue/ equals 0 and /EndByteValue/ equals the size of the
-- archive minus 1. For inventory retrieval or select jobs, this field is
-- null.
--
-- 'sHA256TreeHash', 'glacierJobDescription_sHA256TreeHash' - For an archive retrieval job, this value is the checksum of the archive.
-- Otherwise, this value is null.
--
-- The SHA256 tree hash value for the requested range of an archive. If the
-- __InitiateJob__ request for an archive specified a tree-hash aligned
-- range, then this field returns a value.
--
-- If the whole archive is retrieved, this value is the same as the
-- ArchiveSHA256TreeHash value.
--
-- This field is null for the following:
--
-- -   Archive retrieval jobs that specify a range that is not tree-hash
--     aligned
--
-- -   Archival jobs that specify a range that is equal to the whole
--     archive, when the job status is @InProgress@
--
-- -   Inventory jobs
--
-- -   Select jobs
--
-- 'sNSTopic', 'glacierJobDescription_sNSTopic' - An Amazon SNS topic that receives notification.
--
-- 'selectParameters', 'glacierJobDescription_selectParameters' - Contains the parameters used for a select.
--
-- 'statusCode', 'glacierJobDescription_statusCode' - The status code can be @InProgress@, @Succeeded@, or @Failed@, and
-- indicates the status of the job.
--
-- 'statusMessage', 'glacierJobDescription_statusMessage' - A friendly message that describes the job status.
--
-- 'tier', 'glacierJobDescription_tier' - The tier to use for a select or an archive retrieval. Valid values are
-- @Expedited@, @Standard@, or @Bulk@. @Standard@ is the default.
--
-- 'vaultARN', 'glacierJobDescription_vaultARN' - The Amazon Resource Name (ARN) of the vault from which an archive
-- retrieval was requested.
newGlacierJobDescription ::
  GlacierJobDescription
newGlacierJobDescription :: GlacierJobDescription
newGlacierJobDescription =
  GlacierJobDescription'
    { $sel:action:GlacierJobDescription' :: Maybe ActionCode
action = forall a. Maybe a
Prelude.Nothing,
      $sel:archiveId:GlacierJobDescription' :: Maybe Text
archiveId = forall a. Maybe a
Prelude.Nothing,
      $sel:archiveSHA256TreeHash:GlacierJobDescription' :: Maybe Text
archiveSHA256TreeHash = forall a. Maybe a
Prelude.Nothing,
      $sel:archiveSizeInBytes:GlacierJobDescription' :: Maybe Integer
archiveSizeInBytes = forall a. Maybe a
Prelude.Nothing,
      $sel:completed:GlacierJobDescription' :: Maybe Bool
completed = forall a. Maybe a
Prelude.Nothing,
      $sel:completionDate:GlacierJobDescription' :: Maybe Text
completionDate = forall a. Maybe a
Prelude.Nothing,
      $sel:creationDate:GlacierJobDescription' :: Maybe Text
creationDate = forall a. Maybe a
Prelude.Nothing,
      $sel:inventoryRetrievalParameters:GlacierJobDescription' :: Maybe InventoryRetrievalJobDescription
inventoryRetrievalParameters = forall a. Maybe a
Prelude.Nothing,
      $sel:inventorySizeInBytes:GlacierJobDescription' :: Maybe Integer
inventorySizeInBytes = forall a. Maybe a
Prelude.Nothing,
      $sel:jobDescription:GlacierJobDescription' :: Maybe Text
jobDescription = forall a. Maybe a
Prelude.Nothing,
      $sel:jobId:GlacierJobDescription' :: Maybe Text
jobId = forall a. Maybe a
Prelude.Nothing,
      $sel:jobOutputPath:GlacierJobDescription' :: Maybe Text
jobOutputPath = forall a. Maybe a
Prelude.Nothing,
      $sel:outputLocation:GlacierJobDescription' :: Maybe OutputLocation
outputLocation = forall a. Maybe a
Prelude.Nothing,
      $sel:retrievalByteRange:GlacierJobDescription' :: Maybe Text
retrievalByteRange = forall a. Maybe a
Prelude.Nothing,
      $sel:sHA256TreeHash:GlacierJobDescription' :: Maybe Text
sHA256TreeHash = forall a. Maybe a
Prelude.Nothing,
      $sel:sNSTopic:GlacierJobDescription' :: Maybe Text
sNSTopic = forall a. Maybe a
Prelude.Nothing,
      $sel:selectParameters:GlacierJobDescription' :: Maybe SelectParameters
selectParameters = forall a. Maybe a
Prelude.Nothing,
      $sel:statusCode:GlacierJobDescription' :: Maybe StatusCode
statusCode = forall a. Maybe a
Prelude.Nothing,
      $sel:statusMessage:GlacierJobDescription' :: Maybe Text
statusMessage = forall a. Maybe a
Prelude.Nothing,
      $sel:tier:GlacierJobDescription' :: Maybe Text
tier = forall a. Maybe a
Prelude.Nothing,
      $sel:vaultARN:GlacierJobDescription' :: Maybe Text
vaultARN = forall a. Maybe a
Prelude.Nothing
    }

-- | The job type. This value is either @ArchiveRetrieval@,
-- @InventoryRetrieval@, or @Select@.
glacierJobDescription_action :: Lens.Lens' GlacierJobDescription (Prelude.Maybe ActionCode)
glacierJobDescription_action :: Lens' GlacierJobDescription (Maybe ActionCode)
glacierJobDescription_action = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe ActionCode
action :: Maybe ActionCode
$sel:action:GlacierJobDescription' :: GlacierJobDescription -> Maybe ActionCode
action} -> Maybe ActionCode
action) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe ActionCode
a -> GlacierJobDescription
s {$sel:action:GlacierJobDescription' :: Maybe ActionCode
action = Maybe ActionCode
a} :: GlacierJobDescription)

-- | The archive ID requested for a select job or archive retrieval.
-- Otherwise, this field is null.
glacierJobDescription_archiveId :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_archiveId :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_archiveId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
archiveId :: Maybe Text
$sel:archiveId:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
archiveId} -> Maybe Text
archiveId) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:archiveId:GlacierJobDescription' :: Maybe Text
archiveId = Maybe Text
a} :: GlacierJobDescription)

-- | The SHA256 tree hash of the entire archive for an archive retrieval. For
-- inventory retrieval or select jobs, this field is null.
glacierJobDescription_archiveSHA256TreeHash :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_archiveSHA256TreeHash :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_archiveSHA256TreeHash = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
archiveSHA256TreeHash :: Maybe Text
$sel:archiveSHA256TreeHash:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
archiveSHA256TreeHash} -> Maybe Text
archiveSHA256TreeHash) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:archiveSHA256TreeHash:GlacierJobDescription' :: Maybe Text
archiveSHA256TreeHash = Maybe Text
a} :: GlacierJobDescription)

-- | For an archive retrieval job, this value is the size in bytes of the
-- archive being requested for download. For an inventory retrieval or
-- select job, this value is null.
glacierJobDescription_archiveSizeInBytes :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Integer)
glacierJobDescription_archiveSizeInBytes :: Lens' GlacierJobDescription (Maybe Integer)
glacierJobDescription_archiveSizeInBytes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Integer
archiveSizeInBytes :: Maybe Integer
$sel:archiveSizeInBytes:GlacierJobDescription' :: GlacierJobDescription -> Maybe Integer
archiveSizeInBytes} -> Maybe Integer
archiveSizeInBytes) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Integer
a -> GlacierJobDescription
s {$sel:archiveSizeInBytes:GlacierJobDescription' :: Maybe Integer
archiveSizeInBytes = Maybe Integer
a} :: GlacierJobDescription)

-- | The job status. When a job is completed, you get the job\'s output using
-- Get Job Output (GET output).
glacierJobDescription_completed :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Bool)
glacierJobDescription_completed :: Lens' GlacierJobDescription (Maybe Bool)
glacierJobDescription_completed = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Bool
completed :: Maybe Bool
$sel:completed:GlacierJobDescription' :: GlacierJobDescription -> Maybe Bool
completed} -> Maybe Bool
completed) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Bool
a -> GlacierJobDescription
s {$sel:completed:GlacierJobDescription' :: Maybe Bool
completed = Maybe Bool
a} :: GlacierJobDescription)

-- | The UTC time that the job request completed. While the job is in
-- progress, the value is null.
glacierJobDescription_completionDate :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_completionDate :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_completionDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
completionDate :: Maybe Text
$sel:completionDate:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
completionDate} -> Maybe Text
completionDate) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:completionDate:GlacierJobDescription' :: Maybe Text
completionDate = Maybe Text
a} :: GlacierJobDescription)

-- | The UTC date when the job was created. This value is a string
-- representation of ISO 8601 date format, for example
-- @\"2012-03-20T17:03:43.221Z\"@.
glacierJobDescription_creationDate :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_creationDate :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_creationDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
creationDate :: Maybe Text
$sel:creationDate:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
creationDate} -> Maybe Text
creationDate) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:creationDate:GlacierJobDescription' :: Maybe Text
creationDate = Maybe Text
a} :: GlacierJobDescription)

-- | Parameters used for range inventory retrieval.
glacierJobDescription_inventoryRetrievalParameters :: Lens.Lens' GlacierJobDescription (Prelude.Maybe InventoryRetrievalJobDescription)
glacierJobDescription_inventoryRetrievalParameters :: Lens'
  GlacierJobDescription (Maybe InventoryRetrievalJobDescription)
glacierJobDescription_inventoryRetrievalParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe InventoryRetrievalJobDescription
inventoryRetrievalParameters :: Maybe InventoryRetrievalJobDescription
$sel:inventoryRetrievalParameters:GlacierJobDescription' :: GlacierJobDescription -> Maybe InventoryRetrievalJobDescription
inventoryRetrievalParameters} -> Maybe InventoryRetrievalJobDescription
inventoryRetrievalParameters) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe InventoryRetrievalJobDescription
a -> GlacierJobDescription
s {$sel:inventoryRetrievalParameters:GlacierJobDescription' :: Maybe InventoryRetrievalJobDescription
inventoryRetrievalParameters = Maybe InventoryRetrievalJobDescription
a} :: GlacierJobDescription)

-- | For an inventory retrieval job, this value is the size in bytes of the
-- inventory requested for download. For an archive retrieval or select
-- job, this value is null.
glacierJobDescription_inventorySizeInBytes :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Integer)
glacierJobDescription_inventorySizeInBytes :: Lens' GlacierJobDescription (Maybe Integer)
glacierJobDescription_inventorySizeInBytes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Integer
inventorySizeInBytes :: Maybe Integer
$sel:inventorySizeInBytes:GlacierJobDescription' :: GlacierJobDescription -> Maybe Integer
inventorySizeInBytes} -> Maybe Integer
inventorySizeInBytes) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Integer
a -> GlacierJobDescription
s {$sel:inventorySizeInBytes:GlacierJobDescription' :: Maybe Integer
inventorySizeInBytes = Maybe Integer
a} :: GlacierJobDescription)

-- | The job description provided when initiating the job.
glacierJobDescription_jobDescription :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_jobDescription :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_jobDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
jobDescription :: Maybe Text
$sel:jobDescription:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
jobDescription} -> Maybe Text
jobDescription) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:jobDescription:GlacierJobDescription' :: Maybe Text
jobDescription = Maybe Text
a} :: GlacierJobDescription)

-- | An opaque string that identifies an Amazon S3 Glacier job.
glacierJobDescription_jobId :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_jobId :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_jobId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
jobId :: Maybe Text
$sel:jobId:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
jobId} -> Maybe Text
jobId) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:jobId:GlacierJobDescription' :: Maybe Text
jobId = Maybe Text
a} :: GlacierJobDescription)

-- | Contains the job output location.
glacierJobDescription_jobOutputPath :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_jobOutputPath :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_jobOutputPath = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
jobOutputPath :: Maybe Text
$sel:jobOutputPath:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
jobOutputPath} -> Maybe Text
jobOutputPath) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:jobOutputPath:GlacierJobDescription' :: Maybe Text
jobOutputPath = Maybe Text
a} :: GlacierJobDescription)

-- | Contains the location where the data from the select job is stored.
glacierJobDescription_outputLocation :: Lens.Lens' GlacierJobDescription (Prelude.Maybe OutputLocation)
glacierJobDescription_outputLocation :: Lens' GlacierJobDescription (Maybe OutputLocation)
glacierJobDescription_outputLocation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe OutputLocation
outputLocation :: Maybe OutputLocation
$sel:outputLocation:GlacierJobDescription' :: GlacierJobDescription -> Maybe OutputLocation
outputLocation} -> Maybe OutputLocation
outputLocation) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe OutputLocation
a -> GlacierJobDescription
s {$sel:outputLocation:GlacierJobDescription' :: Maybe OutputLocation
outputLocation = Maybe OutputLocation
a} :: GlacierJobDescription)

-- | The retrieved byte range for archive retrieval jobs in the form
-- /StartByteValue/-/EndByteValue/. If no range was specified in the
-- archive retrieval, then the whole archive is retrieved. In this case,
-- /StartByteValue/ equals 0 and /EndByteValue/ equals the size of the
-- archive minus 1. For inventory retrieval or select jobs, this field is
-- null.
glacierJobDescription_retrievalByteRange :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_retrievalByteRange :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_retrievalByteRange = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
retrievalByteRange :: Maybe Text
$sel:retrievalByteRange:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
retrievalByteRange} -> Maybe Text
retrievalByteRange) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:retrievalByteRange:GlacierJobDescription' :: Maybe Text
retrievalByteRange = Maybe Text
a} :: GlacierJobDescription)

-- | For an archive retrieval job, this value is the checksum of the archive.
-- Otherwise, this value is null.
--
-- The SHA256 tree hash value for the requested range of an archive. If the
-- __InitiateJob__ request for an archive specified a tree-hash aligned
-- range, then this field returns a value.
--
-- If the whole archive is retrieved, this value is the same as the
-- ArchiveSHA256TreeHash value.
--
-- This field is null for the following:
--
-- -   Archive retrieval jobs that specify a range that is not tree-hash
--     aligned
--
-- -   Archival jobs that specify a range that is equal to the whole
--     archive, when the job status is @InProgress@
--
-- -   Inventory jobs
--
-- -   Select jobs
glacierJobDescription_sHA256TreeHash :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_sHA256TreeHash :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_sHA256TreeHash = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
sHA256TreeHash :: Maybe Text
$sel:sHA256TreeHash:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
sHA256TreeHash} -> Maybe Text
sHA256TreeHash) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:sHA256TreeHash:GlacierJobDescription' :: Maybe Text
sHA256TreeHash = Maybe Text
a} :: GlacierJobDescription)

-- | An Amazon SNS topic that receives notification.
glacierJobDescription_sNSTopic :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_sNSTopic :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_sNSTopic = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
sNSTopic :: Maybe Text
$sel:sNSTopic:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
sNSTopic} -> Maybe Text
sNSTopic) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:sNSTopic:GlacierJobDescription' :: Maybe Text
sNSTopic = Maybe Text
a} :: GlacierJobDescription)

-- | Contains the parameters used for a select.
glacierJobDescription_selectParameters :: Lens.Lens' GlacierJobDescription (Prelude.Maybe SelectParameters)
glacierJobDescription_selectParameters :: Lens' GlacierJobDescription (Maybe SelectParameters)
glacierJobDescription_selectParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe SelectParameters
selectParameters :: Maybe SelectParameters
$sel:selectParameters:GlacierJobDescription' :: GlacierJobDescription -> Maybe SelectParameters
selectParameters} -> Maybe SelectParameters
selectParameters) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe SelectParameters
a -> GlacierJobDescription
s {$sel:selectParameters:GlacierJobDescription' :: Maybe SelectParameters
selectParameters = Maybe SelectParameters
a} :: GlacierJobDescription)

-- | The status code can be @InProgress@, @Succeeded@, or @Failed@, and
-- indicates the status of the job.
glacierJobDescription_statusCode :: Lens.Lens' GlacierJobDescription (Prelude.Maybe StatusCode)
glacierJobDescription_statusCode :: Lens' GlacierJobDescription (Maybe StatusCode)
glacierJobDescription_statusCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe StatusCode
statusCode :: Maybe StatusCode
$sel:statusCode:GlacierJobDescription' :: GlacierJobDescription -> Maybe StatusCode
statusCode} -> Maybe StatusCode
statusCode) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe StatusCode
a -> GlacierJobDescription
s {$sel:statusCode:GlacierJobDescription' :: Maybe StatusCode
statusCode = Maybe StatusCode
a} :: GlacierJobDescription)

-- | A friendly message that describes the job status.
glacierJobDescription_statusMessage :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_statusMessage :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_statusMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
statusMessage :: Maybe Text
$sel:statusMessage:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
statusMessage} -> Maybe Text
statusMessage) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:statusMessage:GlacierJobDescription' :: Maybe Text
statusMessage = Maybe Text
a} :: GlacierJobDescription)

-- | The tier to use for a select or an archive retrieval. Valid values are
-- @Expedited@, @Standard@, or @Bulk@. @Standard@ is the default.
glacierJobDescription_tier :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_tier :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_tier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
tier :: Maybe Text
$sel:tier:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
tier} -> Maybe Text
tier) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:tier:GlacierJobDescription' :: Maybe Text
tier = Maybe Text
a} :: GlacierJobDescription)

-- | The Amazon Resource Name (ARN) of the vault from which an archive
-- retrieval was requested.
glacierJobDescription_vaultARN :: Lens.Lens' GlacierJobDescription (Prelude.Maybe Prelude.Text)
glacierJobDescription_vaultARN :: Lens' GlacierJobDescription (Maybe Text)
glacierJobDescription_vaultARN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GlacierJobDescription' {Maybe Text
vaultARN :: Maybe Text
$sel:vaultARN:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
vaultARN} -> Maybe Text
vaultARN) (\s :: GlacierJobDescription
s@GlacierJobDescription' {} Maybe Text
a -> GlacierJobDescription
s {$sel:vaultARN:GlacierJobDescription' :: Maybe Text
vaultARN = Maybe Text
a} :: GlacierJobDescription)

instance Data.FromJSON GlacierJobDescription where
  parseJSON :: Value -> Parser GlacierJobDescription
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"GlacierJobDescription"
      ( \Object
x ->
          Maybe ActionCode
-> Maybe Text
-> Maybe Text
-> Maybe Integer
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe InventoryRetrievalJobDescription
-> Maybe Integer
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe OutputLocation
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SelectParameters
-> Maybe StatusCode
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> GlacierJobDescription
GlacierJobDescription'
            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
"Action")
            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
"ArchiveId")
            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
"ArchiveSHA256TreeHash")
            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
"ArchiveSizeInBytes")
            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
"Completed")
            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
"CompletionDate")
            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
"CreationDate")
            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
"InventoryRetrievalParameters")
            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
"InventorySizeInBytes")
            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
"JobDescription")
            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
"JobId")
            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
"JobOutputPath")
            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
"OutputLocation")
            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
"RetrievalByteRange")
            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
"SHA256TreeHash")
            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
"SNSTopic")
            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
"SelectParameters")
            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
"StatusCode")
            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
"StatusMessage")
            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
"Tier")
            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
"VaultARN")
      )

instance Prelude.Hashable GlacierJobDescription where
  hashWithSalt :: Int -> GlacierJobDescription -> Int
hashWithSalt Int
_salt GlacierJobDescription' {Maybe Bool
Maybe Integer
Maybe Text
Maybe ActionCode
Maybe InventoryRetrievalJobDescription
Maybe SelectParameters
Maybe StatusCode
Maybe OutputLocation
vaultARN :: Maybe Text
tier :: Maybe Text
statusMessage :: Maybe Text
statusCode :: Maybe StatusCode
selectParameters :: Maybe SelectParameters
sNSTopic :: Maybe Text
sHA256TreeHash :: Maybe Text
retrievalByteRange :: Maybe Text
outputLocation :: Maybe OutputLocation
jobOutputPath :: Maybe Text
jobId :: Maybe Text
jobDescription :: Maybe Text
inventorySizeInBytes :: Maybe Integer
inventoryRetrievalParameters :: Maybe InventoryRetrievalJobDescription
creationDate :: Maybe Text
completionDate :: Maybe Text
completed :: Maybe Bool
archiveSizeInBytes :: Maybe Integer
archiveSHA256TreeHash :: Maybe Text
archiveId :: Maybe Text
action :: Maybe ActionCode
$sel:vaultARN:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:tier:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:statusMessage:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:statusCode:GlacierJobDescription' :: GlacierJobDescription -> Maybe StatusCode
$sel:selectParameters:GlacierJobDescription' :: GlacierJobDescription -> Maybe SelectParameters
$sel:sNSTopic:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:sHA256TreeHash:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:retrievalByteRange:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:outputLocation:GlacierJobDescription' :: GlacierJobDescription -> Maybe OutputLocation
$sel:jobOutputPath:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:jobId:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:jobDescription:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:inventorySizeInBytes:GlacierJobDescription' :: GlacierJobDescription -> Maybe Integer
$sel:inventoryRetrievalParameters:GlacierJobDescription' :: GlacierJobDescription -> Maybe InventoryRetrievalJobDescription
$sel:creationDate:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:completionDate:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:completed:GlacierJobDescription' :: GlacierJobDescription -> Maybe Bool
$sel:archiveSizeInBytes:GlacierJobDescription' :: GlacierJobDescription -> Maybe Integer
$sel:archiveSHA256TreeHash:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:archiveId:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:action:GlacierJobDescription' :: GlacierJobDescription -> Maybe ActionCode
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ActionCode
action
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
archiveId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
archiveSHA256TreeHash
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
archiveSizeInBytes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
completed
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
completionDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
creationDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InventoryRetrievalJobDescription
inventoryRetrievalParameters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
inventorySizeInBytes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
jobDescription
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
jobId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
jobOutputPath
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OutputLocation
outputLocation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
retrievalByteRange
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sHA256TreeHash
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sNSTopic
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SelectParameters
selectParameters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe StatusCode
statusCode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
statusMessage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
tier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vaultARN

instance Prelude.NFData GlacierJobDescription where
  rnf :: GlacierJobDescription -> ()
rnf GlacierJobDescription' {Maybe Bool
Maybe Integer
Maybe Text
Maybe ActionCode
Maybe InventoryRetrievalJobDescription
Maybe SelectParameters
Maybe StatusCode
Maybe OutputLocation
vaultARN :: Maybe Text
tier :: Maybe Text
statusMessage :: Maybe Text
statusCode :: Maybe StatusCode
selectParameters :: Maybe SelectParameters
sNSTopic :: Maybe Text
sHA256TreeHash :: Maybe Text
retrievalByteRange :: Maybe Text
outputLocation :: Maybe OutputLocation
jobOutputPath :: Maybe Text
jobId :: Maybe Text
jobDescription :: Maybe Text
inventorySizeInBytes :: Maybe Integer
inventoryRetrievalParameters :: Maybe InventoryRetrievalJobDescription
creationDate :: Maybe Text
completionDate :: Maybe Text
completed :: Maybe Bool
archiveSizeInBytes :: Maybe Integer
archiveSHA256TreeHash :: Maybe Text
archiveId :: Maybe Text
action :: Maybe ActionCode
$sel:vaultARN:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:tier:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:statusMessage:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:statusCode:GlacierJobDescription' :: GlacierJobDescription -> Maybe StatusCode
$sel:selectParameters:GlacierJobDescription' :: GlacierJobDescription -> Maybe SelectParameters
$sel:sNSTopic:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:sHA256TreeHash:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:retrievalByteRange:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:outputLocation:GlacierJobDescription' :: GlacierJobDescription -> Maybe OutputLocation
$sel:jobOutputPath:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:jobId:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:jobDescription:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:inventorySizeInBytes:GlacierJobDescription' :: GlacierJobDescription -> Maybe Integer
$sel:inventoryRetrievalParameters:GlacierJobDescription' :: GlacierJobDescription -> Maybe InventoryRetrievalJobDescription
$sel:creationDate:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:completionDate:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:completed:GlacierJobDescription' :: GlacierJobDescription -> Maybe Bool
$sel:archiveSizeInBytes:GlacierJobDescription' :: GlacierJobDescription -> Maybe Integer
$sel:archiveSHA256TreeHash:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:archiveId:GlacierJobDescription' :: GlacierJobDescription -> Maybe Text
$sel:action:GlacierJobDescription' :: GlacierJobDescription -> Maybe ActionCode
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ActionCode
action
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
archiveId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
archiveSHA256TreeHash
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
archiveSizeInBytes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
completed
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
completionDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
creationDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InventoryRetrievalJobDescription
inventoryRetrievalParameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
inventorySizeInBytes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobOutputPath
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OutputLocation
outputLocation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
retrievalByteRange
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sHA256TreeHash
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sNSTopic
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SelectParameters
selectParameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe StatusCode
statusCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
statusMessage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
tier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vaultARN