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, ¶ms).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, ¶ms).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}