use serde::{Deserialize, Serialize};
use utoipa::ToSchema;
#[derive(Debug, Deserialize, ToSchema)]
pub struct CreateSecretRequest {
pub name: String,
pub value: String,
#[serde(default)]
pub scope: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, ToSchema)]
pub struct SecretMetadataResponse {
pub name: String,
pub created_at: i64,
pub updated_at: i64,
pub version: u32,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Debug, Deserialize, ToSchema)]
pub struct RotateSecretRequest {
pub value: String,
}
#[derive(Debug, Serialize, Deserialize, ToSchema)]
pub struct RotateSecretResponse {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub previous_version: Option<u32>,
pub new_version: u32,
}
#[derive(Debug, Serialize, Deserialize, ToSchema)]
pub struct RevealAllSecretsResponse {
pub environment: String,
pub secrets: std::collections::HashMap<String, String>,
}
#[derive(Debug, Serialize, Deserialize, ToSchema)]
pub struct BulkImportResponse {
pub created: usize,
pub updated: usize,
pub errors: Vec<String>,
}
#[derive(Debug, Default, Deserialize)]
pub struct SecretsScopeQuery {
#[serde(default)]
pub environment: Option<String>,
#[serde(default)]
pub scope: Option<String>,
}
#[derive(Debug, Default, Deserialize)]
pub struct GetSecretQuery {
#[serde(default)]
pub environment: Option<String>,
#[serde(default)]
pub scope: Option<String>,
#[serde(default)]
pub reveal: bool,
}
#[derive(Debug, Deserialize)]
pub struct BulkImportQuery {
pub environment: String,
}