{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.DirectConnect.AssociateVirtualInterface
(
AssociateVirtualInterface (..),
newAssociateVirtualInterface,
associateVirtualInterface_virtualInterfaceId,
associateVirtualInterface_connectionId,
VirtualInterface (..),
newVirtualInterface,
virtualInterface_addressFamily,
virtualInterface_amazonAddress,
virtualInterface_amazonSideAsn,
virtualInterface_asn,
virtualInterface_authKey,
virtualInterface_awsDeviceV2,
virtualInterface_awsLogicalDeviceId,
virtualInterface_bgpPeers,
virtualInterface_connectionId,
virtualInterface_customerAddress,
virtualInterface_customerRouterConfig,
virtualInterface_directConnectGatewayId,
virtualInterface_jumboFrameCapable,
virtualInterface_location,
virtualInterface_mtu,
virtualInterface_ownerAccount,
virtualInterface_region,
virtualInterface_routeFilterPrefixes,
virtualInterface_siteLinkEnabled,
virtualInterface_tags,
virtualInterface_virtualGatewayId,
virtualInterface_virtualInterfaceId,
virtualInterface_virtualInterfaceName,
virtualInterface_virtualInterfaceState,
virtualInterface_virtualInterfaceType,
virtualInterface_vlan,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DirectConnect.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data AssociateVirtualInterface = AssociateVirtualInterface'
{
AssociateVirtualInterface -> Text
virtualInterfaceId :: Prelude.Text,
AssociateVirtualInterface -> Text
connectionId :: Prelude.Text
}
deriving (AssociateVirtualInterface -> AssociateVirtualInterface -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssociateVirtualInterface -> AssociateVirtualInterface -> Bool
$c/= :: AssociateVirtualInterface -> AssociateVirtualInterface -> Bool
== :: AssociateVirtualInterface -> AssociateVirtualInterface -> Bool
$c== :: AssociateVirtualInterface -> AssociateVirtualInterface -> Bool
Prelude.Eq, ReadPrec [AssociateVirtualInterface]
ReadPrec AssociateVirtualInterface
Int -> ReadS AssociateVirtualInterface
ReadS [AssociateVirtualInterface]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AssociateVirtualInterface]
$creadListPrec :: ReadPrec [AssociateVirtualInterface]
readPrec :: ReadPrec AssociateVirtualInterface
$creadPrec :: ReadPrec AssociateVirtualInterface
readList :: ReadS [AssociateVirtualInterface]
$creadList :: ReadS [AssociateVirtualInterface]
readsPrec :: Int -> ReadS AssociateVirtualInterface
$creadsPrec :: Int -> ReadS AssociateVirtualInterface
Prelude.Read, Int -> AssociateVirtualInterface -> ShowS
[AssociateVirtualInterface] -> ShowS
AssociateVirtualInterface -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AssociateVirtualInterface] -> ShowS
$cshowList :: [AssociateVirtualInterface] -> ShowS
show :: AssociateVirtualInterface -> String
$cshow :: AssociateVirtualInterface -> String
showsPrec :: Int -> AssociateVirtualInterface -> ShowS
$cshowsPrec :: Int -> AssociateVirtualInterface -> ShowS
Prelude.Show, forall x.
Rep AssociateVirtualInterface x -> AssociateVirtualInterface
forall x.
AssociateVirtualInterface -> Rep AssociateVirtualInterface x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AssociateVirtualInterface x -> AssociateVirtualInterface
$cfrom :: forall x.
AssociateVirtualInterface -> Rep AssociateVirtualInterface x
Prelude.Generic)
newAssociateVirtualInterface ::
Prelude.Text ->
Prelude.Text ->
AssociateVirtualInterface
newAssociateVirtualInterface :: Text -> Text -> AssociateVirtualInterface
newAssociateVirtualInterface
Text
pVirtualInterfaceId_
Text
pConnectionId_ =
AssociateVirtualInterface'
{ $sel:virtualInterfaceId:AssociateVirtualInterface' :: Text
virtualInterfaceId =
Text
pVirtualInterfaceId_,
$sel:connectionId:AssociateVirtualInterface' :: Text
connectionId = Text
pConnectionId_
}
associateVirtualInterface_virtualInterfaceId :: Lens.Lens' AssociateVirtualInterface Prelude.Text
associateVirtualInterface_virtualInterfaceId :: Lens' AssociateVirtualInterface Text
associateVirtualInterface_virtualInterfaceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateVirtualInterface' {Text
virtualInterfaceId :: Text
$sel:virtualInterfaceId:AssociateVirtualInterface' :: AssociateVirtualInterface -> Text
virtualInterfaceId} -> Text
virtualInterfaceId) (\s :: AssociateVirtualInterface
s@AssociateVirtualInterface' {} Text
a -> AssociateVirtualInterface
s {$sel:virtualInterfaceId:AssociateVirtualInterface' :: Text
virtualInterfaceId = Text
a} :: AssociateVirtualInterface)
associateVirtualInterface_connectionId :: Lens.Lens' AssociateVirtualInterface Prelude.Text
associateVirtualInterface_connectionId :: Lens' AssociateVirtualInterface Text
associateVirtualInterface_connectionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateVirtualInterface' {Text
connectionId :: Text
$sel:connectionId:AssociateVirtualInterface' :: AssociateVirtualInterface -> Text
connectionId} -> Text
connectionId) (\s :: AssociateVirtualInterface
s@AssociateVirtualInterface' {} Text
a -> AssociateVirtualInterface
s {$sel:connectionId:AssociateVirtualInterface' :: Text
connectionId = Text
a} :: AssociateVirtualInterface)
instance Core.AWSRequest AssociateVirtualInterface where
type
AWSResponse AssociateVirtualInterface =
VirtualInterface
request :: (Service -> Service)
-> AssociateVirtualInterface -> Request AssociateVirtualInterface
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy AssociateVirtualInterface
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse AssociateVirtualInterface)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
(\Int
s ResponseHeaders
h Object
x -> forall a. FromJSON a => Object -> Either String a
Data.eitherParseJSON Object
x)
instance Prelude.Hashable AssociateVirtualInterface where
hashWithSalt :: Int -> AssociateVirtualInterface -> Int
hashWithSalt Int
_salt AssociateVirtualInterface' {Text
connectionId :: Text
virtualInterfaceId :: Text
$sel:connectionId:AssociateVirtualInterface' :: AssociateVirtualInterface -> Text
$sel:virtualInterfaceId:AssociateVirtualInterface' :: AssociateVirtualInterface -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
virtualInterfaceId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
connectionId
instance Prelude.NFData AssociateVirtualInterface where
rnf :: AssociateVirtualInterface -> ()
rnf AssociateVirtualInterface' {Text
connectionId :: Text
virtualInterfaceId :: Text
$sel:connectionId:AssociateVirtualInterface' :: AssociateVirtualInterface -> Text
$sel:virtualInterfaceId:AssociateVirtualInterface' :: AssociateVirtualInterface -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
virtualInterfaceId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
connectionId
instance Data.ToHeaders AssociateVirtualInterface where
toHeaders :: AssociateVirtualInterface -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"OvertureService.AssociateVirtualInterface" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON AssociateVirtualInterface where
toJSON :: AssociateVirtualInterface -> Value
toJSON AssociateVirtualInterface' {Text
connectionId :: Text
virtualInterfaceId :: Text
$sel:connectionId:AssociateVirtualInterface' :: AssociateVirtualInterface -> Text
$sel:virtualInterfaceId:AssociateVirtualInterface' :: AssociateVirtualInterface -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"virtualInterfaceId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
virtualInterfaceId),
forall a. a -> Maybe a
Prelude.Just (Key
"connectionId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
connectionId)
]
)
instance Data.ToPath AssociateVirtualInterface where
toPath :: AssociateVirtualInterface -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery AssociateVirtualInterface where
toQuery :: AssociateVirtualInterface -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty