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