{-# 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.GetVaultLock -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- This operation retrieves the following attributes from the 'lock-policy' subresource set on the specified vault: -- -- - The vault lock policy set on the vault. -- -- - The state of the vault lock, which is either 'InProgess' or 'Locked'. -- -- - When the lock ID expires. The lock ID is used to complete the vault locking process. -- -- - When the vault lock was initiated and put into the 'InProgress' state. -- -- A vault lock is put into the 'InProgress' state by calling < InitiateVaultLock>. A vault lock is put into the 'Locked' state by calling < CompleteVaultLock>. You can abort the vault locking process by calling < AbortVaultLock>. For more information about the vault locking process, . -- -- If there is no vault lock policy set on the vault, the operation returns a '404 Not found' error. For more information about vault lock policies, . module Network.AWS.Glacier.GetVaultLock ( -- * Creating a Request getVaultLock , GetVaultLock -- * Request Lenses , gvlAccountId , gvlVaultName -- * Destructuring the Response , getVaultLockResponse , GetVaultLockResponse -- * Response Lenses , gvlrsState , gvlrsExpirationDate , gvlrsCreationDate , gvlrsPolicy , gvlrsResponseStatus ) 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 -- | The input values for 'GetVaultLock'. -- -- /See:/ 'getVaultLock' smart constructor. data GetVaultLock = GetVaultLock' { _gvlAccountId :: !Text , _gvlVaultName :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'GetVaultLock' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gvlAccountId' -- -- * 'gvlVaultName' getVaultLock :: Text -- ^ 'gvlAccountId' -> Text -- ^ 'gvlVaultName' -> GetVaultLock getVaultLock pAccountId_ pVaultName_ = GetVaultLock' { _gvlAccountId = pAccountId_ , _gvlVaultName = 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. gvlAccountId :: Lens' GetVaultLock Text gvlAccountId = lens _gvlAccountId (\ s a -> s{_gvlAccountId = a}); -- | The name of the vault. gvlVaultName :: Lens' GetVaultLock Text gvlVaultName = lens _gvlVaultName (\ s a -> s{_gvlVaultName = a}); instance AWSRequest GetVaultLock where type Rs GetVaultLock = GetVaultLockResponse request = get glacier response = receiveJSON (\ s h x -> GetVaultLockResponse' <$> (x .?> "State") <*> (x .?> "ExpirationDate") <*> (x .?> "CreationDate") <*> (x .?> "Policy") <*> (pure (fromEnum s))) instance Hashable GetVaultLock instance NFData GetVaultLock instance ToHeaders GetVaultLock where toHeaders = const mempty instance ToPath GetVaultLock where toPath GetVaultLock'{..} = mconcat ["/", toBS _gvlAccountId, "/vaults/", toBS _gvlVaultName, "/lock-policy"] instance ToQuery GetVaultLock where toQuery = const mempty -- | Contains the Amazon Glacier response to your request. -- -- /See:/ 'getVaultLockResponse' smart constructor. data GetVaultLockResponse = GetVaultLockResponse' { _gvlrsState :: !(Maybe Text) , _gvlrsExpirationDate :: !(Maybe Text) , _gvlrsCreationDate :: !(Maybe Text) , _gvlrsPolicy :: !(Maybe Text) , _gvlrsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'GetVaultLockResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gvlrsState' -- -- * 'gvlrsExpirationDate' -- -- * 'gvlrsCreationDate' -- -- * 'gvlrsPolicy' -- -- * 'gvlrsResponseStatus' getVaultLockResponse :: Int -- ^ 'gvlrsResponseStatus' -> GetVaultLockResponse getVaultLockResponse pResponseStatus_ = GetVaultLockResponse' { _gvlrsState = Nothing , _gvlrsExpirationDate = Nothing , _gvlrsCreationDate = Nothing , _gvlrsPolicy = Nothing , _gvlrsResponseStatus = pResponseStatus_ } -- | The state of the vault lock. 'InProgress' or 'Locked'. gvlrsState :: Lens' GetVaultLockResponse (Maybe Text) gvlrsState = lens _gvlrsState (\ s a -> s{_gvlrsState = a}); -- | The UTC date and time at which the lock ID expires. This value can be 'null' if the vault lock is in a 'Locked' state. gvlrsExpirationDate :: Lens' GetVaultLockResponse (Maybe Text) gvlrsExpirationDate = lens _gvlrsExpirationDate (\ s a -> s{_gvlrsExpirationDate = a}); -- | The UTC date and time at which the vault lock was put into the 'InProgress' state. gvlrsCreationDate :: Lens' GetVaultLockResponse (Maybe Text) gvlrsCreationDate = lens _gvlrsCreationDate (\ s a -> s{_gvlrsCreationDate = a}); -- | The vault lock policy as a JSON string, which uses \"\\\" as an escape character. gvlrsPolicy :: Lens' GetVaultLockResponse (Maybe Text) gvlrsPolicy = lens _gvlrsPolicy (\ s a -> s{_gvlrsPolicy = a}); -- | The response status code. gvlrsResponseStatus :: Lens' GetVaultLockResponse Int gvlrsResponseStatus = lens _gvlrsResponseStatus (\ s a -> s{_gvlrsResponseStatus = a}); instance NFData GetVaultLockResponse