{-# 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.CreateDirectConnectGateway
(
CreateDirectConnectGateway (..),
newCreateDirectConnectGateway,
createDirectConnectGateway_amazonSideAsn,
createDirectConnectGateway_directConnectGatewayName,
CreateDirectConnectGatewayResponse (..),
newCreateDirectConnectGatewayResponse,
createDirectConnectGatewayResponse_directConnectGateway,
createDirectConnectGatewayResponse_httpStatus,
)
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 CreateDirectConnectGateway = CreateDirectConnectGateway'
{
CreateDirectConnectGateway -> Maybe Integer
amazonSideAsn :: Prelude.Maybe Prelude.Integer,
CreateDirectConnectGateway -> Text
directConnectGatewayName :: Prelude.Text
}
deriving (CreateDirectConnectGateway -> CreateDirectConnectGateway -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateDirectConnectGateway -> CreateDirectConnectGateway -> Bool
$c/= :: CreateDirectConnectGateway -> CreateDirectConnectGateway -> Bool
== :: CreateDirectConnectGateway -> CreateDirectConnectGateway -> Bool
$c== :: CreateDirectConnectGateway -> CreateDirectConnectGateway -> Bool
Prelude.Eq, ReadPrec [CreateDirectConnectGateway]
ReadPrec CreateDirectConnectGateway
Int -> ReadS CreateDirectConnectGateway
ReadS [CreateDirectConnectGateway]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateDirectConnectGateway]
$creadListPrec :: ReadPrec [CreateDirectConnectGateway]
readPrec :: ReadPrec CreateDirectConnectGateway
$creadPrec :: ReadPrec CreateDirectConnectGateway
readList :: ReadS [CreateDirectConnectGateway]
$creadList :: ReadS [CreateDirectConnectGateway]
readsPrec :: Int -> ReadS CreateDirectConnectGateway
$creadsPrec :: Int -> ReadS CreateDirectConnectGateway
Prelude.Read, Int -> CreateDirectConnectGateway -> ShowS
[CreateDirectConnectGateway] -> ShowS
CreateDirectConnectGateway -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateDirectConnectGateway] -> ShowS
$cshowList :: [CreateDirectConnectGateway] -> ShowS
show :: CreateDirectConnectGateway -> String
$cshow :: CreateDirectConnectGateway -> String
showsPrec :: Int -> CreateDirectConnectGateway -> ShowS
$cshowsPrec :: Int -> CreateDirectConnectGateway -> ShowS
Prelude.Show, forall x.
Rep CreateDirectConnectGateway x -> CreateDirectConnectGateway
forall x.
CreateDirectConnectGateway -> Rep CreateDirectConnectGateway x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateDirectConnectGateway x -> CreateDirectConnectGateway
$cfrom :: forall x.
CreateDirectConnectGateway -> Rep CreateDirectConnectGateway x
Prelude.Generic)
newCreateDirectConnectGateway ::
Prelude.Text ->
CreateDirectConnectGateway
newCreateDirectConnectGateway :: Text -> CreateDirectConnectGateway
newCreateDirectConnectGateway
Text
pDirectConnectGatewayName_ =
CreateDirectConnectGateway'
{ $sel:amazonSideAsn:CreateDirectConnectGateway' :: Maybe Integer
amazonSideAsn =
forall a. Maybe a
Prelude.Nothing,
$sel:directConnectGatewayName:CreateDirectConnectGateway' :: Text
directConnectGatewayName =
Text
pDirectConnectGatewayName_
}
createDirectConnectGateway_amazonSideAsn :: Lens.Lens' CreateDirectConnectGateway (Prelude.Maybe Prelude.Integer)
createDirectConnectGateway_amazonSideAsn :: Lens' CreateDirectConnectGateway (Maybe Integer)
createDirectConnectGateway_amazonSideAsn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDirectConnectGateway' {Maybe Integer
amazonSideAsn :: Maybe Integer
$sel:amazonSideAsn:CreateDirectConnectGateway' :: CreateDirectConnectGateway -> Maybe Integer
amazonSideAsn} -> Maybe Integer
amazonSideAsn) (\s :: CreateDirectConnectGateway
s@CreateDirectConnectGateway' {} Maybe Integer
a -> CreateDirectConnectGateway
s {$sel:amazonSideAsn:CreateDirectConnectGateway' :: Maybe Integer
amazonSideAsn = Maybe Integer
a} :: CreateDirectConnectGateway)
createDirectConnectGateway_directConnectGatewayName :: Lens.Lens' CreateDirectConnectGateway Prelude.Text
createDirectConnectGateway_directConnectGatewayName :: Lens' CreateDirectConnectGateway Text
createDirectConnectGateway_directConnectGatewayName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDirectConnectGateway' {Text
directConnectGatewayName :: Text
$sel:directConnectGatewayName:CreateDirectConnectGateway' :: CreateDirectConnectGateway -> Text
directConnectGatewayName} -> Text
directConnectGatewayName) (\s :: CreateDirectConnectGateway
s@CreateDirectConnectGateway' {} Text
a -> CreateDirectConnectGateway
s {$sel:directConnectGatewayName:CreateDirectConnectGateway' :: Text
directConnectGatewayName = Text
a} :: CreateDirectConnectGateway)
instance Core.AWSRequest CreateDirectConnectGateway where
type
AWSResponse CreateDirectConnectGateway =
CreateDirectConnectGatewayResponse
request :: (Service -> Service)
-> CreateDirectConnectGateway -> Request CreateDirectConnectGateway
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 CreateDirectConnectGateway
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateDirectConnectGateway)))
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 ->
Maybe DirectConnectGateway
-> Int -> CreateDirectConnectGatewayResponse
CreateDirectConnectGatewayResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"directConnectGateway")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable CreateDirectConnectGateway where
hashWithSalt :: Int -> CreateDirectConnectGateway -> Int
hashWithSalt Int
_salt CreateDirectConnectGateway' {Maybe Integer
Text
directConnectGatewayName :: Text
amazonSideAsn :: Maybe Integer
$sel:directConnectGatewayName:CreateDirectConnectGateway' :: CreateDirectConnectGateway -> Text
$sel:amazonSideAsn:CreateDirectConnectGateway' :: CreateDirectConnectGateway -> Maybe Integer
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
amazonSideAsn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
directConnectGatewayName
instance Prelude.NFData CreateDirectConnectGateway where
rnf :: CreateDirectConnectGateway -> ()
rnf CreateDirectConnectGateway' {Maybe Integer
Text
directConnectGatewayName :: Text
amazonSideAsn :: Maybe Integer
$sel:directConnectGatewayName:CreateDirectConnectGateway' :: CreateDirectConnectGateway -> Text
$sel:amazonSideAsn:CreateDirectConnectGateway' :: CreateDirectConnectGateway -> Maybe Integer
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
amazonSideAsn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
directConnectGatewayName
instance Data.ToHeaders CreateDirectConnectGateway where
toHeaders :: CreateDirectConnectGateway -> 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.CreateDirectConnectGateway" ::
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 CreateDirectConnectGateway where
toJSON :: CreateDirectConnectGateway -> Value
toJSON CreateDirectConnectGateway' {Maybe Integer
Text
directConnectGatewayName :: Text
amazonSideAsn :: Maybe Integer
$sel:directConnectGatewayName:CreateDirectConnectGateway' :: CreateDirectConnectGateway -> Text
$sel:amazonSideAsn:CreateDirectConnectGateway' :: CreateDirectConnectGateway -> Maybe Integer
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"amazonSideAsn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Integer
amazonSideAsn,
forall a. a -> Maybe a
Prelude.Just
( Key
"directConnectGatewayName"
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
directConnectGatewayName
)
]
)
instance Data.ToPath CreateDirectConnectGateway where
toPath :: CreateDirectConnectGateway -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateDirectConnectGateway where
toQuery :: CreateDirectConnectGateway -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateDirectConnectGatewayResponse = CreateDirectConnectGatewayResponse'
{
CreateDirectConnectGatewayResponse -> Maybe DirectConnectGateway
directConnectGateway :: Prelude.Maybe DirectConnectGateway,
CreateDirectConnectGatewayResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateDirectConnectGatewayResponse
-> CreateDirectConnectGatewayResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateDirectConnectGatewayResponse
-> CreateDirectConnectGatewayResponse -> Bool
$c/= :: CreateDirectConnectGatewayResponse
-> CreateDirectConnectGatewayResponse -> Bool
== :: CreateDirectConnectGatewayResponse
-> CreateDirectConnectGatewayResponse -> Bool
$c== :: CreateDirectConnectGatewayResponse
-> CreateDirectConnectGatewayResponse -> Bool
Prelude.Eq, ReadPrec [CreateDirectConnectGatewayResponse]
ReadPrec CreateDirectConnectGatewayResponse
Int -> ReadS CreateDirectConnectGatewayResponse
ReadS [CreateDirectConnectGatewayResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateDirectConnectGatewayResponse]
$creadListPrec :: ReadPrec [CreateDirectConnectGatewayResponse]
readPrec :: ReadPrec CreateDirectConnectGatewayResponse
$creadPrec :: ReadPrec CreateDirectConnectGatewayResponse
readList :: ReadS [CreateDirectConnectGatewayResponse]
$creadList :: ReadS [CreateDirectConnectGatewayResponse]
readsPrec :: Int -> ReadS CreateDirectConnectGatewayResponse
$creadsPrec :: Int -> ReadS CreateDirectConnectGatewayResponse
Prelude.Read, Int -> CreateDirectConnectGatewayResponse -> ShowS
[CreateDirectConnectGatewayResponse] -> ShowS
CreateDirectConnectGatewayResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateDirectConnectGatewayResponse] -> ShowS
$cshowList :: [CreateDirectConnectGatewayResponse] -> ShowS
show :: CreateDirectConnectGatewayResponse -> String
$cshow :: CreateDirectConnectGatewayResponse -> String
showsPrec :: Int -> CreateDirectConnectGatewayResponse -> ShowS
$cshowsPrec :: Int -> CreateDirectConnectGatewayResponse -> ShowS
Prelude.Show, forall x.
Rep CreateDirectConnectGatewayResponse x
-> CreateDirectConnectGatewayResponse
forall x.
CreateDirectConnectGatewayResponse
-> Rep CreateDirectConnectGatewayResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateDirectConnectGatewayResponse x
-> CreateDirectConnectGatewayResponse
$cfrom :: forall x.
CreateDirectConnectGatewayResponse
-> Rep CreateDirectConnectGatewayResponse x
Prelude.Generic)
newCreateDirectConnectGatewayResponse ::
Prelude.Int ->
CreateDirectConnectGatewayResponse
newCreateDirectConnectGatewayResponse :: Int -> CreateDirectConnectGatewayResponse
newCreateDirectConnectGatewayResponse Int
pHttpStatus_ =
CreateDirectConnectGatewayResponse'
{ $sel:directConnectGateway:CreateDirectConnectGatewayResponse' :: Maybe DirectConnectGateway
directConnectGateway =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateDirectConnectGatewayResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createDirectConnectGatewayResponse_directConnectGateway :: Lens.Lens' CreateDirectConnectGatewayResponse (Prelude.Maybe DirectConnectGateway)
createDirectConnectGatewayResponse_directConnectGateway :: Lens'
CreateDirectConnectGatewayResponse (Maybe DirectConnectGateway)
createDirectConnectGatewayResponse_directConnectGateway = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDirectConnectGatewayResponse' {Maybe DirectConnectGateway
directConnectGateway :: Maybe DirectConnectGateway
$sel:directConnectGateway:CreateDirectConnectGatewayResponse' :: CreateDirectConnectGatewayResponse -> Maybe DirectConnectGateway
directConnectGateway} -> Maybe DirectConnectGateway
directConnectGateway) (\s :: CreateDirectConnectGatewayResponse
s@CreateDirectConnectGatewayResponse' {} Maybe DirectConnectGateway
a -> CreateDirectConnectGatewayResponse
s {$sel:directConnectGateway:CreateDirectConnectGatewayResponse' :: Maybe DirectConnectGateway
directConnectGateway = Maybe DirectConnectGateway
a} :: CreateDirectConnectGatewayResponse)
createDirectConnectGatewayResponse_httpStatus :: Lens.Lens' CreateDirectConnectGatewayResponse Prelude.Int
createDirectConnectGatewayResponse_httpStatus :: Lens' CreateDirectConnectGatewayResponse Int
createDirectConnectGatewayResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDirectConnectGatewayResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateDirectConnectGatewayResponse' :: CreateDirectConnectGatewayResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateDirectConnectGatewayResponse
s@CreateDirectConnectGatewayResponse' {} Int
a -> CreateDirectConnectGatewayResponse
s {$sel:httpStatus:CreateDirectConnectGatewayResponse' :: Int
httpStatus = Int
a} :: CreateDirectConnectGatewayResponse)
instance
Prelude.NFData
CreateDirectConnectGatewayResponse
where
rnf :: CreateDirectConnectGatewayResponse -> ()
rnf CreateDirectConnectGatewayResponse' {Int
Maybe DirectConnectGateway
httpStatus :: Int
directConnectGateway :: Maybe DirectConnectGateway
$sel:httpStatus:CreateDirectConnectGatewayResponse' :: CreateDirectConnectGatewayResponse -> Int
$sel:directConnectGateway:CreateDirectConnectGatewayResponse' :: CreateDirectConnectGatewayResponse -> Maybe DirectConnectGateway
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe DirectConnectGateway
directConnectGateway
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus