module Network.AWS.EC2.DescribeVolumeAttribute
(
DescribeVolumeAttribute
, describeVolumeAttribute
, dvaAttribute
, dvaDryRun
, dvaVolumeId
, DescribeVolumeAttributeResponse
, describeVolumeAttributeResponse
, dvarAutoEnableIO
, dvarProductCodes
, dvarVolumeId
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data DescribeVolumeAttribute = DescribeVolumeAttribute
{ _dvaAttribute :: Maybe VolumeAttributeName
, _dvaDryRun :: Maybe Bool
, _dvaVolumeId :: Text
} deriving (Eq, Show)
describeVolumeAttribute :: Text
-> DescribeVolumeAttribute
describeVolumeAttribute p1 = DescribeVolumeAttribute
{ _dvaVolumeId = p1
, _dvaDryRun = Nothing
, _dvaAttribute = Nothing
}
dvaAttribute :: Lens' DescribeVolumeAttribute (Maybe VolumeAttributeName)
dvaAttribute = lens _dvaAttribute (\s a -> s { _dvaAttribute = a })
dvaDryRun :: Lens' DescribeVolumeAttribute (Maybe Bool)
dvaDryRun = lens _dvaDryRun (\s a -> s { _dvaDryRun = a })
dvaVolumeId :: Lens' DescribeVolumeAttribute Text
dvaVolumeId = lens _dvaVolumeId (\s a -> s { _dvaVolumeId = a })
data DescribeVolumeAttributeResponse = DescribeVolumeAttributeResponse
{ _dvarAutoEnableIO :: Maybe AttributeBooleanValue
, _dvarProductCodes :: List "item" ProductCode
, _dvarVolumeId :: Maybe Text
} deriving (Eq, Show)
describeVolumeAttributeResponse :: DescribeVolumeAttributeResponse
describeVolumeAttributeResponse = DescribeVolumeAttributeResponse
{ _dvarVolumeId = Nothing
, _dvarAutoEnableIO = Nothing
, _dvarProductCodes = mempty
}
dvarAutoEnableIO :: Lens' DescribeVolumeAttributeResponse (Maybe AttributeBooleanValue)
dvarAutoEnableIO = lens _dvarAutoEnableIO (\s a -> s { _dvarAutoEnableIO = a })
dvarProductCodes :: Lens' DescribeVolumeAttributeResponse [ProductCode]
dvarProductCodes = lens _dvarProductCodes (\s a -> s { _dvarProductCodes = a }) . _List
dvarVolumeId :: Lens' DescribeVolumeAttributeResponse (Maybe Text)
dvarVolumeId = lens _dvarVolumeId (\s a -> s { _dvarVolumeId = a })
instance ToPath DescribeVolumeAttribute where
toPath = const "/"
instance ToQuery DescribeVolumeAttribute where
toQuery DescribeVolumeAttribute{..} = mconcat
[ "Attribute" =? _dvaAttribute
, "dryRun" =? _dvaDryRun
, "VolumeId" =? _dvaVolumeId
]
instance ToHeaders DescribeVolumeAttribute
instance AWSRequest DescribeVolumeAttribute where
type Sv DescribeVolumeAttribute = EC2
type Rs DescribeVolumeAttribute = DescribeVolumeAttributeResponse
request = post "DescribeVolumeAttribute"
response = xmlResponse
instance FromXML DescribeVolumeAttributeResponse where
parseXML x = DescribeVolumeAttributeResponse
<$> x .@? "autoEnableIO"
<*> parseXML x
<*> x .@? "volumeId"