vault_client_rs/types/
kv.rs1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Deserialize, Clone)]
6#[non_exhaustive]
7pub struct KvReadResponse<T> {
8 pub data: T,
9 pub metadata: KvMetadata,
10}
11
12#[derive(Debug, Deserialize, Clone)]
13#[non_exhaustive]
14pub struct KvMetadata {
15 pub created_time: String,
16 pub custom_metadata: Option<HashMap<String, String>>,
17 #[serde(default)]
18 pub deletion_time: String,
19 #[serde(default)]
20 pub destroyed: bool,
21 pub version: u64,
22}
23
24#[derive(Debug, Deserialize, Clone)]
25#[non_exhaustive]
26pub struct KvFullMetadata {
27 pub cas_required: bool,
28 pub created_time: String,
29 pub current_version: u64,
30 pub custom_metadata: Option<HashMap<String, String>>,
31 #[serde(default)]
32 pub delete_version_after: String,
33 pub max_versions: u64,
34 pub oldest_version: u64,
35 pub updated_time: String,
36 #[serde(default)]
37 pub versions: HashMap<String, KvVersionMetadata>,
38}
39
40#[derive(Debug, Deserialize, Clone)]
41#[non_exhaustive]
42pub struct KvVersionMetadata {
43 pub created_time: String,
44 #[serde(default)]
45 pub deletion_time: String,
46 #[serde(default)]
47 pub destroyed: bool,
48}
49
50#[derive(Debug, Serialize, Default, Clone)]
51pub struct KvMetadataParams {
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub max_versions: Option<u64>,
54 #[serde(skip_serializing_if = "Option::is_none")]
55 pub cas_required: Option<bool>,
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub delete_version_after: Option<String>,
58 #[serde(skip_serializing_if = "Option::is_none")]
59 pub custom_metadata: Option<HashMap<String, String>>,
60}
61
62#[derive(Debug, Deserialize, Serialize, Clone, Default)]
63pub struct KvConfig {
64 #[serde(skip_serializing_if = "Option::is_none")]
65 pub cas_required: Option<bool>,
66 #[serde(skip_serializing_if = "Option::is_none")]
67 pub max_versions: Option<u64>,
68 #[serde(skip_serializing_if = "Option::is_none")]
69 pub delete_version_after: Option<String>,
70}
71
72#[derive(Debug, Deserialize)]
73pub(crate) struct ListResponse {
74 #[serde(default)]
75 pub keys: Vec<String>,
76}