{-# 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.RegisterImage
(
registerImage
, RegisterImage
, riVirtualizationType
, riImageLocation
, riEnaSupport
, riRAMDiskId
, riKernelId
, riRootDeviceName
, riSRIOVNetSupport
, riArchitecture
, riDescription
, riBlockDeviceMappings
, riDryRun
, riName
, registerImageResponse
, RegisterImageResponse
, rirsImageId
, rirsResponseStatus
) 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 RegisterImage = RegisterImage'
{ _riVirtualizationType :: !(Maybe Text)
, _riImageLocation :: !(Maybe Text)
, _riEnaSupport :: !(Maybe Bool)
, _riRAMDiskId :: !(Maybe Text)
, _riKernelId :: !(Maybe Text)
, _riRootDeviceName :: !(Maybe Text)
, _riSRIOVNetSupport :: !(Maybe Text)
, _riArchitecture :: !(Maybe ArchitectureValues)
, _riDescription :: !(Maybe Text)
, _riBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])
, _riDryRun :: !(Maybe Bool)
, _riName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
registerImage
:: Text
-> RegisterImage
registerImage pName_ =
RegisterImage'
{ _riVirtualizationType = Nothing
, _riImageLocation = Nothing
, _riEnaSupport = Nothing
, _riRAMDiskId = Nothing
, _riKernelId = Nothing
, _riRootDeviceName = Nothing
, _riSRIOVNetSupport = Nothing
, _riArchitecture = Nothing
, _riDescription = Nothing
, _riBlockDeviceMappings = Nothing
, _riDryRun = Nothing
, _riName = pName_
}
riVirtualizationType :: Lens' RegisterImage (Maybe Text)
riVirtualizationType = lens _riVirtualizationType (\ s a -> s{_riVirtualizationType = a});
riImageLocation :: Lens' RegisterImage (Maybe Text)
riImageLocation = lens _riImageLocation (\ s a -> s{_riImageLocation = a});
riEnaSupport :: Lens' RegisterImage (Maybe Bool)
riEnaSupport = lens _riEnaSupport (\ s a -> s{_riEnaSupport = a});
riRAMDiskId :: Lens' RegisterImage (Maybe Text)
riRAMDiskId = lens _riRAMDiskId (\ s a -> s{_riRAMDiskId = a});
riKernelId :: Lens' RegisterImage (Maybe Text)
riKernelId = lens _riKernelId (\ s a -> s{_riKernelId = a});
riRootDeviceName :: Lens' RegisterImage (Maybe Text)
riRootDeviceName = lens _riRootDeviceName (\ s a -> s{_riRootDeviceName = a});
riSRIOVNetSupport :: Lens' RegisterImage (Maybe Text)
riSRIOVNetSupport = lens _riSRIOVNetSupport (\ s a -> s{_riSRIOVNetSupport = a});
riArchitecture :: Lens' RegisterImage (Maybe ArchitectureValues)
riArchitecture = lens _riArchitecture (\ s a -> s{_riArchitecture = a});
riDescription :: Lens' RegisterImage (Maybe Text)
riDescription = lens _riDescription (\ s a -> s{_riDescription = a});
riBlockDeviceMappings :: Lens' RegisterImage [BlockDeviceMapping]
riBlockDeviceMappings = lens _riBlockDeviceMappings (\ s a -> s{_riBlockDeviceMappings = a}) . _Default . _Coerce;
riDryRun :: Lens' RegisterImage (Maybe Bool)
riDryRun = lens _riDryRun (\ s a -> s{_riDryRun = a});
riName :: Lens' RegisterImage Text
riName = lens _riName (\ s a -> s{_riName = a});
instance AWSRequest RegisterImage where
type Rs RegisterImage = RegisterImageResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
RegisterImageResponse' <$>
(x .@? "imageId") <*> (pure (fromEnum s)))
instance Hashable RegisterImage
instance NFData RegisterImage
instance ToHeaders RegisterImage where
toHeaders = const mempty
instance ToPath RegisterImage where
toPath = const "/"
instance ToQuery RegisterImage where
toQuery RegisterImage'{..}
= mconcat
["Action" =: ("RegisterImage" :: ByteString),
"Version" =: ("2016-04-01" :: ByteString),
"VirtualizationType" =: _riVirtualizationType,
"ImageLocation" =: _riImageLocation,
"EnaSupport" =: _riEnaSupport,
"RamdiskId" =: _riRAMDiskId,
"KernelId" =: _riKernelId,
"RootDeviceName" =: _riRootDeviceName,
"SriovNetSupport" =: _riSRIOVNetSupport,
"Architecture" =: _riArchitecture,
"Description" =: _riDescription,
toQuery
(toQueryList "BlockDeviceMapping" <$>
_riBlockDeviceMappings),
"DryRun" =: _riDryRun, "Name" =: _riName]
data RegisterImageResponse = RegisterImageResponse'
{ _rirsImageId :: !(Maybe Text)
, _rirsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
registerImageResponse
:: Int
-> RegisterImageResponse
registerImageResponse pResponseStatus_ =
RegisterImageResponse'
{ _rirsImageId = Nothing
, _rirsResponseStatus = pResponseStatus_
}
rirsImageId :: Lens' RegisterImageResponse (Maybe Text)
rirsImageId = lens _rirsImageId (\ s a -> s{_rirsImageId = a});
rirsResponseStatus :: Lens' RegisterImageResponse Int
rirsResponseStatus = lens _rirsResponseStatus (\ s a -> s{_rirsResponseStatus = a});
instance NFData RegisterImageResponse