{-# 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.EC2.CreateInstanceExportTask
(
createInstanceExportTask
, CreateInstanceExportTask
, cietTargetEnvironment
, cietExportToS3Task
, cietDescription
, cietInstanceId
, createInstanceExportTaskResponse
, CreateInstanceExportTaskResponse
, cietrsExportTask
, cietrsResponseStatus
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Lens
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 Rs CreateInstanceExportTask =
CreateInstanceExportTaskResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
CreateInstanceExportTaskResponse' <$>
(x .@? "exportTask") <*> (pure (fromEnum s)))
instance Hashable CreateInstanceExportTask where
instance NFData CreateInstanceExportTask where
instance ToHeaders CreateInstanceExportTask where
toHeaders = const mempty
instance ToPath CreateInstanceExportTask where
toPath = const "/"
instance ToQuery CreateInstanceExportTask where
toQuery CreateInstanceExportTask'{..}
= mconcat
["Action" =:
("CreateInstanceExportTask" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
"TargetEnvironment" =: _cietTargetEnvironment,
"ExportToS3" =: _cietExportToS3Task,
"Description" =: _cietDescription,
"InstanceId" =: _cietInstanceId]
data CreateInstanceExportTaskResponse = CreateInstanceExportTaskResponse'
{ _cietrsExportTask :: !(Maybe ExportTask)
, _cietrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createInstanceExportTaskResponse
:: Int
-> CreateInstanceExportTaskResponse
createInstanceExportTaskResponse pResponseStatus_ =
CreateInstanceExportTaskResponse'
{_cietrsExportTask = Nothing, _cietrsResponseStatus = pResponseStatus_}
cietrsExportTask :: Lens' CreateInstanceExportTaskResponse (Maybe ExportTask)
cietrsExportTask = lens _cietrsExportTask (\ s a -> s{_cietrsExportTask = a})
cietrsResponseStatus :: Lens' CreateInstanceExportTaskResponse Int
cietrsResponseStatus = lens _cietrsResponseStatus (\ s a -> s{_cietrsResponseStatus = a})
instance NFData CreateInstanceExportTaskResponse
where