def METHOD_NAME(
    self,
    workflow_type: WorkflowType,
    workflow_id: str,
    child_policy: CHILD_POLICIES = CHILD_POLICIES.TERMINATE,
    execution_timeout: str = "300",
    task_timeout: str = "300",
    control: dict[str, Any] | None = None,
    input: dict[str, Any] | None = None,
    tag_list: list[str] | None = None,
    task_list: str | None = None,
) -> None:
    """Child workflow execution decision builder
    :param  workflow_type: workflow type to start
    :param  workflow_id: unique id to recognize the workflow execution
    :param  child_policy: specifies the policy to use for the
                          child workflow executions
    :param  execution_timeout: specifies the total duration for this workflow execution
    :param  input: The input provided to the child workflow execution
    :param  tag_list: list of tags to associate with the child workflow execution
    :param  task_list: task list name
    :param  task_timeout: maximum duration of decision tasks for the child workflow execution
    :param  control: data attached to the event that can be used by
              the decider in subsequent workflow tasks
    """
    if input is not None:
        input = format.input(input)
    if control is not None:
        control = format.control(control)
    self.update_attributes(
        {
            "childPolicy": child_policy,
            "executionStartToCloseTimeout": execution_timeout,
            "taskStartToCloseTimeout": task_timeout,
            "control": control,
            "input": input,
            "tagList": tag_list,
            "taskList": {
                "name": task_list,
            },
            "workflowId": workflow_id,
            "workflowType": {
                "name": workflow_type.name,
                "version": workflow_type.version,
            },
        }
    )