greentic_secrets_spec/
requirements.rs1#[cfg(feature = "schema")]
2use schemars::JsonSchema;
3#[cfg(feature = "serde")]
4use serde::{Deserialize, Serialize};
5#[cfg(feature = "serde")]
6type JsonValue = serde_json::Value;
7#[cfg(not(feature = "serde"))]
8type JsonValue = ();
9
10pub use greentic_types::secrets::{SecretFormat, SecretKey, SecretRequirement, SecretScope};
11
12#[derive(Debug, Clone, PartialEq, Eq)]
14#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
15#[cfg_attr(feature = "schema", derive(JsonSchema))]
16pub struct SeedDoc {
17 pub entries: Vec<SeedEntry>,
18}
19
20#[derive(Debug, Clone, PartialEq, Eq)]
22#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
23#[cfg_attr(feature = "schema", derive(JsonSchema))]
24pub struct SeedEntry {
25 pub uri: String,
26 pub format: SecretFormat,
27 pub value: SeedValue,
28 #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
29 pub description: Option<String>,
30}
31
32#[derive(Debug, Clone, PartialEq, Eq)]
34#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
35#[cfg_attr(feature = "serde", serde(tag = "type", rename_all = "snake_case"))]
36#[cfg_attr(feature = "schema", derive(JsonSchema))]
37pub enum SeedValue {
38 Text { text: String },
39 Json { json: JsonValue },
40 BytesB64 { bytes_b64: String },
41}