1use serde::{Deserialize, Serialize};
2
3pub const STORE_MANIFEST_SCHEMA_VERSION: u32 = 1;
4
5#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
6#[serde(rename_all = "snake_case")]
7pub enum RootKeyProviderKind {
8 OsKeyring,
9 Injected,
10 LocalPrivateFile,
11}
12
13#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
14#[serde(deny_unknown_fields)]
15pub struct RootKeyProviderBinding {
16 pub kind: RootKeyProviderKind,
17 pub key_id: String,
18 pub account: Option<String>,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
22#[serde(deny_unknown_fields)]
23pub struct StoreManifest {
24 pub schema_version: u32,
25 pub store_id: String,
26 pub generation: u64,
27 pub provider: RootKeyProviderBinding,
28 pub root_key_fingerprint: String,
29 pub created_at: String,
30 pub rekey_generation: u64,
31}