roboto.domain.platform_events.events
Module Contents
CLOUDEVENTS_SPECVERSION
The CloudEvents spec version PlatformEvent.to_cloudevent() produces.
CLOUDEVENTS_TYPE_PREFIX
Reverse-DNS prefix CloudEvents recommends on type. It appears only in what PlatformEvent.to_cloudevent() returns; subscriptions, conditions, and templates name an event by its bare PlatformEventType value (file.uploaded).
DatasetCreatedPayload
DatasetMetadataUpdatedPayload
Bases: pydantic.BaseModel
Payload for PlatformEventType.DatasetMetadataUpdated.
Parameters
data AnyAttributes
DatasetMetadataUpdatedPayload.changeset
The applied metadata/tag delta, served to conditions as the changed and tag roots.
DatasetMetadataUpdatedPayload.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
DatasetTagAddedPayload
Bases: pydantic.BaseModel
Payload for PlatformEventType.DatasetTagAdded.
Parameters
data AnyAttributes
DatasetTagAddedPayload.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
DatasetTagAddedPayload.tags_added
Tags added by the mutation, served to conditions as the tag root.
EventCreatedPayload
Bases: pydantic.BaseModel
Payload for PlatformEventType.EventCreated.
Parameters
data AnyAttributes
EventCreatedPayload.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
FileIngestedPayload
Bases: pydantic.BaseModel
Payload for PlatformEventType.FileIngested.
Parameters
data AnyAttributes
FileIngestedPayload.file_version
The file’s version when the event was published; a newer version may exist by the time a trigger evaluates. Versions number revisions of the file record, which a metadata or tag edit advances just as an overwrite of the file’s contents does. None on events published before the payload carried this field.
FileIngestedPayload.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
FileIngestedPayload.transaction_id
Upload transaction the file arrived in, when known.
FileMetadataUpdatedPayload
Bases: pydantic.BaseModel
Payload for PlatformEventType.FileMetadataUpdated.
Parameters
data AnyAttributes
FileMetadataUpdatedPayload.changeset
The applied metadata/tag delta, served to conditions as the changed and tag roots.
FileMetadataUpdatedPayload.file_version
The file’s version when the event was published; a newer version may exist by the time a trigger evaluates. Versions number revisions of the file record, which a metadata or tag edit advances just as an overwrite of the file’s contents does. None on events published before the payload carried this field.
FileMetadataUpdatedPayload.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
FileUploadedPayload
Bases: pydantic.BaseModel
Payload for PlatformEventType.FileUploaded.
Parameters
data AnyAttributes
FileUploadedPayload.file_version
The file’s version when the event was published; a newer version may exist by the time a trigger evaluates. Versions number revisions of the file record, which a metadata or tag edit advances just as an overwrite of the file’s contents does. None on events published before the payload carried this field.
FileUploadedPayload.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
FileUploadedPayload.transaction_id
Upload transaction the file arrived in, when the upload used one.
InvocationCompletedPayload
Bases: pydantic.BaseModel
Payload for PlatformEventType.InvocationCompleted.
Parameters
data AnyAttributes
InvocationCompletedPayload.action_name
Name of the invoked action. Unique within action_owner_id’s org.
InvocationCompletedPayload.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
InvocationCompletedPayload.status
Terminal status the invocation reached.
InvocationFailedPayload
Bases: pydantic.BaseModel
Payload for PlatformEventType.InvocationFailed.
Parameters
data AnyAttributes
InvocationFailedPayload.action_name
Name of the invoked action. Unique within action_owner_id’s org.
InvocationFailedPayload.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
InvocationFailedPayload.status
Terminal status the invocation reached (Failed or Deadly).
PlatformEvent
Bases: pydantic.BaseModel
One occurrence of something that happened on the platform, as a trigger receives it.
id, source, type, time and subject are the CloudEvents 1.0 context attributes; to_cloudevent() renders the occurrence in that spec’s structured-JSON form. The envelope stays thin: data carries entity ids and facts fixed at time, such as a metadata delta or a terminal status, and never mutable entity state — conditions and target templates read an entity’s current state at evaluation time through an EventNamespace.
Parameters
data AnyAttributes
PlatformEvent.data
The per-type payload. Its model must be the one registered for type in the default catalog; a mismatch is rejected at validation time.
PlatformEvent.id
Producer-vended event id, unique within source; deterministic where possible (e.g. evt:{invocation_id}:completed).
PlatformEvent.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
PlatformEvent.schema_version
Version of the envelope + payload schema. Bumped only for breaking changes.
PlatformEvent.source
The org and the deployment the event happened in, as built by platform_event_source().
Properties
PlatformEvent.subject
The entity the event is about, as a roboto:// URI (roboto://file/fl_1a2b).
Computed from data by the event type’s catalog descriptor rather than stored, so it cannot disagree with the payload, and serialized like a declared field.
PlatformEvent.subject_uri
subject as a parsed RobotoUri.
Attributes
PlatformEvent.to_cloudevent()
Return this event as CloudEvents 1.0 structured JSON (application/cloudevents+json).
Nothing serializes it yet: the command bus carries the model itself. It exists so an outbound webhook body needs no redesign.
Context attributes sit at the top level under their spec names, with type carrying CLOUDEVENTS_TYPE_PREFIX and datacontenttype fixed at application/json. org_id and schema_version arrive as the extension attributes orgid and schemaversion, because extension names must be lowercase alphanumerics. The returned dict is JSON-serializable as-is.
Return type
Attributes
PlatformEvent.type
Which kind of event this is. Dictates the concrete model of data.
PlatformEventPayload
Union of every per-type payload model. Which member is legal for a given PlatformEvent is dictated by its type.
PlatformEventType
Bases: roboto.compat.StrEnum
A thing that happens on the platform that triggers can subscribe to.
Every member has a PlatformEventDescriptor in the default PlatformEventCatalog describing its payload model, the namespace roots it exposes to conditions and templates, and the OncePer values it supports.
Attributes
PlatformEventType.DatasetMetadataUpdated
A dataset’s metadata or tags changed.
PlatformEventType.DatasetTagAdded
One or more tags were added to a dataset.
PlatformEventType.EventCreated
An event, the annotation marking a span of time on your data, was created.
PlatformEventType.FileIngested
A file finished ingestion (post-processing) and its topics are available.
PlatformEventType.FileMetadataUpdated
A file’s metadata or tags changed.
PlatformEventType.FileUploaded
A file finished uploading to a dataset.
PlatformEventType.InvocationCompleted
An action invocation reached a successful terminal status.
PlatformEventType.InvocationFailed
An action invocation reached a failed terminal status (Failed or Deadly).
PlatformEventType.ScheduleFired
A trigger’s own schedule reached one of its minutes. Not subscribable: a trigger fires on a schedule by declaring a Schedule source, and the scheduler delivers this occurrence to that trigger alone.
PlatformEventType.SessionIngested
Every ingestable file in a complete session is ingested. Fires again, as a new occurrence, each time the session’s ingestable files change and are all ingested again.
PlatformEventType.UploadCompleted
An upload transaction to a dataset completed (all of its files uploaded).
Properties
PlatformEventType.cloudevents_type
This type as a CloudEvents type attribute: ai.roboto.file.uploaded.
PlatformEventType.from_cloudevents_type()
Return the event type a CloudEvents type attribute names; the inverse of cloudevents_type.
Parameters
value strA prefixed type, such as ai.roboto.file.uploaded.
Raises
ValueErrorvalue lacks the prefix or names no platform event type.
Return type
ScheduleFiredPayload
Bases: pydantic.BaseModel
Payload for PlatformEventType.ScheduleFired.
Parameters
data AnyAttributes
ScheduleFiredPayload.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
ScheduleFiredPayload.scheduled_for
The scheduled minute (UTC) this occurrence stands for.
SessionIngestedPayload
Bases: pydantic.BaseModel
Payload for PlatformEventType.SessionIngested.
Parameters
data AnyAttributes
SessionIngestedPayload.ingestion_number
Which announcement this is for the session, starting at 1.
SessionIngestedPayload.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
SessionIngestedPayload.session_id
The session whose ingestable files are all ingested.
UploadCompletedPayload
Bases: pydantic.BaseModel
Payload for PlatformEventType.UploadCompleted.
Parameters
data AnyAttributes
UploadCompletedPayload.model_config
model_config #Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
platform_event_source()
Return the CloudEvents source for one org’s events on one deployment.
The value is the org’s own API resource, https://{api_domain}/v1/orgs/{org_id}. No two deployments produce the same source, so it pairs with PlatformEvent.id to identify a single occurrence.
Parameters
api_domain Optional[str]Public API host of the emitting deployment, such as api.roboto.ai. Without one, the result is the relative reference /v1/orgs/{org_id}.
org_id strOrganization whose events carry this source.
Return type