{-# 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 #-}
module Amazonka.Glacier.CompleteMultipartUpload
(
CompleteMultipartUpload (..),
newCompleteMultipartUpload,
completeMultipartUpload_accountId,
completeMultipartUpload_vaultName,
completeMultipartUpload_uploadId,
completeMultipartUpload_archiveSize,
completeMultipartUpload_checksum,
ArchiveCreationOutput (..),
newArchiveCreationOutput,
archiveCreationOutput_archiveId,
archiveCreationOutput_checksum,
archiveCreationOutput_location,
)
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
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CompleteMultipartUpload = CompleteMultipartUpload'
{
CompleteMultipartUpload -> Text
accountId :: Prelude.Text,
CompleteMultipartUpload -> Text
vaultName :: Prelude.Text,
CompleteMultipartUpload -> Text
uploadId :: Prelude.Text,
CompleteMultipartUpload -> Text
archiveSize :: Prelude.Text,
CompleteMultipartUpload -> Text
checksum :: Prelude.Text
}
deriving (CompleteMultipartUpload -> CompleteMultipartUpload -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CompleteMultipartUpload -> CompleteMultipartUpload -> Bool
$c/= :: CompleteMultipartUpload -> CompleteMultipartUpload -> Bool
== :: CompleteMultipartUpload -> CompleteMultipartUpload -> Bool
$c== :: CompleteMultipartUpload -> CompleteMultipartUpload -> Bool
Prelude.Eq, ReadPrec [CompleteMultipartUpload]
ReadPrec CompleteMultipartUpload
Int -> ReadS CompleteMultipartUpload
ReadS [CompleteMultipartUpload]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CompleteMultipartUpload]
$creadListPrec :: ReadPrec [CompleteMultipartUpload]
readPrec :: ReadPrec CompleteMultipartUpload
$creadPrec :: ReadPrec CompleteMultipartUpload
readList :: ReadS [CompleteMultipartUpload]
$creadList :: ReadS [CompleteMultipartUpload]
readsPrec :: Int -> ReadS CompleteMultipartUpload
$creadsPrec :: Int -> ReadS CompleteMultipartUpload
Prelude.Read, Int -> CompleteMultipartUpload -> ShowS
[CompleteMultipartUpload] -> ShowS
CompleteMultipartUpload -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CompleteMultipartUpload] -> ShowS
$cshowList :: [CompleteMultipartUpload] -> ShowS
show :: CompleteMultipartUpload -> String
$cshow :: CompleteMultipartUpload -> String
showsPrec :: Int -> CompleteMultipartUpload -> ShowS
$cshowsPrec :: Int -> CompleteMultipartUpload -> ShowS
Prelude.Show, forall x. Rep CompleteMultipartUpload x -> CompleteMultipartUpload
forall x. CompleteMultipartUpload -> Rep CompleteMultipartUpload x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CompleteMultipartUpload x -> CompleteMultipartUpload
$cfrom :: forall x. CompleteMultipartUpload -> Rep CompleteMultipartUpload x
Prelude.Generic)
newCompleteMultipartUpload ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
CompleteMultipartUpload
newCompleteMultipartUpload :: Text -> Text -> Text -> Text -> Text -> CompleteMultipartUpload
newCompleteMultipartUpload
Text
pAccountId_
Text
pVaultName_
Text
pUploadId_
Text
pArchiveSize_
Text
pChecksum_ =
CompleteMultipartUpload'
{ $sel:accountId:CompleteMultipartUpload' :: Text
accountId = Text
pAccountId_,
$sel:vaultName:CompleteMultipartUpload' :: Text
vaultName = Text
pVaultName_,
$sel:uploadId:CompleteMultipartUpload' :: Text
uploadId = Text
pUploadId_,
$sel:archiveSize:CompleteMultipartUpload' :: Text
archiveSize = Text
pArchiveSize_,
$sel:checksum:CompleteMultipartUpload' :: Text
checksum = Text
pChecksum_
}
completeMultipartUpload_accountId :: Lens.Lens' CompleteMultipartUpload Prelude.Text
completeMultipartUpload_accountId :: Lens' CompleteMultipartUpload Text
completeMultipartUpload_accountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CompleteMultipartUpload' {Text
accountId :: Text
$sel:accountId:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
accountId} -> Text
accountId) (\s :: CompleteMultipartUpload
s@CompleteMultipartUpload' {} Text
a -> CompleteMultipartUpload
s {$sel:accountId:CompleteMultipartUpload' :: Text
accountId = Text
a} :: CompleteMultipartUpload)
completeMultipartUpload_vaultName :: Lens.Lens' CompleteMultipartUpload Prelude.Text
completeMultipartUpload_vaultName :: Lens' CompleteMultipartUpload Text
completeMultipartUpload_vaultName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CompleteMultipartUpload' {Text
vaultName :: Text
$sel:vaultName:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
vaultName} -> Text
vaultName) (\s :: CompleteMultipartUpload
s@CompleteMultipartUpload' {} Text
a -> CompleteMultipartUpload
s {$sel:vaultName:CompleteMultipartUpload' :: Text
vaultName = Text
a} :: CompleteMultipartUpload)
completeMultipartUpload_uploadId :: Lens.Lens' CompleteMultipartUpload Prelude.Text
completeMultipartUpload_uploadId :: Lens' CompleteMultipartUpload Text
completeMultipartUpload_uploadId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CompleteMultipartUpload' {Text
uploadId :: Text
$sel:uploadId:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
uploadId} -> Text
uploadId) (\s :: CompleteMultipartUpload
s@CompleteMultipartUpload' {} Text
a -> CompleteMultipartUpload
s {$sel:uploadId:CompleteMultipartUpload' :: Text
uploadId = Text
a} :: CompleteMultipartUpload)
completeMultipartUpload_archiveSize :: Lens.Lens' CompleteMultipartUpload Prelude.Text
completeMultipartUpload_archiveSize :: Lens' CompleteMultipartUpload Text
completeMultipartUpload_archiveSize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CompleteMultipartUpload' {Text
archiveSize :: Text
$sel:archiveSize:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
archiveSize} -> Text
archiveSize) (\s :: CompleteMultipartUpload
s@CompleteMultipartUpload' {} Text
a -> CompleteMultipartUpload
s {$sel:archiveSize:CompleteMultipartUpload' :: Text
archiveSize = Text
a} :: CompleteMultipartUpload)
completeMultipartUpload_checksum :: Lens.Lens' CompleteMultipartUpload Prelude.Text
completeMultipartUpload_checksum :: Lens' CompleteMultipartUpload Text
completeMultipartUpload_checksum = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CompleteMultipartUpload' {Text
checksum :: Text
$sel:checksum:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
checksum} -> Text
checksum) (\s :: CompleteMultipartUpload
s@CompleteMultipartUpload' {} Text
a -> CompleteMultipartUpload
s {$sel:checksum:CompleteMultipartUpload' :: Text
checksum = Text
a} :: CompleteMultipartUpload)
instance Core.AWSRequest CompleteMultipartUpload where
type
AWSResponse CompleteMultipartUpload =
ArchiveCreationOutput
request :: (Service -> Service)
-> CompleteMultipartUpload -> Request CompleteMultipartUpload
request Service -> Service
overrides =
forall a. ByteString -> Request a -> Request a
Request.glacierVersionHeader (Service -> ByteString
Core.version Service
defaultService)
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CompleteMultipartUpload
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CompleteMultipartUpload)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> () -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveEmpty
( \Int
s ResponseHeaders
h ()
x ->
Maybe Text -> Maybe Text -> Maybe Text -> ArchiveCreationOutput
ArchiveCreationOutput'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"x-amz-archive-id")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"x-amz-sha256-tree-hash")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"Location")
)
instance Prelude.Hashable CompleteMultipartUpload where
hashWithSalt :: Int -> CompleteMultipartUpload -> Int
hashWithSalt Int
_salt CompleteMultipartUpload' {Text
checksum :: Text
archiveSize :: Text
uploadId :: Text
vaultName :: Text
accountId :: Text
$sel:checksum:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:archiveSize:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:uploadId:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:vaultName:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:accountId:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
accountId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
vaultName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
uploadId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
archiveSize
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
checksum
instance Prelude.NFData CompleteMultipartUpload where
rnf :: CompleteMultipartUpload -> ()
rnf CompleteMultipartUpload' {Text
checksum :: Text
archiveSize :: Text
uploadId :: Text
vaultName :: Text
accountId :: Text
$sel:checksum:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:archiveSize:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:uploadId:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:vaultName:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:accountId:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
accountId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
vaultName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
uploadId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
archiveSize
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
checksum
instance Data.ToHeaders CompleteMultipartUpload where
toHeaders :: CompleteMultipartUpload -> ResponseHeaders
toHeaders CompleteMultipartUpload' {Text
checksum :: Text
archiveSize :: Text
uploadId :: Text
vaultName :: Text
accountId :: Text
$sel:checksum:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:archiveSize:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:uploadId:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:vaultName:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:accountId:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"x-amz-archive-size" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Text
archiveSize,
HeaderName
"x-amz-sha256-tree-hash" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Text
checksum
]
instance Data.ToJSON CompleteMultipartUpload where
toJSON :: CompleteMultipartUpload -> Value
toJSON = forall a b. a -> b -> a
Prelude.const (Object -> Value
Data.Object forall a. Monoid a => a
Prelude.mempty)
instance Data.ToPath CompleteMultipartUpload where
toPath :: CompleteMultipartUpload -> ByteString
toPath CompleteMultipartUpload' {Text
checksum :: Text
archiveSize :: Text
uploadId :: Text
vaultName :: Text
accountId :: Text
$sel:checksum:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:archiveSize:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:uploadId:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:vaultName:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
$sel:accountId:CompleteMultipartUpload' :: CompleteMultipartUpload -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
accountId,
ByteString
"/vaults/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
vaultName,
ByteString
"/multipart-uploads/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
uploadId
]
instance Data.ToQuery CompleteMultipartUpload where
toQuery :: CompleteMultipartUpload -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty