1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
* OpenAI API
*
* The OpenAI REST API. Please see https://platform.openai.com/docs/api-reference for more details.
*
* The version of the OpenAPI document: 2.3.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
/// LiveDelegationCreated : Returned when the Live model delegates work to your application, Responses, or Decisions. Contains delegation metadata and the position on the session timeline where the work was delegated.
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, bon::Builder)]
pub struct LiveDelegationCreated {
/// The unique ID of the Live server event.
#[serde(rename = "event_id")]
pub event_id: String,
/// The event_id of the client command associated with this server event, when supplied.
#[serde(rename = "client_event_id", skip_serializing_if = "Option::is_none")]
pub client_event_id: Option<String>,
/// The event type, always `session.delegation.created`.
#[serde(rename = "type")]
pub r#type: Type,
/// The position on the Live session timeline where the delegation was created, in milliseconds from the beginning of the session.
#[serde(rename = "offset_ms")]
pub offset_ms: i32,
#[serde(rename = "delegation")]
pub delegation: Box<models::LiveDelegationItem>,
}
impl LiveDelegationCreated {
/// Returned when the Live model delegates work to your application, Responses, or Decisions. Contains delegation metadata and the position on the session timeline where the work was delegated.
pub fn new(
event_id: String,
r#type: Type,
offset_ms: i32,
delegation: models::LiveDelegationItem,
) -> LiveDelegationCreated {
LiveDelegationCreated {
event_id,
client_event_id: None,
r#type,
offset_ms,
delegation: Box::new(delegation),
}
}
}
/// The event type, always `session.delegation.created`.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "session.delegation.created")]
SessionDelegationCreated,
}
impl Default for Type {
fn default() -> Type {
Self::SessionDelegationCreated
}
}
impl std::fmt::Display for LiveDelegationCreated {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match serde_json::to_string(self) {
Ok(s) => write!(f, "{}", s),
Err(_) => Err(std::fmt::Error),
}
}
}