module Network.AWS.EC2.CreateNetworkInterface
(
CreateNetworkInterface
, createNetworkInterface
, cniDescription
, cniDryRun
, cniGroups
, cniPrivateIpAddress
, cniPrivateIpAddresses
, cniSecondaryPrivateIpAddressCount
, cniSubnetId
, CreateNetworkInterfaceResponse
, createNetworkInterfaceResponse
, cnirNetworkInterface
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data CreateNetworkInterface = CreateNetworkInterface
{ _cniDescription :: Maybe Text
, _cniDryRun :: Maybe Bool
, _cniGroups :: List "SecurityGroupId" Text
, _cniPrivateIpAddress :: Maybe Text
, _cniPrivateIpAddresses :: List "item" PrivateIpAddressSpecification
, _cniSecondaryPrivateIpAddressCount :: Maybe Int
, _cniSubnetId :: Text
} deriving (Eq, Show)
createNetworkInterface :: Text
-> CreateNetworkInterface
createNetworkInterface p1 = CreateNetworkInterface
{ _cniSubnetId = p1
, _cniDescription = Nothing
, _cniPrivateIpAddress = Nothing
, _cniGroups = mempty
, _cniPrivateIpAddresses = mempty
, _cniSecondaryPrivateIpAddressCount = Nothing
, _cniDryRun = Nothing
}
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 })
cniGroups :: Lens' CreateNetworkInterface [Text]
cniGroups = lens _cniGroups (\s a -> s { _cniGroups = a }) . _List
cniPrivateIpAddress :: Lens' CreateNetworkInterface (Maybe Text)
cniPrivateIpAddress =
lens _cniPrivateIpAddress (\s a -> s { _cniPrivateIpAddress = a })
cniPrivateIpAddresses :: Lens' CreateNetworkInterface [PrivateIpAddressSpecification]
cniPrivateIpAddresses =
lens _cniPrivateIpAddresses (\s a -> s { _cniPrivateIpAddresses = a })
. _List
cniSecondaryPrivateIpAddressCount :: Lens' CreateNetworkInterface (Maybe Int)
cniSecondaryPrivateIpAddressCount =
lens _cniSecondaryPrivateIpAddressCount
(\s a -> s { _cniSecondaryPrivateIpAddressCount = a })
cniSubnetId :: Lens' CreateNetworkInterface Text
cniSubnetId = lens _cniSubnetId (\s a -> s { _cniSubnetId = a })
newtype CreateNetworkInterfaceResponse = CreateNetworkInterfaceResponse
{ _cnirNetworkInterface :: Maybe NetworkInterface
} deriving (Eq, Show)
createNetworkInterfaceResponse :: CreateNetworkInterfaceResponse
createNetworkInterfaceResponse = CreateNetworkInterfaceResponse
{ _cnirNetworkInterface = Nothing
}
cnirNetworkInterface :: Lens' CreateNetworkInterfaceResponse (Maybe NetworkInterface)
cnirNetworkInterface =
lens _cnirNetworkInterface (\s a -> s { _cnirNetworkInterface = a })
instance ToPath CreateNetworkInterface where
toPath = const "/"
instance ToQuery CreateNetworkInterface where
toQuery CreateNetworkInterface{..} = mconcat
[ "description" =? _cniDescription
, "dryRun" =? _cniDryRun
, "SecurityGroupId" `toQueryList` _cniGroups
, "privateIpAddress" =? _cniPrivateIpAddress
, "privateIpAddresses" `toQueryList` _cniPrivateIpAddresses
, "secondaryPrivateIpAddressCount" =? _cniSecondaryPrivateIpAddressCount
, "subnetId" =? _cniSubnetId
]
instance ToHeaders CreateNetworkInterface
instance AWSRequest CreateNetworkInterface where
type Sv CreateNetworkInterface = EC2
type Rs CreateNetworkInterface = CreateNetworkInterfaceResponse
request = post "CreateNetworkInterface"
response = xmlResponse
instance FromXML CreateNetworkInterfaceResponse where
parseXML x = CreateNetworkInterfaceResponse
<$> x .@? "networkInterface"