module Network.AWS.EC2.ImportInstance
(
ImportInstance
, importInstance
, iiDescription
, iiDiskImages
, iiDryRun
, iiLaunchSpecification
, iiPlatform
, ImportInstanceResponse
, importInstanceResponse
, iirConversionTask
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data ImportInstance = ImportInstance
{ _iiDescription :: Maybe Text
, _iiDiskImages :: List "diskImage" DiskImage
, _iiDryRun :: Maybe Bool
, _iiLaunchSpecification :: Maybe ImportInstanceLaunchSpecification
, _iiPlatform :: PlatformValues
} deriving (Eq, Show)
importInstance :: PlatformValues
-> ImportInstance
importInstance p1 = ImportInstance
{ _iiPlatform = p1
, _iiDryRun = Nothing
, _iiDescription = Nothing
, _iiLaunchSpecification = Nothing
, _iiDiskImages = mempty
}
iiDescription :: Lens' ImportInstance (Maybe Text)
iiDescription = lens _iiDescription (\s a -> s { _iiDescription = a })
iiDiskImages :: Lens' ImportInstance [DiskImage]
iiDiskImages = lens _iiDiskImages (\s a -> s { _iiDiskImages = a }) . _List
iiDryRun :: Lens' ImportInstance (Maybe Bool)
iiDryRun = lens _iiDryRun (\s a -> s { _iiDryRun = a })
iiLaunchSpecification :: Lens' ImportInstance (Maybe ImportInstanceLaunchSpecification)
iiLaunchSpecification =
lens _iiLaunchSpecification (\s a -> s { _iiLaunchSpecification = a })
iiPlatform :: Lens' ImportInstance PlatformValues
iiPlatform = lens _iiPlatform (\s a -> s { _iiPlatform = a })
newtype ImportInstanceResponse = ImportInstanceResponse
{ _iirConversionTask :: Maybe ConversionTask
} deriving (Eq, Show)
importInstanceResponse :: ImportInstanceResponse
importInstanceResponse = ImportInstanceResponse
{ _iirConversionTask = Nothing
}
iirConversionTask :: Lens' ImportInstanceResponse (Maybe ConversionTask)
iirConversionTask =
lens _iirConversionTask (\s a -> s { _iirConversionTask = a })
instance ToPath ImportInstance where
toPath = const "/"
instance ToQuery ImportInstance where
toQuery ImportInstance{..} = mconcat
[ "description" =? _iiDescription
, "diskImage" =? _iiDiskImages
, "dryRun" =? _iiDryRun
, "launchSpecification" =? _iiLaunchSpecification
, "platform" =? _iiPlatform
]
instance ToHeaders ImportInstance
instance AWSRequest ImportInstance where
type Sv ImportInstance = EC2
type Rs ImportInstance = ImportInstanceResponse
request = post "ImportInstance"
response = xmlResponse
instance FromXML ImportInstanceResponse where
parseXML x = ImportInstanceResponse
<$> x .@? "conversionTask"