Event

pydantic model controller.models.domain.lab.Event

One lab operation event for a user.

This model is not directly returned by any handler. Instead, it is converted to a server-sent event via its to_sse method.

Parameters:

data (Any)

Show JSON schema
{
   "title": "Event",
   "description": "One lab operation event for a user.\n\nThis model is not directly returned by any handler. Instead, it is\nconverted to a server-sent event via its ``to_sse`` method.",
   "type": "object",
   "properties": {
      "type": {
         "$ref": "#/$defs/EventType",
         "description": "Type of the event",
         "title": "Type"
      },
      "message": {
         "description": "User-visible message for this event",
         "title": "Message",
         "type": "string"
      },
      "progress": {
         "anyOf": [
            {
               "exclusiveMinimum": 0,
               "maximum": 100,
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Estimated competion percentage of operation. For spawn events after the Kubernetes objects have been created, this is a mostly meaningless number to make the progress bar move, since we have no way to know how many events in total there will be.",
         "title": "Percentage"
      }
   },
   "$defs": {
      "EventType": {
         "description": "Type of message.",
         "enum": [
            "complete",
            "error",
            "failed",
            "info"
         ],
         "title": "EventType",
         "type": "string"
      }
   },
   "required": [
      "type",
      "message"
   ]
}

Fields:
field message: Annotated[str, Field(title='Message', description='User-visible message for this event')] [Required]

User-visible message for this event

field progress: Annotated[int | None, Field(title='Percentage', description='Estimated competion percentage of operation. For spawn events after the Kubernetes objects have been created, this is a mostly meaningless number to make the progress bar move, since we have no way to know how many events in total there will be.', le=100, gt=0)] = None

Estimated competion percentage of operation. For spawn events after the Kubernetes objects have been created, this is a mostly meaningless number to make the progress bar move, since we have no way to know how many events in total there will be.

Constraints:
  • gt = 0

  • le = 100

field type: Annotated[EventType, Field(title='Type', description='Type of the event')] [Required]

Type of the event

to_sse()

Convert to event suitable for sending to the client.

Returns:

Converted form of the event.

Return type:

sse_starlette.ServerSentEvent

property done: bool

Whether this event indicates the event stream should stop.