integrationos_domain/domain/token/
mod.rs1use 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}