vta_sdk/protocols/
discovery.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, Default)]
7#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
8pub struct CapabilitiesBody {}
9
10pub const PROTOCOL_BASE: &str = "https://firstperson.network/protocols/discovery/1.0";
11
12pub const DISCOVER_CAPABILITIES: &str =
13 "https://firstperson.network/protocols/discovery/1.0/discover-capabilities";
14pub const DISCOVER_CAPABILITIES_RESULT: &str =
15 "https://firstperson.network/protocols/discovery/1.0/discover-capabilities-result";
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
19#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
20pub struct CapabilitiesResponse {
21 pub version: String,
23 pub features: FeaturesInfo,
25 pub services: ServicesInfo,
27 pub webvh_servers: Vec<WebvhServerInfo>,
29 pub did_creation_modes: Vec<String>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
35pub struct FeaturesInfo {
36 pub webvh: bool,
37 pub didcomm: bool,
38 pub tee: bool,
39 pub rest: bool,
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize)]
43#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
44pub struct ServicesInfo {
45 pub rest: bool,
46 pub didcomm: bool,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
50#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
51pub struct WebvhServerInfo {
52 pub id: String,
53 #[serde(default, skip_serializing_if = "Option::is_none")]
54 pub label: Option<String>,
55}