archastro.platform.types.automations

 1# Copyright (c) 2026 ArchAstro Inc. Licensed under the MIT License.
 2# This file is auto-generated by @archastro/sdk-generator. Do not edit.
 3# Content hash: 0e837510897f
 4
 5from datetime import datetime
 6from typing import Any
 7
 8from pydantic import BaseModel, Field
 9
10
11class AutomationParticipantSlot(BaseModel):
12    """
13    A named participant slot declared by an automation's workflow. Embedded stages hand work to the agent the invoker names for the slot.
14    """
15
16    description: str | None = Field(
17        default=None,
18        description="Workflow-authored explanation of the slot's role. `null` when the workflow declares none.",
19    )
20    name: str = Field(
21        ...,
22        description="The slot's name, as referenced by the workflow. Supply the chosen agent under the top-level `participants[name]` field when invoking.",
23    )
24    required: bool = Field(
25        ...,
26        description="Whether the workflow requires this slot to be filled for the run to complete its embedded stages.",
27    )
28    type: str = Field(
29        ...,
30        description='The kind of principal the slot accepts. Currently always `"agent_user"` the value supplied at invoke is an agent ID (`agi_...`).',
31    )
32
33
34class AutomationPrefills(BaseModel):
35    """
36    Locked payload and participant values supplied by the automation owner.
37    """
38
39    participants: dict[str, Any] | None = Field(
40        default=None,
41        description="Participant slot-to-agent mappings applied by the platform. Caller values at these slots must match exactly.",
42    )
43    payload: dict[str, Any] | None = Field(
44        default=None,
45        description="Partial invocation payload applied by the platform. A caller may omit these values, but supplying a different value at any locked path is rejected.",
46    )
47
48
49class AutomationRun(BaseModel):
50    """
51    A single execution of an automation triggered by a platform event or direct invocation. Captures the run's status, input payload, and final result.
52    """
53
54    app: str = Field(..., description="ID of the app that owns this automation run (`dap_...`).")
55    automation: str = Field(..., description="ID of the automation that was executed (`aut_...`).")
56    created_at: datetime | None = Field(
57        default=None, description="When the automation run was created (ISO 8601)."
58    )
59    event_id: str | None = Field(
60        default=None,
61        description="ID of the platform event that triggered this run. `null` for directly invoked automations.",
62    )
63    id: str = Field(..., description="Automation run ID (`atr_...`).")
64    participants: dict[str, Any] | None = Field(
65        default=None,
66        description="Invoke-time map of symbolic participant references to agent IDs. `null` when no participants were supplied.",
67    )
68    payload: dict[str, Any] | None = Field(
69        default=None,
70        description="The input event payload that triggered this run. Structure varies by automation type. Defaults to an empty object if no payload was provided.",
71    )
72    result: dict[str, Any] | None = Field(
73        default=None,
74        description="The output produced after the automation finished executing. Contains workflow-defined keys alongside any returned output. `null` if the run has not yet completed.",
75    )
76    status: str = Field(
77        ...,
78        description='Current execution status of the run. One of `"pending"` (queued, not yet started), `"running"` (actively executing), `"completed"` (finished successfully), `"failed"` (finished with an error), or `"cancelled"` (stopped before completion).',
79    )
80    team: str | None = Field(
81        default=None,
82        description="ID of the team that owns this run (`tea_...`). `null` if the run is owned by a user rather than a team.",
83    )
84    updated_at: datetime | None = Field(
85        default=None, description="When the automation run record was last updated (ISO 8601)."
86    )
87    user: str | None = Field(
88        default=None,
89        description="ID of the user that owns this run (`usr_...`). `null` if the run is owned by a team rather than a user.",
90    )
class AutomationParticipantSlot(pydantic.main.BaseModel):
12class AutomationParticipantSlot(BaseModel):
13    """
14    A named participant slot declared by an automation's workflow. Embedded stages hand work to the agent the invoker names for the slot.
15    """
16
17    description: str | None = Field(
18        default=None,
19        description="Workflow-authored explanation of the slot's role. `null` when the workflow declares none.",
20    )
21    name: str = Field(
22        ...,
23        description="The slot's name, as referenced by the workflow. Supply the chosen agent under the top-level `participants[name]` field when invoking.",
24    )
25    required: bool = Field(
26        ...,
27        description="Whether the workflow requires this slot to be filled for the run to complete its embedded stages.",
28    )
29    type: str = Field(
30        ...,
31        description='The kind of principal the slot accepts. Currently always `"agent_user"` the value supplied at invoke is an agent ID (`agi_...`).',
32    )

A named participant slot declared by an automation's workflow. Embedded stages hand work to the agent the invoker names for the slot.

description: str | None = None

Workflow-authored explanation of the slot's role. null when the workflow declares none.

name: str = PydanticUndefined

The slot's name, as referenced by the workflow. Supply the chosen agent under the top-level participants[name] field when invoking.

required: bool = PydanticUndefined

Whether the workflow requires this slot to be filled for the run to complete its embedded stages.

type: str = PydanticUndefined

The kind of principal the slot accepts. Currently always "agent_user" the value supplied at invoke is an agent ID (agi_...).

class AutomationPrefills(pydantic.main.BaseModel):
35class AutomationPrefills(BaseModel):
36    """
37    Locked payload and participant values supplied by the automation owner.
38    """
39
40    participants: dict[str, Any] | None = Field(
41        default=None,
42        description="Participant slot-to-agent mappings applied by the platform. Caller values at these slots must match exactly.",
43    )
44    payload: dict[str, Any] | None = Field(
45        default=None,
46        description="Partial invocation payload applied by the platform. A caller may omit these values, but supplying a different value at any locked path is rejected.",
47    )

Locked payload and participant values supplied by the automation owner.

participants: dict[str, typing.Any] | None = None

Participant slot-to-agent mappings applied by the platform. Caller values at these slots must match exactly.

payload: dict[str, typing.Any] | None = None

Partial invocation payload applied by the platform. A caller may omit these values, but supplying a different value at any locked path is rejected.

class AutomationRun(pydantic.main.BaseModel):
50class AutomationRun(BaseModel):
51    """
52    A single execution of an automation triggered by a platform event or direct invocation. Captures the run's status, input payload, and final result.
53    """
54
55    app: str = Field(..., description="ID of the app that owns this automation run (`dap_...`).")
56    automation: str = Field(..., description="ID of the automation that was executed (`aut_...`).")
57    created_at: datetime | None = Field(
58        default=None, description="When the automation run was created (ISO 8601)."
59    )
60    event_id: str | None = Field(
61        default=None,
62        description="ID of the platform event that triggered this run. `null` for directly invoked automations.",
63    )
64    id: str = Field(..., description="Automation run ID (`atr_...`).")
65    participants: dict[str, Any] | None = Field(
66        default=None,
67        description="Invoke-time map of symbolic participant references to agent IDs. `null` when no participants were supplied.",
68    )
69    payload: dict[str, Any] | None = Field(
70        default=None,
71        description="The input event payload that triggered this run. Structure varies by automation type. Defaults to an empty object if no payload was provided.",
72    )
73    result: dict[str, Any] | None = Field(
74        default=None,
75        description="The output produced after the automation finished executing. Contains workflow-defined keys alongside any returned output. `null` if the run has not yet completed.",
76    )
77    status: str = Field(
78        ...,
79        description='Current execution status of the run. One of `"pending"` (queued, not yet started), `"running"` (actively executing), `"completed"` (finished successfully), `"failed"` (finished with an error), or `"cancelled"` (stopped before completion).',
80    )
81    team: str | None = Field(
82        default=None,
83        description="ID of the team that owns this run (`tea_...`). `null` if the run is owned by a user rather than a team.",
84    )
85    updated_at: datetime | None = Field(
86        default=None, description="When the automation run record was last updated (ISO 8601)."
87    )
88    user: str | None = Field(
89        default=None,
90        description="ID of the user that owns this run (`usr_...`). `null` if the run is owned by a team rather than a user.",
91    )

A single execution of an automation triggered by a platform event or direct invocation. Captures the run's status, input payload, and final result.

app: str = PydanticUndefined

ID of the app that owns this automation run (dap_...).

automation: str = PydanticUndefined

ID of the automation that was executed (aut_...).

created_at: datetime.datetime | None = None

When the automation run was created (ISO 8601).

event_id: str | None = None

ID of the platform event that triggered this run. null for directly invoked automations.

id: str = PydanticUndefined

Automation run ID (atr_...).

participants: dict[str, typing.Any] | None = None

Invoke-time map of symbolic participant references to agent IDs. null when no participants were supplied.

payload: dict[str, typing.Any] | None = None

The input event payload that triggered this run. Structure varies by automation type. Defaults to an empty object if no payload was provided.

result: dict[str, typing.Any] | None = None

The output produced after the automation finished executing. Contains workflow-defined keys alongside any returned output. null if the run has not yet completed.

status: str = PydanticUndefined

Current execution status of the run. One of "pending" (queued, not yet started), "running" (actively executing), "completed" (finished successfully), "failed" (finished with an error), or "cancelled" (stopped before completion).

team: str | None = None

ID of the team that owns this run (tea_...). null if the run is owned by a user rather than a team.

updated_at: datetime.datetime | None = None

When the automation run record was last updated (ISO 8601).

user: str | None = None

ID of the user that owns this run (usr_...). null if the run is owned by a team rather than a user.