module Network.AWS.EC2.CreateNetworkInterface
(
createNetworkInterface
, CreateNetworkInterface
, cniGroups
, cniPrivateIPAddresses
, cniPrivateIPAddress
, cniSecondaryPrivateIPAddressCount
, cniDescription
, cniDryRun
, cniSubnetId
, createNetworkInterfaceResponse
, CreateNetworkInterfaceResponse
, cnirsNetworkInterface
, cnirsResponseStatus
) 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 CreateNetworkInterface = CreateNetworkInterface'
{ _cniGroups :: !(Maybe [Text])
, _cniPrivateIPAddresses :: !(Maybe [PrivateIPAddressSpecification])
, _cniPrivateIPAddress :: !(Maybe Text)
, _cniSecondaryPrivateIPAddressCount :: !(Maybe Int)
, _cniDescription :: !(Maybe Text)
, _cniDryRun :: !(Maybe Bool)
, _cniSubnetId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createNetworkInterface
:: Text
-> CreateNetworkInterface
createNetworkInterface pSubnetId_ =
CreateNetworkInterface'
{ _cniGroups = Nothing
, _cniPrivateIPAddresses = Nothing
, _cniPrivateIPAddress = Nothing
, _cniSecondaryPrivateIPAddressCount = Nothing
, _cniDescription = Nothing
, _cniDryRun = Nothing
, _cniSubnetId = pSubnetId_
}
cniGroups :: Lens' CreateNetworkInterface [Text]
cniGroups = lens _cniGroups (\ s a -> s{_cniGroups = a}) . _Default . _Coerce;
cniPrivateIPAddresses :: Lens' CreateNetworkInterface [PrivateIPAddressSpecification]
cniPrivateIPAddresses = lens _cniPrivateIPAddresses (\ s a -> s{_cniPrivateIPAddresses = a}) . _Default . _Coerce;
cniPrivateIPAddress :: Lens' CreateNetworkInterface (Maybe Text)
cniPrivateIPAddress = lens _cniPrivateIPAddress (\ s a -> s{_cniPrivateIPAddress = a});
cniSecondaryPrivateIPAddressCount :: Lens' CreateNetworkInterface (Maybe Int)
cniSecondaryPrivateIPAddressCount = lens _cniSecondaryPrivateIPAddressCount (\ s a -> s{_cniSecondaryPrivateIPAddressCount = a});
cniDescription :: Lens' CreateNetworkInterface (Maybe Text)
cniDescription = lens _cniDescription (\ s a -> s{_cniDescription = a});
cniDryRun :: Lens' CreateNetworkInterface (Maybe Bool)
cniDryRun = lens _cniDryRun (\ s a -> s{_cniDryRun = a});
cniSubnetId :: Lens' CreateNetworkInterface Text
cniSubnetId = lens _cniSubnetId (\ s a -> s{_cniSubnetId = a});
instance AWSRequest CreateNetworkInterface where
type Rs CreateNetworkInterface =
CreateNetworkInterfaceResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
CreateNetworkInterfaceResponse' <$>
(x .@? "networkInterface") <*> (pure (fromEnum s)))
instance Hashable CreateNetworkInterface
instance NFData CreateNetworkInterface
instance ToHeaders CreateNetworkInterface where
toHeaders = const mempty
instance ToPath CreateNetworkInterface where
toPath = const "/"
instance ToQuery CreateNetworkInterface where
toQuery CreateNetworkInterface'{..}
= mconcat
["Action" =:
("CreateNetworkInterface" :: ByteString),
"Version" =: ("2015-10-01" :: ByteString),
toQuery
(toQueryList "SecurityGroupId" <$> _cniGroups),
toQuery
(toQueryList "PrivateIpAddresses" <$>
_cniPrivateIPAddresses),
"PrivateIpAddress" =: _cniPrivateIPAddress,
"SecondaryPrivateIpAddressCount" =:
_cniSecondaryPrivateIPAddressCount,
"Description" =: _cniDescription,
"DryRun" =: _cniDryRun, "SubnetId" =: _cniSubnetId]
data CreateNetworkInterfaceResponse = CreateNetworkInterfaceResponse'
{ _cnirsNetworkInterface :: !(Maybe NetworkInterface)
, _cnirsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createNetworkInterfaceResponse
:: Int
-> CreateNetworkInterfaceResponse
createNetworkInterfaceResponse pResponseStatus_ =
CreateNetworkInterfaceResponse'
{ _cnirsNetworkInterface = Nothing
, _cnirsResponseStatus = pResponseStatus_
}
cnirsNetworkInterface :: Lens' CreateNetworkInterfaceResponse (Maybe NetworkInterface)
cnirsNetworkInterface = lens _cnirsNetworkInterface (\ s a -> s{_cnirsNetworkInterface = a});
cnirsResponseStatus :: Lens' CreateNetworkInterfaceResponse Int
cnirsResponseStatus = lens _cnirsResponseStatus (\ s a -> s{_cnirsResponseStatus = a});
instance NFData CreateNetworkInterfaceResponse