{-# 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.CreateCachediSCSIVolume
(
createCachediSCSIVolume
, CreateCachediSCSIVolume
, ccscsivSourceVolumeARN
, ccscsivSnapshotId
, ccscsivGatewayARN
, ccscsivVolumeSizeInBytes
, ccscsivTargetName
, ccscsivNetworkInterfaceId
, ccscsivClientToken
, createCachediSCSIVolumeResponse
, CreateCachediSCSIVolumeResponse
, ccscsivrsTargetARN
, ccscsivrsVolumeARN
, ccscsivrsResponseStatus
) 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 CreateCachediSCSIVolume = CreateCachediSCSIVolume'
{ _ccscsivSourceVolumeARN :: !(Maybe Text)
, _ccscsivSnapshotId :: !(Maybe Text)
, _ccscsivGatewayARN :: !Text
, _ccscsivVolumeSizeInBytes :: !Integer
, _ccscsivTargetName :: !Text
, _ccscsivNetworkInterfaceId :: !Text
, _ccscsivClientToken :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createCachediSCSIVolume
:: Text
-> Integer
-> Text
-> Text
-> Text
-> CreateCachediSCSIVolume
createCachediSCSIVolume pGatewayARN_ pVolumeSizeInBytes_ pTargetName_ pNetworkInterfaceId_ pClientToken_ =
CreateCachediSCSIVolume'
{ _ccscsivSourceVolumeARN = Nothing
, _ccscsivSnapshotId = Nothing
, _ccscsivGatewayARN = pGatewayARN_
, _ccscsivVolumeSizeInBytes = pVolumeSizeInBytes_
, _ccscsivTargetName = pTargetName_
, _ccscsivNetworkInterfaceId = pNetworkInterfaceId_
, _ccscsivClientToken = pClientToken_
}
ccscsivSourceVolumeARN :: Lens' CreateCachediSCSIVolume (Maybe Text)
ccscsivSourceVolumeARN = lens _ccscsivSourceVolumeARN (\ s a -> s{_ccscsivSourceVolumeARN = a})
ccscsivSnapshotId :: Lens' CreateCachediSCSIVolume (Maybe Text)
ccscsivSnapshotId = lens _ccscsivSnapshotId (\ s a -> s{_ccscsivSnapshotId = a})
ccscsivGatewayARN :: Lens' CreateCachediSCSIVolume Text
ccscsivGatewayARN = lens _ccscsivGatewayARN (\ s a -> s{_ccscsivGatewayARN = a})
ccscsivVolumeSizeInBytes :: Lens' CreateCachediSCSIVolume Integer
ccscsivVolumeSizeInBytes = lens _ccscsivVolumeSizeInBytes (\ s a -> s{_ccscsivVolumeSizeInBytes = a})
ccscsivTargetName :: Lens' CreateCachediSCSIVolume Text
ccscsivTargetName = lens _ccscsivTargetName (\ s a -> s{_ccscsivTargetName = a})
ccscsivNetworkInterfaceId :: Lens' CreateCachediSCSIVolume Text
ccscsivNetworkInterfaceId = lens _ccscsivNetworkInterfaceId (\ s a -> s{_ccscsivNetworkInterfaceId = a})
ccscsivClientToken :: Lens' CreateCachediSCSIVolume Text
ccscsivClientToken = lens _ccscsivClientToken (\ s a -> s{_ccscsivClientToken = a})
instance AWSRequest CreateCachediSCSIVolume where
type Rs CreateCachediSCSIVolume =
CreateCachediSCSIVolumeResponse
request = postJSON storageGateway
response
= receiveJSON
(\ s h x ->
CreateCachediSCSIVolumeResponse' <$>
(x .?> "TargetARN") <*> (x .?> "VolumeARN") <*>
(pure (fromEnum s)))
instance Hashable CreateCachediSCSIVolume where
instance NFData CreateCachediSCSIVolume where
instance ToHeaders CreateCachediSCSIVolume where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StorageGateway_20130630.CreateCachediSCSIVolume" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateCachediSCSIVolume where
toJSON CreateCachediSCSIVolume'{..}
= object
(catMaybes
[("SourceVolumeARN" .=) <$> _ccscsivSourceVolumeARN,
("SnapshotId" .=) <$> _ccscsivSnapshotId,
Just ("GatewayARN" .= _ccscsivGatewayARN),
Just
("VolumeSizeInBytes" .= _ccscsivVolumeSizeInBytes),
Just ("TargetName" .= _ccscsivTargetName),
Just
("NetworkInterfaceId" .= _ccscsivNetworkInterfaceId),
Just ("ClientToken" .= _ccscsivClientToken)])
instance ToPath CreateCachediSCSIVolume where
toPath = const "/"
instance ToQuery CreateCachediSCSIVolume where
toQuery = const mempty
data CreateCachediSCSIVolumeResponse = CreateCachediSCSIVolumeResponse'
{ _ccscsivrsTargetARN :: !(Maybe Text)
, _ccscsivrsVolumeARN :: !(Maybe Text)
, _ccscsivrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createCachediSCSIVolumeResponse
:: Int
-> CreateCachediSCSIVolumeResponse
createCachediSCSIVolumeResponse pResponseStatus_ =
CreateCachediSCSIVolumeResponse'
{ _ccscsivrsTargetARN = Nothing
, _ccscsivrsVolumeARN = Nothing
, _ccscsivrsResponseStatus = pResponseStatus_
}
ccscsivrsTargetARN :: Lens' CreateCachediSCSIVolumeResponse (Maybe Text)
ccscsivrsTargetARN = lens _ccscsivrsTargetARN (\ s a -> s{_ccscsivrsTargetARN = a})
ccscsivrsVolumeARN :: Lens' CreateCachediSCSIVolumeResponse (Maybe Text)
ccscsivrsVolumeARN = lens _ccscsivrsVolumeARN (\ s a -> s{_ccscsivrsVolumeARN = a})
ccscsivrsResponseStatus :: Lens' CreateCachediSCSIVolumeResponse Int
ccscsivrsResponseStatus = lens _ccscsivrsResponseStatus (\ s a -> s{_ccscsivrsResponseStatus = a})
instance NFData CreateCachediSCSIVolumeResponse where