uptrakit_web_api_types/
surfaces.rs1use serde::{Deserialize, Serialize};
2use uptrakit_wire::surfaces::{self, SurfaceDescriptor};
3use uuid::Uuid;
4
5#[derive(Debug, Clone, Deserialize)]
7pub struct ListSurfacesQuery {
8 #[serde(default)]
9 pub slot: Option<String>,
10 #[serde(default)]
11 pub page: Option<String>,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
16pub struct SurfaceResponse {
17 #[serde(flatten)]
18 pub descriptor: SurfaceDescriptor,
19 pub provider_count: usize,
20}
21
22#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
24#[serde(rename_all = "snake_case")]
25pub enum SurfaceProviderAvailability {
26 Available,
27 Disconnected,
28 IncompatibleTenant,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
33pub struct SurfaceProviderInfo {
34 pub provider_id: String,
35 pub display_label: String,
36 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub service_id: Option<Uuid>,
38 pub availability: SurfaceProviderAvailability,
39 #[serde(default, skip_serializing_if = "Option::is_none")]
40 pub encryption_metadata: Option<surfaces::ProviderEncryptionMetadata>,
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize)]
45pub struct SurfaceReadResponse {
46 pub descriptor: SurfaceDescriptor,
47 #[serde(default)]
48 pub interactions: Vec<surfaces::InteractionDescriptor>,
49 #[serde(default)]
50 pub data_sources: Vec<surfaces::DataSourceDescriptor>,
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
55pub struct InvokeSurfaceInteractionRequest {
56 #[serde(default)]
57 pub params: serde_json::Map<String, serde_json::Value>,
58 #[serde(default, skip_serializing_if = "Option::is_none")]
59 pub encrypted_sensitive_params: Option<surfaces::EncryptedSensitiveParams>,
60 #[serde(default, skip_serializing_if = "Option::is_none")]
61 pub target_provider_id: Option<String>,
62 #[serde(default, skip_serializing_if = "Option::is_none")]
64 pub idempotency_key: Option<String>,
65 #[serde(default, skip_serializing_if = "Option::is_none")]
67 pub timeout_seconds: Option<u16>,
68}