module Network.AWS.EC2.DescribeImageAttribute
(
DescribeImageAttribute
, describeImageAttribute
, dia1Attribute
, dia1DryRun
, dia1ImageId
, DescribeImageAttributeResponse
, describeImageAttributeResponse
, diarBlockDeviceMappings
, diarDescription
, diarImageId
, diarKernelId
, diarLaunchPermissions
, diarProductCodes
, diarRamdiskId
, diarSriovNetSupport
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data DescribeImageAttribute = DescribeImageAttribute
{ _dia1Attribute :: ImageAttributeName
, _dia1DryRun :: Maybe Bool
, _dia1ImageId :: Text
} deriving (Eq, Show)
describeImageAttribute :: Text
-> ImageAttributeName
-> DescribeImageAttribute
describeImageAttribute p1 p2 = DescribeImageAttribute
{ _dia1ImageId = p1
, _dia1Attribute = p2
, _dia1DryRun = Nothing
}
dia1Attribute :: Lens' DescribeImageAttribute ImageAttributeName
dia1Attribute = lens _dia1Attribute (\s a -> s { _dia1Attribute = a })
dia1DryRun :: Lens' DescribeImageAttribute (Maybe Bool)
dia1DryRun = lens _dia1DryRun (\s a -> s { _dia1DryRun = a })
dia1ImageId :: Lens' DescribeImageAttribute Text
dia1ImageId = lens _dia1ImageId (\s a -> s { _dia1ImageId = a })
data DescribeImageAttributeResponse = DescribeImageAttributeResponse
{ _diarBlockDeviceMappings :: List "item" BlockDeviceMapping
, _diarDescription :: Maybe AttributeValue
, _diarImageId :: Maybe Text
, _diarKernelId :: Maybe AttributeValue
, _diarLaunchPermissions :: List "item" LaunchPermission
, _diarProductCodes :: List "item" ProductCode
, _diarRamdiskId :: Maybe AttributeValue
, _diarSriovNetSupport :: Maybe AttributeValue
} deriving (Eq, Show)
describeImageAttributeResponse :: DescribeImageAttributeResponse
describeImageAttributeResponse = DescribeImageAttributeResponse
{ _diarImageId = Nothing
, _diarLaunchPermissions = mempty
, _diarProductCodes = mempty
, _diarKernelId = Nothing
, _diarRamdiskId = Nothing
, _diarDescription = Nothing
, _diarSriovNetSupport = Nothing
, _diarBlockDeviceMappings = mempty
}
diarBlockDeviceMappings :: Lens' DescribeImageAttributeResponse [BlockDeviceMapping]
diarBlockDeviceMappings =
lens _diarBlockDeviceMappings (\s a -> s { _diarBlockDeviceMappings = a })
. _List
diarDescription :: Lens' DescribeImageAttributeResponse (Maybe AttributeValue)
diarDescription = lens _diarDescription (\s a -> s { _diarDescription = a })
diarImageId :: Lens' DescribeImageAttributeResponse (Maybe Text)
diarImageId = lens _diarImageId (\s a -> s { _diarImageId = a })
diarKernelId :: Lens' DescribeImageAttributeResponse (Maybe AttributeValue)
diarKernelId = lens _diarKernelId (\s a -> s { _diarKernelId = a })
diarLaunchPermissions :: Lens' DescribeImageAttributeResponse [LaunchPermission]
diarLaunchPermissions =
lens _diarLaunchPermissions (\s a -> s { _diarLaunchPermissions = a })
. _List
diarProductCodes :: Lens' DescribeImageAttributeResponse [ProductCode]
diarProductCodes = lens _diarProductCodes (\s a -> s { _diarProductCodes = a }) . _List
diarRamdiskId :: Lens' DescribeImageAttributeResponse (Maybe AttributeValue)
diarRamdiskId = lens _diarRamdiskId (\s a -> s { _diarRamdiskId = a })
diarSriovNetSupport :: Lens' DescribeImageAttributeResponse (Maybe AttributeValue)
diarSriovNetSupport =
lens _diarSriovNetSupport (\s a -> s { _diarSriovNetSupport = a })
instance ToPath DescribeImageAttribute where
toPath = const "/"
instance ToQuery DescribeImageAttribute where
toQuery DescribeImageAttribute{..} = mconcat
[ "Attribute" =? _dia1Attribute
, "dryRun" =? _dia1DryRun
, "ImageId" =? _dia1ImageId
]
instance ToHeaders DescribeImageAttribute
instance AWSRequest DescribeImageAttribute where
type Sv DescribeImageAttribute = EC2
type Rs DescribeImageAttribute = DescribeImageAttributeResponse
request = post "DescribeImageAttribute"
response = xmlResponse
instance FromXML DescribeImageAttributeResponse where
parseXML x = DescribeImageAttributeResponse
<$> x .@? "blockDeviceMapping" .!@ mempty
<*> x .@? "description"
<*> x .@? "imageId"
<*> x .@? "kernel"
<*> x .@? "launchPermission" .!@ mempty
<*> x .@? "productCodes" .!@ mempty
<*> x .@? "ramdisk"
<*> x .@? "sriovNetSupport"