{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.Glacier.SetVaultAccessPolicy
(
setVaultAccessPolicy
, SetVaultAccessPolicy
, svapPolicy
, svapAccountId
, svapVaultName
, setVaultAccessPolicyResponse
, SetVaultAccessPolicyResponse
) where
import Network.AWS.Glacier.Types
import Network.AWS.Glacier.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data SetVaultAccessPolicy = SetVaultAccessPolicy'
{ _svapPolicy :: !(Maybe VaultAccessPolicy)
, _svapAccountId :: !Text
, _svapVaultName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
setVaultAccessPolicy
:: Text
-> Text
-> SetVaultAccessPolicy
setVaultAccessPolicy pAccountId_ pVaultName_ =
SetVaultAccessPolicy'
{ _svapPolicy = Nothing
, _svapAccountId = pAccountId_
, _svapVaultName = pVaultName_
}
svapPolicy :: Lens' SetVaultAccessPolicy (Maybe VaultAccessPolicy)
svapPolicy = lens _svapPolicy (\ s a -> s{_svapPolicy = a})
svapAccountId :: Lens' SetVaultAccessPolicy Text
svapAccountId = lens _svapAccountId (\ s a -> s{_svapAccountId = a})
svapVaultName :: Lens' SetVaultAccessPolicy Text
svapVaultName = lens _svapVaultName (\ s a -> s{_svapVaultName = a})
instance AWSRequest SetVaultAccessPolicy where
type Rs SetVaultAccessPolicy =
SetVaultAccessPolicyResponse
request = putJSON glacier
response = receiveNull SetVaultAccessPolicyResponse'
instance Hashable SetVaultAccessPolicy where
instance NFData SetVaultAccessPolicy where
instance ToHeaders SetVaultAccessPolicy where
toHeaders = const mempty
instance ToJSON SetVaultAccessPolicy where
toJSON SetVaultAccessPolicy'{..}
= object (catMaybes [("policy" .=) <$> _svapPolicy])
instance ToPath SetVaultAccessPolicy where
toPath SetVaultAccessPolicy'{..}
= mconcat
["/", toBS _svapAccountId, "/vaults/",
toBS _svapVaultName, "/access-policy"]
instance ToQuery SetVaultAccessPolicy where
toQuery = const mempty
data SetVaultAccessPolicyResponse =
SetVaultAccessPolicyResponse'
deriving (Eq, Read, Show, Data, Typeable, Generic)
setVaultAccessPolicyResponse
:: SetVaultAccessPolicyResponse
setVaultAccessPolicyResponse = SetVaultAccessPolicyResponse'
instance NFData SetVaultAccessPolicyResponse where