use std::net::IpAddr;
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct CertificateRequest {
pub token: String,
pub public_key: String,
pub server: String,
pub user: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CertificateResponse {
pub certificate: String,
pub valid_before: u64,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ErrorResponse {
pub error: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_ip: Option<IpAddr>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub time: Option<u64>,
}