Amazon Entity Resolution · Arazzo Workflow

Amazon Entity Resolution Provision Matching Workflow

Version 1.0.0

Register a schema mapping and create a matching workflow that references it.

1 workflow 1 source API 1 provider
View Spec View on GitHub Amazon Web ServicesData IntegrationData MatchingEntity ResolutionMachine LearningArazzoWorkflows

Provider

amazon-entity-resolution

Workflows

provision-matching-workflow
Create a schema mapping and a matching workflow, then read the workflow back.
Registers a schema mapping, creates a matching workflow referencing it, and fetches the workflow to confirm it was stored correctly.
3 steps inputs: attributeMatchingModel, description, inputSourceARN, mappedInputFields, output, outputS3Path, roleArn, rules, schemaName, workflowName outputs: createdAt, schemaArn, workflowArn
1
createSchemaMapping
CreateSchemaMapping
Create the schema mapping that defines the input table columns and the columns used for matching.
2
createMatchingWorkflow
CreateMatchingWorkflow
Create the matching workflow that references the schema mapping and defines the input source, output destination, and resolution technique.
3
confirmWorkflow
GetMatchingWorkflow
Read the workflow back to confirm it was stored with the expected configuration.

Source API Descriptions

Arazzo Workflow Specification

amazon-entity-resolution-provision-workflow-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon Entity Resolution Provision Matching Workflow
  summary: Register a schema mapping and create a matching workflow that references it.
  description: >-
    Provisions the matching configuration without running a job. The workflow
    creates a schema mapping describing the input customer records table, then
    creates a matching workflow that binds that schema to an input source, an
    output destination, and a rule-based resolution technique, and finally reads
    the workflow back to confirm it is ready. Every step spells out its request
    inline so the flow can be read and executed without opening the underlying
    OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: entityResolutionApi
  url: ../openapi/amazon-entity-resolution-openapi.yml
  type: openapi
workflows:
- workflowId: provision-matching-workflow
  summary: Create a schema mapping and a matching workflow, then read the workflow back.
  description: >-
    Registers a schema mapping, creates a matching workflow referencing it, and
    fetches the workflow to confirm it was stored correctly.
  inputs:
    type: object
    required:
    - schemaName
    - workflowName
    - inputSourceARN
    - outputS3Path
    - roleArn
    properties:
      schemaName:
        type: string
        description: The name of the schema mapping to create.
      workflowName:
        type: string
        description: The name of the matching workflow to create.
      description:
        type: string
        description: Optional description for the schema mapping and workflow.
      mappedInputFields:
        type: array
        description: List of SchemaInputAttribute objects (fieldName, type), minimum 2.
        items:
          type: object
      inputSourceARN:
        type: string
        description: The Glue table ARN for the input source table.
      outputS3Path:
        type: string
        description: The S3 path to which Entity Resolution writes the output table.
      output:
        type: array
        description: List of OutputAttribute objects for the output table.
        items:
          type: object
      attributeMatchingModel:
        type: string
        description: Either ONE_TO_ONE or MANY_TO_MANY.
      rules:
        type: array
        description: List of Rule objects for RULE_MATCHING.
        items:
          type: object
      roleArn:
        type: string
        description: The ARN of the IAM role Entity Resolution assumes.
  steps:
  - stepId: createSchemaMapping
    description: >-
      Create the schema mapping that defines the input table columns and the
      columns used for matching.
    operationId: CreateSchemaMapping
    requestBody:
      contentType: application/json
      payload:
        schemaName: $inputs.schemaName
        description: $inputs.description
        mappedInputFields: $inputs.mappedInputFields
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      schemaArn: $response.body#/schemaArn
      schemaName: $response.body#/schemaName
  - stepId: createMatchingWorkflow
    description: >-
      Create the matching workflow that references the schema mapping and
      defines the input source, output destination, and resolution technique.
    operationId: CreateMatchingWorkflow
    requestBody:
      contentType: application/json
      payload:
        workflowName: $inputs.workflowName
        description: $inputs.description
        inputSourceConfig:
        - inputSourceARN: $inputs.inputSourceARN
          schemaName: $steps.createSchemaMapping.outputs.schemaName
        outputSourceConfig:
        - outputS3Path: $inputs.outputS3Path
          output: $inputs.output
        resolutionTechniques:
          resolutionType: RULE_MATCHING
          ruleBasedProperties:
            attributeMatchingModel: $inputs.attributeMatchingModel
            rules: $inputs.rules
        roleArn: $inputs.roleArn
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      workflowName: $response.body#/workflowName
      workflowArn: $response.body#/workflowArn
  - stepId: confirmWorkflow
    description: >-
      Read the workflow back to confirm it was stored with the expected
      configuration.
    operationId: GetMatchingWorkflow
    parameters:
    - name: workflowName
      in: path
      value: $steps.createMatchingWorkflow.outputs.workflowName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      workflowArn: $response.body#/workflowArn
      createdAt: $response.body#/createdAt
  outputs:
    schemaArn: $steps.createSchemaMapping.outputs.schemaArn
    workflowArn: $steps.createMatchingWorkflow.outputs.workflowArn
    createdAt: $steps.confirmWorkflow.outputs.createdAt