module Network.AWS.EC2.DescribeInstanceAttribute
(
DescribeInstanceAttribute
, describeInstanceAttribute
, diaAttribute
, diaDryRun
, diaInstanceId
, DescribeInstanceAttributeResponse
, describeInstanceAttributeResponse
, diar1BlockDeviceMappings
, diar1DisableApiTermination
, diar1EbsOptimized
, diar1Groups
, diar1InstanceId
, diar1InstanceInitiatedShutdownBehavior
, diar1InstanceType
, diar1KernelId
, diar1ProductCodes
, diar1RamdiskId
, diar1RootDeviceName
, diar1SourceDestCheck
, diar1SriovNetSupport
, diar1UserData
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data DescribeInstanceAttribute = DescribeInstanceAttribute
{ _diaAttribute :: InstanceAttributeName
, _diaDryRun :: Maybe Bool
, _diaInstanceId :: Text
} deriving (Eq, Show)
describeInstanceAttribute :: Text
-> InstanceAttributeName
-> DescribeInstanceAttribute
describeInstanceAttribute p1 p2 = DescribeInstanceAttribute
{ _diaInstanceId = p1
, _diaAttribute = p2
, _diaDryRun = Nothing
}
diaAttribute :: Lens' DescribeInstanceAttribute InstanceAttributeName
diaAttribute = lens _diaAttribute (\s a -> s { _diaAttribute = a })
diaDryRun :: Lens' DescribeInstanceAttribute (Maybe Bool)
diaDryRun = lens _diaDryRun (\s a -> s { _diaDryRun = a })
diaInstanceId :: Lens' DescribeInstanceAttribute Text
diaInstanceId = lens _diaInstanceId (\s a -> s { _diaInstanceId = a })
data DescribeInstanceAttributeResponse = DescribeInstanceAttributeResponse
{ _diar1BlockDeviceMappings :: List "item" InstanceBlockDeviceMapping
, _diar1DisableApiTermination :: Maybe AttributeBooleanValue
, _diar1EbsOptimized :: Maybe AttributeBooleanValue
, _diar1Groups :: List "item" GroupIdentifier
, _diar1InstanceId :: Maybe Text
, _diar1InstanceInitiatedShutdownBehavior :: Maybe AttributeValue
, _diar1InstanceType :: Maybe AttributeValue
, _diar1KernelId :: Maybe AttributeValue
, _diar1ProductCodes :: List "item" ProductCode
, _diar1RamdiskId :: Maybe AttributeValue
, _diar1RootDeviceName :: Maybe AttributeValue
, _diar1SourceDestCheck :: Maybe AttributeBooleanValue
, _diar1SriovNetSupport :: Maybe AttributeValue
, _diar1UserData :: Maybe AttributeValue
} deriving (Eq, Show)
describeInstanceAttributeResponse :: DescribeInstanceAttributeResponse
describeInstanceAttributeResponse = DescribeInstanceAttributeResponse
{ _diar1InstanceId = Nothing
, _diar1InstanceType = Nothing
, _diar1KernelId = Nothing
, _diar1RamdiskId = Nothing
, _diar1UserData = Nothing
, _diar1DisableApiTermination = Nothing
, _diar1InstanceInitiatedShutdownBehavior = Nothing
, _diar1RootDeviceName = Nothing
, _diar1BlockDeviceMappings = mempty
, _diar1ProductCodes = mempty
, _diar1EbsOptimized = Nothing
, _diar1SriovNetSupport = Nothing
, _diar1SourceDestCheck = Nothing
, _diar1Groups = mempty
}
diar1BlockDeviceMappings :: Lens' DescribeInstanceAttributeResponse [InstanceBlockDeviceMapping]
diar1BlockDeviceMappings =
lens _diar1BlockDeviceMappings
(\s a -> s { _diar1BlockDeviceMappings = a })
. _List
diar1DisableApiTermination :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)
diar1DisableApiTermination =
lens _diar1DisableApiTermination
(\s a -> s { _diar1DisableApiTermination = a })
diar1EbsOptimized :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)
diar1EbsOptimized =
lens _diar1EbsOptimized (\s a -> s { _diar1EbsOptimized = a })
diar1Groups :: Lens' DescribeInstanceAttributeResponse [GroupIdentifier]
diar1Groups = lens _diar1Groups (\s a -> s { _diar1Groups = a }) . _List
diar1InstanceId :: Lens' DescribeInstanceAttributeResponse (Maybe Text)
diar1InstanceId = lens _diar1InstanceId (\s a -> s { _diar1InstanceId = a })
diar1InstanceInitiatedShutdownBehavior :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
diar1InstanceInitiatedShutdownBehavior =
lens _diar1InstanceInitiatedShutdownBehavior
(\s a -> s { _diar1InstanceInitiatedShutdownBehavior = a })
diar1InstanceType :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
diar1InstanceType =
lens _diar1InstanceType (\s a -> s { _diar1InstanceType = a })
diar1KernelId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
diar1KernelId = lens _diar1KernelId (\s a -> s { _diar1KernelId = a })
diar1ProductCodes :: Lens' DescribeInstanceAttributeResponse [ProductCode]
diar1ProductCodes =
lens _diar1ProductCodes (\s a -> s { _diar1ProductCodes = a })
. _List
diar1RamdiskId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
diar1RamdiskId = lens _diar1RamdiskId (\s a -> s { _diar1RamdiskId = a })
diar1RootDeviceName :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
diar1RootDeviceName =
lens _diar1RootDeviceName (\s a -> s { _diar1RootDeviceName = a })
diar1SourceDestCheck :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)
diar1SourceDestCheck =
lens _diar1SourceDestCheck (\s a -> s { _diar1SourceDestCheck = a })
diar1SriovNetSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
diar1SriovNetSupport =
lens _diar1SriovNetSupport (\s a -> s { _diar1SriovNetSupport = a })
diar1UserData :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
diar1UserData = lens _diar1UserData (\s a -> s { _diar1UserData = a })
instance ToPath DescribeInstanceAttribute where
toPath = const "/"
instance ToQuery DescribeInstanceAttribute where
toQuery DescribeInstanceAttribute{..} = mconcat
[ "attribute" =? _diaAttribute
, "dryRun" =? _diaDryRun
, "instanceId" =? _diaInstanceId
]
instance ToHeaders DescribeInstanceAttribute
instance AWSRequest DescribeInstanceAttribute where
type Sv DescribeInstanceAttribute = EC2
type Rs DescribeInstanceAttribute = DescribeInstanceAttributeResponse
request = post "DescribeInstanceAttribute"
response = xmlResponse
instance FromXML DescribeInstanceAttributeResponse where
parseXML x = DescribeInstanceAttributeResponse
<$> x .@? "blockDeviceMapping" .!@ mempty
<*> x .@? "disableApiTermination"
<*> x .@? "ebsOptimized"
<*> x .@? "groupSet" .!@ mempty
<*> x .@? "instanceId"
<*> x .@? "instanceInitiatedShutdownBehavior"
<*> x .@? "instanceType"
<*> x .@? "kernel"
<*> x .@? "productCodes" .!@ mempty
<*> x .@? "ramdisk"
<*> x .@? "rootDeviceName"
<*> x .@? "sourceDestCheck"
<*> x .@? "sriovNetSupport"
<*> x .@? "userData"