1pub mod id;
2pub struct PluginsClient<T> {
3 client: T,
4 path: String,
5}
6impl<T> PluginsClient<T>
7where
8 T: crate::client::Client,
9{
10 pub fn new(client: T, parent_path: &str) -> Self {
11 Self {
12 client,
13 path: format!("{}{}", parent_path, "/plugins"),
14 }
15 }
16}
17impl<T> PluginsClient<T>
18where
19 T: crate::client::Client,
20{
21 #[doc = "ACME plugin index."]
22 pub fn get(&self, params: GetParams) -> Result<Vec<GetOutputItems>, T::Error> {
23 let path = self.path.to_string();
24 self.client.get(&path, ¶ms)
25 }
26}
27impl<T> PluginsClient<T>
28where
29 T: crate::client::Client,
30{
31 #[doc = "Add ACME plugin configuration."]
32 pub fn post(&self, params: PostParams) -> Result<(), T::Error> {
33 let path = self.path.to_string();
34 self.client.post(&path, ¶ms)
35 }
36}
37impl GetOutputItems {
38 pub fn new(plugin: String) -> Self {
39 Self {
40 plugin,
41 additional_properties: Default::default(),
42 }
43 }
44}
45#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
46pub struct GetOutputItems {
47 #[doc = "Unique identifier for ACME plugin instance."]
48 pub plugin: String,
49 #[serde(
50 flatten,
51 default,
52 skip_serializing_if = "::std::collections::HashMap::is_empty"
53 )]
54 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
55}
56#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
57pub struct GetParams {
58 #[serde(rename = "type")]
59 #[serde(skip_serializing_if = "Option::is_none", default)]
60 #[doc = "Only list ACME plugins of a specific type"]
61 pub ty: Option<Type>,
62 #[serde(
63 flatten,
64 default,
65 skip_serializing_if = "::std::collections::HashMap::is_empty"
66 )]
67 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
68}
69impl PostParams {
70 pub fn new(id: String, ty: Type) -> Self {
71 Self {
72 id,
73 ty,
74 api: Default::default(),
75 data: Default::default(),
76 disable: Default::default(),
77 nodes: Default::default(),
78 validation_delay: Default::default(),
79 additional_properties: Default::default(),
80 }
81 }
82}
83#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
84pub struct PostParams {
85 #[serde(skip_serializing_if = "Option::is_none", default)]
86 #[doc = "API plugin name"]
87 pub api: Option<Api>,
88 #[serde(skip_serializing_if = "Option::is_none", default)]
89 #[doc = "DNS plugin data. (base64 encoded)"]
90 pub data: Option<String>,
91 #[serde(
92 serialize_with = "crate::types::serialize_bool_optional",
93 deserialize_with = "crate::types::deserialize_bool_optional"
94 )]
95 #[serde(skip_serializing_if = "Option::is_none", default)]
96 #[doc = "Flag to disable the config."]
97 pub disable: Option<bool>,
98 #[doc = "ACME Plugin ID name"]
99 pub id: String,
100 #[serde(skip_serializing_if = "Option::is_none", default)]
101 #[doc = "List of cluster node names."]
102 pub nodes: Option<String>,
103 #[serde(rename = "type")]
104 #[doc = "ACME challenge type."]
105 pub ty: Type,
106 #[serde(rename = "validation-delay")]
107 #[serde(
108 serialize_with = "crate::types::serialize_int_optional",
109 deserialize_with = "crate::types::deserialize_int_optional"
110 )]
111 #[serde(skip_serializing_if = "Option::is_none", default)]
112 #[doc = "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records."]
113 pub validation_delay: Option<u64>,
114 #[serde(
115 flatten,
116 default,
117 skip_serializing_if = "::std::collections::HashMap::is_empty"
118 )]
119 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
120}
121#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
122pub enum Api {
123 #[serde(rename = "1984hosting")]
124 _1984hosting,
125 #[serde(rename = "acmedns")]
126 Acmedns,
127 #[serde(rename = "acmeproxy")]
128 Acmeproxy,
129 #[serde(rename = "active24")]
130 Active24,
131 #[serde(rename = "ad")]
132 Ad,
133 #[serde(rename = "ali")]
134 Ali,
135 #[serde(rename = "anx")]
136 Anx,
137 #[serde(rename = "artfiles")]
138 Artfiles,
139 #[serde(rename = "arvan")]
140 Arvan,
141 #[serde(rename = "aurora")]
142 Aurora,
143 #[serde(rename = "autodns")]
144 Autodns,
145 #[serde(rename = "aws")]
146 Aws,
147 #[serde(rename = "azion")]
148 Azion,
149 #[serde(rename = "azure")]
150 Azure,
151 #[serde(rename = "bookmyname")]
152 Bookmyname,
153 #[serde(rename = "bunny")]
154 Bunny,
155 #[serde(rename = "cf")]
156 Cf,
157 #[serde(rename = "clouddns")]
158 Clouddns,
159 #[serde(rename = "cloudns")]
160 Cloudns,
161 #[serde(rename = "cn")]
162 Cn,
163 #[serde(rename = "conoha")]
164 Conoha,
165 #[serde(rename = "constellix")]
166 Constellix,
167 #[serde(rename = "cpanel")]
168 Cpanel,
169 #[serde(rename = "curanet")]
170 Curanet,
171 #[serde(rename = "cyon")]
172 Cyon,
173 #[serde(rename = "da")]
174 Da,
175 #[serde(rename = "ddnss")]
176 Ddnss,
177 #[serde(rename = "desec")]
178 Desec,
179 #[serde(rename = "df")]
180 Df,
181 #[serde(rename = "dgon")]
182 Dgon,
183 #[serde(rename = "dnsexit")]
184 Dnsexit,
185 #[serde(rename = "dnshome")]
186 Dnshome,
187 #[serde(rename = "dnsimple")]
188 Dnsimple,
189 #[serde(rename = "dnsservices")]
190 Dnsservices,
191 #[serde(rename = "do")]
192 Do,
193 #[serde(rename = "doapi")]
194 Doapi,
195 #[serde(rename = "domeneshop")]
196 Domeneshop,
197 #[serde(rename = "dp")]
198 Dp,
199 #[serde(rename = "dpi")]
200 Dpi,
201 #[serde(rename = "dreamhost")]
202 Dreamhost,
203 #[serde(rename = "duckdns")]
204 Duckdns,
205 #[serde(rename = "durabledns")]
206 Durabledns,
207 #[serde(rename = "dyn")]
208 Dyn,
209 #[serde(rename = "dynu")]
210 Dynu,
211 #[serde(rename = "dynv6")]
212 Dynv6,
213 #[serde(rename = "easydns")]
214 Easydns,
215 #[serde(rename = "edgedns")]
216 Edgedns,
217 #[serde(rename = "euserv")]
218 Euserv,
219 #[serde(rename = "exoscale")]
220 Exoscale,
221 #[serde(rename = "fornex")]
222 Fornex,
223 #[serde(rename = "freedns")]
224 Freedns,
225 #[serde(rename = "gandi_livedns")]
226 GandiLivedns,
227 #[serde(rename = "gcloud")]
228 Gcloud,
229 #[serde(rename = "gcore")]
230 Gcore,
231 #[serde(rename = "gd")]
232 Gd,
233 #[serde(rename = "geoscaling")]
234 Geoscaling,
235 #[serde(rename = "googledomains")]
236 Googledomains,
237 #[serde(rename = "he")]
238 He,
239 #[serde(rename = "hetzner")]
240 Hetzner,
241 #[serde(rename = "hexonet")]
242 Hexonet,
243 #[serde(rename = "hostingde")]
244 Hostingde,
245 #[serde(rename = "huaweicloud")]
246 Huaweicloud,
247 #[serde(rename = "infoblox")]
248 Infoblox,
249 #[serde(rename = "infomaniak")]
250 Infomaniak,
251 #[serde(rename = "internetbs")]
252 Internetbs,
253 #[serde(rename = "inwx")]
254 Inwx,
255 #[serde(rename = "ionos")]
256 Ionos,
257 #[serde(rename = "ipv64")]
258 Ipv64,
259 #[serde(rename = "ispconfig")]
260 Ispconfig,
261 #[serde(rename = "jd")]
262 Jd,
263 #[serde(rename = "joker")]
264 Joker,
265 #[serde(rename = "kappernet")]
266 Kappernet,
267 #[serde(rename = "kas")]
268 Kas,
269 #[serde(rename = "kinghost")]
270 Kinghost,
271 #[serde(rename = "knot")]
272 Knot,
273 #[serde(rename = "la")]
274 La,
275 #[serde(rename = "leaseweb")]
276 Leaseweb,
277 #[serde(rename = "lexicon")]
278 Lexicon,
279 #[serde(rename = "linode")]
280 Linode,
281 #[serde(rename = "linode_v4")]
282 LinodeV4,
283 #[serde(rename = "loopia")]
284 Loopia,
285 #[serde(rename = "lua")]
286 Lua,
287 #[serde(rename = "maradns")]
288 Maradns,
289 #[serde(rename = "me")]
290 Me,
291 #[serde(rename = "miab")]
292 Miab,
293 #[serde(rename = "misaka")]
294 Misaka,
295 #[serde(rename = "myapi")]
296 Myapi,
297 #[serde(rename = "mydevil")]
298 Mydevil,
299 #[serde(rename = "mydnsjp")]
300 Mydnsjp,
301 #[serde(rename = "mythic_beasts")]
302 MythicBeasts,
303 #[serde(rename = "namecheap")]
304 Namecheap,
305 #[serde(rename = "namecom")]
306 Namecom,
307 #[serde(rename = "namesilo")]
308 Namesilo,
309 #[serde(rename = "nanelo")]
310 Nanelo,
311 #[serde(rename = "nederhost")]
312 Nederhost,
313 #[serde(rename = "neodigit")]
314 Neodigit,
315 #[serde(rename = "netcup")]
316 Netcup,
317 #[serde(rename = "netlify")]
318 Netlify,
319 #[serde(rename = "nic")]
320 Nic,
321 #[serde(rename = "njalla")]
322 Njalla,
323 #[serde(rename = "nm")]
324 Nm,
325 #[serde(rename = "nsd")]
326 Nsd,
327 #[serde(rename = "nsone")]
328 Nsone,
329 #[serde(rename = "nsupdate")]
330 Nsupdate,
331 #[serde(rename = "nw")]
332 Nw,
333 #[serde(rename = "oci")]
334 Oci,
335 #[serde(rename = "one")]
336 One,
337 #[serde(rename = "online")]
338 Online,
339 #[serde(rename = "openprovider")]
340 Openprovider,
341 #[serde(rename = "openstack")]
342 Openstack,
343 #[serde(rename = "opnsense")]
344 Opnsense,
345 #[serde(rename = "ovh")]
346 Ovh,
347 #[serde(rename = "pdns")]
348 Pdns,
349 #[serde(rename = "pleskxml")]
350 Pleskxml,
351 #[serde(rename = "pointhq")]
352 Pointhq,
353 #[serde(rename = "porkbun")]
354 Porkbun,
355 #[serde(rename = "rackcorp")]
356 Rackcorp,
357 #[serde(rename = "rackspace")]
358 Rackspace,
359 #[serde(rename = "rage4")]
360 Rage4,
361 #[serde(rename = "rcode0")]
362 Rcode0,
363 #[serde(rename = "regru")]
364 Regru,
365 #[serde(rename = "scaleway")]
366 Scaleway,
367 #[serde(rename = "schlundtech")]
368 Schlundtech,
369 #[serde(rename = "selectel")]
370 Selectel,
371 #[serde(rename = "selfhost")]
372 Selfhost,
373 #[serde(rename = "servercow")]
374 Servercow,
375 #[serde(rename = "simply")]
376 Simply,
377 #[serde(rename = "tele3")]
378 Tele3,
379 #[serde(rename = "tencent")]
380 Tencent,
381 #[serde(rename = "transip")]
382 Transip,
383 #[serde(rename = "udr")]
384 Udr,
385 #[serde(rename = "ultra")]
386 Ultra,
387 #[serde(rename = "unoeuro")]
388 Unoeuro,
389 #[serde(rename = "variomedia")]
390 Variomedia,
391 #[serde(rename = "veesp")]
392 Veesp,
393 #[serde(rename = "vercel")]
394 Vercel,
395 #[serde(rename = "vscale")]
396 Vscale,
397 #[serde(rename = "vultr")]
398 Vultr,
399 #[serde(rename = "websupport")]
400 Websupport,
401 #[serde(rename = "world4you")]
402 World4you,
403 #[serde(rename = "yandex")]
404 Yandex,
405 #[serde(rename = "yc")]
406 Yc,
407 #[serde(rename = "zilore")]
408 Zilore,
409 #[serde(rename = "zone")]
410 Zone,
411 #[serde(rename = "zonomi")]
412 Zonomi,
413}
414#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
415pub enum Type {
416 #[serde(rename = "dns")]
417 Dns,
418 #[serde(rename = "standalone")]
419 Standalone,
420}
421impl<T> PluginsClient<T>
422where
423 T: crate::client::Client,
424{
425 pub fn id(&self, id: &str) -> id::IdClient<T> {
426 id::IdClient::<T>::new(self.client.clone(), &self.path, id)
427 }
428}