bjorn/types/
account.rs

1#[derive(Debug, Serialize)]
2pub struct Account {
3    pub status: Status,
4    #[serde(skip_serializing_if = "Vec::is_empty")]
5    pub contact: Vec<String>,
6    #[serde(rename = "termsOfServiceAgreed")]
7    pub terms_of_service_agreed: bool,
8    #[serde(rename = "externalAccountBinding")]
9    pub external_account_binding: Option<super::jose::FlattenedJWS>,
10    pub orders: String,
11}
12
13#[derive(Debug, Deserialize)]
14pub struct AccountCreate {
15    #[serde(default)]
16    pub contact: Vec<String>,
17    #[serde(rename = "termsOfServiceAgreed", default)]
18    pub terms_of_service_agreed: bool,
19    #[serde(rename = "externalAccountBinding", default)]
20    pub external_account_binding: Option<super::jose::FlattenedJWS>,
21    #[serde(rename = "onlyReturnExisting", default)]
22    pub only_return_existing: bool,
23}
24
25#[derive(Debug, Deserialize)]
26pub struct AccountUpdate {
27    #[serde(default)]
28    pub contact: Option<Vec<String>>,
29    // #[serde(rename = "externalAccountBinding", default)]
30    // pub external_account_binding: Option<super::jose::FlattenedJWS>,
31    #[serde(default)]
32    pub status: Option<Status>,
33}
34
35#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)]
36pub enum Status {
37    #[serde(rename = "valid")]
38    Valid,
39    #[serde(rename = "deactivated")]
40    Deactivated,
41    #[serde(rename = "revoked")]
42    Revoked
43}
44
45impl Default for Status {
46    fn default() -> Status {
47        Status::Valid
48    }
49}
50
51#[derive(Debug, Deserialize)]
52pub struct KeyChange {
53    pub account: String,
54    pub old_key: super::jose::JWK,
55}