{-# 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.AssignIPv6Addresses
(
assignIPv6Addresses
, AssignIPv6Addresses
, aiaIPv6AddressCount
, aiaIPv6Addresses
, aiaNetworkInterfaceId
, assignIPv6AddressesResponse
, AssignIPv6AddressesResponse
, aiarsNetworkInterfaceId
, aiarsAssignedIPv6Addresses
, aiarsResponseStatus
) 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 AssignIPv6Addresses = AssignIPv6Addresses'
{ _aiaIPv6AddressCount :: !(Maybe Int)
, _aiaIPv6Addresses :: !(Maybe [Text])
, _aiaNetworkInterfaceId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
assignIPv6Addresses
:: Text
-> AssignIPv6Addresses
assignIPv6Addresses pNetworkInterfaceId_ =
AssignIPv6Addresses'
{ _aiaIPv6AddressCount = Nothing
, _aiaIPv6Addresses = Nothing
, _aiaNetworkInterfaceId = pNetworkInterfaceId_
}
aiaIPv6AddressCount :: Lens' AssignIPv6Addresses (Maybe Int)
aiaIPv6AddressCount = lens _aiaIPv6AddressCount (\ s a -> s{_aiaIPv6AddressCount = a})
aiaIPv6Addresses :: Lens' AssignIPv6Addresses [Text]
aiaIPv6Addresses = lens _aiaIPv6Addresses (\ s a -> s{_aiaIPv6Addresses = a}) . _Default . _Coerce
aiaNetworkInterfaceId :: Lens' AssignIPv6Addresses Text
aiaNetworkInterfaceId = lens _aiaNetworkInterfaceId (\ s a -> s{_aiaNetworkInterfaceId = a})
instance AWSRequest AssignIPv6Addresses where
type Rs AssignIPv6Addresses =
AssignIPv6AddressesResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
AssignIPv6AddressesResponse' <$>
(x .@? "networkInterfaceId") <*>
(x .@? "assignedIpv6Addresses" .!@ mempty >>=
may (parseXMLList "item"))
<*> (pure (fromEnum s)))
instance Hashable AssignIPv6Addresses where
instance NFData AssignIPv6Addresses where
instance ToHeaders AssignIPv6Addresses where
toHeaders = const mempty
instance ToPath AssignIPv6Addresses where
toPath = const "/"
instance ToQuery AssignIPv6Addresses where
toQuery AssignIPv6Addresses'{..}
= mconcat
["Action" =: ("AssignIpv6Addresses" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
"Ipv6AddressCount" =: _aiaIPv6AddressCount,
toQuery
(toQueryList "Ipv6Addresses" <$> _aiaIPv6Addresses),
"NetworkInterfaceId" =: _aiaNetworkInterfaceId]
data AssignIPv6AddressesResponse = AssignIPv6AddressesResponse'
{ _aiarsNetworkInterfaceId :: !(Maybe Text)
, _aiarsAssignedIPv6Addresses :: !(Maybe [Text])
, _aiarsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
assignIPv6AddressesResponse
:: Int
-> AssignIPv6AddressesResponse
assignIPv6AddressesResponse pResponseStatus_ =
AssignIPv6AddressesResponse'
{ _aiarsNetworkInterfaceId = Nothing
, _aiarsAssignedIPv6Addresses = Nothing
, _aiarsResponseStatus = pResponseStatus_
}
aiarsNetworkInterfaceId :: Lens' AssignIPv6AddressesResponse (Maybe Text)
aiarsNetworkInterfaceId = lens _aiarsNetworkInterfaceId (\ s a -> s{_aiarsNetworkInterfaceId = a})
aiarsAssignedIPv6Addresses :: Lens' AssignIPv6AddressesResponse [Text]
aiarsAssignedIPv6Addresses = lens _aiarsAssignedIPv6Addresses (\ s a -> s{_aiarsAssignedIPv6Addresses = a}) . _Default . _Coerce
aiarsResponseStatus :: Lens' AssignIPv6AddressesResponse Int
aiarsResponseStatus = lens _aiarsResponseStatus (\ s a -> s{_aiarsResponseStatus = a})
instance NFData AssignIPv6AddressesResponse where