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(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}