Skip to main content

unifly_api/integration/types/
common.rs

1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5use uuid::Uuid;
6
7/// Generic pagination wrapper returned by all list endpoints.
8#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase")]
10pub struct Page<T> {
11    pub offset: i64,
12    pub limit: i32,
13    pub count: i32,
14    pub total_count: i64,
15    pub data: Vec<T>,
16}
17
18/// Site overview — from `GET /v1/sites`.
19#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
20#[serde(rename_all = "camelCase")]
21pub struct SiteResponse {
22    pub id: Uuid,
23    pub name: String,
24    /// Used as the Session API site name (`/api/s/{internalReference}/`).
25    pub internal_reference: String,
26}
27
28/// Application info — from `GET /v1/info`.
29#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
30#[serde(rename_all = "camelCase")]
31pub struct ApplicationInfoResponse {
32    #[serde(flatten)]
33    pub fields: HashMap<String, Value>,
34}
35
36/// Error response returned by the Integration API.
37#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
38#[serde(rename_all = "camelCase")]
39pub struct ErrorResponse {
40    pub message: Option<String>,
41    #[serde(flatten)]
42    pub extra: HashMap<String, Value>,
43}