module Network.AWS.EC2.CreateInstanceExportTask
(
createInstanceExportTask
, CreateInstanceExportTask
, cietTargetEnvironment
, cietExportToS3Task
, cietDescription
, cietInstanceId
, createInstanceExportTaskResponse
, CreateInstanceExportTaskResponse
, cietrsExportTask
, cietrsStatus
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateInstanceExportTask = CreateInstanceExportTask'
{ _cietTargetEnvironment :: !(Maybe ExportEnvironment)
, _cietExportToS3Task :: !(Maybe ExportToS3TaskSpecification)
, _cietDescription :: !(Maybe Text)
, _cietInstanceId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createInstanceExportTask
:: Text
-> CreateInstanceExportTask
createInstanceExportTask pInstanceId_ =
CreateInstanceExportTask'
{ _cietTargetEnvironment = Nothing
, _cietExportToS3Task = Nothing
, _cietDescription = Nothing
, _cietInstanceId = pInstanceId_
}
cietTargetEnvironment :: Lens' CreateInstanceExportTask (Maybe ExportEnvironment)
cietTargetEnvironment = lens _cietTargetEnvironment (\ s a -> s{_cietTargetEnvironment = a});
cietExportToS3Task :: Lens' CreateInstanceExportTask (Maybe ExportToS3TaskSpecification)
cietExportToS3Task = lens _cietExportToS3Task (\ s a -> s{_cietExportToS3Task = a});
cietDescription :: Lens' CreateInstanceExportTask (Maybe Text)
cietDescription = lens _cietDescription (\ s a -> s{_cietDescription = a});
cietInstanceId :: Lens' CreateInstanceExportTask Text
cietInstanceId = lens _cietInstanceId (\ s a -> s{_cietInstanceId = a});
instance AWSRequest CreateInstanceExportTask where
type Sv CreateInstanceExportTask = EC2
type Rs CreateInstanceExportTask =
CreateInstanceExportTaskResponse
request = post
response
= receiveXML
(\ s h x ->
CreateInstanceExportTaskResponse' <$>
(x .@? "exportTask") <*> (pure (fromEnum s)))
instance ToHeaders CreateInstanceExportTask where
toHeaders = const mempty
instance ToPath CreateInstanceExportTask where
toPath = const "/"
instance ToQuery CreateInstanceExportTask where
toQuery CreateInstanceExportTask'{..}
= mconcat
["Action" =:
("CreateInstanceExportTask" :: ByteString),
"Version" =: ("2015-04-15" :: ByteString),
"TargetEnvironment" =: _cietTargetEnvironment,
"ExportToS3" =: _cietExportToS3Task,
"Description" =: _cietDescription,
"InstanceId" =: _cietInstanceId]
data CreateInstanceExportTaskResponse = CreateInstanceExportTaskResponse'
{ _cietrsExportTask :: !(Maybe ExportTask)
, _cietrsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createInstanceExportTaskResponse
:: Int
-> CreateInstanceExportTaskResponse
createInstanceExportTaskResponse pStatus_ =
CreateInstanceExportTaskResponse'
{ _cietrsExportTask = Nothing
, _cietrsStatus = pStatus_
}
cietrsExportTask :: Lens' CreateInstanceExportTaskResponse (Maybe ExportTask)
cietrsExportTask = lens _cietrsExportTask (\ s a -> s{_cietrsExportTask = a});
cietrsStatus :: Lens' CreateInstanceExportTaskResponse Int
cietrsStatus = lens _cietrsStatus (\ s a -> s{_cietrsStatus = a});