module Stratosphere.ApiGatewayV2.RoutingRule.MatchHeaderValueProperty (
        MatchHeaderValueProperty(..), mkMatchHeaderValueProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data MatchHeaderValueProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-routingrule-matchheadervalue.html>
    MatchHeaderValueProperty {MatchHeaderValueProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-routingrule-matchheadervalue.html#cfn-apigatewayv2-routingrule-matchheadervalue-header>
                              MatchHeaderValueProperty -> Value Text
header :: (Value Prelude.Text),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-routingrule-matchheadervalue.html#cfn-apigatewayv2-routingrule-matchheadervalue-valueglob>
                              MatchHeaderValueProperty -> Value Text
valueGlob :: (Value Prelude.Text)}
  deriving stock (MatchHeaderValueProperty -> MatchHeaderValueProperty -> Bool
(MatchHeaderValueProperty -> MatchHeaderValueProperty -> Bool)
-> (MatchHeaderValueProperty -> MatchHeaderValueProperty -> Bool)
-> Eq MatchHeaderValueProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MatchHeaderValueProperty -> MatchHeaderValueProperty -> Bool
== :: MatchHeaderValueProperty -> MatchHeaderValueProperty -> Bool
$c/= :: MatchHeaderValueProperty -> MatchHeaderValueProperty -> Bool
/= :: MatchHeaderValueProperty -> MatchHeaderValueProperty -> Bool
Prelude.Eq, Int -> MatchHeaderValueProperty -> ShowS
[MatchHeaderValueProperty] -> ShowS
MatchHeaderValueProperty -> String
(Int -> MatchHeaderValueProperty -> ShowS)
-> (MatchHeaderValueProperty -> String)
-> ([MatchHeaderValueProperty] -> ShowS)
-> Show MatchHeaderValueProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> MatchHeaderValueProperty -> ShowS
showsPrec :: Int -> MatchHeaderValueProperty -> ShowS
$cshow :: MatchHeaderValueProperty -> String
show :: MatchHeaderValueProperty -> String
$cshowList :: [MatchHeaderValueProperty] -> ShowS
showList :: [MatchHeaderValueProperty] -> ShowS
Prelude.Show)
mkMatchHeaderValueProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> MatchHeaderValueProperty
mkMatchHeaderValueProperty :: Value Text -> Value Text -> MatchHeaderValueProperty
mkMatchHeaderValueProperty Value Text
header Value Text
valueGlob
  = MatchHeaderValueProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), header :: Value Text
header = Value Text
header, valueGlob :: Value Text
valueGlob = Value Text
valueGlob}
instance ToResourceProperties MatchHeaderValueProperty where
  toResourceProperties :: MatchHeaderValueProperty -> ResourceProperties
toResourceProperties MatchHeaderValueProperty {()
Value Text
haddock_workaround_ :: MatchHeaderValueProperty -> ()
header :: MatchHeaderValueProperty -> Value Text
valueGlob :: MatchHeaderValueProperty -> Value Text
haddock_workaround_ :: ()
header :: Value Text
valueGlob :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::ApiGatewayV2::RoutingRule.MatchHeaderValue",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Header" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
header,
                       Key
"ValueGlob" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
valueGlob]}
instance JSON.ToJSON MatchHeaderValueProperty where
  toJSON :: MatchHeaderValueProperty -> Value
toJSON MatchHeaderValueProperty {()
Value Text
haddock_workaround_ :: MatchHeaderValueProperty -> ()
header :: MatchHeaderValueProperty -> Value Text
valueGlob :: MatchHeaderValueProperty -> Value Text
haddock_workaround_ :: ()
header :: Value Text
valueGlob :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Header" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
header, Key
"ValueGlob" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
valueGlob]
instance Property "Header" MatchHeaderValueProperty where
  type PropertyType "Header" MatchHeaderValueProperty = Value Prelude.Text
  set :: PropertyType "Header" MatchHeaderValueProperty
-> MatchHeaderValueProperty -> MatchHeaderValueProperty
set PropertyType "Header" MatchHeaderValueProperty
newValue MatchHeaderValueProperty {()
Value Text
haddock_workaround_ :: MatchHeaderValueProperty -> ()
header :: MatchHeaderValueProperty -> Value Text
valueGlob :: MatchHeaderValueProperty -> Value Text
haddock_workaround_ :: ()
header :: Value Text
valueGlob :: Value Text
..}
    = MatchHeaderValueProperty {header :: Value Text
header = PropertyType "Header" MatchHeaderValueProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
valueGlob :: Value Text
haddock_workaround_ :: ()
valueGlob :: Value Text
..}
instance Property "ValueGlob" MatchHeaderValueProperty where
  type PropertyType "ValueGlob" MatchHeaderValueProperty = Value Prelude.Text
  set :: PropertyType "ValueGlob" MatchHeaderValueProperty
-> MatchHeaderValueProperty -> MatchHeaderValueProperty
set PropertyType "ValueGlob" MatchHeaderValueProperty
newValue MatchHeaderValueProperty {()
Value Text
haddock_workaround_ :: MatchHeaderValueProperty -> ()
header :: MatchHeaderValueProperty -> Value Text
valueGlob :: MatchHeaderValueProperty -> Value Text
haddock_workaround_ :: ()
header :: Value Text
valueGlob :: Value Text
..}
    = MatchHeaderValueProperty {valueGlob :: Value Text
valueGlob = PropertyType "ValueGlob" MatchHeaderValueProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
header :: Value Text
haddock_workaround_ :: ()
header :: Value Text
..}