module Network.AWS.EC2.ImportSnapshot
(
ImportSnapshot
, importSnapshot
, isClientData
, isClientToken
, isDescription
, isDiskContainer
, isDryRun
, isRoleName
, ImportSnapshotResponse
, importSnapshotResponse
, isrDescription
, isrImportTaskId
, isrSnapshotTaskDetail
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data ImportSnapshot = ImportSnapshot
{ _isClientData :: Maybe ClientData
, _isClientToken :: Maybe Text
, _isDescription :: Maybe Text
, _isDiskContainer :: Maybe SnapshotDiskContainer
, _isDryRun :: Maybe Bool
, _isRoleName :: Maybe Text
} deriving (Eq, Read, Show)
importSnapshot :: ImportSnapshot
importSnapshot = ImportSnapshot
{ _isDryRun = Nothing
, _isDescription = Nothing
, _isDiskContainer = Nothing
, _isClientData = Nothing
, _isClientToken = Nothing
, _isRoleName = Nothing
}
isClientData :: Lens' ImportSnapshot (Maybe ClientData)
isClientData = lens _isClientData (\s a -> s { _isClientData = a })
isClientToken :: Lens' ImportSnapshot (Maybe Text)
isClientToken = lens _isClientToken (\s a -> s { _isClientToken = a })
isDescription :: Lens' ImportSnapshot (Maybe Text)
isDescription = lens _isDescription (\s a -> s { _isDescription = a })
isDiskContainer :: Lens' ImportSnapshot (Maybe SnapshotDiskContainer)
isDiskContainer = lens _isDiskContainer (\s a -> s { _isDiskContainer = a })
isDryRun :: Lens' ImportSnapshot (Maybe Bool)
isDryRun = lens _isDryRun (\s a -> s { _isDryRun = a })
isRoleName :: Lens' ImportSnapshot (Maybe Text)
isRoleName = lens _isRoleName (\s a -> s { _isRoleName = a })
data ImportSnapshotResponse = ImportSnapshotResponse
{ _isrDescription :: Maybe Text
, _isrImportTaskId :: Maybe Text
, _isrSnapshotTaskDetail :: Maybe SnapshotTaskDetail
} deriving (Eq, Read, Show)
importSnapshotResponse :: ImportSnapshotResponse
importSnapshotResponse = ImportSnapshotResponse
{ _isrImportTaskId = Nothing
, _isrSnapshotTaskDetail = Nothing
, _isrDescription = Nothing
}
isrDescription :: Lens' ImportSnapshotResponse (Maybe Text)
isrDescription = lens _isrDescription (\s a -> s { _isrDescription = a })
isrImportTaskId :: Lens' ImportSnapshotResponse (Maybe Text)
isrImportTaskId = lens _isrImportTaskId (\s a -> s { _isrImportTaskId = a })
isrSnapshotTaskDetail :: Lens' ImportSnapshotResponse (Maybe SnapshotTaskDetail)
isrSnapshotTaskDetail =
lens _isrSnapshotTaskDetail (\s a -> s { _isrSnapshotTaskDetail = a })
instance ToPath ImportSnapshot where
toPath = const "/"
instance ToQuery ImportSnapshot where
toQuery ImportSnapshot{..} = mconcat
[ "ClientData" =? _isClientData
, "ClientToken" =? _isClientToken
, "Description" =? _isDescription
, "DiskContainer" =? _isDiskContainer
, "DryRun" =? _isDryRun
, "RoleName" =? _isRoleName
]
instance ToHeaders ImportSnapshot
instance AWSRequest ImportSnapshot where
type Sv ImportSnapshot = EC2
type Rs ImportSnapshot = ImportSnapshotResponse
request = post "ImportSnapshot"
response = xmlResponse
instance FromXML ImportSnapshotResponse where
parseXML x = ImportSnapshotResponse
<$> x .@? "description"
<*> x .@? "importTaskId"
<*> x .@? "snapshotTaskDetail"