module Stratosphere.EntityResolution.IdMappingWorkflow.IdMappingRuleBasedPropertiesProperty ( module Exports, IdMappingRuleBasedPropertiesProperty(..), mkIdMappingRuleBasedPropertiesProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.EntityResolution.IdMappingWorkflow.RuleProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data IdMappingRuleBasedPropertiesProperty = -- | See: IdMappingRuleBasedPropertiesProperty {haddock_workaround_ :: (), -- | See: attributeMatchingModel :: (Value Prelude.Text), -- | See: recordMatchingModel :: (Value Prelude.Text), -- | See: ruleDefinitionType :: (Prelude.Maybe (Value Prelude.Text)), -- | See: rules :: (Prelude.Maybe [RuleProperty])} deriving stock (Prelude.Eq, Prelude.Show) mkIdMappingRuleBasedPropertiesProperty :: Value Prelude.Text -> Value Prelude.Text -> IdMappingRuleBasedPropertiesProperty mkIdMappingRuleBasedPropertiesProperty attributeMatchingModel recordMatchingModel = IdMappingRuleBasedPropertiesProperty {haddock_workaround_ = (), attributeMatchingModel = attributeMatchingModel, recordMatchingModel = recordMatchingModel, ruleDefinitionType = Prelude.Nothing, rules = Prelude.Nothing} instance ToResourceProperties IdMappingRuleBasedPropertiesProperty where toResourceProperties IdMappingRuleBasedPropertiesProperty {..} = ResourceProperties {awsType = "AWS::EntityResolution::IdMappingWorkflow.IdMappingRuleBasedProperties", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["AttributeMatchingModel" JSON..= attributeMatchingModel, "RecordMatchingModel" JSON..= recordMatchingModel] (Prelude.catMaybes [(JSON..=) "RuleDefinitionType" Prelude.<$> ruleDefinitionType, (JSON..=) "Rules" Prelude.<$> rules]))} instance JSON.ToJSON IdMappingRuleBasedPropertiesProperty where toJSON IdMappingRuleBasedPropertiesProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["AttributeMatchingModel" JSON..= attributeMatchingModel, "RecordMatchingModel" JSON..= recordMatchingModel] (Prelude.catMaybes [(JSON..=) "RuleDefinitionType" Prelude.<$> ruleDefinitionType, (JSON..=) "Rules" Prelude.<$> rules]))) instance Property "AttributeMatchingModel" IdMappingRuleBasedPropertiesProperty where type PropertyType "AttributeMatchingModel" IdMappingRuleBasedPropertiesProperty = Value Prelude.Text set newValue IdMappingRuleBasedPropertiesProperty {..} = IdMappingRuleBasedPropertiesProperty {attributeMatchingModel = newValue, ..} instance Property "RecordMatchingModel" IdMappingRuleBasedPropertiesProperty where type PropertyType "RecordMatchingModel" IdMappingRuleBasedPropertiesProperty = Value Prelude.Text set newValue IdMappingRuleBasedPropertiesProperty {..} = IdMappingRuleBasedPropertiesProperty {recordMatchingModel = newValue, ..} instance Property "RuleDefinitionType" IdMappingRuleBasedPropertiesProperty where type PropertyType "RuleDefinitionType" IdMappingRuleBasedPropertiesProperty = Value Prelude.Text set newValue IdMappingRuleBasedPropertiesProperty {..} = IdMappingRuleBasedPropertiesProperty {ruleDefinitionType = Prelude.pure newValue, ..} instance Property "Rules" IdMappingRuleBasedPropertiesProperty where type PropertyType "Rules" IdMappingRuleBasedPropertiesProperty = [RuleProperty] set newValue IdMappingRuleBasedPropertiesProperty {..} = IdMappingRuleBasedPropertiesProperty {rules = Prelude.pure newValue, ..}