{-# 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.DirectConnect.CreatePrivateVirtualInterface
(
createPrivateVirtualInterface
, CreatePrivateVirtualInterface
, creConnectionId
, creNewPrivateVirtualInterface
, virtualInterface
, VirtualInterface
, viBgpPeers
, viVirtualGatewayId
, viRouteFilterPrefixes
, viCustomerAddress
, viVlan
, viLocation
, viAmazonAddress
, viAddressFamily
, viVirtualInterfaceState
, viConnectionId
, viDirectConnectGatewayId
, viAmazonSideASN
, viVirtualInterfaceType
, viAsn
, viAuthKey
, viCustomerRouterConfig
, viOwnerAccount
, viVirtualInterfaceName
, viVirtualInterfaceId
) where
import Network.AWS.DirectConnect.Types
import Network.AWS.DirectConnect.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreatePrivateVirtualInterface = CreatePrivateVirtualInterface'
{ _creConnectionId :: !Text
, _creNewPrivateVirtualInterface :: !NewPrivateVirtualInterface
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createPrivateVirtualInterface
:: Text
-> NewPrivateVirtualInterface
-> CreatePrivateVirtualInterface
createPrivateVirtualInterface pConnectionId_ pNewPrivateVirtualInterface_ =
CreatePrivateVirtualInterface'
{ _creConnectionId = pConnectionId_
, _creNewPrivateVirtualInterface = pNewPrivateVirtualInterface_
}
creConnectionId :: Lens' CreatePrivateVirtualInterface Text
creConnectionId = lens _creConnectionId (\ s a -> s{_creConnectionId = a})
creNewPrivateVirtualInterface :: Lens' CreatePrivateVirtualInterface NewPrivateVirtualInterface
creNewPrivateVirtualInterface = lens _creNewPrivateVirtualInterface (\ s a -> s{_creNewPrivateVirtualInterface = a})
instance AWSRequest CreatePrivateVirtualInterface
where
type Rs CreatePrivateVirtualInterface =
VirtualInterface
request = postJSON directConnect
response = receiveJSON (\ s h x -> eitherParseJSON x)
instance Hashable CreatePrivateVirtualInterface where
instance NFData CreatePrivateVirtualInterface where
instance ToHeaders CreatePrivateVirtualInterface
where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("OvertureService.CreatePrivateVirtualInterface" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreatePrivateVirtualInterface where
toJSON CreatePrivateVirtualInterface'{..}
= object
(catMaybes
[Just ("connectionId" .= _creConnectionId),
Just
("newPrivateVirtualInterface" .=
_creNewPrivateVirtualInterface)])
instance ToPath CreatePrivateVirtualInterface where
toPath = const "/"
instance ToQuery CreatePrivateVirtualInterface where
toQuery = const mempty