{-# 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.UnassignIPv6Addresses
(
unassignIPv6Addresses
, UnassignIPv6Addresses
, uiaNetworkInterfaceId
, uiaIPv6Addresses
, unassignIPv6AddressesResponse
, UnassignIPv6AddressesResponse
, uiarsNetworkInterfaceId
, uiarsUnassignedIPv6Addresses
, uiarsResponseStatus
) 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 UnassignIPv6Addresses = UnassignIPv6Addresses'
{ _uiaNetworkInterfaceId :: !Text
, _uiaIPv6Addresses :: ![Text]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
unassignIPv6Addresses
:: Text
-> UnassignIPv6Addresses
unassignIPv6Addresses pNetworkInterfaceId_ =
UnassignIPv6Addresses'
{ _uiaNetworkInterfaceId = pNetworkInterfaceId_
, _uiaIPv6Addresses = mempty
}
uiaNetworkInterfaceId :: Lens' UnassignIPv6Addresses Text
uiaNetworkInterfaceId = lens _uiaNetworkInterfaceId (\ s a -> s{_uiaNetworkInterfaceId = a});
uiaIPv6Addresses :: Lens' UnassignIPv6Addresses [Text]
uiaIPv6Addresses = lens _uiaIPv6Addresses (\ s a -> s{_uiaIPv6Addresses = a}) . _Coerce;
instance AWSRequest UnassignIPv6Addresses where
type Rs UnassignIPv6Addresses =
UnassignIPv6AddressesResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
UnassignIPv6AddressesResponse' <$>
(x .@? "networkInterfaceId") <*>
(x .@? "unassignedIpv6Addresses" .!@ mempty >>=
may (parseXMLList "item"))
<*> (pure (fromEnum s)))
instance Hashable UnassignIPv6Addresses
instance NFData UnassignIPv6Addresses
instance ToHeaders UnassignIPv6Addresses where
toHeaders = const mempty
instance ToPath UnassignIPv6Addresses where
toPath = const "/"
instance ToQuery UnassignIPv6Addresses where
toQuery UnassignIPv6Addresses'{..}
= mconcat
["Action" =: ("UnassignIpv6Addresses" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
"NetworkInterfaceId" =: _uiaNetworkInterfaceId,
toQueryList "Ipv6Addresses" _uiaIPv6Addresses]
data UnassignIPv6AddressesResponse = UnassignIPv6AddressesResponse'
{ _uiarsNetworkInterfaceId :: !(Maybe Text)
, _uiarsUnassignedIPv6Addresses :: !(Maybe [Text])
, _uiarsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
unassignIPv6AddressesResponse
:: Int
-> UnassignIPv6AddressesResponse
unassignIPv6AddressesResponse pResponseStatus_ =
UnassignIPv6AddressesResponse'
{ _uiarsNetworkInterfaceId = Nothing
, _uiarsUnassignedIPv6Addresses = Nothing
, _uiarsResponseStatus = pResponseStatus_
}
uiarsNetworkInterfaceId :: Lens' UnassignIPv6AddressesResponse (Maybe Text)
uiarsNetworkInterfaceId = lens _uiarsNetworkInterfaceId (\ s a -> s{_uiarsNetworkInterfaceId = a});
uiarsUnassignedIPv6Addresses :: Lens' UnassignIPv6AddressesResponse [Text]
uiarsUnassignedIPv6Addresses = lens _uiarsUnassignedIPv6Addresses (\ s a -> s{_uiarsUnassignedIPv6Addresses = a}) . _Default . _Coerce;
uiarsResponseStatus :: Lens' UnassignIPv6AddressesResponse Int
uiarsResponseStatus = lens _uiarsResponseStatus (\ s a -> s{_uiarsResponseStatus = a});
instance NFData UnassignIPv6AddressesResponse