amazonka-snowball-1.4.5: gen/Network/AWS/Snowball/GetJobUnlockCode.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.Snowball.GetJobUnlockCode
-- 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)
--
-- Returns the @UnlockCode@ code value for the specified job. A particular @UnlockCode@ value can be accessed for up to 90 days after the associated job has been created.
--
--
-- The @UnlockCode@ value is a 29-character code with 25 alphanumeric characters and 4 hyphens. This code is used to decrypt the manifest file when it is passed along with the manifest to the Snowball through the Snowball client when the client is started for the first time.
--
-- As a best practice, we recommend that you don't save a copy of the @UnlockCode@ in the same location as the manifest file for that job. Saving these separately helps prevent unauthorized parties from gaining access to the Snowball associated with that job.
--
module Network.AWS.Snowball.GetJobUnlockCode
(
-- * Creating a Request
getJobUnlockCode
, GetJobUnlockCode
-- * Request Lenses
, gjucJobId
-- * Destructuring the Response
, getJobUnlockCodeResponse
, GetJobUnlockCodeResponse
-- * Response Lenses
, gjucrsUnlockCode
, gjucrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.Snowball.Types
import Network.AWS.Snowball.Types.Product
-- | /See:/ 'getJobUnlockCode' smart constructor.
newtype GetJobUnlockCode = GetJobUnlockCode'
{ _gjucJobId :: Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'GetJobUnlockCode' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gjucJobId' - The ID for the job that you want to get the @UnlockCode@ value for, for example @JID123e4567-e89b-12d3-a456-426655440000@ .
getJobUnlockCode
:: Text -- ^ 'gjucJobId'
-> GetJobUnlockCode
getJobUnlockCode pJobId_ =
GetJobUnlockCode'
{ _gjucJobId = pJobId_
}
-- | The ID for the job that you want to get the @UnlockCode@ value for, for example @JID123e4567-e89b-12d3-a456-426655440000@ .
gjucJobId :: Lens' GetJobUnlockCode Text
gjucJobId = lens _gjucJobId (\ s a -> s{_gjucJobId = a});
instance AWSRequest GetJobUnlockCode where
type Rs GetJobUnlockCode = GetJobUnlockCodeResponse
request = postJSON snowball
response
= receiveJSON
(\ s h x ->
GetJobUnlockCodeResponse' <$>
(x .?> "UnlockCode") <*> (pure (fromEnum s)))
instance Hashable GetJobUnlockCode
instance NFData GetJobUnlockCode
instance ToHeaders GetJobUnlockCode where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSIESnowballJobManagementService.GetJobUnlockCode"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetJobUnlockCode where
toJSON GetJobUnlockCode'{..}
= object (catMaybes [Just ("JobId" .= _gjucJobId)])
instance ToPath GetJobUnlockCode where
toPath = const "/"
instance ToQuery GetJobUnlockCode where
toQuery = const mempty
-- | /See:/ 'getJobUnlockCodeResponse' smart constructor.
data GetJobUnlockCodeResponse = GetJobUnlockCodeResponse'
{ _gjucrsUnlockCode :: !(Maybe Text)
, _gjucrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'GetJobUnlockCodeResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gjucrsUnlockCode' - The @UnlockCode@ value for the specified job. The @UnlockCode@ value can be accessed for up to 90 days after the job has been created.
--
-- * 'gjucrsResponseStatus' - -- | The response status code.
getJobUnlockCodeResponse
:: Int -- ^ 'gjucrsResponseStatus'
-> GetJobUnlockCodeResponse
getJobUnlockCodeResponse pResponseStatus_ =
GetJobUnlockCodeResponse'
{ _gjucrsUnlockCode = Nothing
, _gjucrsResponseStatus = pResponseStatus_
}
-- | The @UnlockCode@ value for the specified job. The @UnlockCode@ value can be accessed for up to 90 days after the job has been created.
gjucrsUnlockCode :: Lens' GetJobUnlockCodeResponse (Maybe Text)
gjucrsUnlockCode = lens _gjucrsUnlockCode (\ s a -> s{_gjucrsUnlockCode = a});
-- | -- | The response status code.
gjucrsResponseStatus :: Lens' GetJobUnlockCodeResponse Int
gjucrsResponseStatus = lens _gjucrsResponseStatus (\ s a -> s{_gjucrsResponseStatus = a});
instance NFData GetJobUnlockCodeResponse