Skip to content

create_matching_workflow async

create_matching_workflow(
    workflow_name: EntityName,
    input_source_config: InputSourceConfig,
    output_source_config: OutputSourceConfig,
    resolution_techniques: ResolutionTechniques,
    role_arn: str,
    *,
    config_overrides: Optional[AsyncEntityResolutionClientConfig] = None,
    description: Optional[Description] = None,
    incremental_run_config: Optional[IncrementalRunConfig] = None,
    tags: Optional[TagMap] = None,
) -> CreateMatchingWorkflowOutput

Creates a matching workflow that defines the configuration for a data processing job. The workflow name must be unique. To modify an existing workflow, use UpdateMatchingWorkflow.

For workflows where resolutionType is PROVIDER, incremental processing is not supported.

Parameters:

  • workflow_name (EntityName) –

    The name of the workflow. There can't be multiple MatchingWorkflows with the same name.

  • description (Optional[Description], default: None ) –

    A description of the workflow.

  • input_source_config (InputSourceConfig) –

    A list of InputSource objects, which have the fields InputSourceARN and SchemaName.

  • output_source_config (OutputSourceConfig) –

    A list of OutputSource objects, each of which contains fields outputS3Path, applyNormalization, KMSArn, and output.

  • resolution_techniques (ResolutionTechniques) –

    An object which defines the resolutionType and the ruleBasedProperties.

  • incremental_run_config (Optional[IncrementalRunConfig], default: None ) –

    Optional. An object that defines the incremental run type. This object contains only the incrementalRunType field, which appears as "Automatic" in the console.

    For workflows where resolutionType is PROVIDER, incremental processing is not supported.

  • role_arn (str) –

    The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to create resources on your behalf as part of workflow execution.

  • tags (Optional[TagMap], default: None ) –

    The tags used to organize, track, or control access for this resource.

Raises:

  • AccessDeniedException –

    You do not have sufficient access to perform this action.

  • ConflictException –

    The request couldn't be processed because of conflict in the current state of the resource. Example: Workflow already exists, Schema already exists, Workflow is currently running, etc.

  • ExceedsLimitException –

    The request was rejected because it attempted to create resources beyond the current Entity Resolution account limits. The error message describes the limit exceeded.

  • InternalServerException –

    This exception occurs when there is an internal failure in the Entity Resolution service.

  • ThrottlingException –

    The request was denied due to request throttling.

  • ValidationException –

    The input fails to satisfy the constraints specified by Entity Resolution.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_entityresolution/_services/async_entity_resolution.py
async def create_matching_workflow(
    self,
    workflow_name: "capo_entityresolution.types.entity_name.EntityName",
    input_source_config: "capo_entityresolution.types.input_source_config.InputSourceConfig",
    output_source_config: "capo_entityresolution.types.output_source_config.OutputSourceConfig",
    resolution_techniques: "capo_entityresolution.types.resolution_techniques.ResolutionTechniques",
    role_arn: str,
    *,
    config_overrides: Optional[AsyncEntityResolutionClientConfig] = None,
    description: Optional[
        "capo_entityresolution.types.description.Description"
    ] = None,
    incremental_run_config: Optional[
        "capo_entityresolution.types.incremental_run_config.IncrementalRunConfig"
    ] = None,
    tags: Optional["capo_entityresolution.types.tag_map.TagMap"] = None,
) -> "capo_entityresolution.types.create_matching_workflow_output.CreateMatchingWorkflowOutput":
    """<p>Creates a matching workflow that defines the configuration for a data processing job. The workflow name must be unique. To modify an existing workflow, use <code>UpdateMatchingWorkflow</code>. </p> <important> <p>For workflows where <code>resolutionType</code> is <code>PROVIDER</code>, incremental processing is not supported. </p> </important>

    Args:
        workflow_name: <p>The name of the workflow. There can't be multiple <code>MatchingWorkflows</code> with the same name.</p>
        description: <p>A description of the workflow.</p>
        input_source_config: <p>A list of <code>InputSource</code> objects, which have the fields <code>InputSourceARN</code> and <code>SchemaName</code>.</p>
        output_source_config: <p>A list of <code>OutputSource</code> objects, each of which contains fields <code>outputS3Path</code>, <code>applyNormalization</code>, <code>KMSArn</code>, and <code>output</code>.</p>
        resolution_techniques: <p>An object which defines the <code>resolutionType</code> and the <code>ruleBasedProperties</code>.</p>
        incremental_run_config: <p>Optional. An object that defines the incremental run type. This object contains only the <code>incrementalRunType</code> field, which appears as "Automatic" in the console. </p> <important> <p>For workflows where <code>resolutionType</code> is <code>PROVIDER</code>, incremental processing is not supported. </p> </important>
        role_arn: <p>The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to create resources on your behalf as part of workflow execution.</p>
        tags: <p>The tags used to organize, track, or control access for this resource.</p>

    Raises:
        capo_entityresolution.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient access to perform this action. </p>
        capo_entityresolution.errors.conflict_exception.ConflictException: <p>The request couldn't be processed because of conflict in the current state of the resource. Example: Workflow already exists, Schema already exists, Workflow is currently running, etc. </p>
        capo_entityresolution.errors.exceeds_limit_exception.ExceedsLimitException: <p>The request was rejected because it attempted to create resources beyond the current Entity Resolution account limits. The error message describes the limit exceeded. </p>
        capo_entityresolution.errors.internal_server_exception.InternalServerException: <p>This exception occurs when there is an internal failure in the Entity Resolution service. </p>
        capo_entityresolution.errors.throttling_exception.ThrottlingException: <p>The request was denied due to request throttling. </p>
        capo_entityresolution.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by Entity Resolution. </p>
        capo_entityresolution.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_entityresolution.types.create_matching_workflow_input.CreateMatchingWorkflowInput]",
    ) -> AsyncOperationResponse[
        "capo_entityresolution.types.create_matching_workflow_output.CreateMatchingWorkflowOutput"
    ]:
        import capo_entityresolution._operations.aws_venice_service.create_matching_workflow

        (
            output,
            http_response,
        ) = await capo_entityresolution._operations.aws_venice_service.create_matching_workflow.async_create_matching_workflow(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateMatchingWorkflow")
    )
    input_: capo_entityresolution.types.create_matching_workflow_input.CreateMatchingWorkflowInput = {
        "workflow_name": workflow_name,
        "input_source_config": input_source_config,
        "output_source_config": output_source_config,
        "resolution_techniques": resolution_techniques,
        "role_arn": role_arn,
    }
    if description is not None:
        input_["description"] = description
    if incremental_run_config is not None:
        input_["incremental_run_config"] = incremental_run_config
    if tags is not None:
        input_["tags"] = tags

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output