roboto.domain.triggers.targets
Module Contents
ActionInvocationSpec
Bases: pydantic.BaseModel
How to run an action: which action, its parameters, overrides, and input selectors.
The part of an invoke-action target that says nothing about when it runs, shared by InvokeActionTarget and anything else that stores an action invocation to run later, such as an ingestion rule. String leaves of parameter_values and invocation_input may contain {{...}} placeholders resolved against the event namespace at dispatch time.
Parameters
data AnyAttributes
ActionInvocationSpec.action
The action to invoke. owner defaults to the trigger’s org when omitted and digest to the action’s latest version.
ActionInvocationSpec.compute_requirement_overrides
compute_requirement_overrides roboto.Optional compute requirement overrides for the invocation.
ActionInvocationSpec.container_parameter_overrides
container_parameter_overrides roboto.Optional container parameter overrides for the invocation.
ActionInvocationSpec.invocation_input
Optional query-based input selection (files, topics, sessions) resolved when the invocation runs, e.g. InvocationInput.file_query('tags CONTAINS "{{event.name}}"'). The way a trigger on an event that names no dataset selects its inputs; may also accompany the file patterns of an event that names one.
ActionInvocationSpec.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
ActionInvocationSpec.parameter_values
Parameter values passed to the action; string leaves may be templated.
ActionInvocationSpec.referenced_placeholders()
Return every {{name}} placeholder referenced by this spec’s templated fields.
Return type
Attributes
ActionInvocationSpec.timeout
Optional invocation timeout override, in minutes.
ActionInvocationSpec.upload_destination
upload_destination roboto.Optional destination for the invocation’s output files.
InvokeActionTarget
Bases: ActionInvocationSpec, _TargetSpecBase
Stored configuration for invoking an action when a trigger fires.
Spec only — dispatch behavior lives server-side. The ActionInvocationSpec fields say how to run the action; this class adds the target’s identity and its file patterns. String leaves of required_inputs and additional_inputs may contain {{...}} placeholders, as the spec’s may.
An event that names a dataset invokes the action against that dataset, with inputs matched from its files by the file patterns. An event that names no dataset has no files to match: the invocation has no data source and selects its inputs with invocation_input.
Parameters
data AnyAttributes
InvokeActionTarget.additional_inputs
Optional extra file patterns passed as invocation inputs beyond the required ones. Only for events that name a dataset; must be empty otherwise.
InvokeActionTarget.from_invocation()
A target that runs invocation, with the given identity and file patterns.
Parameters
invocation ActionInvocationSpectarget_id strrequired_inputs Optional[list[str]]additional_inputs Optional[list[str]]Return type
InvokeActionTarget.invocation()
How this target runs its action, without its identity or file patterns.
Return type
Attributes
InvokeActionTarget.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
InvokeActionTarget.referenced_placeholders()
Return every {{name}} placeholder referenced by this target’s templated fields.
Return type
Attributes
InvokeActionTarget.required_inputs
File patterns (e.g. **/*.bag) that gate dispatch on the firing event’s files. Only for events that name a dataset; must be empty otherwise.
InvokeActionTarget.target_id
Stable id of this target within its trigger. Part of the dispatch idempotency key: the target’s once-per history is kept under this id, so renaming it (or replacing it with an identical target under a new id) starts a fresh history and the target fires again for subjects the old id already fired for.
SendSlackMessageTarget
Bases: _TargetSpecBase
Stored configuration for posting a Slack message when a trigger fires.
Spec only — dispatch behavior lives server-side. The channel must be on the org’s Slack outbound allowlist at dispatch time.
Parameters
data AnySendSlackMessageTarget.referenced_placeholders()
Return every {{name}} placeholder referenced by this target’s templated text.
Return type
Attributes
SendSlackMessageTarget.target_id
Stable id of this target within its trigger; part of the dispatch idempotency key.
SendSlackMessageTarget.text
Message body; may contain {{...}} placeholders resolved against the event namespace.
StartAgentTarget
Bases: _TargetSpecBase
Stored configuration for starting an agent thread when a trigger fires.
Spec only — dispatch behavior lives server-side. Each value in values is a template resolved against the event namespace, then handed to the agent’s own variable resolution as a plain value.
Parameters
data AnyAttributes
StartAgentTarget.analysis_scope
Optional analysis scope for the resulting thread.
StartAgentTarget.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
StartAgentTarget.referenced_placeholders()
Return every {{name}} placeholder referenced by this target’s templated values.
Return type
Attributes
StartAgentTarget.target_id
Stable id of this target within its trigger; part of the dispatch idempotency key.
StartAgentTarget.values
Agent variable name to a template string resolved against the event namespace.
StartAgentTarget.visibility
Visibility of the resulting agent thread.
TriggerTargetSpec
A trigger target spec, discriminated on type.
TriggerTargetType
Bases: roboto.compat.StrEnum
The kind of thing a trigger does when it fires.
Attributes
TriggerTargetType.SendSlackMessage
Post a message to a Slack channel on the org’s allowlist.
TriggerTargetType.StartAgent
Start an AI agent thread from a saved agent definition.
target_catalog_manifest()
The kinds of target a trigger can have, as the web UI’s target picker reads them.
target_catalog.json in this package is this function’s output, written by scripts/gen_trigger_manifests.py and drift-checked by a test on each side. Each entry’s body is empty: a target carries no save-time constraint of its own, so the picker offers every type for every event.
Return type