'Registers a new workflow type and its configuration settings
in the specified domain.
:type domain: string
:param domain: The name of the domain in which to register
the workflow type.
:type name: string
:param name: The name of the workflow type.
:type version: string
:param version: The version of the workflow type.
:type task_list: list of name, version of tasks
:param task_list: If set, specifies the default task list to use
for scheduling decision tasks for executions of this workflow
type. This default is used only if a task list is not provided
when starting the execution through the StartWorkflowExecution
Action or StartChildWorkflowExecution Decision.
:type default_child_policy: string
:param default_child_policy: If set, specifies the default
policy to use for the child workflow executions when a
workflow execution of this type is terminated, by calling the
TerminateWorkflowExecution action explicitly or due to an
expired timeout. This default can be overridden when starting
a workflow execution using the StartWorkflowExecution action
or the StartChildWorkflowExecution Decision. The supported
child policies are:
* TERMINATE: the child executions will be terminated.
* REQUEST_CANCEL: a request to cancel will be attempted
for each child execution by recording a
WorkflowExecutionCancelRequested event in its
history. It is up to the decider to take appropriate
actions when it receives an execution history with this
event.
* ABANDON: no action will be taken. The child executions
will continue to run.no docs
:type default_execution_start_to_close_timeout: string
:param default_execution_start_to_close_timeout: If set,
specifies the default maximum duration for executions of this
workflow type. You can override this default when starting an
execution through the StartWorkflowExecution Action or
StartChildWorkflowExecution Decision.
:type default_task_start_to_close_timeout: string
:param default_task_start_to_close_timeout: If set, specifies
the default maximum duration of decision tasks for this
workflow type. This default can be overridden when starting a
workflow execution using the StartWorkflowExecution action or
the StartChildWorkflowExecution Decision.
:type description: string
:param description: Textual description of the workflow type.
:raises: SWFTypeAlreadyExistsError, SWFLimitExceededError,
UnknownResourceFault, SWFOperationNotPermittedError'

def register_workflow_type(self, domain, name, version, task_list=None, default_child_policy=None, default_execution_start_to_close_timeout=None, default_task_start_to_close_timeout=None, description=None):

    return self.json_request('RegisterWorkflowType', {'domain': domain, 'name': name, 'version': version, 'defaultTaskList': {'name': task_list}, 'defaultChildPolicy': default_child_policy, 'defaultExecutionStartToCloseTimeout': default_execution_start_to_close_timeout, 'defaultTaskStartToCloseTimeout': default_task_start_to_close_timeout, 'description': description})
