module Stratosphere.AppMesh.VirtualGateway.VirtualGatewayConnectionPoolProperty (
        module Exports, VirtualGatewayConnectionPoolProperty(..),
        mkVirtualGatewayConnectionPoolProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.AppMesh.VirtualGateway.VirtualGatewayGrpcConnectionPoolProperty as Exports
import {-# SOURCE #-} Stratosphere.AppMesh.VirtualGateway.VirtualGatewayHttp2ConnectionPoolProperty as Exports
import {-# SOURCE #-} Stratosphere.AppMesh.VirtualGateway.VirtualGatewayHttpConnectionPoolProperty as Exports
import Stratosphere.ResourceProperties
data VirtualGatewayConnectionPoolProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html>
    VirtualGatewayConnectionPoolProperty {VirtualGatewayConnectionPoolProperty -> ()
haddock_workaround_ :: (),
                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayconnectionpool-grpc>
                                          VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayGrpcConnectionPoolProperty
gRPC :: (Prelude.Maybe VirtualGatewayGrpcConnectionPoolProperty),
                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayconnectionpool-http>
                                          VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP :: (Prelude.Maybe VirtualGatewayHttpConnectionPoolProperty),
                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayconnectionpool-http2>
                                          VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayHttp2ConnectionPoolProperty
hTTP2 :: (Prelude.Maybe VirtualGatewayHttp2ConnectionPoolProperty)}
  deriving stock (VirtualGatewayConnectionPoolProperty
-> VirtualGatewayConnectionPoolProperty -> Bool
(VirtualGatewayConnectionPoolProperty
 -> VirtualGatewayConnectionPoolProperty -> Bool)
-> (VirtualGatewayConnectionPoolProperty
    -> VirtualGatewayConnectionPoolProperty -> Bool)
-> Eq VirtualGatewayConnectionPoolProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: VirtualGatewayConnectionPoolProperty
-> VirtualGatewayConnectionPoolProperty -> Bool
== :: VirtualGatewayConnectionPoolProperty
-> VirtualGatewayConnectionPoolProperty -> Bool
$c/= :: VirtualGatewayConnectionPoolProperty
-> VirtualGatewayConnectionPoolProperty -> Bool
/= :: VirtualGatewayConnectionPoolProperty
-> VirtualGatewayConnectionPoolProperty -> Bool
Prelude.Eq, Int -> VirtualGatewayConnectionPoolProperty -> ShowS
[VirtualGatewayConnectionPoolProperty] -> ShowS
VirtualGatewayConnectionPoolProperty -> String
(Int -> VirtualGatewayConnectionPoolProperty -> ShowS)
-> (VirtualGatewayConnectionPoolProperty -> String)
-> ([VirtualGatewayConnectionPoolProperty] -> ShowS)
-> Show VirtualGatewayConnectionPoolProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> VirtualGatewayConnectionPoolProperty -> ShowS
showsPrec :: Int -> VirtualGatewayConnectionPoolProperty -> ShowS
$cshow :: VirtualGatewayConnectionPoolProperty -> String
show :: VirtualGatewayConnectionPoolProperty -> String
$cshowList :: [VirtualGatewayConnectionPoolProperty] -> ShowS
showList :: [VirtualGatewayConnectionPoolProperty] -> ShowS
Prelude.Show)
mkVirtualGatewayConnectionPoolProperty ::
  VirtualGatewayConnectionPoolProperty
mkVirtualGatewayConnectionPoolProperty :: VirtualGatewayConnectionPoolProperty
mkVirtualGatewayConnectionPoolProperty
  = VirtualGatewayConnectionPoolProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), gRPC :: Maybe VirtualGatewayGrpcConnectionPoolProperty
gRPC = Maybe VirtualGatewayGrpcConnectionPoolProperty
forall a. Maybe a
Prelude.Nothing,
       hTTP :: Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP = Maybe VirtualGatewayHttpConnectionPoolProperty
forall a. Maybe a
Prelude.Nothing, hTTP2 :: Maybe VirtualGatewayHttp2ConnectionPoolProperty
hTTP2 = Maybe VirtualGatewayHttp2ConnectionPoolProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties VirtualGatewayConnectionPoolProperty where
  toResourceProperties :: VirtualGatewayConnectionPoolProperty -> ResourceProperties
toResourceProperties VirtualGatewayConnectionPoolProperty {Maybe VirtualGatewayGrpcConnectionPoolProperty
Maybe VirtualGatewayHttp2ConnectionPoolProperty
Maybe VirtualGatewayHttpConnectionPoolProperty
()
haddock_workaround_ :: VirtualGatewayConnectionPoolProperty -> ()
gRPC :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP2 :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayHttp2ConnectionPoolProperty
haddock_workaround_ :: ()
gRPC :: Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP :: Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP2 :: Maybe VirtualGatewayHttp2ConnectionPoolProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [Key -> VirtualGatewayGrpcConnectionPoolProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"GRPC" (VirtualGatewayGrpcConnectionPoolProperty -> (Key, Value))
-> Maybe VirtualGatewayGrpcConnectionPoolProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe VirtualGatewayGrpcConnectionPoolProperty
gRPC,
                            Key -> VirtualGatewayHttpConnectionPoolProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"HTTP" (VirtualGatewayHttpConnectionPoolProperty -> (Key, Value))
-> Maybe VirtualGatewayHttpConnectionPoolProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP,
                            Key -> VirtualGatewayHttp2ConnectionPoolProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"HTTP2" (VirtualGatewayHttp2ConnectionPoolProperty -> (Key, Value))
-> Maybe VirtualGatewayHttp2ConnectionPoolProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe VirtualGatewayHttp2ConnectionPoolProperty
hTTP2])}
instance JSON.ToJSON VirtualGatewayConnectionPoolProperty where
  toJSON :: VirtualGatewayConnectionPoolProperty -> Value
toJSON VirtualGatewayConnectionPoolProperty {Maybe VirtualGatewayGrpcConnectionPoolProperty
Maybe VirtualGatewayHttp2ConnectionPoolProperty
Maybe VirtualGatewayHttpConnectionPoolProperty
()
haddock_workaround_ :: VirtualGatewayConnectionPoolProperty -> ()
gRPC :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP2 :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayHttp2ConnectionPoolProperty
haddock_workaround_ :: ()
gRPC :: Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP :: Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP2 :: Maybe VirtualGatewayHttp2ConnectionPoolProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [Key -> VirtualGatewayGrpcConnectionPoolProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"GRPC" (VirtualGatewayGrpcConnectionPoolProperty -> (Key, Value))
-> Maybe VirtualGatewayGrpcConnectionPoolProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe VirtualGatewayGrpcConnectionPoolProperty
gRPC,
               Key -> VirtualGatewayHttpConnectionPoolProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"HTTP" (VirtualGatewayHttpConnectionPoolProperty -> (Key, Value))
-> Maybe VirtualGatewayHttpConnectionPoolProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP,
               Key -> VirtualGatewayHttp2ConnectionPoolProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"HTTP2" (VirtualGatewayHttp2ConnectionPoolProperty -> (Key, Value))
-> Maybe VirtualGatewayHttp2ConnectionPoolProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe VirtualGatewayHttp2ConnectionPoolProperty
hTTP2]))
instance Property "GRPC" VirtualGatewayConnectionPoolProperty where
  type PropertyType "GRPC" VirtualGatewayConnectionPoolProperty = VirtualGatewayGrpcConnectionPoolProperty
  set :: PropertyType "GRPC" VirtualGatewayConnectionPoolProperty
-> VirtualGatewayConnectionPoolProperty
-> VirtualGatewayConnectionPoolProperty
set PropertyType "GRPC" VirtualGatewayConnectionPoolProperty
newValue VirtualGatewayConnectionPoolProperty {Maybe VirtualGatewayGrpcConnectionPoolProperty
Maybe VirtualGatewayHttp2ConnectionPoolProperty
Maybe VirtualGatewayHttpConnectionPoolProperty
()
haddock_workaround_ :: VirtualGatewayConnectionPoolProperty -> ()
gRPC :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP2 :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayHttp2ConnectionPoolProperty
haddock_workaround_ :: ()
gRPC :: Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP :: Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP2 :: Maybe VirtualGatewayHttp2ConnectionPoolProperty
..}
    = VirtualGatewayConnectionPoolProperty
        {gRPC :: Maybe VirtualGatewayGrpcConnectionPoolProperty
gRPC = VirtualGatewayGrpcConnectionPoolProperty
-> Maybe VirtualGatewayGrpcConnectionPoolProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "GRPC" VirtualGatewayConnectionPoolProperty
VirtualGatewayGrpcConnectionPoolProperty
newValue, Maybe VirtualGatewayHttp2ConnectionPoolProperty
Maybe VirtualGatewayHttpConnectionPoolProperty
()
haddock_workaround_ :: ()
hTTP :: Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP2 :: Maybe VirtualGatewayHttp2ConnectionPoolProperty
haddock_workaround_ :: ()
hTTP :: Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP2 :: Maybe VirtualGatewayHttp2ConnectionPoolProperty
..}
instance Property "HTTP" VirtualGatewayConnectionPoolProperty where
  type PropertyType "HTTP" VirtualGatewayConnectionPoolProperty = VirtualGatewayHttpConnectionPoolProperty
  set :: PropertyType "HTTP" VirtualGatewayConnectionPoolProperty
-> VirtualGatewayConnectionPoolProperty
-> VirtualGatewayConnectionPoolProperty
set PropertyType "HTTP" VirtualGatewayConnectionPoolProperty
newValue VirtualGatewayConnectionPoolProperty {Maybe VirtualGatewayGrpcConnectionPoolProperty
Maybe VirtualGatewayHttp2ConnectionPoolProperty
Maybe VirtualGatewayHttpConnectionPoolProperty
()
haddock_workaround_ :: VirtualGatewayConnectionPoolProperty -> ()
gRPC :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP2 :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayHttp2ConnectionPoolProperty
haddock_workaround_ :: ()
gRPC :: Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP :: Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP2 :: Maybe VirtualGatewayHttp2ConnectionPoolProperty
..}
    = VirtualGatewayConnectionPoolProperty
        {hTTP :: Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP = VirtualGatewayHttpConnectionPoolProperty
-> Maybe VirtualGatewayHttpConnectionPoolProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "HTTP" VirtualGatewayConnectionPoolProperty
VirtualGatewayHttpConnectionPoolProperty
newValue, Maybe VirtualGatewayGrpcConnectionPoolProperty
Maybe VirtualGatewayHttp2ConnectionPoolProperty
()
haddock_workaround_ :: ()
gRPC :: Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP2 :: Maybe VirtualGatewayHttp2ConnectionPoolProperty
haddock_workaround_ :: ()
gRPC :: Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP2 :: Maybe VirtualGatewayHttp2ConnectionPoolProperty
..}
instance Property "HTTP2" VirtualGatewayConnectionPoolProperty where
  type PropertyType "HTTP2" VirtualGatewayConnectionPoolProperty = VirtualGatewayHttp2ConnectionPoolProperty
  set :: PropertyType "HTTP2" VirtualGatewayConnectionPoolProperty
-> VirtualGatewayConnectionPoolProperty
-> VirtualGatewayConnectionPoolProperty
set PropertyType "HTTP2" VirtualGatewayConnectionPoolProperty
newValue VirtualGatewayConnectionPoolProperty {Maybe VirtualGatewayGrpcConnectionPoolProperty
Maybe VirtualGatewayHttp2ConnectionPoolProperty
Maybe VirtualGatewayHttpConnectionPoolProperty
()
haddock_workaround_ :: VirtualGatewayConnectionPoolProperty -> ()
gRPC :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP2 :: VirtualGatewayConnectionPoolProperty
-> Maybe VirtualGatewayHttp2ConnectionPoolProperty
haddock_workaround_ :: ()
gRPC :: Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP :: Maybe VirtualGatewayHttpConnectionPoolProperty
hTTP2 :: Maybe VirtualGatewayHttp2ConnectionPoolProperty
..}
    = VirtualGatewayConnectionPoolProperty
        {hTTP2 :: Maybe VirtualGatewayHttp2ConnectionPoolProperty
hTTP2 = VirtualGatewayHttp2ConnectionPoolProperty
-> Maybe VirtualGatewayHttp2ConnectionPoolProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "HTTP2" VirtualGatewayConnectionPoolProperty
VirtualGatewayHttp2ConnectionPoolProperty
newValue, Maybe VirtualGatewayGrpcConnectionPoolProperty
Maybe VirtualGatewayHttpConnectionPoolProperty
()
haddock_workaround_ :: ()
gRPC :: Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP :: Maybe VirtualGatewayHttpConnectionPoolProperty
haddock_workaround_ :: ()
gRPC :: Maybe VirtualGatewayGrpcConnectionPoolProperty
hTTP :: Maybe VirtualGatewayHttpConnectionPoolProperty
..}