Skip to content

Models

All models are importable directly from pyawe:

from pyawe import Workflow, Task, Job, Status, TaskType

Enumerations

pyawe.models.Status

Bases: str, Enum

Lifecycle status shared by workflows, tasks, and jobs.

CANCELLED is task-only and set automatically by the propagator when a task is on a rejected decision branch; do not set it via update_task.

pyawe.models.ScheduleStatus

Bases: str, Enum

Schedule health indicator shared by workflows, tasks, and jobs.

pyawe.models.TaskType

Bases: str, Enum

Task execution model.

pyawe.models.PortDirection

Bases: str, Enum

Direction of a task port.

pyawe.models.PortValueType

Bases: str, Enum

Data type carried by a task port.

pyawe.models.ScriptType

Bases: str, Enum

Execution mechanism for an automated task.

pyawe.models.LoopType

Bases: str, Enum

Iteration strategy for a loop block.


Auth

pyawe.models.LoginInfo dataclass

LoginInfo(token: str, user_id: str, email: str, username: str, roles: List[str], permissions: List[str])

Session information returned by a successful :meth:AweClient.login call.


Workflows

pyawe.models.Workflow dataclass

Workflow(id: UUID, name: str, is_template: bool, created_at: datetime, updated_at: datetime, status: Status, schedule_status: ScheduleStatus, is_shared: bool, created_by: Optional[str] = None, description: Optional[str] = None, job_id: Optional[UUID] = None, team_id: Optional[UUID] = None, parent_loop_block_id: Optional[UUID] = None, sort_order: Optional[int] = None, story_points: Optional[int] = None)

A workflow definition or instance.

sort_order class-attribute instance-attribute

sort_order: Optional[int] = None

Display order within the parent job (backlog or sprint).

story_points class-attribute instance-attribute

story_points: Optional[int] = None

Story point estimate for this story-workflow.

pyawe.models.WorkflowWithTasks dataclass

WorkflowWithTasks(workflow: Workflow, tasks: List[Task] = list(), links: List[TaskLink] = list())

Workflow with its associated tasks and inter-task links.


Tasks

pyawe.models.Task dataclass

Task(id: UUID, name: str, is_template: bool, created_at: datetime, updated_at: datetime, status: Status, schedule_status: ScheduleStatus, workflow_id: UUID, is_start: bool, is_end: bool, task_type: str, created_by: Optional[str] = None, description: Optional[str] = None, rework_task_id: Optional[UUID] = None, loop_block_id: Optional[UUID] = None, assigned_to: Optional[str] = None, start_time: Optional[datetime] = None, end_time: Optional[datetime] = None, decision_outcome: Optional[str] = None, decision_input_port: Optional[str] = None, input_values: Optional[Any] = None, output_values: Optional[Any] = None, is_locked: bool = False, canvas_x: Optional[float] = None, canvas_y: Optional[float] = None, effort: Optional[int] = None)

A task within a workflow.

task_type instance-attribute

task_type: str

One of "standard", "decision", "automated", "loop_block".

loop_block_id class-attribute instance-attribute

loop_block_id: Optional[UUID] = None

Set when task_type == "loop_block".

assigned_to class-attribute instance-attribute

assigned_to: Optional[str] = None

User UUID string; no foreign-key constraint (users live in a separate service).

decision_input_port class-attribute instance-attribute

decision_input_port: Optional[str] = None

Input port name that drives auto-decide for decision tasks.

is_locked class-attribute instance-attribute

is_locked: bool = False

When True, structural edits are blocked for non-privileged users.

effort class-attribute instance-attribute

effort: Optional[int] = None

Unitless effort estimate (e.g. story points). None means not yet estimated.

pyawe.models.TaskWithContext dataclass

TaskWithContext(task: Task, workflow_name: str, job_id: Optional[UUID] = None, job_name: Optional[str] = None)

A task enriched with its workflow and job names, returned by list_mine.

TaskLink(from_task_id: UUID, to_task_id: UUID, branch_label: Optional[str] = None, data_bindings: Optional[Any] = None)

A directed edge between two tasks.

branch_label class-attribute instance-attribute

branch_label: Optional[str] = None

Set only when the source task is a decision task.

data_bindings class-attribute instance-attribute

data_bindings: Optional[Any] = None

List of {from: output_name, to: input_name} mappings propagated on completion.

pyawe.models.DataBinding dataclass

DataBinding(from_port: str, to_port: str)

A single data binding on a task link edge.

from_port instance-attribute

from_port: str

Name of the output port on the upstream task.

to_port instance-attribute

to_port: str

Name of the input port on the downstream task.

pyawe.models.TaskPortSpec dataclass

TaskPortSpec(id: UUID, task_id: UUID, direction: str, name: str, value_type: str, required: bool, sort_order: int, created_at: datetime, updated_at: datetime, description: Optional[str] = None, default_value: Optional[Any] = None)

Port specification (input or output) defined on a task.

direction instance-attribute

direction: str

"input" or "output".

value_type instance-attribute

value_type: str

One of "string", "number", "boolean", "json", "file", "dam_asset".

pyawe.models.TaskPortValues dataclass

TaskPortValues(specs: List[TaskPortSpec] = list(), values: Optional[Any] = None)

Port specs paired with their current runtime values.

values class-attribute instance-attribute

values: Optional[Any] = None

Dict of {name: value} or None when no values have been set.

pyawe.models.TaskScript dataclass

TaskScript(id: UUID, task_id: UUID, script_type: str, timeout_secs: int, retry_limit: int, created_at: datetime, updated_at: datetime, endpoint: Optional[str] = None, script_body: Optional[str] = None, execution_profile_id: Optional[UUID] = None)

Automated execution script attached to a task.

script_type instance-attribute

script_type: str

One of "webhook", "shell", "python", "mcp_tool".

pyawe.models.TaskRun dataclass

TaskRun(id: UUID, task_id: UUID, created_at: datetime, runner_id: Optional[str] = None, started_at: Optional[datetime] = None, completed_at: Optional[datetime] = None, outcome: Optional[str] = None, input_json: Optional[Any] = None, output_json: Optional[Any] = None, error_message: Optional[str] = None)

Record of a single automated task execution attempt.

outcome class-attribute instance-attribute

outcome: Optional[str] = None

"Success", "Failure", or "Timeout".

pyawe.models.TaskTeamRole dataclass

TaskTeamRole(task_id: UUID, team_role_id: UUID, assigned_at: datetime)

Assignment of a team role to a task.


Jobs

pyawe.models.Job dataclass

Job(id: UUID, name: str, status: Status, schedule_status: ScheduleStatus, created_at: datetime, updated_at: datetime, archived: bool, team_id: Optional[UUID] = None, project_id: Optional[UUID] = None, job_type: Optional[str] = None, start_date: Optional[str] = None, end_date: Optional[str] = None)

A job that groups related workflow instances.

job_type class-attribute instance-attribute

job_type: Optional[str] = None

"sprint", "kanban", or "backlog"; None for legacy jobs.

start_date class-attribute instance-attribute

start_date: Optional[str] = None

ISO 8601 date string; set when job_type == "sprint".

end_date class-attribute instance-attribute

end_date: Optional[str] = None

ISO 8601 date string; set when job_type == "sprint".

pyawe.models.JobWithWorkflows dataclass

JobWithWorkflows(job: Job, workflows: List[Workflow] = list())

Job with its associated workflows.


Loop Blocks

pyawe.models.LoopBlock dataclass

LoopBlock(id: UUID, task_id: UUID, outer_workflow_id: UUID, inner_workflow_id: UUID, loop_type: str, loop_config: Any, created_at: datetime, updated_at: datetime)

A loop block that wraps an inner workflow repeated across iterations.

task_id instance-attribute

task_id: UUID

The task in the outer workflow that represents this loop block.

inner_workflow_id instance-attribute

inner_workflow_id: UUID

The workflow executed on each iteration.

loop_type instance-attribute

loop_type: str

"count", "while", or "for_each".

loop_config instance-attribute

loop_config: Any

Type-dependent config: {"count": N}, {"condition": "continue"}, or {"collection": [...]}.

pyawe.models.CreateLoopBlockResponse dataclass

CreateLoopBlockResponse(task: Task, loop_block: LoopBlock)

Response from POST /loop-blocks: the new outer task and its loop block.


Notes

pyawe.models.Note dataclass

Note(id: UUID, entity_type: str, entity_id: UUID, title: str, is_shared: bool, created_by: str, created_at: datetime, updated_at: datetime, body: Optional[str] = None, parent_id: Optional[UUID] = None, folder_id: Optional[UUID] = None)

A note attached to a task, workflow, or job.

entity_type instance-attribute

entity_type: str

"task", "workflow", or "job".

parent_id class-attribute instance-attribute

parent_id: Optional[UUID] = None

Set on replies; None for top-level notes.

pyawe.models.NoteFolder dataclass

NoteFolder(id: UUID, name: str, created_by: str, created_at: datetime)

A folder used to organise notes.


Execution Profiles

pyawe.models.ExecutionProfile dataclass

ExecutionProfile(id: UUID, name: str, image: str, cpu_request: str, cpu_limit: str, memory_request: str, memory_limit: str, created_by: str, created_at: datetime, updated_at: datetime, description: Optional[str] = None)

Approved Kubernetes execution environment for automated tasks.

image instance-attribute

image: str

Full OCI image reference, e.g. python:3.12-slim.