#![allow(dead_code)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_imports)]
use serde::{Serialize, Deserialize};
use serde_repr::{Deserialize_repr, Serialize_repr};use super::*;
use super::common::*;
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum KeyType {
None_0,
Nacl_1,
Pgp_2,
}
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum UPK2MinorVersion {
V0_0,
V1_1,
V2_2,
V3_3,
V4_4,
V5_5,
V6_6,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct MerkleRootV2 {
pub seqno: Option<Seqno>,
pub hashMeta: Option<HashMeta>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct SigChainLocation {
pub seqno: Option<Seqno>,
pub seqType: Option<SeqType>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct MerkleTreeLocation {
pub leaf: Option<UserOrTeamID>,
pub loc: Option<SigChainLocation>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct SignatureMetadata {
pub signingKID: Option<KID>,
pub prevMerkleRootSigned: Option<MerkleRootV2>,
pub firstAppearedUnverified: Option<Seqno>,
pub time: Option<Time>,
pub sigChainLocation: Option<SigChainLocation>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct PublicKeyV2Base {
pub kid: Option<KID>,
#[serde(default)]
pub isSibkey: Option<bool>,
#[serde(default)]
pub isEldest: Option<bool>,
pub cTime: Option<Time>,
pub eTime: Option<Time>,
pub provisioning: Option<SignatureMetadata>,
pub revocation: Option<SignatureMetadata>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct PublicKeyV2NaCl {
pub base: Option<PublicKeyV2Base>,
pub parent: Option<KID>,
pub deviceID: Option<DeviceID>,
#[serde(default)]
pub deviceDescription: Option<String>,
#[serde(default)]
pub deviceType: Option<String>,
}
pub type PGPFingerprint = Vec<u8>;
#[derive(Serialize, Deserialize, Debug)]
pub struct PublicKeyV2PGPSummary {
pub base: Option<PublicKeyV2Base>,
pub fingerprint: Option<PGPFingerprint>,
#[serde(default)]
pub identities: Option<Vec<PGPIdentity>>,
}
#[derive(Serialize, Deserialize, Debug)]
#[serde(untagged)]
pub enum PublicKeyV2 {
Nacl {nacl: PublicKeyV2NaCl},
Pgp {pgp: PublicKeyV2PGPSummary},
Default {},
}
#[derive(Serialize, Deserialize, Debug)]
pub struct UserPlusKeysV2 {
pub uid: Option<UID>,
#[serde(default)]
pub username: Option<String>,
pub eldestSeqno: Option<Seqno>,
pub status: Option<StatusCode>,
#[serde(default)]
pub perUserKeys: Option<Vec<PerUserKey>>,
pub deviceKeys: Option<std::collections::HashMap<KID, PublicKeyV2NaCl>>,
pub pgpKeys: Option<std::collections::HashMap<KID, PublicKeyV2PGPSummary>>,
pub stellarAccountID: Option<String>,
pub remoteTracks: Option<std::collections::HashMap<UID, RemoteTrack>>,
pub reset: Option<ResetSummary>,
#[serde(default)]
pub unstubbed: Option<bool>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct UserPlusKeysV2AllIncarnations {
pub current: Option<UserPlusKeysV2>,
#[serde(default)]
pub pastIncarnations: Option<Vec<UserPlusKeysV2>>,
#[serde(default)]
pub uvv: Option<UserVersionVector>,
pub seqnoLinkIDs: Option<std::collections::HashMap<Seqno, LinkID>>,
pub minorVersion: Option<UPK2MinorVersion>,
}
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum UPAKVersion {
V1_1,
V2_2,
}
#[derive(Serialize, Deserialize, Debug)]
#[serde(untagged)]
pub enum UPAKVersioned {
V1 {v1: UserPlusAllKeys},
V2 {v2: UserPlusKeysV2AllIncarnations},
}
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum UPKLiteMinorVersion {
V0_0,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct UPKLiteV1 {
pub uid: Option<UID>,
#[serde(default)]
pub username: Option<String>,
pub eldestSeqno: Option<Seqno>,
pub status: Option<StatusCode>,
pub deviceKeys: Option<std::collections::HashMap<KID, PublicKeyV2NaCl>>,
pub reset: Option<ResetSummary>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct UPKLiteV1AllIncarnations {
pub current: Option<UPKLiteV1>,
#[serde(default)]
pub pastIncarnations: Option<Vec<UPKLiteV1>>,
pub seqnoLinkIDs: Option<std::collections::HashMap<Seqno, LinkID>>,
pub minorVersion: Option<UPKLiteMinorVersion>,
}