module Network.AWS.EC2.ModifyInstanceAttribute
(
modifyInstanceAttribute
, ModifyInstanceAttribute
, mGroups
, mAttribute
, mSourceDestCheck
, mDisableAPITermination
, mKernel
, mRAMDisk
, mValue
, mInstanceType
, mSRIOVNetSupport
, mEBSOptimized
, mUserData
, mInstanceInitiatedShutdownBehavior
, mBlockDeviceMappings
, mDryRun
, mInstanceId
, modifyInstanceAttributeResponse
, ModifyInstanceAttributeResponse
) 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 ModifyInstanceAttribute = ModifyInstanceAttribute'
{ _mGroups :: !(Maybe [Text])
, _mAttribute :: !(Maybe InstanceAttributeName)
, _mSourceDestCheck :: !(Maybe AttributeBooleanValue)
, _mDisableAPITermination :: !(Maybe AttributeBooleanValue)
, _mKernel :: !(Maybe AttributeValue)
, _mRAMDisk :: !(Maybe AttributeValue)
, _mValue :: !(Maybe Text)
, _mInstanceType :: !(Maybe AttributeValue)
, _mSRIOVNetSupport :: !(Maybe AttributeValue)
, _mEBSOptimized :: !(Maybe AttributeBooleanValue)
, _mUserData :: !(Maybe BlobAttributeValue)
, _mInstanceInitiatedShutdownBehavior :: !(Maybe AttributeValue)
, _mBlockDeviceMappings :: !(Maybe [InstanceBlockDeviceMappingSpecification])
, _mDryRun :: !(Maybe Bool)
, _mInstanceId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
modifyInstanceAttribute
:: Text
-> ModifyInstanceAttribute
modifyInstanceAttribute pInstanceId_ =
ModifyInstanceAttribute'
{ _mGroups = Nothing
, _mAttribute = Nothing
, _mSourceDestCheck = Nothing
, _mDisableAPITermination = Nothing
, _mKernel = Nothing
, _mRAMDisk = Nothing
, _mValue = Nothing
, _mInstanceType = Nothing
, _mSRIOVNetSupport = Nothing
, _mEBSOptimized = Nothing
, _mUserData = Nothing
, _mInstanceInitiatedShutdownBehavior = Nothing
, _mBlockDeviceMappings = Nothing
, _mDryRun = Nothing
, _mInstanceId = pInstanceId_
}
mGroups :: Lens' ModifyInstanceAttribute [Text]
mGroups = lens _mGroups (\ s a -> s{_mGroups = a}) . _Default . _Coerce;
mAttribute :: Lens' ModifyInstanceAttribute (Maybe InstanceAttributeName)
mAttribute = lens _mAttribute (\ s a -> s{_mAttribute = a});
mSourceDestCheck :: Lens' ModifyInstanceAttribute (Maybe AttributeBooleanValue)
mSourceDestCheck = lens _mSourceDestCheck (\ s a -> s{_mSourceDestCheck = a});
mDisableAPITermination :: Lens' ModifyInstanceAttribute (Maybe AttributeBooleanValue)
mDisableAPITermination = lens _mDisableAPITermination (\ s a -> s{_mDisableAPITermination = a});
mKernel :: Lens' ModifyInstanceAttribute (Maybe AttributeValue)
mKernel = lens _mKernel (\ s a -> s{_mKernel = a});
mRAMDisk :: Lens' ModifyInstanceAttribute (Maybe AttributeValue)
mRAMDisk = lens _mRAMDisk (\ s a -> s{_mRAMDisk = a});
mValue :: Lens' ModifyInstanceAttribute (Maybe Text)
mValue = lens _mValue (\ s a -> s{_mValue = a});
mInstanceType :: Lens' ModifyInstanceAttribute (Maybe AttributeValue)
mInstanceType = lens _mInstanceType (\ s a -> s{_mInstanceType = a});
mSRIOVNetSupport :: Lens' ModifyInstanceAttribute (Maybe AttributeValue)
mSRIOVNetSupport = lens _mSRIOVNetSupport (\ s a -> s{_mSRIOVNetSupport = a});
mEBSOptimized :: Lens' ModifyInstanceAttribute (Maybe AttributeBooleanValue)
mEBSOptimized = lens _mEBSOptimized (\ s a -> s{_mEBSOptimized = a});
mUserData :: Lens' ModifyInstanceAttribute (Maybe BlobAttributeValue)
mUserData = lens _mUserData (\ s a -> s{_mUserData = a});
mInstanceInitiatedShutdownBehavior :: Lens' ModifyInstanceAttribute (Maybe AttributeValue)
mInstanceInitiatedShutdownBehavior = lens _mInstanceInitiatedShutdownBehavior (\ s a -> s{_mInstanceInitiatedShutdownBehavior = a});
mBlockDeviceMappings :: Lens' ModifyInstanceAttribute [InstanceBlockDeviceMappingSpecification]
mBlockDeviceMappings = lens _mBlockDeviceMappings (\ s a -> s{_mBlockDeviceMappings = a}) . _Default . _Coerce;
mDryRun :: Lens' ModifyInstanceAttribute (Maybe Bool)
mDryRun = lens _mDryRun (\ s a -> s{_mDryRun = a});
mInstanceId :: Lens' ModifyInstanceAttribute Text
mInstanceId = lens _mInstanceId (\ s a -> s{_mInstanceId = a});
instance AWSRequest ModifyInstanceAttribute where
type Rs ModifyInstanceAttribute =
ModifyInstanceAttributeResponse
request = postQuery ec2
response
= receiveNull ModifyInstanceAttributeResponse'
instance Hashable ModifyInstanceAttribute
instance ToHeaders ModifyInstanceAttribute where
toHeaders = const mempty
instance ToPath ModifyInstanceAttribute where
toPath = const "/"
instance ToQuery ModifyInstanceAttribute where
toQuery ModifyInstanceAttribute'{..}
= mconcat
["Action" =:
("ModifyInstanceAttribute" :: ByteString),
"Version" =: ("2015-10-01" :: ByteString),
toQuery (toQueryList "GroupId" <$> _mGroups),
"Attribute" =: _mAttribute,
"SourceDestCheck" =: _mSourceDestCheck,
"DisableApiTermination" =: _mDisableAPITermination,
"Kernel" =: _mKernel, "Ramdisk" =: _mRAMDisk,
"Value" =: _mValue, "InstanceType" =: _mInstanceType,
"SriovNetSupport" =: _mSRIOVNetSupport,
"EbsOptimized" =: _mEBSOptimized,
"UserData" =: _mUserData,
"InstanceInitiatedShutdownBehavior" =:
_mInstanceInitiatedShutdownBehavior,
toQuery
(toQueryList "BlockDeviceMapping" <$>
_mBlockDeviceMappings),
"DryRun" =: _mDryRun, "InstanceId" =: _mInstanceId]
data ModifyInstanceAttributeResponse =
ModifyInstanceAttributeResponse'
deriving (Eq,Read,Show,Data,Typeable,Generic)
modifyInstanceAttributeResponse
:: ModifyInstanceAttributeResponse
modifyInstanceAttributeResponse = ModifyInstanceAttributeResponse'