module Network.AWS.StorageGateway.CancelArchival
(
CancelArchival
, cancelArchival
, caGatewayARN
, caTapeARN
, CancelArchivalResponse
, cancelArchivalResponse
, carTapeARN
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.StorageGateway.Types
import qualified GHC.Exts
data CancelArchival = CancelArchival
{ _caGatewayARN :: Text
, _caTapeARN :: Text
} deriving (Eq, Ord, Show)
cancelArchival :: Text
-> Text
-> CancelArchival
cancelArchival p1 p2 = CancelArchival
{ _caGatewayARN = p1
, _caTapeARN = p2
}
caGatewayARN :: Lens' CancelArchival Text
caGatewayARN = lens _caGatewayARN (\s a -> s { _caGatewayARN = a })
caTapeARN :: Lens' CancelArchival Text
caTapeARN = lens _caTapeARN (\s a -> s { _caTapeARN = a })
newtype CancelArchivalResponse = CancelArchivalResponse
{ _carTapeARN :: Maybe Text
} deriving (Eq, Ord, Show, Monoid)
cancelArchivalResponse :: CancelArchivalResponse
cancelArchivalResponse = CancelArchivalResponse
{ _carTapeARN = Nothing
}
carTapeARN :: Lens' CancelArchivalResponse (Maybe Text)
carTapeARN = lens _carTapeARN (\s a -> s { _carTapeARN = a })
instance ToPath CancelArchival where
toPath = const "/"
instance ToQuery CancelArchival where
toQuery = const mempty
instance ToHeaders CancelArchival
instance ToJSON CancelArchival where
toJSON CancelArchival{..} = object
[ "GatewayARN" .= _caGatewayARN
, "TapeARN" .= _caTapeARN
]
instance AWSRequest CancelArchival where
type Sv CancelArchival = StorageGateway
type Rs CancelArchival = CancelArchivalResponse
request = post "CancelArchival"
response = jsonResponse
instance FromJSON CancelArchivalResponse where
parseJSON = withObject "CancelArchivalResponse" $ \o -> CancelArchivalResponse
<$> o .:? "TapeARN"