Skip to main content

proxmox_api/generated/cluster/metrics/server/
id.rs

1#[derive(Debug, Clone)]
2pub struct IdClient<T> {
3    client: T,
4    path: String,
5}
6impl<T> IdClient<T>
7where
8    T: crate::client::Client,
9{
10    pub fn new(client: T, parent_path: &str, id: &str) -> Self {
11        Self {
12            client,
13            path: format!("{}/{}", parent_path, id),
14        }
15    }
16}
17impl<T> IdClient<T>
18where
19    T: crate::client::Client,
20{
21    #[doc = "Remove Metric server."]
22    #[doc = ""]
23    #[doc = "Permission check: perm(\"/\", [\"Sys.Modify\"])"]
24    pub async fn delete(&self) -> Result<(), T::Error> {
25        let path = self.path.to_string();
26        self.client.delete(&path, &()).await
27    }
28}
29impl<T> IdClient<T>
30where
31    T: crate::client::Client,
32{
33    #[doc = "Read metric server configuration."]
34    #[doc = ""]
35    #[doc = "Permission check: perm(\"/\", [\"Sys.Audit\"])"]
36    pub async fn get(&self) -> Result<GetOutput, T::Error> {
37        let path = self.path.to_string();
38        self.client.get(&path, &()).await
39    }
40}
41impl<T> IdClient<T>
42where
43    T: crate::client::Client,
44{
45    #[doc = "Create a new external metric server config"]
46    #[doc = ""]
47    #[doc = "Permission check: perm(\"/\", [\"Sys.Modify\"])"]
48    pub async fn post(&self, params: PostParams) -> Result<(), T::Error> {
49        let path = self.path.to_string();
50        self.client.post(&path, &params).await
51    }
52}
53impl<T> IdClient<T>
54where
55    T: crate::client::Client,
56{
57    #[doc = "Update metric server configuration."]
58    #[doc = ""]
59    #[doc = "Permission check: perm(\"/\", [\"Sys.Modify\"])"]
60    pub async fn put(&self, params: PutParams) -> Result<(), T::Error> {
61        let path = self.path.to_string();
62        self.client.put(&path, &params).await
63    }
64}
65#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
66pub struct GetOutput {
67    #[serde(
68        flatten,
69        default,
70        skip_serializing_if = "::std::collections::HashMap::is_empty"
71    )]
72    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
73}
74impl PostParams {
75    pub fn new(port: PortInt, server: String, ty: Type) -> Self {
76        Self {
77            port,
78            server,
79            ty,
80            api_path_prefix: ::std::default::Default::default(),
81            bucket: ::std::default::Default::default(),
82            disable: ::std::default::Default::default(),
83            influxdbproto: ::std::default::Default::default(),
84            max_body_size: ::std::default::Default::default(),
85            mtu: ::std::default::Default::default(),
86            organization: ::std::default::Default::default(),
87            otel_compression: ::std::default::Default::default(),
88            otel_headers: ::std::default::Default::default(),
89            otel_max_body_size: ::std::default::Default::default(),
90            otel_path: ::std::default::Default::default(),
91            otel_protocol: ::std::default::Default::default(),
92            otel_resource_attributes: ::std::default::Default::default(),
93            otel_timeout: ::std::default::Default::default(),
94            otel_verify_ssl: ::std::default::Default::default(),
95            path: ::std::default::Default::default(),
96            proto: ::std::default::Default::default(),
97            timeout: ::std::default::Default::default(),
98            token: ::std::default::Default::default(),
99            verify_certificate: ::std::default::Default::default(),
100            additional_properties: ::std::default::Default::default(),
101        }
102    }
103}
104#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
105pub struct PostParams {
106    #[serde(rename = "api-path-prefix")]
107    #[serde(skip_serializing_if = "Option::is_none", default)]
108    #[doc = "An API path prefix inserted between '\\\\<host\\\\>:\\\\<port\\\\>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy."]
109    #[doc = ""]
110    pub api_path_prefix: Option<String>,
111    #[serde(skip_serializing_if = "Option::is_none", default)]
112    #[doc = "The InfluxDB bucket/db. Only necessary when using the http v2 api."]
113    #[doc = ""]
114    pub bucket: Option<String>,
115    #[serde(
116        serialize_with = "crate::types::serialize_bool_optional",
117        deserialize_with = "crate::types::deserialize_bool_optional"
118    )]
119    #[serde(skip_serializing_if = "Option::is_none", default)]
120    #[doc = "Flag to disable the plugin."]
121    #[doc = ""]
122    pub disable: Option<bool>,
123    #[serde(skip_serializing_if = "Option::is_none", default)]
124    pub influxdbproto: Option<Influxdbproto>,
125    #[serde(rename = "max-body-size")]
126    #[serde(skip_serializing_if = "Option::is_none", default)]
127    #[doc = "InfluxDB max-body-size in bytes. Requests are batched up to this size."]
128    #[doc = ""]
129    pub max_body_size: Option<MaxBodySizeInt>,
130    #[serde(skip_serializing_if = "Option::is_none", default)]
131    #[doc = "MTU for metrics transmission over UDP"]
132    #[doc = ""]
133    pub mtu: Option<MtuInt>,
134    #[serde(skip_serializing_if = "Option::is_none", default)]
135    #[doc = "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api."]
136    #[doc = ""]
137    pub organization: Option<String>,
138    #[serde(rename = "otel-compression")]
139    #[serde(skip_serializing_if = "Option::is_none", default)]
140    #[doc = "Compression algorithm for requests"]
141    #[doc = ""]
142    pub otel_compression: Option<OtelCompression>,
143    #[serde(rename = "otel-headers")]
144    #[serde(skip_serializing_if = "Option::is_none", default)]
145    #[doc = "Custom HTTP headers (JSON format, base64 encoded)"]
146    #[doc = ""]
147    pub otel_headers: Option<OtelHeadersStr>,
148    #[serde(rename = "otel-max-body-size")]
149    #[serde(skip_serializing_if = "Option::is_none", default)]
150    #[doc = "Maximum request body size in bytes"]
151    #[doc = ""]
152    pub otel_max_body_size: Option<OtelMaxBodySizeInt>,
153    #[serde(rename = "otel-path")]
154    #[serde(skip_serializing_if = "Option::is_none", default)]
155    #[doc = "OTLP endpoint path"]
156    #[doc = ""]
157    pub otel_path: Option<String>,
158    #[serde(rename = "otel-protocol")]
159    #[serde(skip_serializing_if = "Option::is_none", default)]
160    #[doc = "HTTP protocol"]
161    #[doc = ""]
162    pub otel_protocol: Option<OtelProtocol>,
163    #[serde(rename = "otel-resource-attributes")]
164    #[serde(skip_serializing_if = "Option::is_none", default)]
165    #[doc = "Additional resource attributes as JSON, base64 encoded"]
166    #[doc = ""]
167    pub otel_resource_attributes: Option<OtelResourceAttributesStr>,
168    #[serde(rename = "otel-timeout")]
169    #[serde(skip_serializing_if = "Option::is_none", default)]
170    #[doc = "HTTP request timeout in seconds"]
171    #[doc = ""]
172    pub otel_timeout: Option<OtelTimeoutInt>,
173    #[serde(rename = "otel-verify-ssl")]
174    #[serde(
175        serialize_with = "crate::types::serialize_bool_optional",
176        deserialize_with = "crate::types::deserialize_bool_optional"
177    )]
178    #[serde(skip_serializing_if = "Option::is_none", default)]
179    #[doc = "Verify SSL certificates"]
180    #[doc = ""]
181    pub otel_verify_ssl: Option<bool>,
182    #[serde(skip_serializing_if = "Option::is_none", default)]
183    #[doc = "root graphite path (ex: proxmox.mycluster.mykey)"]
184    #[doc = ""]
185    pub path: Option<String>,
186    #[doc = "server network port"]
187    #[doc = ""]
188    pub port: PortInt,
189    #[serde(skip_serializing_if = "Option::is_none", default)]
190    #[doc = "Protocol to send graphite data. TCP or UDP (default)"]
191    #[doc = ""]
192    pub proto: Option<Proto>,
193    #[doc = "server dns name or IP address"]
194    #[doc = ""]
195    pub server: String,
196    #[serde(skip_serializing_if = "Option::is_none", default)]
197    #[doc = "graphite TCP socket timeout (default=1)"]
198    #[doc = ""]
199    pub timeout: Option<TimeoutInt>,
200    #[serde(skip_serializing_if = "Option::is_none", default)]
201    #[doc = "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead."]
202    #[doc = ""]
203    pub token: Option<String>,
204    #[serde(rename = "type")]
205    #[doc = "Plugin type."]
206    #[doc = ""]
207    pub ty: Type,
208    #[serde(rename = "verify-certificate")]
209    #[serde(
210        serialize_with = "crate::types::serialize_bool_optional",
211        deserialize_with = "crate::types::deserialize_bool_optional"
212    )]
213    #[serde(skip_serializing_if = "Option::is_none", default)]
214    #[doc = "Set to 0 to disable certificate verification for https endpoints."]
215    #[doc = ""]
216    pub verify_certificate: Option<bool>,
217    #[serde(
218        flatten,
219        default,
220        skip_serializing_if = "::std::collections::HashMap::is_empty"
221    )]
222    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
223}
224impl PutParams {
225    pub fn new(port: PortInt, server: String) -> Self {
226        Self {
227            port,
228            server,
229            api_path_prefix: ::std::default::Default::default(),
230            bucket: ::std::default::Default::default(),
231            delete: ::std::default::Default::default(),
232            digest: ::std::default::Default::default(),
233            disable: ::std::default::Default::default(),
234            influxdbproto: ::std::default::Default::default(),
235            max_body_size: ::std::default::Default::default(),
236            mtu: ::std::default::Default::default(),
237            organization: ::std::default::Default::default(),
238            otel_compression: ::std::default::Default::default(),
239            otel_headers: ::std::default::Default::default(),
240            otel_max_body_size: ::std::default::Default::default(),
241            otel_path: ::std::default::Default::default(),
242            otel_protocol: ::std::default::Default::default(),
243            otel_resource_attributes: ::std::default::Default::default(),
244            otel_timeout: ::std::default::Default::default(),
245            otel_verify_ssl: ::std::default::Default::default(),
246            path: ::std::default::Default::default(),
247            proto: ::std::default::Default::default(),
248            timeout: ::std::default::Default::default(),
249            token: ::std::default::Default::default(),
250            verify_certificate: ::std::default::Default::default(),
251            additional_properties: ::std::default::Default::default(),
252        }
253    }
254}
255#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
256pub struct PutParams {
257    #[serde(rename = "api-path-prefix")]
258    #[serde(skip_serializing_if = "Option::is_none", default)]
259    #[doc = "An API path prefix inserted between '\\\\<host\\\\>:\\\\<port\\\\>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy."]
260    #[doc = ""]
261    pub api_path_prefix: Option<String>,
262    #[serde(skip_serializing_if = "Option::is_none", default)]
263    #[doc = "The InfluxDB bucket/db. Only necessary when using the http v2 api."]
264    #[doc = ""]
265    pub bucket: Option<String>,
266    #[serde(skip_serializing_if = "Option::is_none", default)]
267    #[doc = "A list of settings you want to delete."]
268    #[doc = ""]
269    pub delete: Option<DeleteStr>,
270    #[serde(skip_serializing_if = "Option::is_none", default)]
271    #[doc = "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications."]
272    #[doc = ""]
273    pub digest: Option<DigestStr>,
274    #[serde(
275        serialize_with = "crate::types::serialize_bool_optional",
276        deserialize_with = "crate::types::deserialize_bool_optional"
277    )]
278    #[serde(skip_serializing_if = "Option::is_none", default)]
279    #[doc = "Flag to disable the plugin."]
280    #[doc = ""]
281    pub disable: Option<bool>,
282    #[serde(skip_serializing_if = "Option::is_none", default)]
283    pub influxdbproto: Option<Influxdbproto>,
284    #[serde(rename = "max-body-size")]
285    #[serde(skip_serializing_if = "Option::is_none", default)]
286    #[doc = "InfluxDB max-body-size in bytes. Requests are batched up to this size."]
287    #[doc = ""]
288    pub max_body_size: Option<MaxBodySizeInt>,
289    #[serde(skip_serializing_if = "Option::is_none", default)]
290    #[doc = "MTU for metrics transmission over UDP"]
291    #[doc = ""]
292    pub mtu: Option<MtuInt>,
293    #[serde(skip_serializing_if = "Option::is_none", default)]
294    #[doc = "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api."]
295    #[doc = ""]
296    pub organization: Option<String>,
297    #[serde(rename = "otel-compression")]
298    #[serde(skip_serializing_if = "Option::is_none", default)]
299    #[doc = "Compression algorithm for requests"]
300    #[doc = ""]
301    pub otel_compression: Option<OtelCompression>,
302    #[serde(rename = "otel-headers")]
303    #[serde(skip_serializing_if = "Option::is_none", default)]
304    #[doc = "Custom HTTP headers (JSON format, base64 encoded)"]
305    #[doc = ""]
306    pub otel_headers: Option<OtelHeadersStr>,
307    #[serde(rename = "otel-max-body-size")]
308    #[serde(skip_serializing_if = "Option::is_none", default)]
309    #[doc = "Maximum request body size in bytes"]
310    #[doc = ""]
311    pub otel_max_body_size: Option<OtelMaxBodySizeInt>,
312    #[serde(rename = "otel-path")]
313    #[serde(skip_serializing_if = "Option::is_none", default)]
314    #[doc = "OTLP endpoint path"]
315    #[doc = ""]
316    pub otel_path: Option<String>,
317    #[serde(rename = "otel-protocol")]
318    #[serde(skip_serializing_if = "Option::is_none", default)]
319    #[doc = "HTTP protocol"]
320    #[doc = ""]
321    pub otel_protocol: Option<OtelProtocol>,
322    #[serde(rename = "otel-resource-attributes")]
323    #[serde(skip_serializing_if = "Option::is_none", default)]
324    #[doc = "Additional resource attributes as JSON, base64 encoded"]
325    #[doc = ""]
326    pub otel_resource_attributes: Option<OtelResourceAttributesStr>,
327    #[serde(rename = "otel-timeout")]
328    #[serde(skip_serializing_if = "Option::is_none", default)]
329    #[doc = "HTTP request timeout in seconds"]
330    #[doc = ""]
331    pub otel_timeout: Option<OtelTimeoutInt>,
332    #[serde(rename = "otel-verify-ssl")]
333    #[serde(
334        serialize_with = "crate::types::serialize_bool_optional",
335        deserialize_with = "crate::types::deserialize_bool_optional"
336    )]
337    #[serde(skip_serializing_if = "Option::is_none", default)]
338    #[doc = "Verify SSL certificates"]
339    #[doc = ""]
340    pub otel_verify_ssl: Option<bool>,
341    #[serde(skip_serializing_if = "Option::is_none", default)]
342    #[doc = "root graphite path (ex: proxmox.mycluster.mykey)"]
343    #[doc = ""]
344    pub path: Option<String>,
345    #[doc = "server network port"]
346    #[doc = ""]
347    pub port: PortInt,
348    #[serde(skip_serializing_if = "Option::is_none", default)]
349    #[doc = "Protocol to send graphite data. TCP or UDP (default)"]
350    #[doc = ""]
351    pub proto: Option<Proto>,
352    #[doc = "server dns name or IP address"]
353    #[doc = ""]
354    pub server: String,
355    #[serde(skip_serializing_if = "Option::is_none", default)]
356    #[doc = "graphite TCP socket timeout (default=1)"]
357    #[doc = ""]
358    pub timeout: Option<TimeoutInt>,
359    #[serde(skip_serializing_if = "Option::is_none", default)]
360    #[doc = "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead."]
361    #[doc = ""]
362    pub token: Option<String>,
363    #[serde(rename = "verify-certificate")]
364    #[serde(
365        serialize_with = "crate::types::serialize_bool_optional",
366        deserialize_with = "crate::types::deserialize_bool_optional"
367    )]
368    #[serde(skip_serializing_if = "Option::is_none", default)]
369    #[doc = "Set to 0 to disable certificate verification for https endpoints."]
370    #[doc = ""]
371    pub verify_certificate: Option<bool>,
372    #[serde(
373        flatten,
374        default,
375        skip_serializing_if = "::std::collections::HashMap::is_empty"
376    )]
377    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
378}
379#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq, Default)]
380pub enum Influxdbproto {
381    #[serde(rename = "http")]
382    Http,
383    #[serde(rename = "https")]
384    Https,
385    #[serde(rename = "udp")]
386    #[default]
387    Udp,
388}
389impl TryFrom<&str> for Influxdbproto {
390    type Error = String;
391    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
392        match value {
393            "http" => Ok(Self::Http),
394            "https" => Ok(Self::Https),
395            "udp" => Ok(Self::Udp),
396            v => Err(format!("Unknown variant {v}")),
397        }
398    }
399}
400#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq, Default)]
401#[doc = "Compression algorithm for requests"]
402#[doc = ""]
403pub enum OtelCompression {
404    #[serde(rename = "gzip")]
405    #[default]
406    Gzip,
407    #[serde(rename = "none")]
408    None,
409}
410impl TryFrom<&str> for OtelCompression {
411    type Error = String;
412    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
413        match value {
414            "gzip" => Ok(Self::Gzip),
415            "none" => Ok(Self::None),
416            v => Err(format!("Unknown variant {v}")),
417        }
418    }
419}
420#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq, Default)]
421#[doc = "HTTP protocol"]
422#[doc = ""]
423pub enum OtelProtocol {
424    #[serde(rename = "http")]
425    Http,
426    #[serde(rename = "https")]
427    #[default]
428    Https,
429}
430impl TryFrom<&str> for OtelProtocol {
431    type Error = String;
432    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
433        match value {
434            "http" => Ok(Self::Http),
435            "https" => Ok(Self::Https),
436            v => Err(format!("Unknown variant {v}")),
437        }
438    }
439}
440#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
441#[doc = "Protocol to send graphite data. TCP or UDP (default)"]
442#[doc = ""]
443pub enum Proto {
444    #[serde(rename = "tcp")]
445    Tcp,
446    #[serde(rename = "udp")]
447    Udp,
448}
449impl TryFrom<&str> for Proto {
450    type Error = String;
451    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
452        match value {
453            "tcp" => Ok(Self::Tcp),
454            "udp" => Ok(Self::Udp),
455            v => Err(format!("Unknown variant {v}")),
456        }
457    }
458}
459#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
460#[doc = "Plugin type."]
461#[doc = ""]
462pub enum Type {
463    #[serde(rename = "graphite")]
464    Graphite,
465    #[serde(rename = "influxdb")]
466    Influxdb,
467    #[serde(rename = "opentelemetry")]
468    Opentelemetry,
469}
470impl TryFrom<&str> for Type {
471    type Error = String;
472    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
473        match value {
474            "graphite" => Ok(Self::Graphite),
475            "influxdb" => Ok(Self::Influxdb),
476            "opentelemetry" => Ok(Self::Opentelemetry),
477            v => Err(format!("Unknown variant {v}")),
478        }
479    }
480}
481#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
482pub struct MaxBodySizeInt(i128);
483impl crate::types::bounded_integer::BoundedInteger for MaxBodySizeInt {
484    const MIN: Option<i128> = Some(1i128);
485    const MAX: Option<i128> = None::<i128>;
486    const DEFAULT: Option<i128> = Some(25000000i128);
487    const TYPE_DESCRIPTION: &'static str = "an integer greater than or equal to 1";
488    fn get(&self) -> i128 {
489        self.0
490    }
491    fn new(value: i128) -> Result<Self, crate::types::bounded_integer::BoundedIntegerError> {
492        Self::validate(value)?;
493        Ok(Self(value))
494    }
495}
496impl std::convert::TryFrom<i128> for MaxBodySizeInt {
497    type Error = crate::types::bounded_integer::BoundedIntegerError;
498    fn try_from(value: i128) -> Result<Self, Self::Error> {
499        crate::types::bounded_integer::BoundedInteger::new(value)
500    }
501}
502impl ::serde::Serialize for MaxBodySizeInt {
503    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
504    where
505        S: ::serde::Serializer,
506    {
507        crate::types::bounded_integer::serialize_bounded_integer(self, serializer)
508    }
509}
510impl<'de> ::serde::Deserialize<'de> for MaxBodySizeInt {
511    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
512    where
513        D: ::serde::Deserializer<'de>,
514    {
515        crate::types::bounded_integer::deserialize_bounded_integer(deserializer)
516    }
517}
518#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
519pub struct MtuInt(i128);
520impl crate::types::bounded_integer::BoundedInteger for MtuInt {
521    const MIN: Option<i128> = Some(512i128);
522    const MAX: Option<i128> = Some(65536i128);
523    const DEFAULT: Option<i128> = Some(1500i128);
524    const TYPE_DESCRIPTION: &'static str = "an integer between 512 and 65536";
525    fn get(&self) -> i128 {
526        self.0
527    }
528    fn new(value: i128) -> Result<Self, crate::types::bounded_integer::BoundedIntegerError> {
529        Self::validate(value)?;
530        Ok(Self(value))
531    }
532}
533impl std::convert::TryFrom<i128> for MtuInt {
534    type Error = crate::types::bounded_integer::BoundedIntegerError;
535    fn try_from(value: i128) -> Result<Self, Self::Error> {
536        crate::types::bounded_integer::BoundedInteger::new(value)
537    }
538}
539impl ::serde::Serialize for MtuInt {
540    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
541    where
542        S: ::serde::Serializer,
543    {
544        crate::types::bounded_integer::serialize_bounded_integer(self, serializer)
545    }
546}
547impl<'de> ::serde::Deserialize<'de> for MtuInt {
548    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
549    where
550        D: ::serde::Deserializer<'de>,
551    {
552        crate::types::bounded_integer::deserialize_bounded_integer(deserializer)
553    }
554}
555#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
556pub struct OtelMaxBodySizeInt(i128);
557impl crate::types::bounded_integer::BoundedInteger for OtelMaxBodySizeInt {
558    const MIN: Option<i128> = Some(1024i128);
559    const MAX: Option<i128> = None::<i128>;
560    const DEFAULT: Option<i128> = Some(10000000i128);
561    const TYPE_DESCRIPTION: &'static str = "an integer greater than or equal to 1024";
562    fn get(&self) -> i128 {
563        self.0
564    }
565    fn new(value: i128) -> Result<Self, crate::types::bounded_integer::BoundedIntegerError> {
566        Self::validate(value)?;
567        Ok(Self(value))
568    }
569}
570impl std::convert::TryFrom<i128> for OtelMaxBodySizeInt {
571    type Error = crate::types::bounded_integer::BoundedIntegerError;
572    fn try_from(value: i128) -> Result<Self, Self::Error> {
573        crate::types::bounded_integer::BoundedInteger::new(value)
574    }
575}
576impl ::serde::Serialize for OtelMaxBodySizeInt {
577    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
578    where
579        S: ::serde::Serializer,
580    {
581        crate::types::bounded_integer::serialize_bounded_integer(self, serializer)
582    }
583}
584impl<'de> ::serde::Deserialize<'de> for OtelMaxBodySizeInt {
585    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
586    where
587        D: ::serde::Deserializer<'de>,
588    {
589        crate::types::bounded_integer::deserialize_bounded_integer(deserializer)
590    }
591}
592#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
593pub struct OtelTimeoutInt(i128);
594impl crate::types::bounded_integer::BoundedInteger for OtelTimeoutInt {
595    const MIN: Option<i128> = Some(1i128);
596    const MAX: Option<i128> = Some(10i128);
597    const DEFAULT: Option<i128> = Some(5i128);
598    const TYPE_DESCRIPTION: &'static str = "an integer between 1 and 10";
599    fn get(&self) -> i128 {
600        self.0
601    }
602    fn new(value: i128) -> Result<Self, crate::types::bounded_integer::BoundedIntegerError> {
603        Self::validate(value)?;
604        Ok(Self(value))
605    }
606}
607impl std::convert::TryFrom<i128> for OtelTimeoutInt {
608    type Error = crate::types::bounded_integer::BoundedIntegerError;
609    fn try_from(value: i128) -> Result<Self, Self::Error> {
610        crate::types::bounded_integer::BoundedInteger::new(value)
611    }
612}
613impl ::serde::Serialize for OtelTimeoutInt {
614    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
615    where
616        S: ::serde::Serializer,
617    {
618        crate::types::bounded_integer::serialize_bounded_integer(self, serializer)
619    }
620}
621impl<'de> ::serde::Deserialize<'de> for OtelTimeoutInt {
622    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
623    where
624        D: ::serde::Deserializer<'de>,
625    {
626        crate::types::bounded_integer::deserialize_bounded_integer(deserializer)
627    }
628}
629#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
630pub struct PortInt(i128);
631impl crate::types::bounded_integer::BoundedInteger for PortInt {
632    const MIN: Option<i128> = Some(1i128);
633    const MAX: Option<i128> = Some(65536i128);
634    const DEFAULT: Option<i128> = None::<i128>;
635    const TYPE_DESCRIPTION: &'static str = "an integer between 1 and 65536";
636    fn get(&self) -> i128 {
637        self.0
638    }
639    fn new(value: i128) -> Result<Self, crate::types::bounded_integer::BoundedIntegerError> {
640        Self::validate(value)?;
641        Ok(Self(value))
642    }
643}
644impl std::convert::TryFrom<i128> for PortInt {
645    type Error = crate::types::bounded_integer::BoundedIntegerError;
646    fn try_from(value: i128) -> Result<Self, Self::Error> {
647        crate::types::bounded_integer::BoundedInteger::new(value)
648    }
649}
650impl ::serde::Serialize for PortInt {
651    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
652    where
653        S: ::serde::Serializer,
654    {
655        crate::types::bounded_integer::serialize_bounded_integer(self, serializer)
656    }
657}
658impl<'de> ::serde::Deserialize<'de> for PortInt {
659    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
660    where
661        D: ::serde::Deserializer<'de>,
662    {
663        crate::types::bounded_integer::deserialize_bounded_integer(deserializer)
664    }
665}
666#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
667pub struct TimeoutInt(i128);
668impl crate::types::bounded_integer::BoundedInteger for TimeoutInt {
669    const MIN: Option<i128> = Some(0i128);
670    const MAX: Option<i128> = None::<i128>;
671    const DEFAULT: Option<i128> = Some(1i128);
672    const TYPE_DESCRIPTION: &'static str = "an integer greater than or equal to 0";
673    fn get(&self) -> i128 {
674        self.0
675    }
676    fn new(value: i128) -> Result<Self, crate::types::bounded_integer::BoundedIntegerError> {
677        Self::validate(value)?;
678        Ok(Self(value))
679    }
680}
681impl std::convert::TryFrom<i128> for TimeoutInt {
682    type Error = crate::types::bounded_integer::BoundedIntegerError;
683    fn try_from(value: i128) -> Result<Self, Self::Error> {
684        crate::types::bounded_integer::BoundedInteger::new(value)
685    }
686}
687impl ::serde::Serialize for TimeoutInt {
688    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
689    where
690        S: ::serde::Serializer,
691    {
692        crate::types::bounded_integer::serialize_bounded_integer(self, serializer)
693    }
694}
695impl<'de> ::serde::Deserialize<'de> for TimeoutInt {
696    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
697    where
698        D: ::serde::Deserializer<'de>,
699    {
700        crate::types::bounded_integer::deserialize_bounded_integer(deserializer)
701    }
702}
703#[derive(Debug, Clone, PartialEq, PartialOrd)]
704pub struct DeleteStr {
705    value: String,
706}
707impl crate::types::bounded_string::BoundedString for DeleteStr {
708    const MIN_LENGTH: Option<usize> = None::<usize>;
709    const MAX_LENGTH: Option<usize> = Some(4096usize);
710    const DEFAULT: Option<&'static str> = None::<&'static str>;
711    const PATTERN: Option<&'static str> = None::<&'static str>;
712    const TYPE_DESCRIPTION: &'static str = "a string with length at most 4096";
713    fn get_value(&self) -> &str {
714        &self.value
715    }
716    fn new(value: String) -> Result<Self, crate::types::bounded_string::BoundedStringError> {
717        Self::validate(&value)?;
718        Ok(Self { value })
719    }
720}
721impl std::convert::TryFrom<String> for DeleteStr {
722    type Error = crate::types::bounded_string::BoundedStringError;
723    fn try_from(value: String) -> Result<Self, Self::Error> {
724        crate::types::bounded_string::BoundedString::new(value)
725    }
726}
727impl ::serde::Serialize for DeleteStr {
728    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
729    where
730        S: ::serde::Serializer,
731    {
732        crate::types::bounded_string::serialize_bounded_string(self, serializer)
733    }
734}
735impl<'de> ::serde::Deserialize<'de> for DeleteStr {
736    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
737    where
738        D: ::serde::Deserializer<'de>,
739    {
740        crate::types::bounded_string::deserialize_bounded_string(deserializer)
741    }
742}
743#[derive(Debug, Clone, PartialEq, PartialOrd)]
744pub struct DigestStr {
745    value: String,
746}
747impl crate::types::bounded_string::BoundedString for DigestStr {
748    const MIN_LENGTH: Option<usize> = None::<usize>;
749    const MAX_LENGTH: Option<usize> = Some(64usize);
750    const DEFAULT: Option<&'static str> = None::<&'static str>;
751    const PATTERN: Option<&'static str> = None::<&'static str>;
752    const TYPE_DESCRIPTION: &'static str = "a string with length at most 64";
753    fn get_value(&self) -> &str {
754        &self.value
755    }
756    fn new(value: String) -> Result<Self, crate::types::bounded_string::BoundedStringError> {
757        Self::validate(&value)?;
758        Ok(Self { value })
759    }
760}
761impl std::convert::TryFrom<String> for DigestStr {
762    type Error = crate::types::bounded_string::BoundedStringError;
763    fn try_from(value: String) -> Result<Self, Self::Error> {
764        crate::types::bounded_string::BoundedString::new(value)
765    }
766}
767impl ::serde::Serialize for DigestStr {
768    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
769    where
770        S: ::serde::Serializer,
771    {
772        crate::types::bounded_string::serialize_bounded_string(self, serializer)
773    }
774}
775impl<'de> ::serde::Deserialize<'de> for DigestStr {
776    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
777    where
778        D: ::serde::Deserializer<'de>,
779    {
780        crate::types::bounded_string::deserialize_bounded_string(deserializer)
781    }
782}
783#[derive(Debug, Clone, PartialEq, PartialOrd)]
784pub struct OtelHeadersStr {
785    value: String,
786}
787impl crate::types::bounded_string::BoundedString for OtelHeadersStr {
788    const MIN_LENGTH: Option<usize> = None::<usize>;
789    const MAX_LENGTH: Option<usize> = Some(1024usize);
790    const DEFAULT: Option<&'static str> = None::<&'static str>;
791    const PATTERN: Option<&'static str> = None::<&'static str>;
792    const TYPE_DESCRIPTION: &'static str = "a string with length at most 1024";
793    fn get_value(&self) -> &str {
794        &self.value
795    }
796    fn new(value: String) -> Result<Self, crate::types::bounded_string::BoundedStringError> {
797        Self::validate(&value)?;
798        Ok(Self { value })
799    }
800}
801impl std::convert::TryFrom<String> for OtelHeadersStr {
802    type Error = crate::types::bounded_string::BoundedStringError;
803    fn try_from(value: String) -> Result<Self, Self::Error> {
804        crate::types::bounded_string::BoundedString::new(value)
805    }
806}
807impl ::serde::Serialize for OtelHeadersStr {
808    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
809    where
810        S: ::serde::Serializer,
811    {
812        crate::types::bounded_string::serialize_bounded_string(self, serializer)
813    }
814}
815impl<'de> ::serde::Deserialize<'de> for OtelHeadersStr {
816    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
817    where
818        D: ::serde::Deserializer<'de>,
819    {
820        crate::types::bounded_string::deserialize_bounded_string(deserializer)
821    }
822}
823#[derive(Debug, Clone, PartialEq, PartialOrd)]
824pub struct OtelResourceAttributesStr {
825    value: String,
826}
827impl crate::types::bounded_string::BoundedString for OtelResourceAttributesStr {
828    const MIN_LENGTH: Option<usize> = None::<usize>;
829    const MAX_LENGTH: Option<usize> = Some(1024usize);
830    const DEFAULT: Option<&'static str> = None::<&'static str>;
831    const PATTERN: Option<&'static str> = None::<&'static str>;
832    const TYPE_DESCRIPTION: &'static str = "a string with length at most 1024";
833    fn get_value(&self) -> &str {
834        &self.value
835    }
836    fn new(value: String) -> Result<Self, crate::types::bounded_string::BoundedStringError> {
837        Self::validate(&value)?;
838        Ok(Self { value })
839    }
840}
841impl std::convert::TryFrom<String> for OtelResourceAttributesStr {
842    type Error = crate::types::bounded_string::BoundedStringError;
843    fn try_from(value: String) -> Result<Self, Self::Error> {
844        crate::types::bounded_string::BoundedString::new(value)
845    }
846}
847impl ::serde::Serialize for OtelResourceAttributesStr {
848    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
849    where
850        S: ::serde::Serializer,
851    {
852        crate::types::bounded_string::serialize_bounded_string(self, serializer)
853    }
854}
855impl<'de> ::serde::Deserialize<'de> for OtelResourceAttributesStr {
856    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
857    where
858        D: ::serde::Deserializer<'de>,
859    {
860        crate::types::bounded_string::deserialize_bounded_string(deserializer)
861    }
862}