module Network.AWS.StorageGateway.CreateCachediSCSIVolume
(
createCachediSCSIVolume
, CreateCachediSCSIVolume
, ccscsivSnapshotId
, ccscsivGatewayARN
, ccscsivVolumeSizeInBytes
, ccscsivTargetName
, ccscsivNetworkInterfaceId
, ccscsivClientToken
, createCachediSCSIVolumeResponse
, CreateCachediSCSIVolumeResponse
, ccscsivrsTargetARN
, ccscsivrsVolumeARN
, ccscsivrsResponseStatus
) where
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'
{ _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'
{ _ccscsivSnapshotId = Nothing
, _ccscsivGatewayARN = pGatewayARN_
, _ccscsivVolumeSizeInBytes = pVolumeSizeInBytes_
, _ccscsivTargetName = pTargetName_
, _ccscsivNetworkInterfaceId = pNetworkInterfaceId_
, _ccscsivClientToken = pClientToken_
}
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 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
[("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});