{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.AppMesh.Types.VirtualNodeConnectionPool where
import Amazonka.AppMesh.Types.VirtualNodeGrpcConnectionPool
import Amazonka.AppMesh.Types.VirtualNodeHttp2ConnectionPool
import Amazonka.AppMesh.Types.VirtualNodeHttpConnectionPool
import Amazonka.AppMesh.Types.VirtualNodeTcpConnectionPool
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
data VirtualNodeConnectionPool = VirtualNodeConnectionPool'
{
VirtualNodeConnectionPool -> Maybe VirtualNodeGrpcConnectionPool
grpc :: Prelude.Maybe VirtualNodeGrpcConnectionPool,
VirtualNodeConnectionPool -> Maybe VirtualNodeHttpConnectionPool
http :: Prelude.Maybe VirtualNodeHttpConnectionPool,
VirtualNodeConnectionPool -> Maybe VirtualNodeHttp2ConnectionPool
http2 :: Prelude.Maybe VirtualNodeHttp2ConnectionPool,
VirtualNodeConnectionPool -> Maybe VirtualNodeTcpConnectionPool
tcp :: Prelude.Maybe VirtualNodeTcpConnectionPool
}
deriving (VirtualNodeConnectionPool -> VirtualNodeConnectionPool -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VirtualNodeConnectionPool -> VirtualNodeConnectionPool -> Bool
$c/= :: VirtualNodeConnectionPool -> VirtualNodeConnectionPool -> Bool
== :: VirtualNodeConnectionPool -> VirtualNodeConnectionPool -> Bool
$c== :: VirtualNodeConnectionPool -> VirtualNodeConnectionPool -> Bool
Prelude.Eq, ReadPrec [VirtualNodeConnectionPool]
ReadPrec VirtualNodeConnectionPool
Int -> ReadS VirtualNodeConnectionPool
ReadS [VirtualNodeConnectionPool]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [VirtualNodeConnectionPool]
$creadListPrec :: ReadPrec [VirtualNodeConnectionPool]
readPrec :: ReadPrec VirtualNodeConnectionPool
$creadPrec :: ReadPrec VirtualNodeConnectionPool
readList :: ReadS [VirtualNodeConnectionPool]
$creadList :: ReadS [VirtualNodeConnectionPool]
readsPrec :: Int -> ReadS VirtualNodeConnectionPool
$creadsPrec :: Int -> ReadS VirtualNodeConnectionPool
Prelude.Read, Int -> VirtualNodeConnectionPool -> ShowS
[VirtualNodeConnectionPool] -> ShowS
VirtualNodeConnectionPool -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [VirtualNodeConnectionPool] -> ShowS
$cshowList :: [VirtualNodeConnectionPool] -> ShowS
show :: VirtualNodeConnectionPool -> String
$cshow :: VirtualNodeConnectionPool -> String
showsPrec :: Int -> VirtualNodeConnectionPool -> ShowS
$cshowsPrec :: Int -> VirtualNodeConnectionPool -> ShowS
Prelude.Show, forall x.
Rep VirtualNodeConnectionPool x -> VirtualNodeConnectionPool
forall x.
VirtualNodeConnectionPool -> Rep VirtualNodeConnectionPool x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep VirtualNodeConnectionPool x -> VirtualNodeConnectionPool
$cfrom :: forall x.
VirtualNodeConnectionPool -> Rep VirtualNodeConnectionPool x
Prelude.Generic)
newVirtualNodeConnectionPool ::
VirtualNodeConnectionPool
newVirtualNodeConnectionPool :: VirtualNodeConnectionPool
newVirtualNodeConnectionPool =
VirtualNodeConnectionPool'
{ $sel:grpc:VirtualNodeConnectionPool' :: Maybe VirtualNodeGrpcConnectionPool
grpc = forall a. Maybe a
Prelude.Nothing,
$sel:http:VirtualNodeConnectionPool' :: Maybe VirtualNodeHttpConnectionPool
http = forall a. Maybe a
Prelude.Nothing,
$sel:http2:VirtualNodeConnectionPool' :: Maybe VirtualNodeHttp2ConnectionPool
http2 = forall a. Maybe a
Prelude.Nothing,
$sel:tcp:VirtualNodeConnectionPool' :: Maybe VirtualNodeTcpConnectionPool
tcp = forall a. Maybe a
Prelude.Nothing
}
virtualNodeConnectionPool_grpc :: Lens.Lens' VirtualNodeConnectionPool (Prelude.Maybe VirtualNodeGrpcConnectionPool)
virtualNodeConnectionPool_grpc :: Lens'
VirtualNodeConnectionPool (Maybe VirtualNodeGrpcConnectionPool)
virtualNodeConnectionPool_grpc = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VirtualNodeConnectionPool' {Maybe VirtualNodeGrpcConnectionPool
grpc :: Maybe VirtualNodeGrpcConnectionPool
$sel:grpc:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeGrpcConnectionPool
grpc} -> Maybe VirtualNodeGrpcConnectionPool
grpc) (\s :: VirtualNodeConnectionPool
s@VirtualNodeConnectionPool' {} Maybe VirtualNodeGrpcConnectionPool
a -> VirtualNodeConnectionPool
s {$sel:grpc:VirtualNodeConnectionPool' :: Maybe VirtualNodeGrpcConnectionPool
grpc = Maybe VirtualNodeGrpcConnectionPool
a} :: VirtualNodeConnectionPool)
virtualNodeConnectionPool_http :: Lens.Lens' VirtualNodeConnectionPool (Prelude.Maybe VirtualNodeHttpConnectionPool)
virtualNodeConnectionPool_http :: Lens'
VirtualNodeConnectionPool (Maybe VirtualNodeHttpConnectionPool)
virtualNodeConnectionPool_http = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VirtualNodeConnectionPool' {Maybe VirtualNodeHttpConnectionPool
http :: Maybe VirtualNodeHttpConnectionPool
$sel:http:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeHttpConnectionPool
http} -> Maybe VirtualNodeHttpConnectionPool
http) (\s :: VirtualNodeConnectionPool
s@VirtualNodeConnectionPool' {} Maybe VirtualNodeHttpConnectionPool
a -> VirtualNodeConnectionPool
s {$sel:http:VirtualNodeConnectionPool' :: Maybe VirtualNodeHttpConnectionPool
http = Maybe VirtualNodeHttpConnectionPool
a} :: VirtualNodeConnectionPool)
virtualNodeConnectionPool_http2 :: Lens.Lens' VirtualNodeConnectionPool (Prelude.Maybe VirtualNodeHttp2ConnectionPool)
virtualNodeConnectionPool_http2 :: Lens'
VirtualNodeConnectionPool (Maybe VirtualNodeHttp2ConnectionPool)
virtualNodeConnectionPool_http2 = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VirtualNodeConnectionPool' {Maybe VirtualNodeHttp2ConnectionPool
http2 :: Maybe VirtualNodeHttp2ConnectionPool
$sel:http2:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeHttp2ConnectionPool
http2} -> Maybe VirtualNodeHttp2ConnectionPool
http2) (\s :: VirtualNodeConnectionPool
s@VirtualNodeConnectionPool' {} Maybe VirtualNodeHttp2ConnectionPool
a -> VirtualNodeConnectionPool
s {$sel:http2:VirtualNodeConnectionPool' :: Maybe VirtualNodeHttp2ConnectionPool
http2 = Maybe VirtualNodeHttp2ConnectionPool
a} :: VirtualNodeConnectionPool)
virtualNodeConnectionPool_tcp :: Lens.Lens' VirtualNodeConnectionPool (Prelude.Maybe VirtualNodeTcpConnectionPool)
virtualNodeConnectionPool_tcp :: Lens'
VirtualNodeConnectionPool (Maybe VirtualNodeTcpConnectionPool)
virtualNodeConnectionPool_tcp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VirtualNodeConnectionPool' {Maybe VirtualNodeTcpConnectionPool
tcp :: Maybe VirtualNodeTcpConnectionPool
$sel:tcp:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeTcpConnectionPool
tcp} -> Maybe VirtualNodeTcpConnectionPool
tcp) (\s :: VirtualNodeConnectionPool
s@VirtualNodeConnectionPool' {} Maybe VirtualNodeTcpConnectionPool
a -> VirtualNodeConnectionPool
s {$sel:tcp:VirtualNodeConnectionPool' :: Maybe VirtualNodeTcpConnectionPool
tcp = Maybe VirtualNodeTcpConnectionPool
a} :: VirtualNodeConnectionPool)
instance Data.FromJSON VirtualNodeConnectionPool where
parseJSON :: Value -> Parser VirtualNodeConnectionPool
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"VirtualNodeConnectionPool"
( \Object
x ->
Maybe VirtualNodeGrpcConnectionPool
-> Maybe VirtualNodeHttpConnectionPool
-> Maybe VirtualNodeHttp2ConnectionPool
-> Maybe VirtualNodeTcpConnectionPool
-> VirtualNodeConnectionPool
VirtualNodeConnectionPool'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"grpc")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"http")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"http2")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"tcp")
)
instance Prelude.Hashable VirtualNodeConnectionPool where
hashWithSalt :: Int -> VirtualNodeConnectionPool -> Int
hashWithSalt Int
_salt VirtualNodeConnectionPool' {Maybe VirtualNodeGrpcConnectionPool
Maybe VirtualNodeHttp2ConnectionPool
Maybe VirtualNodeHttpConnectionPool
Maybe VirtualNodeTcpConnectionPool
tcp :: Maybe VirtualNodeTcpConnectionPool
http2 :: Maybe VirtualNodeHttp2ConnectionPool
http :: Maybe VirtualNodeHttpConnectionPool
grpc :: Maybe VirtualNodeGrpcConnectionPool
$sel:tcp:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeTcpConnectionPool
$sel:http2:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeHttp2ConnectionPool
$sel:http:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeHttpConnectionPool
$sel:grpc:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeGrpcConnectionPool
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VirtualNodeGrpcConnectionPool
grpc
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VirtualNodeHttpConnectionPool
http
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VirtualNodeHttp2ConnectionPool
http2
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VirtualNodeTcpConnectionPool
tcp
instance Prelude.NFData VirtualNodeConnectionPool where
rnf :: VirtualNodeConnectionPool -> ()
rnf VirtualNodeConnectionPool' {Maybe VirtualNodeGrpcConnectionPool
Maybe VirtualNodeHttp2ConnectionPool
Maybe VirtualNodeHttpConnectionPool
Maybe VirtualNodeTcpConnectionPool
tcp :: Maybe VirtualNodeTcpConnectionPool
http2 :: Maybe VirtualNodeHttp2ConnectionPool
http :: Maybe VirtualNodeHttpConnectionPool
grpc :: Maybe VirtualNodeGrpcConnectionPool
$sel:tcp:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeTcpConnectionPool
$sel:http2:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeHttp2ConnectionPool
$sel:http:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeHttpConnectionPool
$sel:grpc:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeGrpcConnectionPool
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe VirtualNodeGrpcConnectionPool
grpc
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VirtualNodeHttpConnectionPool
http
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VirtualNodeHttp2ConnectionPool
http2
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VirtualNodeTcpConnectionPool
tcp
instance Data.ToJSON VirtualNodeConnectionPool where
toJSON :: VirtualNodeConnectionPool -> Value
toJSON VirtualNodeConnectionPool' {Maybe VirtualNodeGrpcConnectionPool
Maybe VirtualNodeHttp2ConnectionPool
Maybe VirtualNodeHttpConnectionPool
Maybe VirtualNodeTcpConnectionPool
tcp :: Maybe VirtualNodeTcpConnectionPool
http2 :: Maybe VirtualNodeHttp2ConnectionPool
http :: Maybe VirtualNodeHttpConnectionPool
grpc :: Maybe VirtualNodeGrpcConnectionPool
$sel:tcp:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeTcpConnectionPool
$sel:http2:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeHttp2ConnectionPool
$sel:http:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeHttpConnectionPool
$sel:grpc:VirtualNodeConnectionPool' :: VirtualNodeConnectionPool -> Maybe VirtualNodeGrpcConnectionPool
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"grpc" 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 VirtualNodeGrpcConnectionPool
grpc,
(Key
"http" 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 VirtualNodeHttpConnectionPool
http,
(Key
"http2" 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 VirtualNodeHttp2ConnectionPool
http2,
(Key
"tcp" 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 VirtualNodeTcpConnectionPool
tcp
]
)