Events_GetEvent_Account
const url = 'https://dev-api.qualiastudios.dev/v1/accounts/example/events/example';const options = {method: 'GET', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://dev-api.qualiastudios.dev/v1/accounts/example/events/example \ --header 'X-API-Key: <X-API-Key>'Gets one event.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The account id.
The event id.
Responses
Section titled “ Responses ”OK
One thing that happened: a row of the audit trail.
Every service writes its own events table (qds.events, platform.events,
fleet.events, training.events, pipeline.events, tasks.events) in
the transaction that makes the change, with these fields as columns.
events-api copies the rows into one record and serves them; status (see
Status) is read from the same rows. events-api writes events.events for
what its retention job did (events.v1.Event).
Each service types its actions in its own proto (qds.workflow.v1.Event,
platform.v1.Event, fleet.v1.Event, training.v1.Event,
pipeline.v1.Event, tasks.v1.Event, events.v1.Event): action is the
service name and the type’s value name, and payload is the matching
payload message as protojson, rendered by the writer. Nothing downstream decodes a service
proto.
Served by events-api (Events), read from the record.
object
The event’s id (a UUID). The relay copies a row under this id, so a
replayed copy is a no-op.
(— api-linter: core::0148::use-uid=disabled
aip.dev/not-precedent: the envelope predates the resource; id is a
stored column and the stream’s field. —)
Its place in the record: one global sequence, strictly increasing, in
the order rows were copied. A service’s own table numbers its rows
separately (source_sequence).
When the change was committed.
The organization (account) id it happened in.
The workspace id it happened in; empty when origin is ORGANIZATION.
The service that committed it: “qds”, “platform”, “fleet”, “training”,
“pipeline”, “tasks” or “events”. The prefix of action.
Who did it. api_key is set when a person acted through a key; actor
kind SYSTEM, RULE or MODEL for changes nobody made by hand.
object
What kind of actor it is.
The person’s user id when kind is PERSON; empty otherwise.
The person’s display name at the time, for rendering without a lookup.
The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.
The run a model or rule finding came from, when it has one.
The API key’s id when a person acted through one; empty for a session. Never the key itself.
Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.
object
How the principal authenticated.
The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.
The initiator’s display name at the time, never their email.
The user id of the key’s creator at the time. Not who used the key.
Who owned the key at the time.
The owning space’s id (a workspace or the organization) when
credential_owner is SPACE.
What happened: <service>.<TYPE>, e.g. “qds.EPISODES_RULED”. TYPE is a
value name of the service’s Event.Type.
What it happened to, e.g. a dataset.
object
What kind of thing, e.g. “dataset”, “episode”, “robot”, “workspace”.
Its resource name or id, e.g. “accounts/a/datasets/d”.
What a person called it at the time, e.g. “Pick and place, v2”.
What the subject lives in, when that matters for filtering (a dataset’s episode, a run’s op); unset otherwise.
object
What kind of thing, e.g. “dataset”, “episode”, “robot”, “workspace”.
Its resource name or id, e.g. “accounts/a/datasets/d”.
What a person called it at the time, e.g. “Pick and place, v2”.
Other things the one change touched, e.g. the episodes a ruling covered, or the second entity of a two-entity action.
A thing an event or a status points at. Labels are captured when the event is written, so a renamed or deleted thing still reads as it was. (— api-linter: core::0123::resource-annotation=disabled aip.dev/not-precedent: a pointer at a resource, not one itself. —)
object
What kind of thing, e.g. “dataset”, “episode”, “robot”, “workspace”.
Its resource name or id, e.g. “accounts/a/datasets/d”.
What a person called it at the time, e.g. “Pick and place, v2”.
One plain line, e.g. “rejected 12 episodes”.
The service’s payload message for action, as protojson. Never holds a
secret value.
A Struct, not a Value: protojson renders a message as a JSON object, so a scalar or list here would be a writer bug the type now refuses. Not an Any: an Any needs the service’s descriptors to read, and readers here never have them.
object
The payload’s full message name, e.g. “qds.workflow.v1.Event.EpisodesRuled”; empty when there is no payload.
The request that made the change, for joining with its logs and trace. (— api-linter: core::0155::request-id-format=disabled aip.dev/not-precedent: a recorded value, not an idempotency key. —)
Whether the owning service can undo it.
The id of the event this one undid; empty unless it is an undo.
The running work it belongs to, when it does (Status.operation). Every OPERATION_* event sets it.
The source row’s sequence in its service’s events table (service
names the table). Status orders an operation’s transitions by it, never
by sequence, which is only the order rows reached the record (ADR 0025,
“Order: two sequences”).
Accounts/{account}/workspaces/{workspace}/events/{event} for an event of
a workspace; accounts/{account}/events/{event} for one of the
organization itself. {event} is id. Every event of an organization
can also be read by its organization path.
Whether a workspace or the organization itself made the change.
Explicit request correlation. Absent on historical uncorrelated records.
object
Canonical root event UUID, scoped to the event’s account.
Whether this event is the root or a derived effect.
Example
{ "actor": { "kind": "KIND_UNSPECIFIED", "attribution": { "authentication": "AUTHENTICATION_UNSPECIFIED", "credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED" } }, "origin": "ORIGIN_UNSPECIFIED", "activityLink": { "role": "ROLE_UNSPECIFIED" }}default
Section titled “default ”Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
object
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
A list of messages that carry the error details. There is a common set of message types for APIs to use.
Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
object
The type of the serialized message.
Example generated
{ "code": 1, "message": "example", "details": [ { "@type": "example" } ]}