module Stratosphere.EntityResolution.IdMappingWorkflow.RuleProperty (
        RuleProperty(..), mkRuleProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data RuleProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idmappingworkflow-rule.html>
    RuleProperty {RuleProperty -> ()
haddock_workaround_ :: (),
                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idmappingworkflow-rule.html#cfn-entityresolution-idmappingworkflow-rule-matchingkeys>
                  RuleProperty -> ValueList Text
matchingKeys :: (ValueList Prelude.Text),
                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idmappingworkflow-rule.html#cfn-entityresolution-idmappingworkflow-rule-rulename>
                  RuleProperty -> Value Text
ruleName :: (Value Prelude.Text)}
  deriving stock (RuleProperty -> RuleProperty -> Bool
(RuleProperty -> RuleProperty -> Bool)
-> (RuleProperty -> RuleProperty -> Bool) -> Eq RuleProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RuleProperty -> RuleProperty -> Bool
== :: RuleProperty -> RuleProperty -> Bool
$c/= :: RuleProperty -> RuleProperty -> Bool
/= :: RuleProperty -> RuleProperty -> Bool
Prelude.Eq, Int -> RuleProperty -> ShowS
[RuleProperty] -> ShowS
RuleProperty -> String
(Int -> RuleProperty -> ShowS)
-> (RuleProperty -> String)
-> ([RuleProperty] -> ShowS)
-> Show RuleProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> RuleProperty -> ShowS
showsPrec :: Int -> RuleProperty -> ShowS
$cshow :: RuleProperty -> String
show :: RuleProperty -> String
$cshowList :: [RuleProperty] -> ShowS
showList :: [RuleProperty] -> ShowS
Prelude.Show)
mkRuleProperty ::
  ValueList Prelude.Text -> Value Prelude.Text -> RuleProperty
mkRuleProperty :: ValueList Text -> Value Text -> RuleProperty
mkRuleProperty ValueList Text
matchingKeys Value Text
ruleName
  = RuleProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), matchingKeys :: ValueList Text
matchingKeys = ValueList Text
matchingKeys,
       ruleName :: Value Text
ruleName = Value Text
ruleName}
instance ToResourceProperties RuleProperty where
  toResourceProperties :: RuleProperty -> ResourceProperties
toResourceProperties RuleProperty {()
ValueList Text
Value Text
haddock_workaround_ :: RuleProperty -> ()
matchingKeys :: RuleProperty -> ValueList Text
ruleName :: RuleProperty -> Value Text
haddock_workaround_ :: ()
matchingKeys :: ValueList Text
ruleName :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::EntityResolution::IdMappingWorkflow.Rule",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"MatchingKeys" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
matchingKeys,
                       Key
"RuleName" 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
ruleName]}
instance JSON.ToJSON RuleProperty where
  toJSON :: RuleProperty -> Value
toJSON RuleProperty {()
ValueList Text
Value Text
haddock_workaround_ :: RuleProperty -> ()
matchingKeys :: RuleProperty -> ValueList Text
ruleName :: RuleProperty -> Value Text
haddock_workaround_ :: ()
matchingKeys :: ValueList Text
ruleName :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"MatchingKeys" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
matchingKeys, Key
"RuleName" 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
ruleName]
instance Property "MatchingKeys" RuleProperty where
  type PropertyType "MatchingKeys" RuleProperty = ValueList Prelude.Text
  set :: PropertyType "MatchingKeys" RuleProperty
-> RuleProperty -> RuleProperty
set PropertyType "MatchingKeys" RuleProperty
newValue RuleProperty {()
ValueList Text
Value Text
haddock_workaround_ :: RuleProperty -> ()
matchingKeys :: RuleProperty -> ValueList Text
ruleName :: RuleProperty -> Value Text
haddock_workaround_ :: ()
matchingKeys :: ValueList Text
ruleName :: Value Text
..}
    = RuleProperty {matchingKeys :: ValueList Text
matchingKeys = PropertyType "MatchingKeys" RuleProperty
ValueList Text
newValue, ()
Value Text
haddock_workaround_ :: ()
ruleName :: Value Text
haddock_workaround_ :: ()
ruleName :: Value Text
..}
instance Property "RuleName" RuleProperty where
  type PropertyType "RuleName" RuleProperty = Value Prelude.Text
  set :: PropertyType "RuleName" RuleProperty
-> RuleProperty -> RuleProperty
set PropertyType "RuleName" RuleProperty
newValue RuleProperty {()
ValueList Text
Value Text
haddock_workaround_ :: RuleProperty -> ()
matchingKeys :: RuleProperty -> ValueList Text
ruleName :: RuleProperty -> Value Text
haddock_workaround_ :: ()
matchingKeys :: ValueList Text
ruleName :: Value Text
..}
    = RuleProperty {ruleName :: Value Text
ruleName = PropertyType "RuleName" RuleProperty
Value Text
newValue, ()
ValueList Text
haddock_workaround_ :: ()
matchingKeys :: ValueList Text
haddock_workaround_ :: ()
matchingKeys :: ValueList Text
..}