{-# 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.InitiateVaultLock
(
InitiateVaultLock (..),
newInitiateVaultLock,
initiateVaultLock_policy,
initiateVaultLock_accountId,
initiateVaultLock_vaultName,
InitiateVaultLockResponse (..),
newInitiateVaultLockResponse,
initiateVaultLockResponse_lockId,
initiateVaultLockResponse_httpStatus,
)
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 InitiateVaultLock = InitiateVaultLock'
{
InitiateVaultLock -> Maybe VaultLockPolicy
policy :: Prelude.Maybe VaultLockPolicy,
InitiateVaultLock -> Text
accountId :: Prelude.Text,
InitiateVaultLock -> Text
vaultName :: Prelude.Text
}
deriving (InitiateVaultLock -> InitiateVaultLock -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InitiateVaultLock -> InitiateVaultLock -> Bool
$c/= :: InitiateVaultLock -> InitiateVaultLock -> Bool
== :: InitiateVaultLock -> InitiateVaultLock -> Bool
$c== :: InitiateVaultLock -> InitiateVaultLock -> Bool
Prelude.Eq, ReadPrec [InitiateVaultLock]
ReadPrec InitiateVaultLock
Int -> ReadS InitiateVaultLock
ReadS [InitiateVaultLock]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InitiateVaultLock]
$creadListPrec :: ReadPrec [InitiateVaultLock]
readPrec :: ReadPrec InitiateVaultLock
$creadPrec :: ReadPrec InitiateVaultLock
readList :: ReadS [InitiateVaultLock]
$creadList :: ReadS [InitiateVaultLock]
readsPrec :: Int -> ReadS InitiateVaultLock
$creadsPrec :: Int -> ReadS InitiateVaultLock
Prelude.Read, Int -> InitiateVaultLock -> ShowS
[InitiateVaultLock] -> ShowS
InitiateVaultLock -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InitiateVaultLock] -> ShowS
$cshowList :: [InitiateVaultLock] -> ShowS
show :: InitiateVaultLock -> String
$cshow :: InitiateVaultLock -> String
showsPrec :: Int -> InitiateVaultLock -> ShowS
$cshowsPrec :: Int -> InitiateVaultLock -> ShowS
Prelude.Show, forall x. Rep InitiateVaultLock x -> InitiateVaultLock
forall x. InitiateVaultLock -> Rep InitiateVaultLock x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InitiateVaultLock x -> InitiateVaultLock
$cfrom :: forall x. InitiateVaultLock -> Rep InitiateVaultLock x
Prelude.Generic)
newInitiateVaultLock ::
Prelude.Text ->
Prelude.Text ->
InitiateVaultLock
newInitiateVaultLock :: Text -> Text -> InitiateVaultLock
newInitiateVaultLock Text
pAccountId_ Text
pVaultName_ =
InitiateVaultLock'
{ $sel:policy:InitiateVaultLock' :: Maybe VaultLockPolicy
policy = forall a. Maybe a
Prelude.Nothing,
$sel:accountId:InitiateVaultLock' :: Text
accountId = Text
pAccountId_,
$sel:vaultName:InitiateVaultLock' :: Text
vaultName = Text
pVaultName_
}
initiateVaultLock_policy :: Lens.Lens' InitiateVaultLock (Prelude.Maybe VaultLockPolicy)
initiateVaultLock_policy :: Lens' InitiateVaultLock (Maybe VaultLockPolicy)
initiateVaultLock_policy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitiateVaultLock' {Maybe VaultLockPolicy
policy :: Maybe VaultLockPolicy
$sel:policy:InitiateVaultLock' :: InitiateVaultLock -> Maybe VaultLockPolicy
policy} -> Maybe VaultLockPolicy
policy) (\s :: InitiateVaultLock
s@InitiateVaultLock' {} Maybe VaultLockPolicy
a -> InitiateVaultLock
s {$sel:policy:InitiateVaultLock' :: Maybe VaultLockPolicy
policy = Maybe VaultLockPolicy
a} :: InitiateVaultLock)
initiateVaultLock_accountId :: Lens.Lens' InitiateVaultLock Prelude.Text
initiateVaultLock_accountId :: Lens' InitiateVaultLock Text
initiateVaultLock_accountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitiateVaultLock' {Text
accountId :: Text
$sel:accountId:InitiateVaultLock' :: InitiateVaultLock -> Text
accountId} -> Text
accountId) (\s :: InitiateVaultLock
s@InitiateVaultLock' {} Text
a -> InitiateVaultLock
s {$sel:accountId:InitiateVaultLock' :: Text
accountId = Text
a} :: InitiateVaultLock)
initiateVaultLock_vaultName :: Lens.Lens' InitiateVaultLock Prelude.Text
initiateVaultLock_vaultName :: Lens' InitiateVaultLock Text
initiateVaultLock_vaultName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitiateVaultLock' {Text
vaultName :: Text
$sel:vaultName:InitiateVaultLock' :: InitiateVaultLock -> Text
vaultName} -> Text
vaultName) (\s :: InitiateVaultLock
s@InitiateVaultLock' {} Text
a -> InitiateVaultLock
s {$sel:vaultName:InitiateVaultLock' :: Text
vaultName = Text
a} :: InitiateVaultLock)
instance Core.AWSRequest InitiateVaultLock where
type
AWSResponse InitiateVaultLock =
InitiateVaultLockResponse
request :: (Service -> Service)
-> InitiateVaultLock -> Request InitiateVaultLock
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 InitiateVaultLock
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse InitiateVaultLock)))
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 -> Int -> InitiateVaultLockResponse
InitiateVaultLockResponse'
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-lock-id")
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 InitiateVaultLock where
hashWithSalt :: Int -> InitiateVaultLock -> Int
hashWithSalt Int
_salt InitiateVaultLock' {Maybe VaultLockPolicy
Text
vaultName :: Text
accountId :: Text
policy :: Maybe VaultLockPolicy
$sel:vaultName:InitiateVaultLock' :: InitiateVaultLock -> Text
$sel:accountId:InitiateVaultLock' :: InitiateVaultLock -> Text
$sel:policy:InitiateVaultLock' :: InitiateVaultLock -> Maybe VaultLockPolicy
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VaultLockPolicy
policy
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 InitiateVaultLock where
rnf :: InitiateVaultLock -> ()
rnf InitiateVaultLock' {Maybe VaultLockPolicy
Text
vaultName :: Text
accountId :: Text
policy :: Maybe VaultLockPolicy
$sel:vaultName:InitiateVaultLock' :: InitiateVaultLock -> Text
$sel:accountId:InitiateVaultLock' :: InitiateVaultLock -> Text
$sel:policy:InitiateVaultLock' :: InitiateVaultLock -> Maybe VaultLockPolicy
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe VaultLockPolicy
policy
seq :: forall a b. a -> b -> b
`Prelude.seq` 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 InitiateVaultLock where
toHeaders :: InitiateVaultLock -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToJSON InitiateVaultLock where
toJSON :: InitiateVaultLock -> Value
toJSON InitiateVaultLock' {Maybe VaultLockPolicy
Text
vaultName :: Text
accountId :: Text
policy :: Maybe VaultLockPolicy
$sel:vaultName:InitiateVaultLock' :: InitiateVaultLock -> Text
$sel:accountId:InitiateVaultLock' :: InitiateVaultLock -> Text
$sel:policy:InitiateVaultLock' :: InitiateVaultLock -> Maybe VaultLockPolicy
..} = forall a. ToJSON a => a -> Value
Data.toJSON Maybe VaultLockPolicy
policy
instance Data.ToPath InitiateVaultLock where
toPath :: InitiateVaultLock -> ByteString
toPath InitiateVaultLock' {Maybe VaultLockPolicy
Text
vaultName :: Text
accountId :: Text
policy :: Maybe VaultLockPolicy
$sel:vaultName:InitiateVaultLock' :: InitiateVaultLock -> Text
$sel:accountId:InitiateVaultLock' :: InitiateVaultLock -> Text
$sel:policy:InitiateVaultLock' :: InitiateVaultLock -> Maybe VaultLockPolicy
..} =
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
"/lock-policy"
]
instance Data.ToQuery InitiateVaultLock where
toQuery :: InitiateVaultLock -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data InitiateVaultLockResponse = InitiateVaultLockResponse'
{
InitiateVaultLockResponse -> Maybe Text
lockId :: Prelude.Maybe Prelude.Text,
InitiateVaultLockResponse -> Int
httpStatus :: Prelude.Int
}
deriving (InitiateVaultLockResponse -> InitiateVaultLockResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InitiateVaultLockResponse -> InitiateVaultLockResponse -> Bool
$c/= :: InitiateVaultLockResponse -> InitiateVaultLockResponse -> Bool
== :: InitiateVaultLockResponse -> InitiateVaultLockResponse -> Bool
$c== :: InitiateVaultLockResponse -> InitiateVaultLockResponse -> Bool
Prelude.Eq, ReadPrec [InitiateVaultLockResponse]
ReadPrec InitiateVaultLockResponse
Int -> ReadS InitiateVaultLockResponse
ReadS [InitiateVaultLockResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InitiateVaultLockResponse]
$creadListPrec :: ReadPrec [InitiateVaultLockResponse]
readPrec :: ReadPrec InitiateVaultLockResponse
$creadPrec :: ReadPrec InitiateVaultLockResponse
readList :: ReadS [InitiateVaultLockResponse]
$creadList :: ReadS [InitiateVaultLockResponse]
readsPrec :: Int -> ReadS InitiateVaultLockResponse
$creadsPrec :: Int -> ReadS InitiateVaultLockResponse
Prelude.Read, Int -> InitiateVaultLockResponse -> ShowS
[InitiateVaultLockResponse] -> ShowS
InitiateVaultLockResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InitiateVaultLockResponse] -> ShowS
$cshowList :: [InitiateVaultLockResponse] -> ShowS
show :: InitiateVaultLockResponse -> String
$cshow :: InitiateVaultLockResponse -> String
showsPrec :: Int -> InitiateVaultLockResponse -> ShowS
$cshowsPrec :: Int -> InitiateVaultLockResponse -> ShowS
Prelude.Show, forall x.
Rep InitiateVaultLockResponse x -> InitiateVaultLockResponse
forall x.
InitiateVaultLockResponse -> Rep InitiateVaultLockResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep InitiateVaultLockResponse x -> InitiateVaultLockResponse
$cfrom :: forall x.
InitiateVaultLockResponse -> Rep InitiateVaultLockResponse x
Prelude.Generic)
newInitiateVaultLockResponse ::
Prelude.Int ->
InitiateVaultLockResponse
newInitiateVaultLockResponse :: Int -> InitiateVaultLockResponse
newInitiateVaultLockResponse Int
pHttpStatus_ =
InitiateVaultLockResponse'
{ $sel:lockId:InitiateVaultLockResponse' :: Maybe Text
lockId =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:InitiateVaultLockResponse' :: Int
httpStatus = Int
pHttpStatus_
}
initiateVaultLockResponse_lockId :: Lens.Lens' InitiateVaultLockResponse (Prelude.Maybe Prelude.Text)
initiateVaultLockResponse_lockId :: Lens' InitiateVaultLockResponse (Maybe Text)
initiateVaultLockResponse_lockId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitiateVaultLockResponse' {Maybe Text
lockId :: Maybe Text
$sel:lockId:InitiateVaultLockResponse' :: InitiateVaultLockResponse -> Maybe Text
lockId} -> Maybe Text
lockId) (\s :: InitiateVaultLockResponse
s@InitiateVaultLockResponse' {} Maybe Text
a -> InitiateVaultLockResponse
s {$sel:lockId:InitiateVaultLockResponse' :: Maybe Text
lockId = Maybe Text
a} :: InitiateVaultLockResponse)
initiateVaultLockResponse_httpStatus :: Lens.Lens' InitiateVaultLockResponse Prelude.Int
initiateVaultLockResponse_httpStatus :: Lens' InitiateVaultLockResponse Int
initiateVaultLockResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitiateVaultLockResponse' {Int
httpStatus :: Int
$sel:httpStatus:InitiateVaultLockResponse' :: InitiateVaultLockResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: InitiateVaultLockResponse
s@InitiateVaultLockResponse' {} Int
a -> InitiateVaultLockResponse
s {$sel:httpStatus:InitiateVaultLockResponse' :: Int
httpStatus = Int
a} :: InitiateVaultLockResponse)
instance Prelude.NFData InitiateVaultLockResponse where
rnf :: InitiateVaultLockResponse -> ()
rnf InitiateVaultLockResponse' {Int
Maybe Text
httpStatus :: Int
lockId :: Maybe Text
$sel:httpStatus:InitiateVaultLockResponse' :: InitiateVaultLockResponse -> Int
$sel:lockId:InitiateVaultLockResponse' :: InitiateVaultLockResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lockId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus