{-# 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.NetworkManager.CreateGlobalNetwork
(
CreateGlobalNetwork (..),
newCreateGlobalNetwork,
createGlobalNetwork_description,
createGlobalNetwork_tags,
CreateGlobalNetworkResponse (..),
newCreateGlobalNetworkResponse,
createGlobalNetworkResponse_globalNetwork,
createGlobalNetworkResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.NetworkManager.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateGlobalNetwork = CreateGlobalNetwork'
{
CreateGlobalNetwork -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
CreateGlobalNetwork -> Maybe [Tag]
tags :: Prelude.Maybe [Tag]
}
deriving (CreateGlobalNetwork -> CreateGlobalNetwork -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateGlobalNetwork -> CreateGlobalNetwork -> Bool
$c/= :: CreateGlobalNetwork -> CreateGlobalNetwork -> Bool
== :: CreateGlobalNetwork -> CreateGlobalNetwork -> Bool
$c== :: CreateGlobalNetwork -> CreateGlobalNetwork -> Bool
Prelude.Eq, ReadPrec [CreateGlobalNetwork]
ReadPrec CreateGlobalNetwork
Int -> ReadS CreateGlobalNetwork
ReadS [CreateGlobalNetwork]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateGlobalNetwork]
$creadListPrec :: ReadPrec [CreateGlobalNetwork]
readPrec :: ReadPrec CreateGlobalNetwork
$creadPrec :: ReadPrec CreateGlobalNetwork
readList :: ReadS [CreateGlobalNetwork]
$creadList :: ReadS [CreateGlobalNetwork]
readsPrec :: Int -> ReadS CreateGlobalNetwork
$creadsPrec :: Int -> ReadS CreateGlobalNetwork
Prelude.Read, Int -> CreateGlobalNetwork -> ShowS
[CreateGlobalNetwork] -> ShowS
CreateGlobalNetwork -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateGlobalNetwork] -> ShowS
$cshowList :: [CreateGlobalNetwork] -> ShowS
show :: CreateGlobalNetwork -> String
$cshow :: CreateGlobalNetwork -> String
showsPrec :: Int -> CreateGlobalNetwork -> ShowS
$cshowsPrec :: Int -> CreateGlobalNetwork -> ShowS
Prelude.Show, forall x. Rep CreateGlobalNetwork x -> CreateGlobalNetwork
forall x. CreateGlobalNetwork -> Rep CreateGlobalNetwork x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateGlobalNetwork x -> CreateGlobalNetwork
$cfrom :: forall x. CreateGlobalNetwork -> Rep CreateGlobalNetwork x
Prelude.Generic)
newCreateGlobalNetwork ::
CreateGlobalNetwork
newCreateGlobalNetwork :: CreateGlobalNetwork
newCreateGlobalNetwork =
CreateGlobalNetwork'
{ $sel:description:CreateGlobalNetwork' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateGlobalNetwork' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing
}
createGlobalNetwork_description :: Lens.Lens' CreateGlobalNetwork (Prelude.Maybe Prelude.Text)
createGlobalNetwork_description :: Lens' CreateGlobalNetwork (Maybe Text)
createGlobalNetwork_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGlobalNetwork' {Maybe Text
description :: Maybe Text
$sel:description:CreateGlobalNetwork' :: CreateGlobalNetwork -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateGlobalNetwork
s@CreateGlobalNetwork' {} Maybe Text
a -> CreateGlobalNetwork
s {$sel:description:CreateGlobalNetwork' :: Maybe Text
description = Maybe Text
a} :: CreateGlobalNetwork)
createGlobalNetwork_tags :: Lens.Lens' CreateGlobalNetwork (Prelude.Maybe [Tag])
createGlobalNetwork_tags :: Lens' CreateGlobalNetwork (Maybe [Tag])
createGlobalNetwork_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGlobalNetwork' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateGlobalNetwork' :: CreateGlobalNetwork -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateGlobalNetwork
s@CreateGlobalNetwork' {} Maybe [Tag]
a -> CreateGlobalNetwork
s {$sel:tags:CreateGlobalNetwork' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateGlobalNetwork) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Core.AWSRequest CreateGlobalNetwork where
type
AWSResponse CreateGlobalNetwork =
CreateGlobalNetworkResponse
request :: (Service -> Service)
-> CreateGlobalNetwork -> Request CreateGlobalNetwork
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 CreateGlobalNetwork
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateGlobalNetwork)))
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 GlobalNetwork -> Int -> CreateGlobalNetworkResponse
CreateGlobalNetworkResponse'
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
"GlobalNetwork")
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 CreateGlobalNetwork where
hashWithSalt :: Int -> CreateGlobalNetwork -> Int
hashWithSalt Int
_salt CreateGlobalNetwork' {Maybe [Tag]
Maybe Text
tags :: Maybe [Tag]
description :: Maybe Text
$sel:tags:CreateGlobalNetwork' :: CreateGlobalNetwork -> Maybe [Tag]
$sel:description:CreateGlobalNetwork' :: CreateGlobalNetwork -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
instance Prelude.NFData CreateGlobalNetwork where
rnf :: CreateGlobalNetwork -> ()
rnf CreateGlobalNetwork' {Maybe [Tag]
Maybe Text
tags :: Maybe [Tag]
description :: Maybe Text
$sel:tags:CreateGlobalNetwork' :: CreateGlobalNetwork -> Maybe [Tag]
$sel:description:CreateGlobalNetwork' :: CreateGlobalNetwork -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
instance Data.ToHeaders CreateGlobalNetwork where
toHeaders :: CreateGlobalNetwork -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateGlobalNetwork where
toJSON :: CreateGlobalNetwork -> Value
toJSON CreateGlobalNetwork' {Maybe [Tag]
Maybe Text
tags :: Maybe [Tag]
description :: Maybe Text
$sel:tags:CreateGlobalNetwork' :: CreateGlobalNetwork -> Maybe [Tag]
$sel:description:CreateGlobalNetwork' :: CreateGlobalNetwork -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Description" 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 Text
description,
(Key
"Tags" 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 [Tag]
tags
]
)
instance Data.ToPath CreateGlobalNetwork where
toPath :: CreateGlobalNetwork -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/global-networks"
instance Data.ToQuery CreateGlobalNetwork where
toQuery :: CreateGlobalNetwork -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateGlobalNetworkResponse = CreateGlobalNetworkResponse'
{
CreateGlobalNetworkResponse -> Maybe GlobalNetwork
globalNetwork :: Prelude.Maybe GlobalNetwork,
CreateGlobalNetworkResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateGlobalNetworkResponse -> CreateGlobalNetworkResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateGlobalNetworkResponse -> CreateGlobalNetworkResponse -> Bool
$c/= :: CreateGlobalNetworkResponse -> CreateGlobalNetworkResponse -> Bool
== :: CreateGlobalNetworkResponse -> CreateGlobalNetworkResponse -> Bool
$c== :: CreateGlobalNetworkResponse -> CreateGlobalNetworkResponse -> Bool
Prelude.Eq, ReadPrec [CreateGlobalNetworkResponse]
ReadPrec CreateGlobalNetworkResponse
Int -> ReadS CreateGlobalNetworkResponse
ReadS [CreateGlobalNetworkResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateGlobalNetworkResponse]
$creadListPrec :: ReadPrec [CreateGlobalNetworkResponse]
readPrec :: ReadPrec CreateGlobalNetworkResponse
$creadPrec :: ReadPrec CreateGlobalNetworkResponse
readList :: ReadS [CreateGlobalNetworkResponse]
$creadList :: ReadS [CreateGlobalNetworkResponse]
readsPrec :: Int -> ReadS CreateGlobalNetworkResponse
$creadsPrec :: Int -> ReadS CreateGlobalNetworkResponse
Prelude.Read, Int -> CreateGlobalNetworkResponse -> ShowS
[CreateGlobalNetworkResponse] -> ShowS
CreateGlobalNetworkResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateGlobalNetworkResponse] -> ShowS
$cshowList :: [CreateGlobalNetworkResponse] -> ShowS
show :: CreateGlobalNetworkResponse -> String
$cshow :: CreateGlobalNetworkResponse -> String
showsPrec :: Int -> CreateGlobalNetworkResponse -> ShowS
$cshowsPrec :: Int -> CreateGlobalNetworkResponse -> ShowS
Prelude.Show, forall x.
Rep CreateGlobalNetworkResponse x -> CreateGlobalNetworkResponse
forall x.
CreateGlobalNetworkResponse -> Rep CreateGlobalNetworkResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateGlobalNetworkResponse x -> CreateGlobalNetworkResponse
$cfrom :: forall x.
CreateGlobalNetworkResponse -> Rep CreateGlobalNetworkResponse x
Prelude.Generic)
newCreateGlobalNetworkResponse ::
Prelude.Int ->
CreateGlobalNetworkResponse
newCreateGlobalNetworkResponse :: Int -> CreateGlobalNetworkResponse
newCreateGlobalNetworkResponse Int
pHttpStatus_ =
CreateGlobalNetworkResponse'
{ $sel:globalNetwork:CreateGlobalNetworkResponse' :: Maybe GlobalNetwork
globalNetwork =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateGlobalNetworkResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createGlobalNetworkResponse_globalNetwork :: Lens.Lens' CreateGlobalNetworkResponse (Prelude.Maybe GlobalNetwork)
createGlobalNetworkResponse_globalNetwork :: Lens' CreateGlobalNetworkResponse (Maybe GlobalNetwork)
createGlobalNetworkResponse_globalNetwork = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGlobalNetworkResponse' {Maybe GlobalNetwork
globalNetwork :: Maybe GlobalNetwork
$sel:globalNetwork:CreateGlobalNetworkResponse' :: CreateGlobalNetworkResponse -> Maybe GlobalNetwork
globalNetwork} -> Maybe GlobalNetwork
globalNetwork) (\s :: CreateGlobalNetworkResponse
s@CreateGlobalNetworkResponse' {} Maybe GlobalNetwork
a -> CreateGlobalNetworkResponse
s {$sel:globalNetwork:CreateGlobalNetworkResponse' :: Maybe GlobalNetwork
globalNetwork = Maybe GlobalNetwork
a} :: CreateGlobalNetworkResponse)
createGlobalNetworkResponse_httpStatus :: Lens.Lens' CreateGlobalNetworkResponse Prelude.Int
createGlobalNetworkResponse_httpStatus :: Lens' CreateGlobalNetworkResponse Int
createGlobalNetworkResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGlobalNetworkResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateGlobalNetworkResponse' :: CreateGlobalNetworkResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateGlobalNetworkResponse
s@CreateGlobalNetworkResponse' {} Int
a -> CreateGlobalNetworkResponse
s {$sel:httpStatus:CreateGlobalNetworkResponse' :: Int
httpStatus = Int
a} :: CreateGlobalNetworkResponse)
instance Prelude.NFData CreateGlobalNetworkResponse where
rnf :: CreateGlobalNetworkResponse -> ()
rnf CreateGlobalNetworkResponse' {Int
Maybe GlobalNetwork
httpStatus :: Int
globalNetwork :: Maybe GlobalNetwork
$sel:httpStatus:CreateGlobalNetworkResponse' :: CreateGlobalNetworkResponse -> Int
$sel:globalNetwork:CreateGlobalNetworkResponse' :: CreateGlobalNetworkResponse -> Maybe GlobalNetwork
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe GlobalNetwork
globalNetwork
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus