Decisions

SWF decision task management.

CancelTimerDecision

Cancel timer decider decision.

CancelWorkflowExecutionDecision

Cancel workflow execution decider decision.

CompleteWorkflowExecutionDecision

Complete workflow execution decider decision.

ContinueAsNewWorkflowExecutionDecision

Continue as new workflow execution decider decision.

Decision

Decider decision.

DecisionTask

Decider decision task.

FailWorkflowExecutionDecision

Fail workflow execution decider decision.

RecordMarkerDecision

Record marker decider decision.

RequestCancelActivityTaskDecision

Cancel activity task request decider decision.

RequestCancelExternalWorkflowExecutionDecision

Cancel external workflow execution request decider decision.

ScheduleActivityTaskDecision

Schedule activity task decider decision.

ScheduleLambdaFunctionDecision

Schedule Lambda function invocation decider decision.

SignalExternalWorkflowExecutionDecision

Signal external workflow execution decider decision.

StartChildWorkflowExecutionDecision

Start child workflow execution decider decision.

StartTimerDecision

Start timer decider decision.

get_number_of_pending_decision_tasks

Get the number of pending decision tasks.

request_decision_task

Request (poll for) a decision task; blocks until task is received.

send_decisions

Make decisions for a workflow execution, completing decision task.

class swf_typed.CancelTimerDecision(timer_id: str)[source]

Cancel timer decider decision.

timer_id: str

Timer ID.

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'CancelTimer'

Decision type name.

class swf_typed.CancelWorkflowExecutionDecision(details: str = None)[source]

Cancel workflow execution decider decision.

details: str = None

Execution cancellation details, usually for explanation.

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'CancelWorkflowExecution'

Decision type name.

class swf_typed.CompleteWorkflowExecutionDecision(execution_result: str = None)[source]

Complete workflow execution decider decision.

execution_result: str = None

Execution result.

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'CompleteWorkflowExecution'

Decision type name.

class swf_typed.ContinueAsNewWorkflowExecutionDecision(execution_input: str = None, workflow_version: str = None, execution_configuration: PartialExecutionConfiguration = None, tags: List[str] = None)[source]

Continue as new workflow execution decider decision.

execution_configuration: PartialExecutionConfiguration = None

Continuing execution configuration overrides.

execution_input: str = None

Continuing execution input.

tags: List[str] = None

Continuing execution tags.

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'ContinueAsNewWorkflowExecution'

Decision type name.

workflow_version: str = None

Continuing execution workflow version.

class swf_typed.Decision[source]

Decider decision.

abstract to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str]

Decision type name.

class swf_typed.DecisionTask(token: str, execution: _executions.ExecutionId, workflow: _workflows.WorkflowId, _execution_history_iter: Iterable[ForwardRef('_history.Event')], decision_task_started_execution_history_event_id: int, previous_decision_task_started_execution_history_event_id: int = None)[source]

Decider decision task.

decision_task_started_execution_history_event_id: int

History event ID for decision-task start.

execution: _executions.ExecutionId

Execution which decisions are being made for.

property execution_history: List[ForwardRef('_history.Event')]

Execution history events.

property execution_history_iter: Generator[ForwardRef('_history.Event'), None, None]

Execution history events iterable.

classmethod from_api(data, execution_history_iter: Iterable[ForwardRef('_history.Event')] = None) DecisionTask[source]

Deserialise decision task from SWF API response data.

Parameters:
  • data – SWF API response decision task data

  • execution_history_iter – execution history events, for lazy handling of paginated history. Default: get from response data

previous_decision_task_started_execution_history_event_id: int = None

History event ID for previous decision-task start.

token: str

Task token, provided by SWF.

workflow: _workflows.WorkflowId

Execution workflow.

class swf_typed.FailWorkflowExecutionDecision(reason: str = None, details: str = None)[source]

Fail workflow execution decider decision.

details: str = None

Execution failure details, usually for explanation.

reason: str = None

Execution failure reason, usually for classification.

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'FailWorkflowExecution'

Decision type name.

class swf_typed.RecordMarkerDecision(marker_name: str, details: str = None)[source]

Record marker decider decision.

details: str = None

Attached marker data.

marker_name: str

Marker name.

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'RecordMarker'

Decision type name.

class swf_typed.RequestCancelActivityTaskDecision(task_id: str)[source]

Cancel activity task request decider decision.

task_id: str

ID of task to cancel.

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'RequestCancelActivityTask'

Decision type name.

class swf_typed.RequestCancelExternalWorkflowExecutionDecision(execution: ExecutionId | CurrentExecutionId, control: str = None)[source]

Cancel external workflow execution request decider decision.

control: str = None

Message for future deciders.

execution: ExecutionId | CurrentExecutionId

ID of execution to cancel.

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'RequestCancelExternalWorkflowExecution'

Decision type name.

class swf_typed.ScheduleActivityTaskDecision(activity: _activities.ActivityId, task_id: str, task_input: str = None, task_configuration: _tasks.PartialTaskConfiguration = None, control: str = None)[source]

Schedule activity task decider decision.

activity: _activities.ActivityId

Task activity.

control: str = None

Message for future deciders.

task_configuration: _tasks.PartialTaskConfiguration = None

Task configuration overrides.

task_id: str

Task ID.

task_input: str = None

Task input.

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'ScheduleActivityTask'

Decision type name.

class swf_typed.ScheduleLambdaFunctionDecision(lambda_function: str, task_id: str, task_input: str = None, task_timeout: timedelta = _Sentinel(), control: str = None)[source]

Schedule Lambda function invocation decider decision.

control: str = None

Message for future deciders.

lambda_function: str

Lambda function name or ARN (latest/version/alias) to invoke.

task_id: str

Task ID.

task_input: str = None

Lambda function input.

task_timeout: timedelta = _Sentinel()

Lambda function invocation timeout.

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'ScheduleLambdaFunction'

Decision type name.

class swf_typed.SignalExternalWorkflowExecutionDecision(execution: ExecutionId | CurrentExecutionId, signal: str, signal_input: str = None, control: str = None)[source]

Signal external workflow execution decider decision.

control: str = None

Message for future deciders.

execution: ExecutionId | CurrentExecutionId

ID of execution to signal.

signal: str

Signal name.

signal_input: str = None

Signal input.

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'SignalExternalWorkflowExecution'

Decision type name.

class swf_typed.StartChildWorkflowExecutionDecision(workflow: _workflows.WorkflowId, execution: _executions.CurrentExecutionId, execution_input: str = None, execution_configuration: _executions.PartialExecutionConfiguration = None, tags: List[str] = None, control: str = None)[source]

Start child workflow execution decider decision.

control: str = None

Message for future deciders.

execution: _executions.CurrentExecutionId

Child execution workflow-ID.

execution_configuration: _executions.PartialExecutionConfiguration = None

Child execution configuration overrides.

execution_input: str = None

Child execution input.

tags: List[str] = None

Child execution tags

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'StartChildWorkflowExecution'

Decision type name.

workflow: _workflows.WorkflowId

Child execution workflow.

class swf_typed.StartTimerDecision(timer_id: str, timer_duration: timedelta, control: str = None)[source]

Start timer decider decision.

control: str = None

Message for future deciders.

timer_duration: timedelta

Timer duration.

timer_id: str

Timer ID.

to_api()[source]

Serialise to SWF API request data.

type: ClassVar[str] = 'StartTimer'

Decision type name.

swf_typed.get_number_of_pending_decision_tasks(task_list: str, domain: str, client: botocore.client.BaseClient = None) int[source]

Get the number of pending decision tasks.

Warns if the number of pending tasks is greater than what’s returned.

Parameters:
  • task_list – decision task-list

  • domain – domain of task-list

  • client – SWF client

Returns:

number of pending tasks

swf_typed.request_decision_task(task_list: str, domain: str, decider_identity: str = None, no_tasks_callback: Callable[[], None] = None, client: botocore.client.BaseClient = None) DecisionTask[source]

Request (poll for) a decision task; blocks until task is received.

Workflow execution history events are retrieved semi-lazily.

Parameters:
  • task_list – decision task-list to request from

  • domain – domain of task-list

  • decider_identity – decider identity, recorded in execution history

  • no_tasks_callback – called after no tasks were provided by SWF

  • client – SWF client

Returns:

decision task

swf_typed.send_decisions(token: str, decisions: List[Decision], context: str = None, client: botocore.client.BaseClient = None) None[source]

Make decisions for a workflow execution, completing decision task.

Parameters:
  • token – decision task identifying token

  • decisions – decisions to make

  • context – workflow execution context to set

  • client – SWF client