Skip to main content

proxmox_api/generated/cluster/acme/
plugins.rs

1pub mod id;
2#[derive(Debug, Clone)]
3pub struct PluginsClient<T> {
4    client: T,
5    path: String,
6}
7impl<T> PluginsClient<T>
8where
9    T: crate::client::Client,
10{
11    pub fn new(client: T, parent_path: &str) -> Self {
12        Self {
13            client,
14            path: format!("{}{}", parent_path, "/plugins"),
15        }
16    }
17}
18impl<T> PluginsClient<T>
19where
20    T: crate::client::Client,
21{
22    #[doc = "ACME plugin index."]
23    #[doc = ""]
24    #[doc = "Permission check: perm(\"/\", [\"Sys.Modify\"])"]
25    pub async fn get(&self, params: GetParams) -> Result<Vec<GetOutputItems>, T::Error> {
26        let path = self.path.to_string();
27        let optional_vec: Option<Vec<GetOutputItems>> = self.client.get(&path, &params).await?;
28        Ok(optional_vec.unwrap_or_default())
29    }
30}
31impl<T> PluginsClient<T>
32where
33    T: crate::client::Client,
34{
35    #[doc = "Add ACME plugin configuration."]
36    #[doc = ""]
37    #[doc = "Permission check: perm(\"/\", [\"Sys.Modify\"])"]
38    pub async fn post(&self, params: PostParams) -> Result<(), T::Error> {
39        let path = self.path.to_string();
40        self.client.post(&path, &params).await
41    }
42}
43impl GetOutputItems {
44    pub fn new(plugin: String, ty: Type) -> Self {
45        Self {
46            plugin,
47            ty,
48            api: ::std::default::Default::default(),
49            data: ::std::default::Default::default(),
50            digest: ::std::default::Default::default(),
51            disable: ::std::default::Default::default(),
52            nodes: ::std::default::Default::default(),
53            validation_delay: ::std::default::Default::default(),
54            additional_properties: ::std::default::Default::default(),
55        }
56    }
57}
58#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
59pub struct GetOutputItems {
60    #[serde(skip_serializing_if = "Option::is_none", default)]
61    #[doc = "API plugin name"]
62    #[doc = ""]
63    pub api: Option<Api>,
64    #[serde(skip_serializing_if = "Option::is_none", default)]
65    #[doc = "DNS plugin data. (base64 encoded)"]
66    #[doc = ""]
67    pub data: Option<String>,
68    #[serde(skip_serializing_if = "Option::is_none", default)]
69    #[doc = "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications."]
70    #[doc = ""]
71    pub digest: Option<DigestStr>,
72    #[serde(
73        serialize_with = "crate::types::serialize_bool_optional",
74        deserialize_with = "crate::types::deserialize_bool_optional"
75    )]
76    #[serde(skip_serializing_if = "Option::is_none", default)]
77    #[doc = "Flag to disable the config."]
78    #[doc = ""]
79    pub disable: Option<bool>,
80    #[serde(skip_serializing_if = "Option::is_none", default)]
81    #[doc = "List of cluster node names."]
82    #[doc = ""]
83    pub nodes: Option<String>,
84    #[doc = "Unique identifier for ACME plugin instance."]
85    #[doc = ""]
86    pub plugin: String,
87    #[serde(rename = "type")]
88    #[doc = "ACME challenge type."]
89    #[doc = ""]
90    pub ty: Type,
91    #[serde(rename = "validation-delay")]
92    #[serde(skip_serializing_if = "Option::is_none", default)]
93    #[doc = "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records."]
94    #[doc = ""]
95    pub validation_delay: Option<ValidationDelayInt>,
96    #[serde(
97        flatten,
98        default,
99        skip_serializing_if = "::std::collections::HashMap::is_empty"
100    )]
101    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
102}
103#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
104pub struct GetParams {
105    #[serde(rename = "type")]
106    #[serde(skip_serializing_if = "Option::is_none", default)]
107    #[doc = "Only list ACME plugins of a specific type"]
108    #[doc = ""]
109    pub ty: Option<Type>,
110    #[serde(
111        flatten,
112        default,
113        skip_serializing_if = "::std::collections::HashMap::is_empty"
114    )]
115    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
116}
117impl PostParams {
118    pub fn new(id: String, ty: Type) -> Self {
119        Self {
120            id,
121            ty,
122            api: ::std::default::Default::default(),
123            data: ::std::default::Default::default(),
124            disable: ::std::default::Default::default(),
125            nodes: ::std::default::Default::default(),
126            validation_delay: ::std::default::Default::default(),
127            additional_properties: ::std::default::Default::default(),
128        }
129    }
130}
131#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
132pub struct PostParams {
133    #[serde(skip_serializing_if = "Option::is_none", default)]
134    #[doc = "API plugin name"]
135    #[doc = ""]
136    pub api: Option<Api>,
137    #[serde(skip_serializing_if = "Option::is_none", default)]
138    #[doc = "DNS plugin data. (base64 encoded)"]
139    #[doc = ""]
140    pub data: Option<String>,
141    #[serde(
142        serialize_with = "crate::types::serialize_bool_optional",
143        deserialize_with = "crate::types::deserialize_bool_optional"
144    )]
145    #[serde(skip_serializing_if = "Option::is_none", default)]
146    #[doc = "Flag to disable the config."]
147    #[doc = ""]
148    pub disable: Option<bool>,
149    #[doc = "ACME Plugin ID name"]
150    #[doc = ""]
151    pub id: String,
152    #[serde(skip_serializing_if = "Option::is_none", default)]
153    #[doc = "List of cluster node names."]
154    #[doc = ""]
155    pub nodes: Option<String>,
156    #[serde(rename = "type")]
157    #[doc = "ACME challenge type."]
158    #[doc = ""]
159    pub ty: Type,
160    #[serde(rename = "validation-delay")]
161    #[serde(skip_serializing_if = "Option::is_none", default)]
162    #[doc = "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records."]
163    #[doc = ""]
164    pub validation_delay: Option<ValidationDelayInt>,
165    #[serde(
166        flatten,
167        default,
168        skip_serializing_if = "::std::collections::HashMap::is_empty"
169    )]
170    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
171}
172#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
173#[doc = "API plugin name"]
174#[doc = ""]
175pub enum Api {
176    #[serde(rename = "1984hosting")]
177    _1984hosting,
178    #[serde(rename = "acmedns")]
179    Acmedns,
180    #[serde(rename = "acmeproxy")]
181    Acmeproxy,
182    #[serde(rename = "active24")]
183    Active24,
184    #[serde(rename = "ad")]
185    Ad,
186    #[serde(rename = "ali")]
187    Ali,
188    #[serde(rename = "alviy")]
189    Alviy,
190    #[serde(rename = "anx")]
191    Anx,
192    #[serde(rename = "artfiles")]
193    Artfiles,
194    #[serde(rename = "arvan")]
195    Arvan,
196    #[serde(rename = "aurora")]
197    Aurora,
198    #[serde(rename = "autodns")]
199    Autodns,
200    #[serde(rename = "aws")]
201    Aws,
202    #[serde(rename = "azion")]
203    Azion,
204    #[serde(rename = "azure")]
205    Azure,
206    #[serde(rename = "beget")]
207    Beget,
208    #[serde(rename = "bookmyname")]
209    Bookmyname,
210    #[serde(rename = "bunny")]
211    Bunny,
212    #[serde(rename = "cf")]
213    Cf,
214    #[serde(rename = "clouddns")]
215    Clouddns,
216    #[serde(rename = "cloudns")]
217    Cloudns,
218    #[serde(rename = "cn")]
219    Cn,
220    #[serde(rename = "conoha")]
221    Conoha,
222    #[serde(rename = "constellix")]
223    Constellix,
224    #[serde(rename = "cpanel")]
225    Cpanel,
226    #[serde(rename = "curanet")]
227    Curanet,
228    #[serde(rename = "cyon")]
229    Cyon,
230    #[serde(rename = "da")]
231    Da,
232    #[serde(rename = "ddnss")]
233    Ddnss,
234    #[serde(rename = "desec")]
235    Desec,
236    #[serde(rename = "df")]
237    Df,
238    #[serde(rename = "dgon")]
239    Dgon,
240    #[serde(rename = "dnsexit")]
241    Dnsexit,
242    #[serde(rename = "dnshome")]
243    Dnshome,
244    #[serde(rename = "dnsimple")]
245    Dnsimple,
246    #[serde(rename = "dnsservices")]
247    Dnsservices,
248    #[serde(rename = "doapi")]
249    Doapi,
250    #[serde(rename = "domeneshop")]
251    Domeneshop,
252    #[serde(rename = "dp")]
253    Dp,
254    #[serde(rename = "dpi")]
255    Dpi,
256    #[serde(rename = "dreamhost")]
257    Dreamhost,
258    #[serde(rename = "duckdns")]
259    Duckdns,
260    #[serde(rename = "durabledns")]
261    Durabledns,
262    #[serde(rename = "dyn")]
263    Dyn,
264    #[serde(rename = "dynu")]
265    Dynu,
266    #[serde(rename = "dynv6")]
267    Dynv6,
268    #[serde(rename = "easydns")]
269    Easydns,
270    #[serde(rename = "edgecenter")]
271    Edgecenter,
272    #[serde(rename = "edgedns")]
273    Edgedns,
274    #[serde(rename = "euserv")]
275    Euserv,
276    #[serde(rename = "exoscale")]
277    Exoscale,
278    #[serde(rename = "fornex")]
279    Fornex,
280    #[serde(rename = "freedns")]
281    Freedns,
282    #[serde(rename = "freemyip")]
283    Freemyip,
284    #[serde(rename = "gandi_livedns")]
285    GandiLivedns,
286    #[serde(rename = "gcloud")]
287    Gcloud,
288    #[serde(rename = "gcore")]
289    Gcore,
290    #[serde(rename = "gd")]
291    Gd,
292    #[serde(rename = "geoscaling")]
293    Geoscaling,
294    #[serde(rename = "googledomains")]
295    Googledomains,
296    #[serde(rename = "he")]
297    He,
298    #[serde(rename = "he_ddns")]
299    HeDdns,
300    #[serde(rename = "hetzner")]
301    Hetzner,
302    #[serde(rename = "hexonet")]
303    Hexonet,
304    #[serde(rename = "hostingde")]
305    Hostingde,
306    #[serde(rename = "huaweicloud")]
307    Huaweicloud,
308    #[serde(rename = "infoblox")]
309    Infoblox,
310    #[serde(rename = "infomaniak")]
311    Infomaniak,
312    #[serde(rename = "internetbs")]
313    Internetbs,
314    #[serde(rename = "inwx")]
315    Inwx,
316    #[serde(rename = "ionos")]
317    Ionos,
318    #[serde(rename = "ionos_cloud")]
319    IonosCloud,
320    #[serde(rename = "ipv64")]
321    Ipv64,
322    #[serde(rename = "ispconfig")]
323    Ispconfig,
324    #[serde(rename = "jd")]
325    Jd,
326    #[serde(rename = "joker")]
327    Joker,
328    #[serde(rename = "kappernet")]
329    Kappernet,
330    #[serde(rename = "kas")]
331    Kas,
332    #[serde(rename = "kinghost")]
333    Kinghost,
334    #[serde(rename = "knot")]
335    Knot,
336    #[serde(rename = "la")]
337    La,
338    #[serde(rename = "leaseweb")]
339    Leaseweb,
340    #[serde(rename = "lexicon")]
341    Lexicon,
342    #[serde(rename = "limacity")]
343    Limacity,
344    #[serde(rename = "linode")]
345    Linode,
346    #[serde(rename = "linode_v4")]
347    LinodeV4,
348    #[serde(rename = "loopia")]
349    Loopia,
350    #[serde(rename = "lua")]
351    Lua,
352    #[serde(rename = "maradns")]
353    Maradns,
354    #[serde(rename = "me")]
355    Me,
356    #[serde(rename = "miab")]
357    Miab,
358    #[serde(rename = "mijnhost")]
359    Mijnhost,
360    #[serde(rename = "misaka")]
361    Misaka,
362    #[serde(rename = "myapi")]
363    Myapi,
364    #[serde(rename = "mydevil")]
365    Mydevil,
366    #[serde(rename = "mydnsjp")]
367    Mydnsjp,
368    #[serde(rename = "mythic_beasts")]
369    MythicBeasts,
370    #[serde(rename = "namecheap")]
371    Namecheap,
372    #[serde(rename = "namecom")]
373    Namecom,
374    #[serde(rename = "namesilo")]
375    Namesilo,
376    #[serde(rename = "nanelo")]
377    Nanelo,
378    #[serde(rename = "nederhost")]
379    Nederhost,
380    #[serde(rename = "neodigit")]
381    Neodigit,
382    #[serde(rename = "netcup")]
383    Netcup,
384    #[serde(rename = "netlify")]
385    Netlify,
386    #[serde(rename = "nic")]
387    Nic,
388    #[serde(rename = "njalla")]
389    Njalla,
390    #[serde(rename = "nm")]
391    Nm,
392    #[serde(rename = "nsd")]
393    Nsd,
394    #[serde(rename = "nsone")]
395    Nsone,
396    #[serde(rename = "nsupdate")]
397    Nsupdate,
398    #[serde(rename = "nw")]
399    Nw,
400    #[serde(rename = "oci")]
401    Oci,
402    #[serde(rename = "omglol")]
403    Omglol,
404    #[serde(rename = "one")]
405    One,
406    #[serde(rename = "online")]
407    Online,
408    #[serde(rename = "openprovider")]
409    Openprovider,
410    #[serde(rename = "openstack")]
411    Openstack,
412    #[serde(rename = "opnsense")]
413    Opnsense,
414    #[serde(rename = "ovh")]
415    Ovh,
416    #[serde(rename = "pdns")]
417    Pdns,
418    #[serde(rename = "pleskxml")]
419    Pleskxml,
420    #[serde(rename = "pointhq")]
421    Pointhq,
422    #[serde(rename = "porkbun")]
423    Porkbun,
424    #[serde(rename = "rackcorp")]
425    Rackcorp,
426    #[serde(rename = "rackspace")]
427    Rackspace,
428    #[serde(rename = "rage4")]
429    Rage4,
430    #[serde(rename = "rcode0")]
431    Rcode0,
432    #[serde(rename = "regru")]
433    Regru,
434    #[serde(rename = "scaleway")]
435    Scaleway,
436    #[serde(rename = "schlundtech")]
437    Schlundtech,
438    #[serde(rename = "selectel")]
439    Selectel,
440    #[serde(rename = "selfhost")]
441    Selfhost,
442    #[serde(rename = "servercow")]
443    Servercow,
444    #[serde(rename = "simply")]
445    Simply,
446    #[serde(rename = "technitium")]
447    Technitium,
448    #[serde(rename = "tele3")]
449    Tele3,
450    #[serde(rename = "tencent")]
451    Tencent,
452    #[serde(rename = "timeweb")]
453    Timeweb,
454    #[serde(rename = "transip")]
455    Transip,
456    #[serde(rename = "udr")]
457    Udr,
458    #[serde(rename = "ultra")]
459    Ultra,
460    #[serde(rename = "unoeuro")]
461    Unoeuro,
462    #[serde(rename = "variomedia")]
463    Variomedia,
464    #[serde(rename = "veesp")]
465    Veesp,
466    #[serde(rename = "vercel")]
467    Vercel,
468    #[serde(rename = "vscale")]
469    Vscale,
470    #[serde(rename = "vultr")]
471    Vultr,
472    #[serde(rename = "websupport")]
473    Websupport,
474    #[serde(rename = "west_cn")]
475    WestCn,
476    #[serde(rename = "world4you")]
477    World4you,
478    #[serde(rename = "yandex360")]
479    Yandex360,
480    #[serde(rename = "yc")]
481    Yc,
482    #[serde(rename = "zilore")]
483    Zilore,
484    #[serde(rename = "zone")]
485    Zone,
486    #[serde(rename = "zoneedit")]
487    Zoneedit,
488    #[serde(rename = "zonomi")]
489    Zonomi,
490}
491impl TryFrom<&str> for Api {
492    type Error = String;
493    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
494        match value {
495            "1984hosting" => Ok(Self::_1984hosting),
496            "acmedns" => Ok(Self::Acmedns),
497            "acmeproxy" => Ok(Self::Acmeproxy),
498            "active24" => Ok(Self::Active24),
499            "ad" => Ok(Self::Ad),
500            "ali" => Ok(Self::Ali),
501            "alviy" => Ok(Self::Alviy),
502            "anx" => Ok(Self::Anx),
503            "artfiles" => Ok(Self::Artfiles),
504            "arvan" => Ok(Self::Arvan),
505            "aurora" => Ok(Self::Aurora),
506            "autodns" => Ok(Self::Autodns),
507            "aws" => Ok(Self::Aws),
508            "azion" => Ok(Self::Azion),
509            "azure" => Ok(Self::Azure),
510            "beget" => Ok(Self::Beget),
511            "bookmyname" => Ok(Self::Bookmyname),
512            "bunny" => Ok(Self::Bunny),
513            "cf" => Ok(Self::Cf),
514            "clouddns" => Ok(Self::Clouddns),
515            "cloudns" => Ok(Self::Cloudns),
516            "cn" => Ok(Self::Cn),
517            "conoha" => Ok(Self::Conoha),
518            "constellix" => Ok(Self::Constellix),
519            "cpanel" => Ok(Self::Cpanel),
520            "curanet" => Ok(Self::Curanet),
521            "cyon" => Ok(Self::Cyon),
522            "da" => Ok(Self::Da),
523            "ddnss" => Ok(Self::Ddnss),
524            "desec" => Ok(Self::Desec),
525            "df" => Ok(Self::Df),
526            "dgon" => Ok(Self::Dgon),
527            "dnsexit" => Ok(Self::Dnsexit),
528            "dnshome" => Ok(Self::Dnshome),
529            "dnsimple" => Ok(Self::Dnsimple),
530            "dnsservices" => Ok(Self::Dnsservices),
531            "doapi" => Ok(Self::Doapi),
532            "domeneshop" => Ok(Self::Domeneshop),
533            "dp" => Ok(Self::Dp),
534            "dpi" => Ok(Self::Dpi),
535            "dreamhost" => Ok(Self::Dreamhost),
536            "duckdns" => Ok(Self::Duckdns),
537            "durabledns" => Ok(Self::Durabledns),
538            "dyn" => Ok(Self::Dyn),
539            "dynu" => Ok(Self::Dynu),
540            "dynv6" => Ok(Self::Dynv6),
541            "easydns" => Ok(Self::Easydns),
542            "edgecenter" => Ok(Self::Edgecenter),
543            "edgedns" => Ok(Self::Edgedns),
544            "euserv" => Ok(Self::Euserv),
545            "exoscale" => Ok(Self::Exoscale),
546            "fornex" => Ok(Self::Fornex),
547            "freedns" => Ok(Self::Freedns),
548            "freemyip" => Ok(Self::Freemyip),
549            "gandi_livedns" => Ok(Self::GandiLivedns),
550            "gcloud" => Ok(Self::Gcloud),
551            "gcore" => Ok(Self::Gcore),
552            "gd" => Ok(Self::Gd),
553            "geoscaling" => Ok(Self::Geoscaling),
554            "googledomains" => Ok(Self::Googledomains),
555            "he" => Ok(Self::He),
556            "he_ddns" => Ok(Self::HeDdns),
557            "hetzner" => Ok(Self::Hetzner),
558            "hexonet" => Ok(Self::Hexonet),
559            "hostingde" => Ok(Self::Hostingde),
560            "huaweicloud" => Ok(Self::Huaweicloud),
561            "infoblox" => Ok(Self::Infoblox),
562            "infomaniak" => Ok(Self::Infomaniak),
563            "internetbs" => Ok(Self::Internetbs),
564            "inwx" => Ok(Self::Inwx),
565            "ionos" => Ok(Self::Ionos),
566            "ionos_cloud" => Ok(Self::IonosCloud),
567            "ipv64" => Ok(Self::Ipv64),
568            "ispconfig" => Ok(Self::Ispconfig),
569            "jd" => Ok(Self::Jd),
570            "joker" => Ok(Self::Joker),
571            "kappernet" => Ok(Self::Kappernet),
572            "kas" => Ok(Self::Kas),
573            "kinghost" => Ok(Self::Kinghost),
574            "knot" => Ok(Self::Knot),
575            "la" => Ok(Self::La),
576            "leaseweb" => Ok(Self::Leaseweb),
577            "lexicon" => Ok(Self::Lexicon),
578            "limacity" => Ok(Self::Limacity),
579            "linode" => Ok(Self::Linode),
580            "linode_v4" => Ok(Self::LinodeV4),
581            "loopia" => Ok(Self::Loopia),
582            "lua" => Ok(Self::Lua),
583            "maradns" => Ok(Self::Maradns),
584            "me" => Ok(Self::Me),
585            "miab" => Ok(Self::Miab),
586            "mijnhost" => Ok(Self::Mijnhost),
587            "misaka" => Ok(Self::Misaka),
588            "myapi" => Ok(Self::Myapi),
589            "mydevil" => Ok(Self::Mydevil),
590            "mydnsjp" => Ok(Self::Mydnsjp),
591            "mythic_beasts" => Ok(Self::MythicBeasts),
592            "namecheap" => Ok(Self::Namecheap),
593            "namecom" => Ok(Self::Namecom),
594            "namesilo" => Ok(Self::Namesilo),
595            "nanelo" => Ok(Self::Nanelo),
596            "nederhost" => Ok(Self::Nederhost),
597            "neodigit" => Ok(Self::Neodigit),
598            "netcup" => Ok(Self::Netcup),
599            "netlify" => Ok(Self::Netlify),
600            "nic" => Ok(Self::Nic),
601            "njalla" => Ok(Self::Njalla),
602            "nm" => Ok(Self::Nm),
603            "nsd" => Ok(Self::Nsd),
604            "nsone" => Ok(Self::Nsone),
605            "nsupdate" => Ok(Self::Nsupdate),
606            "nw" => Ok(Self::Nw),
607            "oci" => Ok(Self::Oci),
608            "omglol" => Ok(Self::Omglol),
609            "one" => Ok(Self::One),
610            "online" => Ok(Self::Online),
611            "openprovider" => Ok(Self::Openprovider),
612            "openstack" => Ok(Self::Openstack),
613            "opnsense" => Ok(Self::Opnsense),
614            "ovh" => Ok(Self::Ovh),
615            "pdns" => Ok(Self::Pdns),
616            "pleskxml" => Ok(Self::Pleskxml),
617            "pointhq" => Ok(Self::Pointhq),
618            "porkbun" => Ok(Self::Porkbun),
619            "rackcorp" => Ok(Self::Rackcorp),
620            "rackspace" => Ok(Self::Rackspace),
621            "rage4" => Ok(Self::Rage4),
622            "rcode0" => Ok(Self::Rcode0),
623            "regru" => Ok(Self::Regru),
624            "scaleway" => Ok(Self::Scaleway),
625            "schlundtech" => Ok(Self::Schlundtech),
626            "selectel" => Ok(Self::Selectel),
627            "selfhost" => Ok(Self::Selfhost),
628            "servercow" => Ok(Self::Servercow),
629            "simply" => Ok(Self::Simply),
630            "technitium" => Ok(Self::Technitium),
631            "tele3" => Ok(Self::Tele3),
632            "tencent" => Ok(Self::Tencent),
633            "timeweb" => Ok(Self::Timeweb),
634            "transip" => Ok(Self::Transip),
635            "udr" => Ok(Self::Udr),
636            "ultra" => Ok(Self::Ultra),
637            "unoeuro" => Ok(Self::Unoeuro),
638            "variomedia" => Ok(Self::Variomedia),
639            "veesp" => Ok(Self::Veesp),
640            "vercel" => Ok(Self::Vercel),
641            "vscale" => Ok(Self::Vscale),
642            "vultr" => Ok(Self::Vultr),
643            "websupport" => Ok(Self::Websupport),
644            "west_cn" => Ok(Self::WestCn),
645            "world4you" => Ok(Self::World4you),
646            "yandex360" => Ok(Self::Yandex360),
647            "yc" => Ok(Self::Yc),
648            "zilore" => Ok(Self::Zilore),
649            "zone" => Ok(Self::Zone),
650            "zoneedit" => Ok(Self::Zoneedit),
651            "zonomi" => Ok(Self::Zonomi),
652            v => Err(format!("Unknown variant {v}")),
653        }
654    }
655}
656#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
657#[doc = "Only list ACME plugins of a specific type"]
658#[doc = ""]
659pub enum Type {
660    #[serde(rename = "dns")]
661    Dns,
662    #[serde(rename = "standalone")]
663    Standalone,
664}
665impl TryFrom<&str> for Type {
666    type Error = String;
667    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
668        match value {
669            "dns" => Ok(Self::Dns),
670            "standalone" => Ok(Self::Standalone),
671            v => Err(format!("Unknown variant {v}")),
672        }
673    }
674}
675#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
676pub struct ValidationDelayInt(i128);
677impl crate::types::bounded_integer::BoundedInteger for ValidationDelayInt {
678    const MIN: Option<i128> = Some(0i128);
679    const MAX: Option<i128> = Some(172800i128);
680    const DEFAULT: Option<i128> = Some(30i128);
681    const TYPE_DESCRIPTION: &'static str = "an integer between 0 and 172800";
682    fn get(&self) -> i128 {
683        self.0
684    }
685    fn new(value: i128) -> Result<Self, crate::types::bounded_integer::BoundedIntegerError> {
686        Self::validate(value)?;
687        Ok(Self(value))
688    }
689}
690impl std::convert::TryFrom<i128> for ValidationDelayInt {
691    type Error = crate::types::bounded_integer::BoundedIntegerError;
692    fn try_from(value: i128) -> Result<Self, Self::Error> {
693        crate::types::bounded_integer::BoundedInteger::new(value)
694    }
695}
696impl ::serde::Serialize for ValidationDelayInt {
697    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
698    where
699        S: ::serde::Serializer,
700    {
701        crate::types::bounded_integer::serialize_bounded_integer(self, serializer)
702    }
703}
704impl<'de> ::serde::Deserialize<'de> for ValidationDelayInt {
705    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
706    where
707        D: ::serde::Deserializer<'de>,
708    {
709        crate::types::bounded_integer::deserialize_bounded_integer(deserializer)
710    }
711}
712#[derive(Debug, Clone, PartialEq, PartialOrd)]
713pub struct DigestStr {
714    value: String,
715}
716impl crate::types::bounded_string::BoundedString for DigestStr {
717    const MIN_LENGTH: Option<usize> = None::<usize>;
718    const MAX_LENGTH: Option<usize> = Some(64usize);
719    const DEFAULT: Option<&'static str> = None::<&'static str>;
720    const PATTERN: Option<&'static str> = None::<&'static str>;
721    const TYPE_DESCRIPTION: &'static str = "a string with length at most 64";
722    fn get_value(&self) -> &str {
723        &self.value
724    }
725    fn new(value: String) -> Result<Self, crate::types::bounded_string::BoundedStringError> {
726        Self::validate(&value)?;
727        Ok(Self { value })
728    }
729}
730impl std::convert::TryFrom<String> for DigestStr {
731    type Error = crate::types::bounded_string::BoundedStringError;
732    fn try_from(value: String) -> Result<Self, Self::Error> {
733        crate::types::bounded_string::BoundedString::new(value)
734    }
735}
736impl ::serde::Serialize for DigestStr {
737    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
738    where
739        S: ::serde::Serializer,
740    {
741        crate::types::bounded_string::serialize_bounded_string(self, serializer)
742    }
743}
744impl<'de> ::serde::Deserialize<'de> for DigestStr {
745    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
746    where
747        D: ::serde::Deserializer<'de>,
748    {
749        crate::types::bounded_string::deserialize_bounded_string(deserializer)
750    }
751}
752impl<T> PluginsClient<T>
753where
754    T: crate::client::Client,
755{
756    pub fn id(&self, id: &str) -> id::IdClient<T> {
757        id::IdClient::<T>::new(self.client.clone(), &self.path, id)
758    }
759}