{-# 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.DescribeVault
(
DescribeVault (..),
newDescribeVault,
describeVault_accountId,
describeVault_vaultName,
DescribeVaultOutput (..),
newDescribeVaultOutput,
describeVaultOutput_creationDate,
describeVaultOutput_lastInventoryDate,
describeVaultOutput_numberOfArchives,
describeVaultOutput_sizeInBytes,
describeVaultOutput_vaultARN,
describeVaultOutput_vaultName,
)
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 DescribeVault = DescribeVault'
{
DescribeVault -> Text
accountId :: Prelude.Text,
DescribeVault -> Text
vaultName :: Prelude.Text
}
deriving (DescribeVault -> DescribeVault -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeVault -> DescribeVault -> Bool
$c/= :: DescribeVault -> DescribeVault -> Bool
== :: DescribeVault -> DescribeVault -> Bool
$c== :: DescribeVault -> DescribeVault -> Bool
Prelude.Eq, ReadPrec [DescribeVault]
ReadPrec DescribeVault
Int -> ReadS DescribeVault
ReadS [DescribeVault]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeVault]
$creadListPrec :: ReadPrec [DescribeVault]
readPrec :: ReadPrec DescribeVault
$creadPrec :: ReadPrec DescribeVault
readList :: ReadS [DescribeVault]
$creadList :: ReadS [DescribeVault]
readsPrec :: Int -> ReadS DescribeVault
$creadsPrec :: Int -> ReadS DescribeVault
Prelude.Read, Int -> DescribeVault -> ShowS
[DescribeVault] -> ShowS
DescribeVault -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeVault] -> ShowS
$cshowList :: [DescribeVault] -> ShowS
show :: DescribeVault -> String
$cshow :: DescribeVault -> String
showsPrec :: Int -> DescribeVault -> ShowS
$cshowsPrec :: Int -> DescribeVault -> ShowS
Prelude.Show, forall x. Rep DescribeVault x -> DescribeVault
forall x. DescribeVault -> Rep DescribeVault x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeVault x -> DescribeVault
$cfrom :: forall x. DescribeVault -> Rep DescribeVault x
Prelude.Generic)
newDescribeVault ::
Prelude.Text ->
Prelude.Text ->
DescribeVault
newDescribeVault :: Text -> Text -> DescribeVault
newDescribeVault Text
pAccountId_ Text
pVaultName_ =
DescribeVault'
{ $sel:accountId:DescribeVault' :: Text
accountId = Text
pAccountId_,
$sel:vaultName:DescribeVault' :: Text
vaultName = Text
pVaultName_
}
describeVault_accountId :: Lens.Lens' DescribeVault Prelude.Text
describeVault_accountId :: Lens' DescribeVault Text
describeVault_accountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeVault' {Text
accountId :: Text
$sel:accountId:DescribeVault' :: DescribeVault -> Text
accountId} -> Text
accountId) (\s :: DescribeVault
s@DescribeVault' {} Text
a -> DescribeVault
s {$sel:accountId:DescribeVault' :: Text
accountId = Text
a} :: DescribeVault)
describeVault_vaultName :: Lens.Lens' DescribeVault Prelude.Text
describeVault_vaultName :: Lens' DescribeVault Text
describeVault_vaultName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeVault' {Text
vaultName :: Text
$sel:vaultName:DescribeVault' :: DescribeVault -> Text
vaultName} -> Text
vaultName) (\s :: DescribeVault
s@DescribeVault' {} Text
a -> DescribeVault
s {$sel:vaultName:DescribeVault' :: Text
vaultName = Text
a} :: DescribeVault)
instance Core.AWSRequest DescribeVault where
type AWSResponse DescribeVault = DescribeVaultOutput
request :: (Service -> Service) -> DescribeVault -> Request DescribeVault
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 => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeVault
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeVault)))
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 -> forall a. FromJSON a => Object -> Either String a
Data.eitherParseJSON Object
x)
instance Prelude.Hashable DescribeVault where
hashWithSalt :: Int -> DescribeVault -> Int
hashWithSalt Int
_salt DescribeVault' {Text
vaultName :: Text
accountId :: Text
$sel:vaultName:DescribeVault' :: DescribeVault -> Text
$sel:accountId:DescribeVault' :: DescribeVault -> 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
instance Prelude.NFData DescribeVault where
rnf :: DescribeVault -> ()
rnf DescribeVault' {Text
vaultName :: Text
accountId :: Text
$sel:vaultName:DescribeVault' :: DescribeVault -> Text
$sel:accountId:DescribeVault' :: DescribeVault -> 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
instance Data.ToHeaders DescribeVault where
toHeaders :: DescribeVault -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath DescribeVault where
toPath :: DescribeVault -> ByteString
toPath DescribeVault' {Text
vaultName :: Text
accountId :: Text
$sel:vaultName:DescribeVault' :: DescribeVault -> Text
$sel:accountId:DescribeVault' :: DescribeVault -> 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
]
instance Data.ToQuery DescribeVault where
toQuery :: DescribeVault -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty