ENTITYRESOLUTION

AddPolicyStatement

enum_StatementEffect := [ "Allow", "Deny" ]

valid {
    input.Body.action[_] == STRING
    input.Body.condition == STRING
    input.Body.effect == enum_StatementEffect[_]
    input.Body.principal[_] == STRING
    input.ReqMap.arn == STRING
    input.ReqMap.statementId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateIdMappingWorkflow

enum_IdMappingType := [ "PROVIDER" ]
enum_IdNamespaceType := [ "SOURCE", "TARGET" ]

valid {
    input.Body.description == STRING
    input.Body.idMappingTechniques.idMappingType == enum_IdMappingType[_]
    input.Body.idMappingTechniques.providerProperties.intermediateSourceConfiguration.intermediateS3Path == STRING
    input.Body.idMappingTechniques.providerProperties.providerServiceArn == STRING
    input.Body.inputSourceConfig[_].inputSourceARN == STRING
    input.Body.inputSourceConfig[_].schemaName == STRING
    input.Body.inputSourceConfig[_].type == enum_IdNamespaceType[_]
    input.Body.outputSourceConfig[_].KMSArn == STRING
    input.Body.outputSourceConfig[_].outputS3Path == STRING
    input.Body.roleArn == STRING
    input.Body.tags.STRING == STRING
    input.Body.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateIdNamespace

enum_IdMappingType := [ "PROVIDER" ]
enum_IdNamespaceType := [ "SOURCE", "TARGET" ]

valid {
    input.Body.description == STRING
    input.Body.idMappingWorkflowProperties[_].idMappingType == enum_IdMappingType[_]
    input.Body.idMappingWorkflowProperties[_].providerProperties.providerServiceArn == STRING
    input.Body.idNamespaceName == STRING
    input.Body.inputSourceConfig[_].inputSourceARN == STRING
    input.Body.inputSourceConfig[_].schemaName == STRING
    input.Body.roleArn == STRING
    input.Body.tags.STRING == STRING
    input.Body.type == enum_IdNamespaceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateMatchingWorkflow

enum_AttributeMatchingModel := [ "ONE_TO_ONE", "MANY_TO_MANY" ]
enum_IncrementalRunType := [ "IMMEDIATE" ]
enum_ResolutionType := [ "RULE_MATCHING", "ML_MATCHING", "PROVIDER" ]

valid {
    input.Body.description == STRING
    input.Body.incrementalRunConfig.incrementalRunType == enum_IncrementalRunType[_]
    input.Body.inputSourceConfig[_].applyNormalization == BOOLEAN
    input.Body.inputSourceConfig[_].inputSourceARN == STRING
    input.Body.inputSourceConfig[_].schemaName == STRING
    input.Body.outputSourceConfig[_].KMSArn == STRING
    input.Body.outputSourceConfig[_].applyNormalization == BOOLEAN
    input.Body.outputSourceConfig[_].output[_].hashed == BOOLEAN
    input.Body.outputSourceConfig[_].output[_].name == STRING
    input.Body.outputSourceConfig[_].outputS3Path == STRING
    input.Body.resolutionTechniques.providerProperties.intermediateSourceConfiguration.intermediateS3Path == STRING
    input.Body.resolutionTechniques.providerProperties.providerServiceArn == STRING
    input.Body.resolutionTechniques.resolutionType == enum_ResolutionType[_]
    input.Body.resolutionTechniques.ruleBasedProperties.attributeMatchingModel == enum_AttributeMatchingModel[_]
    input.Body.resolutionTechniques.ruleBasedProperties.rules[_].matchingKeys[_] == STRING
    input.Body.resolutionTechniques.ruleBasedProperties.rules[_].ruleName == STRING
    input.Body.roleArn == STRING
    input.Body.tags.STRING == STRING
    input.Body.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSchemaMapping

enum_SchemaAttributeType := [ "NAME", "NAME_FIRST", "NAME_MIDDLE", "NAME_LAST", "ADDRESS", "ADDRESS_STREET1", "ADDRESS_STREET2", "ADDRESS_STREET3", "ADDRESS_CITY", "ADDRESS_STATE", "ADDRESS_COUNTRY", "ADDRESS_POSTALCODE", "PHONE", "PHONE_NUMBER", "PHONE_COUNTRYCODE", "EMAIL_ADDRESS", "UNIQUE_ID", "DATE", "STRING", "PROVIDER_ID" ]

valid {
    input.Body.description == STRING
    input.Body.mappedInputFields[_].fieldName == STRING
    input.Body.mappedInputFields[_].groupName == STRING
    input.Body.mappedInputFields[_].matchKey == STRING
    input.Body.mappedInputFields[_].subType == STRING
    input.Body.mappedInputFields[_].type == enum_SchemaAttributeType[_]
    input.Body.schemaName == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteIdMappingWorkflow

valid {
    input.ReqMap.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteIdNamespace

valid {
    input.ReqMap.idNamespaceName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteMatchingWorkflow

valid {
    input.ReqMap.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeletePolicyStatement

valid {
    input.ReqMap.arn == STRING
    input.ReqMap.statementId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSchemaMapping

valid {
    input.ReqMap.schemaName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetIdMappingJob

valid {
    input.ReqMap.jobId == STRING
    input.ReqMap.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetIdMappingWorkflow

valid {
    input.ReqMap.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetIdNamespace

valid {
    input.ReqMap.idNamespaceName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMatchId

valid {
    input.Body.applyNormalization == BOOLEAN
    input.Body.record.STRING == STRING
    input.ReqMap.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMatchingJob

valid {
    input.ReqMap.jobId == STRING
    input.ReqMap.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMatchingWorkflow

valid {
    input.ReqMap.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetPolicy

valid {
    input.ReqMap.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSchemaMapping

valid {
    input.ReqMap.schemaName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListIdMappingJobs

valid {
    input.ReqMap.workflowName == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListIdMappingWorkflows

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListIdNamespaces

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListMatchingJobs

valid {
    input.ReqMap.workflowName == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListMatchingWorkflows

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListProviderServices

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.providerName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSchemaMappings

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.ReqMap.resourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutPolicy

valid {
    input.Body.policy == STRING
    input.Body.token == STRING
    input.ReqMap.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartIdMappingJob

valid {
    input.Body.outputSourceConfig[_].KMSArn == STRING
    input.Body.outputSourceConfig[_].outputS3Path == STRING
    input.Body.outputSourceConfig[_].roleArn == STRING
    input.ReqMap.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartMatchingJob

valid {
    input.ReqMap.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.tags.STRING == STRING
    input.ReqMap.resourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.ReqMap.resourceArn == STRING
    input.Qs.tagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateIdMappingWorkflow

enum_IdMappingType := [ "PROVIDER" ]
enum_IdNamespaceType := [ "SOURCE", "TARGET" ]

valid {
    input.Body.description == STRING
    input.Body.idMappingTechniques.idMappingType == enum_IdMappingType[_]
    input.Body.idMappingTechniques.providerProperties.intermediateSourceConfiguration.intermediateS3Path == STRING
    input.Body.idMappingTechniques.providerProperties.providerServiceArn == STRING
    input.Body.inputSourceConfig[_].inputSourceARN == STRING
    input.Body.inputSourceConfig[_].schemaName == STRING
    input.Body.inputSourceConfig[_].type == enum_IdNamespaceType[_]
    input.Body.outputSourceConfig[_].KMSArn == STRING
    input.Body.outputSourceConfig[_].outputS3Path == STRING
    input.Body.roleArn == STRING
    input.ReqMap.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateIdNamespace

enum_IdMappingType := [ "PROVIDER" ]

valid {
    input.Body.description == STRING
    input.Body.idMappingWorkflowProperties[_].idMappingType == enum_IdMappingType[_]
    input.Body.idMappingWorkflowProperties[_].providerProperties.providerServiceArn == STRING
    input.Body.inputSourceConfig[_].inputSourceARN == STRING
    input.Body.inputSourceConfig[_].schemaName == STRING
    input.Body.roleArn == STRING
    input.ReqMap.idNamespaceName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateMatchingWorkflow

enum_AttributeMatchingModel := [ "ONE_TO_ONE", "MANY_TO_MANY" ]
enum_IncrementalRunType := [ "IMMEDIATE" ]
enum_ResolutionType := [ "RULE_MATCHING", "ML_MATCHING", "PROVIDER" ]

valid {
    input.Body.description == STRING
    input.Body.incrementalRunConfig.incrementalRunType == enum_IncrementalRunType[_]
    input.Body.inputSourceConfig[_].applyNormalization == BOOLEAN
    input.Body.inputSourceConfig[_].inputSourceARN == STRING
    input.Body.inputSourceConfig[_].schemaName == STRING
    input.Body.outputSourceConfig[_].KMSArn == STRING
    input.Body.outputSourceConfig[_].applyNormalization == BOOLEAN
    input.Body.outputSourceConfig[_].output[_].hashed == BOOLEAN
    input.Body.outputSourceConfig[_].output[_].name == STRING
    input.Body.outputSourceConfig[_].outputS3Path == STRING
    input.Body.resolutionTechniques.providerProperties.intermediateSourceConfiguration.intermediateS3Path == STRING
    input.Body.resolutionTechniques.providerProperties.providerServiceArn == STRING
    input.Body.resolutionTechniques.resolutionType == enum_ResolutionType[_]
    input.Body.resolutionTechniques.ruleBasedProperties.attributeMatchingModel == enum_AttributeMatchingModel[_]
    input.Body.resolutionTechniques.ruleBasedProperties.rules[_].matchingKeys[_] == STRING
    input.Body.resolutionTechniques.ruleBasedProperties.rules[_].ruleName == STRING
    input.Body.roleArn == STRING
    input.ReqMap.workflowName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateSchemaMapping

enum_SchemaAttributeType := [ "NAME", "NAME_FIRST", "NAME_MIDDLE", "NAME_LAST", "ADDRESS", "ADDRESS_STREET1", "ADDRESS_STREET2", "ADDRESS_STREET3", "ADDRESS_CITY", "ADDRESS_STATE", "ADDRESS_COUNTRY", "ADDRESS_POSTALCODE", "PHONE", "PHONE_NUMBER", "PHONE_COUNTRYCODE", "EMAIL_ADDRESS", "UNIQUE_ID", "DATE", "STRING", "PROVIDER_ID" ]

valid {
    input.Body.description == STRING
    input.Body.mappedInputFields[_].fieldName == STRING
    input.Body.mappedInputFields[_].groupName == STRING
    input.Body.mappedInputFields[_].matchKey == STRING
    input.Body.mappedInputFields[_].subType == STRING
    input.Body.mappedInputFields[_].type == enum_SchemaAttributeType[_]
    input.ReqMap.schemaName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}