acme_types/v2/
authorization.rs1#[cfg(feature = "json")]
2use serde::{Deserialize, Serialize};
3
4pub use super::Identifier as NewAuthorization;
5
6#[cfg(feature = "json")]
7impl NewAuthorization {
8 pub fn from_str(s: &str) -> Result<NewAuthorization, serde_json::error::Error> {
10 serde_json::from_str(s)
11 }
12
13 pub fn to_string(&self) -> Result<String, serde_json::error::Error> {
15 serde_json::to_string(self)
16 }
17}
18
19#[derive(Clone, Debug)]
23#[cfg_attr(feature = "json", derive(Serialize, Deserialize))]
24pub struct Authorization {
25 pub identifier: super::Identifier,
27 pub status: AuthorizationStatus,
29 pub expires: Option<String>,
31 pub challenges: Vec<Challenge>,
33 pub wildcard: Option<bool>,
35}
36
37#[cfg(feature = "json")]
38impl Authorization {
39 pub fn from_str(s: &str) -> Result<Authorization, serde_json::error::Error> {
41 serde_json::from_str(s)
42 }
43
44 pub fn to_string(&self) -> Result<String, serde_json::error::Error> {
46 serde_json::to_string(self)
47 }
48}
49
50#[derive(Clone, Debug)]
56#[cfg_attr(feature = "json", derive(Serialize, Deserialize))]
57pub struct AuthorizationUpdate {
58 pub status: AuthorizationStatus,
60}
61
62#[cfg(feature = "json")]
63impl AuthorizationUpdate {
64 pub fn from_str(s: &str) -> Result<AuthorizationUpdate, serde_json::error::Error> {
66 serde_json::from_str(s)
67 }
68
69 pub fn to_string(&self) -> Result<String, serde_json::error::Error> {
71 serde_json::to_string(self)
72 }
73}
74
75#[derive(Clone, Debug)]
79#[cfg_attr(feature = "json", derive(Serialize, Deserialize))]
80pub struct Challenge {
81 pub url: String,
83 #[cfg_attr(feature = "json", serde(rename = "type"))]
85 pub type_: ChallengeType,
86 pub status: ChallengeStatus,
88 pub token: Option<String>,
92 pub validated: Option<String>,
94 pub error: Option<super::Error>,
96}
97
98#[cfg(feature = "json")]
99impl Challenge {
100 pub fn from_str(s: &str) -> Result<Challenge, serde_json::error::Error> {
102 serde_json::from_str(s)
103 }
104
105 pub fn to_string(&self) -> Result<String, serde_json::error::Error> {
107 serde_json::to_string(self)
108 }
109}
110
111#[derive(Clone, Debug)]
115#[cfg_attr(feature = "json", derive(Serialize, Deserialize))]
116pub enum ChallengeStatus {
117 #[cfg_attr(feature = "json", serde(rename = "pending"))]
118 Pending,
119 #[cfg_attr(feature = "json", serde(rename = "processing"))]
120 Processing,
121 #[cfg_attr(feature = "json", serde(rename = "valid"))]
122 Valid,
123 #[cfg_attr(feature = "json", serde(rename = "invalid"))]
124 Invalid,
125}
126
127#[derive(Clone, Debug)]
131#[cfg_attr(feature = "json", derive(Serialize, Deserialize))]
132pub enum ChallengeType {
133 #[cfg_attr(feature = "json", serde(rename = "http-01"))]
135 Http01,
136 #[cfg_attr(feature = "json", serde(rename = "dns-01"))]
138 Dns01,
139}
140
141#[derive(Clone, Debug)]
145#[cfg_attr(feature = "json", derive(Serialize, Deserialize))]
146pub enum AuthorizationStatus {
147 #[cfg_attr(feature = "json", serde(rename = "pending"))]
148 Pending,
149 #[cfg_attr(feature = "json", serde(rename = "expired"))]
150 Expired,
151 #[cfg_attr(feature = "json", serde(rename = "deactivated"))]
152 Deactivated,
153 #[cfg_attr(feature = "json", serde(rename = "revoked"))]
154 Revoked,
155 #[cfg_attr(feature = "json", serde(rename = "valid"))]
156 Valid,
157 #[cfg_attr(feature = "json", serde(rename = "invalid"))]
158 Invalid,
159}