{-# 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-2017 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' - 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 '@-@ ' (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 ('-') in the ID. -- -- * 'gvlVaultName' - The name of the vault. 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 '@-@ ' (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 ('-') 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 where instance NFData GetVaultLock where 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' - The state of the vault lock. @InProgress@ or @Locked@ . -- -- * 'gvlrsExpirationDate' - 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. -- -- * 'gvlrsCreationDate' - The UTC date and time at which the vault lock was put into the @InProgress@ state. -- -- * 'gvlrsPolicy' - The vault lock policy as a JSON string, which uses "\" as an escape character. -- -- * 'gvlrsResponseStatus' - -- | The response status code. 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 where