Skip to main content

rust_genai_types/
tokens.rs

1use serde::{Deserialize, Serialize};
2
3use crate::http::HttpOptions;
4use crate::live_types::LiveConnectConfig;
5
6/// Ephemeral auth token response.
7#[derive(Debug, Clone, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct AuthToken {
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub name: Option<String>,
12}
13
14/// Live connect constraints for auth token creation.
15#[derive(Debug, Clone, Serialize, Deserialize, Default)]
16#[serde(rename_all = "camelCase")]
17pub struct LiveConnectConstraints {
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub model: Option<String>,
20    #[serde(skip_serializing_if = "Option::is_none")]
21    pub config: Option<LiveConnectConfig>,
22}
23
24/// Create auth token config.
25#[derive(Debug, Clone, Serialize, Deserialize, Default)]
26#[serde(rename_all = "camelCase")]
27pub struct CreateAuthTokenConfig {
28    /// Optional. HTTP request overrides (SDK only, not sent to API).
29    #[serde(skip_serializing, skip_deserializing)]
30    pub http_options: Option<HttpOptions>,
31    /// Optional. Absolute expire time (RFC3339).
32    #[serde(skip_serializing_if = "Option::is_none")]
33    pub expire_time: Option<String>,
34    /// Optional. Reject new sessions after this time (RFC3339).
35    #[serde(skip_serializing_if = "Option::is_none")]
36    pub new_session_expire_time: Option<String>,
37    /// Optional. Max usage count. Zero means unlimited.
38    #[serde(skip_serializing_if = "Option::is_none")]
39    pub uses: Option<i32>,
40    /// Optional. Live API constraints locked into the token.
41    #[serde(skip_serializing_if = "Option::is_none")]
42    pub live_connect_constraints: Option<LiveConnectConstraints>,
43    /// Optional. Additional fields to lock in field mask.
44    #[serde(skip_serializing_if = "Option::is_none")]
45    pub lock_additional_fields: Option<Vec<String>>,
46}