integrationos_domain/domain/token/
mod.rs

1use crate::{
2    connection_oauth_definition::ConnectedPlatform, environment::Environment, ownership::Ownership,
3    record_metadata::RecordMetadata, Connection, Id,
4};
5use serde::{Deserialize, Serialize};
6use serde_json::Value;
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase")]
10pub struct EmbedToken {
11    #[serde(rename = "_id")]
12    pub id: Id,
13    pub link_settings: EmbedLinkedToken,
14    #[serde(skip_serializing_if = "Vec::is_empty")]
15    pub features: Vec<Feature>,
16    pub label: String,
17    pub group: String,
18    pub environment: Environment,
19    pub form_data: Option<Value>,
20    pub response: Option<EventTokenResponse>,
21    pub session_id: String,
22    pub expires_at: Option<i64>,
23    #[serde(flatten, default)]
24    pub metadata: RecordMetadata,
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(rename_all = "camelCase")]
29pub struct EmbedLinkedToken {
30    pub connected_platforms: Vec<ConnectedPlatform>,
31    pub event_inc_token: String,
32}
33
34#[derive(Debug, Clone, Serialize, Deserialize)]
35#[serde(rename_all = "camelCase")]
36pub struct EventTokenResponse {
37    pub is_connected: bool,
38    pub message: Option<String>,
39    pub connection: Option<Connection>,
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize)]
43#[serde(rename_all = "camelCase")]
44pub struct Feature {
45    pub key: String,
46    pub value: FeatureState,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
50#[serde(rename_all = "lowercase")]
51pub enum FeatureState {
52    Enabled,
53    Disabled,
54}
55
56#[derive(Debug, Clone, Serialize, Deserialize)]
57#[serde(rename_all = "camelCase")]
58pub struct EventLink {
59    #[serde(rename = "_id")]
60    pub id: Id,
61    #[serde(rename = "_type")]
62    pub r#type: String,
63    pub version: Option<String>,
64    pub ownership: Ownership,
65    pub label: String,
66    pub group: String,
67    #[serde(rename = "token")]
68    pub link_token_id: Id,
69    #[serde(flatten, default)]
70    pub metadata: RecordMetadata,
71    pub environment: Environment,
72    pub usage_source: String,
73    pub expires_at: i64,
74}