use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreateDidWebvhBody {
pub context_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub server_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub domain: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub portable: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub add_mediator_service: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub additional_services: Option<Vec<serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pre_rotation_count: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub did_document: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub did_log: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub set_primary: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub signing_key_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ka_key_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub template_context: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub template_vars: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Clone, Serialize, Deserialize)]
pub struct CreateDidWebvhResultBody {
pub did: String,
pub context_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub server_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mnemonic: Option<String>,
pub scid: String,
pub portable: bool,
pub signing_key_id: String,
pub ka_key_id: String,
pub pre_rotation_key_count: u32,
pub created_at: DateTime<Utc>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub did_document: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub log_entry: Option<String>,
}
impl std::fmt::Debug for CreateDidWebvhResultBody {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("CreateDidWebvhResultBody")
.field("did", &self.did)
.field("context_id", &self.context_id)
.field("server_id", &self.server_id)
.field("mnemonic", &self.mnemonic.as_ref().map(|_| "<redacted>"))
.field("scid", &self.scid)
.field("portable", &self.portable)
.field("signing_key_id", &self.signing_key_id)
.field("ka_key_id", &self.ka_key_id)
.field("pre_rotation_key_count", &self.pre_rotation_key_count)
.field("created_at", &self.created_at)
.field("did_document", &self.did_document)
.field("log_entry", &self.log_entry)
.finish()
}
}