use serde::{Deserialize, Serialize};
use super::BootstrapRequest;
#[derive(Debug, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct ProvisionIntegrationRequest {
pub request: BootstrapRequest,
pub context: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assertion: Option<AssertionMode>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vc_validity_seconds: Option<i64>,
}
#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum AssertionMode {
#[default]
DidSigned,
PinnedOnly,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct ProvisionIntegrationResponse {
pub bundle: String,
pub digest: String,
pub summary: ProvisionSummary,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case", deny_unknown_fields)]
pub struct ProvisionSummary {
pub client_did: String,
#[serde(default)]
pub admin_did: String,
#[serde(default)]
pub admin_rolled_over: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub integration_did: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub template_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub template_kind: Option<String>,
#[serde(default)]
pub admin_template_name: Option<String>,
pub bundle_id_hex: String,
pub secret_count: usize,
pub output_count: usize,
#[serde(default)]
pub webvh_server_id: Option<String>,
}