amazonka-glacier-1.4.3: gen/Network/AWS/Glacier/GetVaultAccessPolicy.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.Glacier.GetVaultAccessPolicy
-- Copyright : (c) 2013-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- This operation retrieves the 'access-policy' subresource set on the vault; for more information on setting this subresource, see <http://docs.aws.amazon.com/amazonglacier/latest/dev/api-SetVaultAccessPolicy.html Set Vault Access Policy (PUT access-policy)>. If there is no access policy set on the vault, the operation returns a '404 Not found' error. For more information about vault access policies, see <http://docs.aws.amazon.com/amazonglacier/latest/dev/vault-access-policy.html Amazon Glacier Access Control with Vault Access Policies>.
module Network.AWS.Glacier.GetVaultAccessPolicy
(
-- * Creating a Request
getVaultAccessPolicy
, GetVaultAccessPolicy
-- * Request Lenses
, gvapAccountId
, gvapVaultName
-- * Destructuring the Response
, getVaultAccessPolicyResponse
, GetVaultAccessPolicyResponse
-- * Response Lenses
, gvaprsPolicy
, gvaprsResponseStatus
) 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
-- | Input for GetVaultAccessPolicy.
--
-- /See:/ 'getVaultAccessPolicy' smart constructor.
data GetVaultAccessPolicy = GetVaultAccessPolicy'
{ _gvapAccountId :: !Text
, _gvapVaultName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'GetVaultAccessPolicy' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gvapAccountId'
--
-- * 'gvapVaultName'
getVaultAccessPolicy
:: Text -- ^ 'gvapAccountId'
-> Text -- ^ 'gvapVaultName'
-> GetVaultAccessPolicy
getVaultAccessPolicy pAccountId_ pVaultName_ =
GetVaultAccessPolicy'
{ _gvapAccountId = pAccountId_
, _gvapVaultName = pVaultName_
}
-- | The 'AccountId' value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos'-'apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.
gvapAccountId :: Lens' GetVaultAccessPolicy Text
gvapAccountId = lens _gvapAccountId (\ s a -> s{_gvapAccountId = a});
-- | The name of the vault.
gvapVaultName :: Lens' GetVaultAccessPolicy Text
gvapVaultName = lens _gvapVaultName (\ s a -> s{_gvapVaultName = a});
instance AWSRequest GetVaultAccessPolicy where
type Rs GetVaultAccessPolicy =
GetVaultAccessPolicyResponse
request = get glacier
response
= receiveJSON
(\ s h x ->
GetVaultAccessPolicyResponse' <$>
(eitherParseJSON x) <*> (pure (fromEnum s)))
instance Hashable GetVaultAccessPolicy
instance NFData GetVaultAccessPolicy
instance ToHeaders GetVaultAccessPolicy where
toHeaders = const mempty
instance ToPath GetVaultAccessPolicy where
toPath GetVaultAccessPolicy'{..}
= mconcat
["/", toBS _gvapAccountId, "/vaults/",
toBS _gvapVaultName, "/access-policy"]
instance ToQuery GetVaultAccessPolicy where
toQuery = const mempty
-- | Output for GetVaultAccessPolicy.
--
-- /See:/ 'getVaultAccessPolicyResponse' smart constructor.
data GetVaultAccessPolicyResponse = GetVaultAccessPolicyResponse'
{ _gvaprsPolicy :: !(Maybe VaultAccessPolicy)
, _gvaprsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'GetVaultAccessPolicyResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gvaprsPolicy'
--
-- * 'gvaprsResponseStatus'
getVaultAccessPolicyResponse
:: Int -- ^ 'gvaprsResponseStatus'
-> GetVaultAccessPolicyResponse
getVaultAccessPolicyResponse pResponseStatus_ =
GetVaultAccessPolicyResponse'
{ _gvaprsPolicy = Nothing
, _gvaprsResponseStatus = pResponseStatus_
}
-- | Contains the returned vault access policy as a JSON string.
gvaprsPolicy :: Lens' GetVaultAccessPolicyResponse (Maybe VaultAccessPolicy)
gvaprsPolicy = lens _gvaprsPolicy (\ s a -> s{_gvaprsPolicy = a});
-- | The response status code.
gvaprsResponseStatus :: Lens' GetVaultAccessPolicyResponse Int
gvaprsResponseStatus = lens _gvaprsResponseStatus (\ s a -> s{_gvaprsResponseStatus = a});
instance NFData GetVaultAccessPolicyResponse