module Network.AWS.EC2.ImportInstance
(
importInstance
, ImportInstance
, iiLaunchSpecification
, iiDiskImages
, iiDryRun
, iiDescription
, iiPlatform
, importInstanceResponse
, ImportInstanceResponse
, iirsConversionTask
, iirsStatus
) 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 ImportInstance = ImportInstance'
{ _iiLaunchSpecification :: !(Maybe ImportInstanceLaunchSpecification)
, _iiDiskImages :: !(Maybe [DiskImage])
, _iiDryRun :: !(Maybe Bool)
, _iiDescription :: !(Maybe Text)
, _iiPlatform :: !PlatformValues
} deriving (Eq,Read,Show,Data,Typeable,Generic)
importInstance
:: PlatformValues
-> ImportInstance
importInstance pPlatform_ =
ImportInstance'
{ _iiLaunchSpecification = Nothing
, _iiDiskImages = Nothing
, _iiDryRun = Nothing
, _iiDescription = Nothing
, _iiPlatform = pPlatform_
}
iiLaunchSpecification :: Lens' ImportInstance (Maybe ImportInstanceLaunchSpecification)
iiLaunchSpecification = lens _iiLaunchSpecification (\ s a -> s{_iiLaunchSpecification = a});
iiDiskImages :: Lens' ImportInstance [DiskImage]
iiDiskImages = lens _iiDiskImages (\ s a -> s{_iiDiskImages = a}) . _Default . _Coerce;
iiDryRun :: Lens' ImportInstance (Maybe Bool)
iiDryRun = lens _iiDryRun (\ s a -> s{_iiDryRun = a});
iiDescription :: Lens' ImportInstance (Maybe Text)
iiDescription = lens _iiDescription (\ s a -> s{_iiDescription = a});
iiPlatform :: Lens' ImportInstance PlatformValues
iiPlatform = lens _iiPlatform (\ s a -> s{_iiPlatform = a});
instance AWSRequest ImportInstance where
type Sv ImportInstance = EC2
type Rs ImportInstance = ImportInstanceResponse
request = post
response
= receiveXML
(\ s h x ->
ImportInstanceResponse' <$>
(x .@? "conversionTask") <*> (pure (fromEnum s)))
instance ToHeaders ImportInstance where
toHeaders = const mempty
instance ToPath ImportInstance where
toPath = const "/"
instance ToQuery ImportInstance where
toQuery ImportInstance'{..}
= mconcat
["Action" =: ("ImportInstance" :: ByteString),
"Version" =: ("2015-04-15" :: ByteString),
"LaunchSpecification" =: _iiLaunchSpecification,
toQuery (toQueryList "DiskImage" <$> _iiDiskImages),
"DryRun" =: _iiDryRun,
"Description" =: _iiDescription,
"Platform" =: _iiPlatform]
data ImportInstanceResponse = ImportInstanceResponse'
{ _iirsConversionTask :: !(Maybe ConversionTask)
, _iirsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
importInstanceResponse
:: Int
-> ImportInstanceResponse
importInstanceResponse pStatus_ =
ImportInstanceResponse'
{ _iirsConversionTask = Nothing
, _iirsStatus = pStatus_
}
iirsConversionTask :: Lens' ImportInstanceResponse (Maybe ConversionTask)
iirsConversionTask = lens _iirsConversionTask (\ s a -> s{_iirsConversionTask = a});
iirsStatus :: Lens' ImportInstanceResponse Int
iirsStatus = lens _iirsStatus (\ s a -> s{_iirsStatus = a});