module Stratosphere.EntityResolution.IdMappingWorkflow.IdMappingTechniquesProperty (
        module Exports, IdMappingTechniquesProperty(..),
        mkIdMappingTechniquesProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.EntityResolution.IdMappingWorkflow.IdMappingRuleBasedPropertiesProperty as Exports
import {-# SOURCE #-} Stratosphere.EntityResolution.IdMappingWorkflow.ProviderPropertiesProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data IdMappingTechniquesProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idmappingworkflow-idmappingtechniques.html>
    IdMappingTechniquesProperty {IdMappingTechniquesProperty -> ()
haddock_workaround_ :: (),
                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idmappingworkflow-idmappingtechniques.html#cfn-entityresolution-idmappingworkflow-idmappingtechniques-idmappingtype>
                                 IdMappingTechniquesProperty -> Maybe (Value Text)
idMappingType :: (Prelude.Maybe (Value Prelude.Text)),
                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idmappingworkflow-idmappingtechniques.html#cfn-entityresolution-idmappingworkflow-idmappingtechniques-normalizationversion>
                                 IdMappingTechniquesProperty -> Maybe (Value Text)
normalizationVersion :: (Prelude.Maybe (Value Prelude.Text)),
                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idmappingworkflow-idmappingtechniques.html#cfn-entityresolution-idmappingworkflow-idmappingtechniques-providerproperties>
                                 IdMappingTechniquesProperty -> Maybe ProviderPropertiesProperty
providerProperties :: (Prelude.Maybe ProviderPropertiesProperty),
                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idmappingworkflow-idmappingtechniques.html#cfn-entityresolution-idmappingworkflow-idmappingtechniques-rulebasedproperties>
                                 IdMappingTechniquesProperty
-> Maybe IdMappingRuleBasedPropertiesProperty
ruleBasedProperties :: (Prelude.Maybe IdMappingRuleBasedPropertiesProperty)}
  deriving stock (IdMappingTechniquesProperty -> IdMappingTechniquesProperty -> Bool
(IdMappingTechniquesProperty
 -> IdMappingTechniquesProperty -> Bool)
-> (IdMappingTechniquesProperty
    -> IdMappingTechniquesProperty -> Bool)
-> Eq IdMappingTechniquesProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: IdMappingTechniquesProperty -> IdMappingTechniquesProperty -> Bool
== :: IdMappingTechniquesProperty -> IdMappingTechniquesProperty -> Bool
$c/= :: IdMappingTechniquesProperty -> IdMappingTechniquesProperty -> Bool
/= :: IdMappingTechniquesProperty -> IdMappingTechniquesProperty -> Bool
Prelude.Eq, Int -> IdMappingTechniquesProperty -> ShowS
[IdMappingTechniquesProperty] -> ShowS
IdMappingTechniquesProperty -> String
(Int -> IdMappingTechniquesProperty -> ShowS)
-> (IdMappingTechniquesProperty -> String)
-> ([IdMappingTechniquesProperty] -> ShowS)
-> Show IdMappingTechniquesProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> IdMappingTechniquesProperty -> ShowS
showsPrec :: Int -> IdMappingTechniquesProperty -> ShowS
$cshow :: IdMappingTechniquesProperty -> String
show :: IdMappingTechniquesProperty -> String
$cshowList :: [IdMappingTechniquesProperty] -> ShowS
showList :: [IdMappingTechniquesProperty] -> ShowS
Prelude.Show)
mkIdMappingTechniquesProperty :: IdMappingTechniquesProperty
mkIdMappingTechniquesProperty :: IdMappingTechniquesProperty
mkIdMappingTechniquesProperty
  = IdMappingTechniquesProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), idMappingType :: Maybe (Value Text)
idMappingType = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing,
       normalizationVersion :: Maybe (Value Text)
normalizationVersion = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing,
       providerProperties :: Maybe ProviderPropertiesProperty
providerProperties = Maybe ProviderPropertiesProperty
forall a. Maybe a
Prelude.Nothing,
       ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
ruleBasedProperties = Maybe IdMappingRuleBasedPropertiesProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties IdMappingTechniquesProperty where
  toResourceProperties :: IdMappingTechniquesProperty -> ResourceProperties
toResourceProperties IdMappingTechniquesProperty {Maybe (Value Text)
Maybe ProviderPropertiesProperty
Maybe IdMappingRuleBasedPropertiesProperty
()
haddock_workaround_ :: IdMappingTechniquesProperty -> ()
idMappingType :: IdMappingTechniquesProperty -> Maybe (Value Text)
normalizationVersion :: IdMappingTechniquesProperty -> Maybe (Value Text)
providerProperties :: IdMappingTechniquesProperty -> Maybe ProviderPropertiesProperty
ruleBasedProperties :: IdMappingTechniquesProperty
-> Maybe IdMappingRuleBasedPropertiesProperty
haddock_workaround_ :: ()
idMappingType :: Maybe (Value Text)
normalizationVersion :: Maybe (Value Text)
providerProperties :: Maybe ProviderPropertiesProperty
ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::EntityResolution::IdMappingWorkflow.IdMappingTechniques",
         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 -> 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..=) Key
"IdMappingType" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
idMappingType,
                            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..=) Key
"NormalizationVersion" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
normalizationVersion,
                            Key -> ProviderPropertiesProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ProviderProperties" (ProviderPropertiesProperty -> (Key, Value))
-> Maybe ProviderPropertiesProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ProviderPropertiesProperty
providerProperties,
                            Key -> IdMappingRuleBasedPropertiesProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"RuleBasedProperties" (IdMappingRuleBasedPropertiesProperty -> (Key, Value))
-> Maybe IdMappingRuleBasedPropertiesProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe IdMappingRuleBasedPropertiesProperty
ruleBasedProperties])}
instance JSON.ToJSON IdMappingTechniquesProperty where
  toJSON :: IdMappingTechniquesProperty -> Value
toJSON IdMappingTechniquesProperty {Maybe (Value Text)
Maybe ProviderPropertiesProperty
Maybe IdMappingRuleBasedPropertiesProperty
()
haddock_workaround_ :: IdMappingTechniquesProperty -> ()
idMappingType :: IdMappingTechniquesProperty -> Maybe (Value Text)
normalizationVersion :: IdMappingTechniquesProperty -> Maybe (Value Text)
providerProperties :: IdMappingTechniquesProperty -> Maybe ProviderPropertiesProperty
ruleBasedProperties :: IdMappingTechniquesProperty
-> Maybe IdMappingRuleBasedPropertiesProperty
haddock_workaround_ :: ()
idMappingType :: Maybe (Value Text)
normalizationVersion :: Maybe (Value Text)
providerProperties :: Maybe ProviderPropertiesProperty
ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
..}
    = [(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 -> 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..=) Key
"IdMappingType" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
idMappingType,
               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..=) Key
"NormalizationVersion" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
normalizationVersion,
               Key -> ProviderPropertiesProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ProviderProperties" (ProviderPropertiesProperty -> (Key, Value))
-> Maybe ProviderPropertiesProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ProviderPropertiesProperty
providerProperties,
               Key -> IdMappingRuleBasedPropertiesProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"RuleBasedProperties" (IdMappingRuleBasedPropertiesProperty -> (Key, Value))
-> Maybe IdMappingRuleBasedPropertiesProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe IdMappingRuleBasedPropertiesProperty
ruleBasedProperties]))
instance Property "IdMappingType" IdMappingTechniquesProperty where
  type PropertyType "IdMappingType" IdMappingTechniquesProperty = Value Prelude.Text
  set :: PropertyType "IdMappingType" IdMappingTechniquesProperty
-> IdMappingTechniquesProperty -> IdMappingTechniquesProperty
set PropertyType "IdMappingType" IdMappingTechniquesProperty
newValue IdMappingTechniquesProperty {Maybe (Value Text)
Maybe ProviderPropertiesProperty
Maybe IdMappingRuleBasedPropertiesProperty
()
haddock_workaround_ :: IdMappingTechniquesProperty -> ()
idMappingType :: IdMappingTechniquesProperty -> Maybe (Value Text)
normalizationVersion :: IdMappingTechniquesProperty -> Maybe (Value Text)
providerProperties :: IdMappingTechniquesProperty -> Maybe ProviderPropertiesProperty
ruleBasedProperties :: IdMappingTechniquesProperty
-> Maybe IdMappingRuleBasedPropertiesProperty
haddock_workaround_ :: ()
idMappingType :: Maybe (Value Text)
normalizationVersion :: Maybe (Value Text)
providerProperties :: Maybe ProviderPropertiesProperty
ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
..}
    = IdMappingTechniquesProperty
        {idMappingType :: Maybe (Value Text)
idMappingType = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "IdMappingType" IdMappingTechniquesProperty
Value Text
newValue, Maybe (Value Text)
Maybe ProviderPropertiesProperty
Maybe IdMappingRuleBasedPropertiesProperty
()
haddock_workaround_ :: ()
normalizationVersion :: Maybe (Value Text)
providerProperties :: Maybe ProviderPropertiesProperty
ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
haddock_workaround_ :: ()
normalizationVersion :: Maybe (Value Text)
providerProperties :: Maybe ProviderPropertiesProperty
ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
..}
instance Property "NormalizationVersion" IdMappingTechniquesProperty where
  type PropertyType "NormalizationVersion" IdMappingTechniquesProperty = Value Prelude.Text
  set :: PropertyType "NormalizationVersion" IdMappingTechniquesProperty
-> IdMappingTechniquesProperty -> IdMappingTechniquesProperty
set PropertyType "NormalizationVersion" IdMappingTechniquesProperty
newValue IdMappingTechniquesProperty {Maybe (Value Text)
Maybe ProviderPropertiesProperty
Maybe IdMappingRuleBasedPropertiesProperty
()
haddock_workaround_ :: IdMappingTechniquesProperty -> ()
idMappingType :: IdMappingTechniquesProperty -> Maybe (Value Text)
normalizationVersion :: IdMappingTechniquesProperty -> Maybe (Value Text)
providerProperties :: IdMappingTechniquesProperty -> Maybe ProviderPropertiesProperty
ruleBasedProperties :: IdMappingTechniquesProperty
-> Maybe IdMappingRuleBasedPropertiesProperty
haddock_workaround_ :: ()
idMappingType :: Maybe (Value Text)
normalizationVersion :: Maybe (Value Text)
providerProperties :: Maybe ProviderPropertiesProperty
ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
..}
    = IdMappingTechniquesProperty
        {normalizationVersion :: Maybe (Value Text)
normalizationVersion = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "NormalizationVersion" IdMappingTechniquesProperty
Value Text
newValue, Maybe (Value Text)
Maybe ProviderPropertiesProperty
Maybe IdMappingRuleBasedPropertiesProperty
()
haddock_workaround_ :: ()
idMappingType :: Maybe (Value Text)
providerProperties :: Maybe ProviderPropertiesProperty
ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
haddock_workaround_ :: ()
idMappingType :: Maybe (Value Text)
providerProperties :: Maybe ProviderPropertiesProperty
ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
..}
instance Property "ProviderProperties" IdMappingTechniquesProperty where
  type PropertyType "ProviderProperties" IdMappingTechniquesProperty = ProviderPropertiesProperty
  set :: PropertyType "ProviderProperties" IdMappingTechniquesProperty
-> IdMappingTechniquesProperty -> IdMappingTechniquesProperty
set PropertyType "ProviderProperties" IdMappingTechniquesProperty
newValue IdMappingTechniquesProperty {Maybe (Value Text)
Maybe ProviderPropertiesProperty
Maybe IdMappingRuleBasedPropertiesProperty
()
haddock_workaround_ :: IdMappingTechniquesProperty -> ()
idMappingType :: IdMappingTechniquesProperty -> Maybe (Value Text)
normalizationVersion :: IdMappingTechniquesProperty -> Maybe (Value Text)
providerProperties :: IdMappingTechniquesProperty -> Maybe ProviderPropertiesProperty
ruleBasedProperties :: IdMappingTechniquesProperty
-> Maybe IdMappingRuleBasedPropertiesProperty
haddock_workaround_ :: ()
idMappingType :: Maybe (Value Text)
normalizationVersion :: Maybe (Value Text)
providerProperties :: Maybe ProviderPropertiesProperty
ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
..}
    = IdMappingTechniquesProperty
        {providerProperties :: Maybe ProviderPropertiesProperty
providerProperties = ProviderPropertiesProperty -> Maybe ProviderPropertiesProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "ProviderProperties" IdMappingTechniquesProperty
ProviderPropertiesProperty
newValue, Maybe (Value Text)
Maybe IdMappingRuleBasedPropertiesProperty
()
haddock_workaround_ :: ()
idMappingType :: Maybe (Value Text)
normalizationVersion :: Maybe (Value Text)
ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
haddock_workaround_ :: ()
idMappingType :: Maybe (Value Text)
normalizationVersion :: Maybe (Value Text)
ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
..}
instance Property "RuleBasedProperties" IdMappingTechniquesProperty where
  type PropertyType "RuleBasedProperties" IdMappingTechniquesProperty = IdMappingRuleBasedPropertiesProperty
  set :: PropertyType "RuleBasedProperties" IdMappingTechniquesProperty
-> IdMappingTechniquesProperty -> IdMappingTechniquesProperty
set PropertyType "RuleBasedProperties" IdMappingTechniquesProperty
newValue IdMappingTechniquesProperty {Maybe (Value Text)
Maybe ProviderPropertiesProperty
Maybe IdMappingRuleBasedPropertiesProperty
()
haddock_workaround_ :: IdMappingTechniquesProperty -> ()
idMappingType :: IdMappingTechniquesProperty -> Maybe (Value Text)
normalizationVersion :: IdMappingTechniquesProperty -> Maybe (Value Text)
providerProperties :: IdMappingTechniquesProperty -> Maybe ProviderPropertiesProperty
ruleBasedProperties :: IdMappingTechniquesProperty
-> Maybe IdMappingRuleBasedPropertiesProperty
haddock_workaround_ :: ()
idMappingType :: Maybe (Value Text)
normalizationVersion :: Maybe (Value Text)
providerProperties :: Maybe ProviderPropertiesProperty
ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
..}
    = IdMappingTechniquesProperty
        {ruleBasedProperties :: Maybe IdMappingRuleBasedPropertiesProperty
ruleBasedProperties = IdMappingRuleBasedPropertiesProperty
-> Maybe IdMappingRuleBasedPropertiesProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "RuleBasedProperties" IdMappingTechniquesProperty
IdMappingRuleBasedPropertiesProperty
newValue, Maybe (Value Text)
Maybe ProviderPropertiesProperty
()
haddock_workaround_ :: ()
idMappingType :: Maybe (Value Text)
normalizationVersion :: Maybe (Value Text)
providerProperties :: Maybe ProviderPropertiesProperty
haddock_workaround_ :: ()
idMappingType :: Maybe (Value Text)
normalizationVersion :: Maybe (Value Text)
providerProperties :: Maybe ProviderPropertiesProperty
..}