module Network.AWS.EC2.ImportInstance
(
importInstance
, ImportInstance
, iiLaunchSpecification
, iiDiskImages
, iiDescription
, iiDryRun
, iiPlatform
, importInstanceResponse
, ImportInstanceResponse
, iirsConversionTask
, iirsResponseStatus
) 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 ImportInstance = ImportInstance'
{ _iiLaunchSpecification :: !(Maybe ImportInstanceLaunchSpecification)
, _iiDiskImages :: !(Maybe [DiskImage])
, _iiDescription :: !(Maybe Text)
, _iiDryRun :: !(Maybe Bool)
, _iiPlatform :: !PlatformValues
} deriving (Eq,Read,Show,Data,Typeable,Generic)
importInstance
:: PlatformValues
-> ImportInstance
importInstance pPlatform_ =
ImportInstance'
{ _iiLaunchSpecification = Nothing
, _iiDiskImages = Nothing
, _iiDescription = Nothing
, _iiDryRun = 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;
iiDescription :: Lens' ImportInstance (Maybe Text)
iiDescription = lens _iiDescription (\ s a -> s{_iiDescription = a});
iiDryRun :: Lens' ImportInstance (Maybe Bool)
iiDryRun = lens _iiDryRun (\ s a -> s{_iiDryRun = a});
iiPlatform :: Lens' ImportInstance PlatformValues
iiPlatform = lens _iiPlatform (\ s a -> s{_iiPlatform = a});
instance AWSRequest ImportInstance where
type Rs ImportInstance = ImportInstanceResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
ImportInstanceResponse' <$>
(x .@? "conversionTask") <*> (pure (fromEnum s)))
instance Hashable ImportInstance
instance NFData ImportInstance
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-10-01" :: ByteString),
"LaunchSpecification" =: _iiLaunchSpecification,
toQuery (toQueryList "DiskImage" <$> _iiDiskImages),
"Description" =: _iiDescription,
"DryRun" =: _iiDryRun, "Platform" =: _iiPlatform]
data ImportInstanceResponse = ImportInstanceResponse'
{ _iirsConversionTask :: !(Maybe ConversionTask)
, _iirsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
importInstanceResponse
:: Int
-> ImportInstanceResponse
importInstanceResponse pResponseStatus_ =
ImportInstanceResponse'
{ _iirsConversionTask = Nothing
, _iirsResponseStatus = pResponseStatus_
}
iirsConversionTask :: Lens' ImportInstanceResponse (Maybe ConversionTask)
iirsConversionTask = lens _iirsConversionTask (\ s a -> s{_iirsConversionTask = a});
iirsResponseStatus :: Lens' ImportInstanceResponse Int
iirsResponseStatus = lens _iirsResponseStatus (\ s a -> s{_iirsResponseStatus = a});
instance NFData ImportInstanceResponse