Skip to content
Roboto
Esc
↑↓navigate↵open⌘Jpreview
On this page

roboto.domain.platform_events.events

Module Contents

CLOUDEVENTS_SPECVERSION

roboto.domain.platform_events.events.CLOUDEVENTS_SPECVERSION = '1.0'#View Source

The CloudEvents spec version PlatformEvent.to_cloudevent() produces.

CLOUDEVENTS_TYPE_PREFIX

roboto.domain.platform_events.events.CLOUDEVENTS_TYPE_PREFIX = 'ai.roboto.'#View Source

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

class roboto.domain.platform_events.events.DatasetCreatedPayload(/, **data)#View Source

Bases: pydantic.BaseModel

Payload for PlatformEventType.DatasetCreated.

Parameters

data Any

Attributes

DatasetCreatedPayload.dataset_id

dataset_id str #

The created dataset.

DatasetCreatedPayload.model_config

model_config #

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

DatasetMetadataUpdatedPayload

class roboto.domain.platform_events.events.DatasetMetadataUpdatedPayload(/, **data)#View Source

Bases: pydantic.BaseModel

Payload for PlatformEventType.DatasetMetadataUpdated.

Parameters

data Any

Attributes

DatasetMetadataUpdatedPayload.changeset

The applied metadata/tag delta, served to conditions as the changed and tag roots.

DatasetMetadataUpdatedPayload.dataset_id

dataset_id str #

The dataset whose metadata changed.

DatasetMetadataUpdatedPayload.model_config

model_config #

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

DatasetTagAddedPayload

class roboto.domain.platform_events.events.DatasetTagAddedPayload(/, **data)#View Source

Bases: pydantic.BaseModel

Payload for PlatformEventType.DatasetTagAdded.

Parameters

data Any

Attributes

DatasetTagAddedPayload.dataset_id

dataset_id str #

The tagged dataset.

DatasetTagAddedPayload.model_config

model_config #

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

DatasetTagAddedPayload.tags_added

tags_added list[str] #

Tags added by the mutation, served to conditions as the tag root.

EventCreatedPayload

class roboto.domain.platform_events.events.EventCreatedPayload(/, **data)#View Source

Bases: pydantic.BaseModel

Payload for PlatformEventType.EventCreated.

Parameters

data Any

Attributes

EventCreatedPayload.event_id

event_id str #

The created event, an EventRecord.

EventCreatedPayload.model_config

model_config #

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

FileIngestedPayload

class roboto.domain.platform_events.events.FileIngestedPayload(/, **data)#View Source

Bases: pydantic.BaseModel

Payload for PlatformEventType.FileIngested.

Parameters

data Any

Attributes

FileIngestedPayload.dataset_id

dataset_id str #

Dataset containing the ingested file.

FileIngestedPayload.file_id

file_id str #

The ingested file.

FileIngestedPayload.file_version

file_version int | None = None #

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

transaction_id str | None = None #

Upload transaction the file arrived in, when known.

FileMetadataUpdatedPayload

class roboto.domain.platform_events.events.FileMetadataUpdatedPayload(/, **data)#View Source

Bases: pydantic.BaseModel

Payload for PlatformEventType.FileMetadataUpdated.

Parameters

data Any

Attributes

FileMetadataUpdatedPayload.changeset

The applied metadata/tag delta, served to conditions as the changed and tag roots.

FileMetadataUpdatedPayload.dataset_id

dataset_id str #

Dataset containing the updated file.

FileMetadataUpdatedPayload.file_id

file_id str #

The file whose metadata changed.

FileMetadataUpdatedPayload.file_version

file_version int | None = None #

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

class roboto.domain.platform_events.events.FileUploadedPayload(/, **data)#View Source

Bases: pydantic.BaseModel

Payload for PlatformEventType.FileUploaded.

Parameters

data Any

Attributes

FileUploadedPayload.dataset_id

dataset_id str #

Dataset the file was uploaded to.

FileUploadedPayload.file_id

file_id str #

The uploaded file.

FileUploadedPayload.file_version

file_version int | None = None #

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

transaction_id str | None = None #

Upload transaction the file arrived in, when the upload used one.

InvocationCompletedPayload

class roboto.domain.platform_events.events.InvocationCompletedPayload(/, **data)#View Source

Bases: pydantic.BaseModel

Payload for PlatformEventType.InvocationCompleted.

Parameters

data Any

Attributes

InvocationCompletedPayload.action_name

action_name str #

Name of the invoked action. Unique within action_owner_id’s org.

InvocationCompletedPayload.action_owner_id

action_owner_id str #

Org that owns the invoked action.

InvocationCompletedPayload.invocation_id

invocation_id str #

The completed invocation.

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

class roboto.domain.platform_events.events.InvocationFailedPayload(/, **data)#View Source

Bases: pydantic.BaseModel

Payload for PlatformEventType.InvocationFailed.

Parameters

data Any

Attributes

InvocationFailedPayload.action_name

action_name str #

Name of the invoked action. Unique within action_owner_id’s org.

InvocationFailedPayload.action_owner_id

action_owner_id str #

Org that owns the invoked action.

InvocationFailedPayload.invocation_id

invocation_id str #

The failed invocation.

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

class roboto.domain.platform_events.events.PlatformEvent(/, **data)#View Source

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 Any

Attributes

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

id str #

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.org_id

org_id str #

Organization in which the event occurred and whose triggers see it.

PlatformEvent.schema_version

schema_version int = 1 #

Version of the envelope + payload schema. Bumped only for breaking changes.

PlatformEvent.source

source str #

The org and the deployment the event happened in, as built by platform_event_source().

Properties

PlatformEvent.subject

subject str #

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.

Return type: str

PlatformEvent.subject_uri

subject as a parsed RobotoUri.

Attributes

PlatformEvent.time

time datetime.datetime #

When the event occurred.

PlatformEvent.to_cloudevent()

to_cloudevent()#View Source

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

dict[str, Any]

Attributes

PlatformEvent.type

Which kind of event this is. Dictates the concrete model of data.

PlatformEventPayload

roboto.domain.platform_events.events.PlatformEventPayload#View Source

Union of every per-type payload model. Which member is legal for a given PlatformEvent is dictated by its type.

PlatformEventType

class roboto.domain.platform_events.events.PlatformEventType#View Source

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.DatasetCreated

DatasetCreated = 'dataset.created' #

A dataset was created.

PlatformEventType.DatasetMetadataUpdated

DatasetMetadataUpdated = 'dataset.metadata_updated' #

A dataset’s metadata or tags changed.

PlatformEventType.DatasetTagAdded

DatasetTagAdded = 'dataset.tag_added' #

One or more tags were added to a dataset.

PlatformEventType.EventCreated

EventCreated = 'event.created' #

An event, the annotation marking a span of time on your data, was created.

PlatformEventType.FileIngested

FileIngested = 'file.ingested' #

A file finished ingestion (post-processing) and its topics are available.

PlatformEventType.FileMetadataUpdated

FileMetadataUpdated = 'file.metadata_updated' #

A file’s metadata or tags changed.

PlatformEventType.FileUploaded

FileUploaded = 'file.uploaded' #

A file finished uploading to a dataset.

PlatformEventType.InvocationCompleted

InvocationCompleted = 'invocation.completed' #

An action invocation reached a successful terminal status.

PlatformEventType.InvocationFailed

InvocationFailed = 'invocation.failed' #

An action invocation reached a failed terminal status (Failed or Deadly).

PlatformEventType.ScheduleFired

ScheduleFired = 'schedule.fired' #

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

SessionIngested = 'session.ingested' #

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

UploadCompleted = 'dataset.upload_completed' #

An upload transaction to a dataset completed (all of its files uploaded).

Properties

PlatformEventType.cloudevents_type

cloudevents_type str #

This type as a CloudEvents type attribute: ai.roboto.file.uploaded.

Return type: str

PlatformEventType.from_cloudevents_type()

classmethod from_cloudevents_type(value)#View Source

Return the event type a CloudEvents type attribute names; the inverse of cloudevents_type.

Parameters

value str

A prefixed type, such as ai.roboto.file.uploaded.

Raises

ValueError

value lacks the prefix or names no platform event type.

ScheduleFiredPayload

class roboto.domain.platform_events.events.ScheduleFiredPayload(/, **data)#View Source

Bases: pydantic.BaseModel

Payload for PlatformEventType.ScheduleFired.

Parameters

data Any

Attributes

ScheduleFiredPayload.model_config

model_config #

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

ScheduleFiredPayload.scheduled_for

scheduled_for datetime.datetime #

The scheduled minute (UTC) this occurrence stands for.

ScheduleFiredPayload.trigger_id

trigger_id str #

The trigger whose schedule fired.

SessionIngestedPayload

class roboto.domain.platform_events.events.SessionIngestedPayload(/, **data)#View Source

Bases: pydantic.BaseModel

Payload for PlatformEventType.SessionIngested.

Parameters

data Any

Attributes

SessionIngestedPayload.ingestion_number

ingestion_number int #

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

session_id str #

The session whose ingestable files are all ingested.

UploadCompletedPayload

class roboto.domain.platform_events.events.UploadCompletedPayload(/, **data)#View Source

Bases: pydantic.BaseModel

Payload for PlatformEventType.UploadCompleted.

Parameters

data Any

Attributes

UploadCompletedPayload.dataset_id

dataset_id str #

Dataset the upload targeted.

UploadCompletedPayload.model_config

model_config #

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

UploadCompletedPayload.transaction_id

transaction_id str #

The completed upload transaction.

platform_event_source()

roboto.domain.platform_events.events.platform_event_source(api_domain, org_id)#View 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 str

Organization whose events carry this source.

Return type

str

Was this page helpful?