{-# 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.StorageGateway.RetrieveTapeArchive
(
retrieveTapeArchive
, RetrieveTapeArchive
, rtaTapeARN
, rtaGatewayARN
, retrieveTapeArchiveResponse
, RetrieveTapeArchiveResponse
, rtarsTapeARN
, rtarsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.StorageGateway.Types
import Network.AWS.StorageGateway.Types.Product
data RetrieveTapeArchive = RetrieveTapeArchive'
{ _rtaTapeARN :: !Text
, _rtaGatewayARN :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
retrieveTapeArchive
:: Text
-> Text
-> RetrieveTapeArchive
retrieveTapeArchive pTapeARN_ pGatewayARN_ =
RetrieveTapeArchive' {_rtaTapeARN = pTapeARN_, _rtaGatewayARN = pGatewayARN_}
rtaTapeARN :: Lens' RetrieveTapeArchive Text
rtaTapeARN = lens _rtaTapeARN (\ s a -> s{_rtaTapeARN = a})
rtaGatewayARN :: Lens' RetrieveTapeArchive Text
rtaGatewayARN = lens _rtaGatewayARN (\ s a -> s{_rtaGatewayARN = a})
instance AWSRequest RetrieveTapeArchive where
type Rs RetrieveTapeArchive =
RetrieveTapeArchiveResponse
request = postJSON storageGateway
response
= receiveJSON
(\ s h x ->
RetrieveTapeArchiveResponse' <$>
(x .?> "TapeARN") <*> (pure (fromEnum s)))
instance Hashable RetrieveTapeArchive where
instance NFData RetrieveTapeArchive where
instance ToHeaders RetrieveTapeArchive where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StorageGateway_20130630.RetrieveTapeArchive" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON RetrieveTapeArchive where
toJSON RetrieveTapeArchive'{..}
= object
(catMaybes
[Just ("TapeARN" .= _rtaTapeARN),
Just ("GatewayARN" .= _rtaGatewayARN)])
instance ToPath RetrieveTapeArchive where
toPath = const "/"
instance ToQuery RetrieveTapeArchive where
toQuery = const mempty
data RetrieveTapeArchiveResponse = RetrieveTapeArchiveResponse'
{ _rtarsTapeARN :: !(Maybe Text)
, _rtarsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
retrieveTapeArchiveResponse
:: Int
-> RetrieveTapeArchiveResponse
retrieveTapeArchiveResponse pResponseStatus_ =
RetrieveTapeArchiveResponse'
{_rtarsTapeARN = Nothing, _rtarsResponseStatus = pResponseStatus_}
rtarsTapeARN :: Lens' RetrieveTapeArchiveResponse (Maybe Text)
rtarsTapeARN = lens _rtarsTapeARN (\ s a -> s{_rtarsTapeARN = a})
rtarsResponseStatus :: Lens' RetrieveTapeArchiveResponse Int
rtarsResponseStatus = lens _rtarsResponseStatus (\ s a -> s{_rtarsResponseStatus = a})
instance NFData RetrieveTapeArchiveResponse where