module Stratosphere.AppMesh.VirtualRouter.VirtualRouterSpecProperty (
        module Exports, VirtualRouterSpecProperty(..),
        mkVirtualRouterSpecProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.AppMesh.VirtualRouter.VirtualRouterListenerProperty as Exports
import Stratosphere.ResourceProperties
data VirtualRouterSpecProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterspec.html>
    VirtualRouterSpecProperty {VirtualRouterSpecProperty -> ()
haddock_workaround_ :: (),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterspec.html#cfn-appmesh-virtualrouter-virtualrouterspec-listeners>
                               VirtualRouterSpecProperty -> [VirtualRouterListenerProperty]
listeners :: [VirtualRouterListenerProperty]}
  deriving stock (VirtualRouterSpecProperty -> VirtualRouterSpecProperty -> Bool
(VirtualRouterSpecProperty -> VirtualRouterSpecProperty -> Bool)
-> (VirtualRouterSpecProperty -> VirtualRouterSpecProperty -> Bool)
-> Eq VirtualRouterSpecProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: VirtualRouterSpecProperty -> VirtualRouterSpecProperty -> Bool
== :: VirtualRouterSpecProperty -> VirtualRouterSpecProperty -> Bool
$c/= :: VirtualRouterSpecProperty -> VirtualRouterSpecProperty -> Bool
/= :: VirtualRouterSpecProperty -> VirtualRouterSpecProperty -> Bool
Prelude.Eq, Int -> VirtualRouterSpecProperty -> ShowS
[VirtualRouterSpecProperty] -> ShowS
VirtualRouterSpecProperty -> String
(Int -> VirtualRouterSpecProperty -> ShowS)
-> (VirtualRouterSpecProperty -> String)
-> ([VirtualRouterSpecProperty] -> ShowS)
-> Show VirtualRouterSpecProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> VirtualRouterSpecProperty -> ShowS
showsPrec :: Int -> VirtualRouterSpecProperty -> ShowS
$cshow :: VirtualRouterSpecProperty -> String
show :: VirtualRouterSpecProperty -> String
$cshowList :: [VirtualRouterSpecProperty] -> ShowS
showList :: [VirtualRouterSpecProperty] -> ShowS
Prelude.Show)
mkVirtualRouterSpecProperty ::
  [VirtualRouterListenerProperty] -> VirtualRouterSpecProperty
mkVirtualRouterSpecProperty :: [VirtualRouterListenerProperty] -> VirtualRouterSpecProperty
mkVirtualRouterSpecProperty [VirtualRouterListenerProperty]
listeners
  = VirtualRouterSpecProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), listeners :: [VirtualRouterListenerProperty]
listeners = [VirtualRouterListenerProperty]
listeners}
instance ToResourceProperties VirtualRouterSpecProperty where
  toResourceProperties :: VirtualRouterSpecProperty -> ResourceProperties
toResourceProperties VirtualRouterSpecProperty {[VirtualRouterListenerProperty]
()
haddock_workaround_ :: VirtualRouterSpecProperty -> ()
listeners :: VirtualRouterSpecProperty -> [VirtualRouterListenerProperty]
haddock_workaround_ :: ()
listeners :: [VirtualRouterListenerProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::AppMesh::VirtualRouter.VirtualRouterSpec",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Listeners" Key -> [VirtualRouterListenerProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [VirtualRouterListenerProperty]
listeners]}
instance JSON.ToJSON VirtualRouterSpecProperty where
  toJSON :: VirtualRouterSpecProperty -> Value
toJSON VirtualRouterSpecProperty {[VirtualRouterListenerProperty]
()
haddock_workaround_ :: VirtualRouterSpecProperty -> ()
listeners :: VirtualRouterSpecProperty -> [VirtualRouterListenerProperty]
haddock_workaround_ :: ()
listeners :: [VirtualRouterListenerProperty]
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"Listeners" Key -> [VirtualRouterListenerProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [VirtualRouterListenerProperty]
listeners]
instance Property "Listeners" VirtualRouterSpecProperty where
  type PropertyType "Listeners" VirtualRouterSpecProperty = [VirtualRouterListenerProperty]
  set :: PropertyType "Listeners" VirtualRouterSpecProperty
-> VirtualRouterSpecProperty -> VirtualRouterSpecProperty
set PropertyType "Listeners" VirtualRouterSpecProperty
newValue VirtualRouterSpecProperty {[VirtualRouterListenerProperty]
()
haddock_workaround_ :: VirtualRouterSpecProperty -> ()
listeners :: VirtualRouterSpecProperty -> [VirtualRouterListenerProperty]
haddock_workaround_ :: ()
listeners :: [VirtualRouterListenerProperty]
..}
    = VirtualRouterSpecProperty {listeners :: [VirtualRouterListenerProperty]
listeners = [VirtualRouterListenerProperty]
PropertyType "Listeners" VirtualRouterSpecProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}