1#![doc = "Generated transport-independent contract objects."]
3
4use std::collections::BTreeMap;
5use std::error::Error as StdError;
6use std::fmt::{self, Display, Formatter};
7
8use serde::{Deserialize, Deserializer, Serialize, Serializer};
9use serde_json::Value;
10use spiral_contract::error::{ErrorEnvelope, ServiceError};
11use spiral_contract::safelong::{SafeLong, SafeUnsignedLong};
12use spiral_contract::strict::{DeserializeStrict, Strict};
13use uuid::Uuid;
14
15#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
17pub struct AttemptLease {
18 #[serde(rename = "attemptId")]
20 pub attempt_id: Uuid,
21 #[serde(rename = "leaseExpiresAtMicros")]
23 pub lease_expires_at_micros: SafeLong,
24 #[serde(rename = "stopReason")]
26 #[serde(default, skip_serializing_if = "Option::is_none")]
27 pub stop_reason: Option<TaskStopReason>,
28 #[serde(rename = "taskId")]
30 pub task_id: Uuid,
31}
32impl<'de> DeserializeStrict<'de> for AttemptLease {
33 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
34 #[derive(Deserialize)]
35 #[serde(deny_unknown_fields)]
36 struct __Wire {
37 #[serde(rename = "attemptId")]
38 attempt_id: Strict<Uuid>,
39 #[serde(rename = "leaseExpiresAtMicros")]
40 lease_expires_at_micros: Strict<SafeLong>,
41 #[serde(rename = "stopReason")]
42 #[serde(default)]
43 stop_reason: Strict<Option<TaskStopReason>>,
44 #[serde(rename = "taskId")]
45 task_id: Strict<Uuid>,
46 }
47 let wire = __Wire::deserialize(deserializer)?;
48 Ok(Self {
49 attempt_id: wire.attempt_id.0,
50 lease_expires_at_micros: wire.lease_expires_at_micros.0,
51 stop_reason: wire.stop_reason.0,
52 task_id: wire.task_id.0,
53 })
54 }
55}
56
57#[derive(Clone, Debug, PartialEq, Eq)]
59pub enum AttemptStatus {
60 Running,
62 Succeeded,
64 Failed,
66 Cancelled,
68 Unknown(String),
70}
71impl Serialize for AttemptStatus {
72 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
73 serializer.serialize_str(match self {
74 Self::Running => "running",
75 Self::Succeeded => "succeeded",
76 Self::Failed => "failed",
77 Self::Cancelled => "cancelled",
78 Self::Unknown(value) => value,
79 })
80 }
81}
82impl<'de> Deserialize<'de> for AttemptStatus {
83 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
84 Ok(match String::deserialize(deserializer)?.as_str() {
85 "running" => Self::Running,
86 "succeeded" => Self::Succeeded,
87 "failed" => Self::Failed,
88 "cancelled" => Self::Cancelled,
89 value => Self::Unknown(value.to_owned()),
90 })
91 }
92}
93impl<'de> DeserializeStrict<'de> for AttemptStatus {
94 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
95 #[derive(Deserialize)]
96 enum __Known {
97 #[serde(rename = "running")]
98 Running,
99 #[serde(rename = "succeeded")]
100 Succeeded,
101 #[serde(rename = "failed")]
102 Failed,
103 #[serde(rename = "cancelled")]
104 Cancelled,
105 }
106 Ok(match __Known::deserialize(deserializer)? {
107 __Known::Running => Self::Running,
108 __Known::Succeeded => Self::Succeeded,
109 __Known::Failed => Self::Failed,
110 __Known::Cancelled => Self::Cancelled,
111 })
112 }
113}
114
115#[derive(Clone, Debug, PartialEq, Eq)]
117pub enum Caller {
118 Application(CallerApplication),
120 Installation(CallerInstallation),
122 Resource(CallerResource),
124 Service(CallerService),
126 User(CallerUser),
128 Workload(CallerWorkload),
130 Unknown { tag: String, value: Value },
132}
133impl Serialize for Caller {
134 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
135 match self {
136 Self::Application(value) => {
137 let mut object = serde_json::Map::new();
138 object.insert("type".into(), Value::String("application".into()));
139 object.insert(
140 "application".into(),
141 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
142 );
143 Value::Object(object).serialize(serializer)
144 }
145 Self::Installation(value) => {
146 let mut object = serde_json::Map::new();
147 object.insert("type".into(), Value::String("installation".into()));
148 object.insert(
149 "installation".into(),
150 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
151 );
152 Value::Object(object).serialize(serializer)
153 }
154 Self::Resource(value) => {
155 let mut object = serde_json::Map::new();
156 object.insert("type".into(), Value::String("resource".into()));
157 object.insert(
158 "resource".into(),
159 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
160 );
161 Value::Object(object).serialize(serializer)
162 }
163 Self::Service(value) => {
164 let mut object = serde_json::Map::new();
165 object.insert("type".into(), Value::String("service".into()));
166 object.insert(
167 "service".into(),
168 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
169 );
170 Value::Object(object).serialize(serializer)
171 }
172 Self::User(value) => {
173 let mut object = serde_json::Map::new();
174 object.insert("type".into(), Value::String("user".into()));
175 object.insert(
176 "user".into(),
177 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
178 );
179 Value::Object(object).serialize(serializer)
180 }
181 Self::Workload(value) => {
182 let mut object = serde_json::Map::new();
183 object.insert("type".into(), Value::String("workload".into()));
184 object.insert(
185 "workload".into(),
186 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
187 );
188 Value::Object(object).serialize(serializer)
189 }
190 Self::Unknown { tag, value } => {
191 if value.get("type").and_then(Value::as_str) != Some(tag.as_str()) {
192 return Err(serde::ser::Error::custom(
193 "unknown union discriminator mismatch",
194 ));
195 }
196 value.serialize(serializer)
197 }
198 }
199 }
200}
201impl<'de> Deserialize<'de> for Caller {
202 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
203 let value = Value::deserialize(deserializer)?;
204 let tag = value
205 .get("type")
206 .and_then(Value::as_str)
207 .ok_or_else(|| serde::de::Error::custom("union requires type"))?;
208 match tag {
209 "application" => Ok(Self::Application(
210 serde_json::from_value(
211 value
212 .get("application")
213 .cloned()
214 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
215 )
216 .map_err(serde::de::Error::custom)?,
217 )),
218 "installation" => Ok(Self::Installation(
219 serde_json::from_value(
220 value
221 .get("installation")
222 .cloned()
223 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
224 )
225 .map_err(serde::de::Error::custom)?,
226 )),
227 "resource" => Ok(Self::Resource(
228 serde_json::from_value(
229 value
230 .get("resource")
231 .cloned()
232 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
233 )
234 .map_err(serde::de::Error::custom)?,
235 )),
236 "service" => Ok(Self::Service(
237 serde_json::from_value(
238 value
239 .get("service")
240 .cloned()
241 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
242 )
243 .map_err(serde::de::Error::custom)?,
244 )),
245 "user" => Ok(Self::User(
246 serde_json::from_value(
247 value
248 .get("user")
249 .cloned()
250 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
251 )
252 .map_err(serde::de::Error::custom)?,
253 )),
254 "workload" => Ok(Self::Workload(
255 serde_json::from_value(
256 value
257 .get("workload")
258 .cloned()
259 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
260 )
261 .map_err(serde::de::Error::custom)?,
262 )),
263 tag => Ok(Self::Unknown {
264 tag: tag.to_owned(),
265 value,
266 }),
267 }
268 }
269}
270impl<'de> DeserializeStrict<'de> for Caller {
271 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
272 #[derive(Deserialize)]
273 enum __Tag0 {
274 #[serde(rename = "application")]
275 Value,
276 }
277 #[derive(Deserialize)]
278 #[serde(deny_unknown_fields)]
279 struct __Arm0 {
280 #[serde(rename = "type")]
281 _tag: __Tag0,
282 #[serde(rename = "application")]
283 value: Strict<CallerApplication>,
284 }
285 #[derive(Deserialize)]
286 enum __Tag1 {
287 #[serde(rename = "installation")]
288 Value,
289 }
290 #[derive(Deserialize)]
291 #[serde(deny_unknown_fields)]
292 struct __Arm1 {
293 #[serde(rename = "type")]
294 _tag: __Tag1,
295 #[serde(rename = "installation")]
296 value: Strict<CallerInstallation>,
297 }
298 #[derive(Deserialize)]
299 enum __Tag2 {
300 #[serde(rename = "resource")]
301 Value,
302 }
303 #[derive(Deserialize)]
304 #[serde(deny_unknown_fields)]
305 struct __Arm2 {
306 #[serde(rename = "type")]
307 _tag: __Tag2,
308 #[serde(rename = "resource")]
309 value: Strict<CallerResource>,
310 }
311 #[derive(Deserialize)]
312 enum __Tag3 {
313 #[serde(rename = "service")]
314 Value,
315 }
316 #[derive(Deserialize)]
317 #[serde(deny_unknown_fields)]
318 struct __Arm3 {
319 #[serde(rename = "type")]
320 _tag: __Tag3,
321 #[serde(rename = "service")]
322 value: Strict<CallerService>,
323 }
324 #[derive(Deserialize)]
325 enum __Tag4 {
326 #[serde(rename = "user")]
327 Value,
328 }
329 #[derive(Deserialize)]
330 #[serde(deny_unknown_fields)]
331 struct __Arm4 {
332 #[serde(rename = "type")]
333 _tag: __Tag4,
334 #[serde(rename = "user")]
335 value: Strict<CallerUser>,
336 }
337 #[derive(Deserialize)]
338 enum __Tag5 {
339 #[serde(rename = "workload")]
340 Value,
341 }
342 #[derive(Deserialize)]
343 #[serde(deny_unknown_fields)]
344 struct __Arm5 {
345 #[serde(rename = "type")]
346 _tag: __Tag5,
347 #[serde(rename = "workload")]
348 value: Strict<CallerWorkload>,
349 }
350 #[derive(Deserialize)]
351 #[serde(untagged)]
352 enum __Known {
353 Application(Box<__Arm0>),
354 Installation(Box<__Arm1>),
355 Resource(Box<__Arm2>),
356 Service(Box<__Arm3>),
357 User(Box<__Arm4>),
358 Workload(Box<__Arm5>),
359 }
360 Ok(match __Known::deserialize(deserializer)? {
361 __Known::Application(arm) => Self::Application(arm.value.0),
362 __Known::Installation(arm) => Self::Installation(arm.value.0),
363 __Known::Resource(arm) => Self::Resource(arm.value.0),
364 __Known::Service(arm) => Self::Service(arm.value.0),
365 __Known::User(arm) => Self::User(arm.value.0),
366 __Known::Workload(arm) => Self::Workload(arm.value.0),
367 })
368 }
369}
370
371#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
373pub struct CallerApplication {
374 #[serde(rename = "applicationId")]
376 pub application_id: String,
377}
378impl<'de> DeserializeStrict<'de> for CallerApplication {
379 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
380 #[derive(Deserialize)]
381 #[serde(deny_unknown_fields)]
382 struct __Wire {
383 #[serde(rename = "applicationId")]
384 application_id: Strict<String>,
385 }
386 let wire = __Wire::deserialize(deserializer)?;
387 Ok(Self {
388 application_id: wire.application_id.0,
389 })
390 }
391}
392
393#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
395pub struct CallerInstallation {
396 #[serde(rename = "installationId")]
398 pub installation_id: String,
399}
400impl<'de> DeserializeStrict<'de> for CallerInstallation {
401 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
402 #[derive(Deserialize)]
403 #[serde(deny_unknown_fields)]
404 struct __Wire {
405 #[serde(rename = "installationId")]
406 installation_id: Strict<String>,
407 }
408 let wire = __Wire::deserialize(deserializer)?;
409 Ok(Self {
410 installation_id: wire.installation_id.0,
411 })
412 }
413}
414
415#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
417pub struct CallerResource {
418 #[serde(rename = "spid")]
420 pub spid: String,
421}
422impl<'de> DeserializeStrict<'de> for CallerResource {
423 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
424 #[derive(Deserialize)]
425 #[serde(deny_unknown_fields)]
426 struct __Wire {
427 #[serde(rename = "spid")]
428 spid: Strict<String>,
429 }
430 let wire = __Wire::deserialize(deserializer)?;
431 Ok(Self { spid: wire.spid.0 })
432 }
433}
434
435#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
437pub struct CallerService {
438 #[serde(rename = "serviceId")]
440 pub service_id: String,
441}
442impl<'de> DeserializeStrict<'de> for CallerService {
443 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
444 #[derive(Deserialize)]
445 #[serde(deny_unknown_fields)]
446 struct __Wire {
447 #[serde(rename = "serviceId")]
448 service_id: Strict<String>,
449 }
450 let wire = __Wire::deserialize(deserializer)?;
451 Ok(Self {
452 service_id: wire.service_id.0,
453 })
454 }
455}
456
457#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
459pub struct CallerUser {
460 #[serde(rename = "orgId")]
462 pub org_id: String,
463 #[serde(rename = "userId")]
465 pub user_id: String,
466}
467impl<'de> DeserializeStrict<'de> for CallerUser {
468 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
469 #[derive(Deserialize)]
470 #[serde(deny_unknown_fields)]
471 struct __Wire {
472 #[serde(rename = "orgId")]
473 org_id: Strict<String>,
474 #[serde(rename = "userId")]
475 user_id: Strict<String>,
476 }
477 let wire = __Wire::deserialize(deserializer)?;
478 Ok(Self {
479 org_id: wire.org_id.0,
480 user_id: wire.user_id.0,
481 })
482 }
483}
484
485#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
487pub struct CallerWorkload {
488 #[serde(rename = "workloadId")]
490 pub workload_id: String,
491}
492impl<'de> DeserializeStrict<'de> for CallerWorkload {
493 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
494 #[derive(Deserialize)]
495 #[serde(deny_unknown_fields)]
496 struct __Wire {
497 #[serde(rename = "workloadId")]
498 workload_id: Strict<String>,
499 }
500 let wire = __Wire::deserialize(deserializer)?;
501 Ok(Self {
502 workload_id: wire.workload_id.0,
503 })
504 }
505}
506
507#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
509pub struct ColumnGroupCompactionCommit {
510 #[serde(rename = "columnGroup")]
512 pub column_group: String,
513 #[serde(rename = "committedAtMicros")]
515 pub committed_at_micros: SafeUnsignedLong,
516}
517impl<'de> DeserializeStrict<'de> for ColumnGroupCompactionCommit {
518 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
519 #[derive(Deserialize)]
520 #[serde(deny_unknown_fields)]
521 struct __Wire {
522 #[serde(rename = "columnGroup")]
523 column_group: Strict<String>,
524 #[serde(rename = "committedAtMicros")]
525 committed_at_micros: Strict<SafeUnsignedLong>,
526 }
527 let wire = __Wire::deserialize(deserializer)?;
528 Ok(Self {
529 column_group: wire.column_group.0,
530 committed_at_micros: wire.committed_at_micros.0,
531 })
532 }
533}
534
535#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
537pub struct ColumnGroupCompactionProgress {
538 #[serde(rename = "columnGroup")]
540 pub column_group: String,
541 #[serde(rename = "groupCount")]
543 pub group_count: SafeUnsignedLong,
544 #[serde(rename = "groupIndex")]
546 pub group_index: SafeUnsignedLong,
547 #[serde(rename = "step")]
549 #[serde(default, skip_serializing_if = "Option::is_none")]
550 pub step: Option<ColumnGroupCompactionStep>,
551}
552impl<'de> DeserializeStrict<'de> for ColumnGroupCompactionProgress {
553 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
554 #[derive(Deserialize)]
555 #[serde(deny_unknown_fields)]
556 struct __Wire {
557 #[serde(rename = "columnGroup")]
558 column_group: Strict<String>,
559 #[serde(rename = "groupCount")]
560 group_count: Strict<SafeUnsignedLong>,
561 #[serde(rename = "groupIndex")]
562 group_index: Strict<SafeUnsignedLong>,
563 #[serde(rename = "step")]
564 #[serde(default)]
565 step: Strict<Option<ColumnGroupCompactionStep>>,
566 }
567 let wire = __Wire::deserialize(deserializer)?;
568 Ok(Self {
569 column_group: wire.column_group.0,
570 group_count: wire.group_count.0,
571 group_index: wire.group_index.0,
572 step: wire.step.0,
573 })
574 }
575}
576
577#[derive(Clone, Debug, PartialEq, Eq)]
579pub enum ColumnGroupCompactionStep {
580 Split,
582 SizeBased,
584 Overlaps,
586 Committing,
588 Committed,
590 Unknown(String),
592}
593impl Serialize for ColumnGroupCompactionStep {
594 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
595 serializer.serialize_str(match self {
596 Self::Split => "split",
597 Self::SizeBased => "size_based",
598 Self::Overlaps => "overlaps",
599 Self::Committing => "committing",
600 Self::Committed => "committed",
601 Self::Unknown(value) => value,
602 })
603 }
604}
605impl<'de> Deserialize<'de> for ColumnGroupCompactionStep {
606 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
607 Ok(match String::deserialize(deserializer)?.as_str() {
608 "split" => Self::Split,
609 "size_based" => Self::SizeBased,
610 "overlaps" => Self::Overlaps,
611 "committing" => Self::Committing,
612 "committed" => Self::Committed,
613 value => Self::Unknown(value.to_owned()),
614 })
615 }
616}
617impl<'de> DeserializeStrict<'de> for ColumnGroupCompactionStep {
618 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
619 #[derive(Deserialize)]
620 enum __Known {
621 #[serde(rename = "split")]
622 Split,
623 #[serde(rename = "size_based")]
624 SizeBased,
625 #[serde(rename = "overlaps")]
626 Overlaps,
627 #[serde(rename = "committing")]
628 Committing,
629 #[serde(rename = "committed")]
630 Committed,
631 }
632 Ok(match __Known::deserialize(deserializer)? {
633 __Known::Split => Self::Split,
634 __Known::SizeBased => Self::SizeBased,
635 __Known::Overlaps => Self::Overlaps,
636 __Known::Committing => Self::Committing,
637 __Known::Committed => Self::Committed,
638 })
639 }
640}
641
642#[derive(Clone, Debug, PartialEq, Eq)]
644pub enum ComputeClass {
645 Cpu(ComputeClassCpu),
647 Gpu(ComputeClassGpu),
649 Unknown { tag: String, value: Value },
651}
652impl Serialize for ComputeClass {
653 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
654 match self {
655 Self::Cpu(value) => {
656 let mut object = serde_json::Map::new();
657 object.insert("type".into(), Value::String("cpu".into()));
658 object.insert(
659 "cpu".into(),
660 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
661 );
662 Value::Object(object).serialize(serializer)
663 }
664 Self::Gpu(value) => {
665 let mut object = serde_json::Map::new();
666 object.insert("type".into(), Value::String("gpu".into()));
667 object.insert(
668 "gpu".into(),
669 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
670 );
671 Value::Object(object).serialize(serializer)
672 }
673 Self::Unknown { tag, value } => {
674 if value.get("type").and_then(Value::as_str) != Some(tag.as_str()) {
675 return Err(serde::ser::Error::custom(
676 "unknown union discriminator mismatch",
677 ));
678 }
679 value.serialize(serializer)
680 }
681 }
682 }
683}
684impl<'de> Deserialize<'de> for ComputeClass {
685 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
686 let value = Value::deserialize(deserializer)?;
687 let tag = value
688 .get("type")
689 .and_then(Value::as_str)
690 .ok_or_else(|| serde::de::Error::custom("union requires type"))?;
691 match tag {
692 "cpu" => Ok(Self::Cpu(
693 serde_json::from_value(
694 value
695 .get("cpu")
696 .cloned()
697 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
698 )
699 .map_err(serde::de::Error::custom)?,
700 )),
701 "gpu" => Ok(Self::Gpu(
702 serde_json::from_value(
703 value
704 .get("gpu")
705 .cloned()
706 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
707 )
708 .map_err(serde::de::Error::custom)?,
709 )),
710 tag => Ok(Self::Unknown {
711 tag: tag.to_owned(),
712 value,
713 }),
714 }
715 }
716}
717impl<'de> DeserializeStrict<'de> for ComputeClass {
718 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
719 #[derive(Deserialize)]
720 enum __Tag0 {
721 #[serde(rename = "cpu")]
722 Value,
723 }
724 #[derive(Deserialize)]
725 #[serde(deny_unknown_fields)]
726 struct __Arm0 {
727 #[serde(rename = "type")]
728 _tag: __Tag0,
729 #[serde(rename = "cpu")]
730 value: Strict<ComputeClassCpu>,
731 }
732 #[derive(Deserialize)]
733 enum __Tag1 {
734 #[serde(rename = "gpu")]
735 Value,
736 }
737 #[derive(Deserialize)]
738 #[serde(deny_unknown_fields)]
739 struct __Arm1 {
740 #[serde(rename = "type")]
741 _tag: __Tag1,
742 #[serde(rename = "gpu")]
743 value: Strict<ComputeClassGpu>,
744 }
745 #[derive(Deserialize)]
746 #[serde(untagged)]
747 enum __Known {
748 Cpu(Box<__Arm0>),
749 Gpu(Box<__Arm1>),
750 }
751 Ok(match __Known::deserialize(deserializer)? {
752 __Known::Cpu(arm) => Self::Cpu(arm.value.0),
753 __Known::Gpu(arm) => Self::Gpu(arm.value.0),
754 })
755 }
756}
757
758#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
760pub struct ComputeClassCpu {}
761impl<'de> DeserializeStrict<'de> for ComputeClassCpu {
762 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
763 #[derive(Deserialize)]
764 #[serde(deny_unknown_fields)]
765 struct __Wire {}
766 __Wire::deserialize(deserializer)?;
767 Ok(Self {})
768 }
769}
770
771#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
773pub struct ComputeClassGpu {
774 #[serde(rename = "count")]
776 #[serde(default, skip_serializing_if = "Option::is_none")]
777 pub count: Option<u32>,
778 #[serde(rename = "memoryBytes")]
780 #[serde(default, skip_serializing_if = "Option::is_none")]
781 pub memory_bytes: Option<SafeUnsignedLong>,
782 #[serde(rename = "runtime")]
784 pub runtime: GpuRuntime,
785}
786impl<'de> DeserializeStrict<'de> for ComputeClassGpu {
787 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
788 #[derive(Deserialize)]
789 #[serde(deny_unknown_fields)]
790 struct __Wire {
791 #[serde(rename = "count")]
792 #[serde(default)]
793 count: Strict<Option<u32>>,
794 #[serde(rename = "memoryBytes")]
795 #[serde(default)]
796 memory_bytes: Strict<Option<SafeUnsignedLong>>,
797 #[serde(rename = "runtime")]
798 runtime: Strict<GpuRuntime>,
799 }
800 let wire = __Wire::deserialize(deserializer)?;
801 Ok(Self {
802 count: wire.count.0,
803 memory_bytes: wire.memory_bytes.0,
804 runtime: wire.runtime.0,
805 })
806 }
807}
808
809#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
811pub struct CreateTaskRequest {
812 #[serde(rename = "idempotencyKey")]
814 pub idempotency_key: String,
815 #[serde(rename = "input")]
817 pub input: Value,
818 #[serde(rename = "options")]
820 #[serde(default, skip_serializing_if = "Option::is_none")]
821 pub options: Option<TaskOptions>,
822 #[serde(rename = "parentTaskId")]
824 #[serde(default, skip_serializing_if = "Option::is_none")]
825 pub parent_task_id: Option<Uuid>,
826 #[serde(rename = "taskSpecId")]
828 pub task_spec_id: TaskSpecId,
829}
830impl<'de> DeserializeStrict<'de> for CreateTaskRequest {
831 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
832 #[derive(Deserialize)]
833 #[serde(deny_unknown_fields)]
834 struct __Wire {
835 #[serde(rename = "idempotencyKey")]
836 idempotency_key: Strict<String>,
837 #[serde(rename = "input")]
838 input: Strict<Value>,
839 #[serde(rename = "options")]
840 #[serde(default)]
841 options: Strict<Option<TaskOptions>>,
842 #[serde(rename = "parentTaskId")]
843 #[serde(default)]
844 parent_task_id: Strict<Option<Uuid>>,
845 #[serde(rename = "taskSpecId")]
846 task_spec_id: Strict<TaskSpecId>,
847 }
848 let wire = __Wire::deserialize(deserializer)?;
849 Ok(Self {
850 idempotency_key: wire.idempotency_key.0,
851 input: wire.input.0,
852 options: wire.options.0,
853 parent_task_id: wire.parent_task_id.0,
854 task_spec_id: wire.task_spec_id.0,
855 })
856 }
857}
858
859#[derive(Clone, Debug, PartialEq, Eq)]
861pub enum CreateTaskResponse {
862 Accepted(Box<CreateTaskResponseAccepted>),
864 Skipped(CreateTaskResponseSkipped),
866 Unknown { tag: String, value: Value },
868}
869impl Serialize for CreateTaskResponse {
870 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
871 match self {
872 Self::Accepted(value) => {
873 let mut object = serde_json::Map::new();
874 object.insert("type".into(), Value::String("accepted".into()));
875 object.insert(
876 "accepted".into(),
877 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
878 );
879 Value::Object(object).serialize(serializer)
880 }
881 Self::Skipped(value) => {
882 let mut object = serde_json::Map::new();
883 object.insert("type".into(), Value::String("skipped".into()));
884 object.insert(
885 "skipped".into(),
886 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
887 );
888 Value::Object(object).serialize(serializer)
889 }
890 Self::Unknown { tag, value } => {
891 if value.get("type").and_then(Value::as_str) != Some(tag.as_str()) {
892 return Err(serde::ser::Error::custom(
893 "unknown union discriminator mismatch",
894 ));
895 }
896 value.serialize(serializer)
897 }
898 }
899 }
900}
901impl<'de> Deserialize<'de> for CreateTaskResponse {
902 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
903 let value = Value::deserialize(deserializer)?;
904 let tag = value
905 .get("type")
906 .and_then(Value::as_str)
907 .ok_or_else(|| serde::de::Error::custom("union requires type"))?;
908 match tag {
909 "accepted" => Ok(Self::Accepted(
910 serde_json::from_value(
911 value
912 .get("accepted")
913 .cloned()
914 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
915 )
916 .map_err(serde::de::Error::custom)?,
917 )),
918 "skipped" => Ok(Self::Skipped(
919 serde_json::from_value(
920 value
921 .get("skipped")
922 .cloned()
923 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
924 )
925 .map_err(serde::de::Error::custom)?,
926 )),
927 tag => Ok(Self::Unknown {
928 tag: tag.to_owned(),
929 value,
930 }),
931 }
932 }
933}
934impl<'de> DeserializeStrict<'de> for CreateTaskResponse {
935 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
936 #[derive(Deserialize)]
937 enum __Tag0 {
938 #[serde(rename = "accepted")]
939 Value,
940 }
941 #[derive(Deserialize)]
942 #[serde(deny_unknown_fields)]
943 struct __Arm0 {
944 #[serde(rename = "type")]
945 _tag: __Tag0,
946 #[serde(rename = "accepted")]
947 value: Strict<CreateTaskResponseAccepted>,
948 }
949 #[derive(Deserialize)]
950 enum __Tag1 {
951 #[serde(rename = "skipped")]
952 Value,
953 }
954 #[derive(Deserialize)]
955 #[serde(deny_unknown_fields)]
956 struct __Arm1 {
957 #[serde(rename = "type")]
958 _tag: __Tag1,
959 #[serde(rename = "skipped")]
960 value: Strict<CreateTaskResponseSkipped>,
961 }
962 #[derive(Deserialize)]
963 #[serde(untagged)]
964 enum __Known {
965 Accepted(Box<__Arm0>),
966 Skipped(Box<__Arm1>),
967 }
968 Ok(match __Known::deserialize(deserializer)? {
969 __Known::Accepted(arm) => Self::Accepted(Box::new(arm.value.0)),
970 __Known::Skipped(arm) => Self::Skipped(arm.value.0),
971 })
972 }
973}
974
975#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
977pub struct CreateTaskResponseAccepted {
978 #[serde(rename = "task")]
980 pub task: Task,
981}
982impl<'de> DeserializeStrict<'de> for CreateTaskResponseAccepted {
983 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
984 #[derive(Deserialize)]
985 #[serde(deny_unknown_fields)]
986 struct __Wire {
987 #[serde(rename = "task")]
988 task: Strict<Task>,
989 }
990 let wire = __Wire::deserialize(deserializer)?;
991 Ok(Self { task: wire.task.0 })
992 }
993}
994
995#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
997pub struct CreateTaskResponseSkipped {}
998impl<'de> DeserializeStrict<'de> for CreateTaskResponseSkipped {
999 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1000 #[derive(Deserialize)]
1001 #[serde(deny_unknown_fields)]
1002 struct __Wire {}
1003 __Wire::deserialize(deserializer)?;
1004 Ok(Self {})
1005 }
1006}
1007
1008#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1010pub struct CreateWorkerPoolRequest {
1011 #[serde(rename = "capabilities")]
1013 pub capabilities: WorkerCapabilities,
1014 #[serde(rename = "maxWorkers")]
1016 #[serde(default, skip_serializing_if = "Option::is_none")]
1017 pub max_workers: Option<u32>,
1018 #[serde(rename = "name")]
1020 pub name: String,
1021}
1022impl<'de> DeserializeStrict<'de> for CreateWorkerPoolRequest {
1023 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1024 #[derive(Deserialize)]
1025 #[serde(deny_unknown_fields)]
1026 struct __Wire {
1027 #[serde(rename = "capabilities")]
1028 capabilities: Strict<WorkerCapabilities>,
1029 #[serde(rename = "maxWorkers")]
1030 #[serde(default)]
1031 max_workers: Strict<Option<u32>>,
1032 #[serde(rename = "name")]
1033 name: Strict<String>,
1034 }
1035 let wire = __Wire::deserialize(deserializer)?;
1036 Ok(Self {
1037 capabilities: wire.capabilities.0,
1038 max_workers: wire.max_workers.0,
1039 name: wire.name.0,
1040 })
1041 }
1042}
1043
1044#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1046pub struct DeletionApplicationProgress {
1047 #[serde(rename = "checked")]
1049 pub checked: SafeUnsignedLong,
1050 #[serde(rename = "columnGroup")]
1052 pub column_group: String,
1053 #[serde(rename = "groupCount")]
1055 pub group_count: SafeUnsignedLong,
1056 #[serde(rename = "groupIndex")]
1058 pub group_index: SafeUnsignedLong,
1059 #[serde(rename = "rewritten")]
1061 pub rewritten: SafeUnsignedLong,
1062 #[serde(rename = "skipped")]
1064 pub skipped: SafeUnsignedLong,
1065 #[serde(rename = "total")]
1067 #[serde(default, skip_serializing_if = "Option::is_none")]
1068 pub total: Option<SafeUnsignedLong>,
1069}
1070impl<'de> DeserializeStrict<'de> for DeletionApplicationProgress {
1071 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1072 #[derive(Deserialize)]
1073 #[serde(deny_unknown_fields)]
1074 struct __Wire {
1075 #[serde(rename = "checked")]
1076 checked: Strict<SafeUnsignedLong>,
1077 #[serde(rename = "columnGroup")]
1078 column_group: Strict<String>,
1079 #[serde(rename = "groupCount")]
1080 group_count: Strict<SafeUnsignedLong>,
1081 #[serde(rename = "groupIndex")]
1082 group_index: Strict<SafeUnsignedLong>,
1083 #[serde(rename = "rewritten")]
1084 rewritten: Strict<SafeUnsignedLong>,
1085 #[serde(rename = "skipped")]
1086 skipped: Strict<SafeUnsignedLong>,
1087 #[serde(rename = "total")]
1088 #[serde(default)]
1089 total: Strict<Option<SafeUnsignedLong>>,
1090 }
1091 let wire = __Wire::deserialize(deserializer)?;
1092 Ok(Self {
1093 checked: wire.checked.0,
1094 column_group: wire.column_group.0,
1095 group_count: wire.group_count.0,
1096 group_index: wire.group_index.0,
1097 rewritten: wire.rewritten.0,
1098 skipped: wire.skipped.0,
1099 total: wire.total.0,
1100 })
1101 }
1102}
1103
1104#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1106pub struct DrainWorkerResponse {
1107 #[serde(rename = "workerSession")]
1109 pub worker_session: WorkerSession,
1110}
1111impl<'de> DeserializeStrict<'de> for DrainWorkerResponse {
1112 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1113 #[derive(Deserialize)]
1114 #[serde(deny_unknown_fields)]
1115 struct __Wire {
1116 #[serde(rename = "workerSession")]
1117 worker_session: Strict<WorkerSession>,
1118 }
1119 let wire = __Wire::deserialize(deserializer)?;
1120 Ok(Self {
1121 worker_session: wire.worker_session.0,
1122 })
1123 }
1124}
1125
1126#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1129pub struct EnrichmentComputeDefinition {
1130 #[serde(rename = "enrichmentResourceId")]
1132 pub enrichment_resource_id: Uuid,
1133 #[serde(rename = "fragmentIds")]
1135 pub fragment_ids: Vec<Uuid>,
1136 #[serde(rename = "readTarget")]
1138 pub read_target: TaskReadTarget,
1139}
1140impl<'de> DeserializeStrict<'de> for EnrichmentComputeDefinition {
1141 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1142 #[derive(Deserialize)]
1143 #[serde(deny_unknown_fields)]
1144 struct __Wire {
1145 #[serde(rename = "enrichmentResourceId")]
1146 enrichment_resource_id: Strict<Uuid>,
1147 #[serde(rename = "fragmentIds")]
1148 fragment_ids: Strict<Vec<Uuid>>,
1149 #[serde(rename = "readTarget")]
1150 read_target: Strict<TaskReadTarget>,
1151 }
1152 let wire = __Wire::deserialize(deserializer)?;
1153 Ok(Self {
1154 enrichment_resource_id: wire.enrichment_resource_id.0,
1155 fragment_ids: wire.fragment_ids.0,
1156 read_target: wire.read_target.0,
1157 })
1158 }
1159}
1160
1161#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1165pub struct EnrichmentRefreshDefinition {
1166 #[serde(rename = "enrichmentResourceId")]
1168 pub enrichment_resource_id: Uuid,
1169 #[serde(rename = "readTarget")]
1171 pub read_target: TaskReadTarget,
1172}
1173impl<'de> DeserializeStrict<'de> for EnrichmentRefreshDefinition {
1174 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1175 #[derive(Deserialize)]
1176 #[serde(deny_unknown_fields)]
1177 struct __Wire {
1178 #[serde(rename = "enrichmentResourceId")]
1179 enrichment_resource_id: Strict<Uuid>,
1180 #[serde(rename = "readTarget")]
1181 read_target: Strict<TaskReadTarget>,
1182 }
1183 let wire = __Wire::deserialize(deserializer)?;
1184 Ok(Self {
1185 enrichment_resource_id: wire.enrichment_resource_id.0,
1186 read_target: wire.read_target.0,
1187 })
1188 }
1189}
1190
1191#[derive(Clone, Debug, PartialEq, Eq)]
1193pub enum FinishAttemptOutcome {
1194 Cancelled(FinishAttemptOutcomeCancelled),
1196 Failed(FinishAttemptOutcomeFailed),
1198 Succeeded(FinishAttemptOutcomeSucceeded),
1200 Unknown { tag: String, value: Value },
1202}
1203impl Serialize for FinishAttemptOutcome {
1204 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1205 match self {
1206 Self::Cancelled(value) => {
1207 let mut object = serde_json::Map::new();
1208 object.insert("type".into(), Value::String("cancelled".into()));
1209 object.insert(
1210 "cancelled".into(),
1211 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
1212 );
1213 Value::Object(object).serialize(serializer)
1214 }
1215 Self::Failed(value) => {
1216 let mut object = serde_json::Map::new();
1217 object.insert("type".into(), Value::String("failed".into()));
1218 object.insert(
1219 "failed".into(),
1220 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
1221 );
1222 Value::Object(object).serialize(serializer)
1223 }
1224 Self::Succeeded(value) => {
1225 let mut object = serde_json::Map::new();
1226 object.insert("type".into(), Value::String("succeeded".into()));
1227 object.insert(
1228 "succeeded".into(),
1229 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
1230 );
1231 Value::Object(object).serialize(serializer)
1232 }
1233 Self::Unknown { tag, value } => {
1234 if value.get("type").and_then(Value::as_str) != Some(tag.as_str()) {
1235 return Err(serde::ser::Error::custom(
1236 "unknown union discriminator mismatch",
1237 ));
1238 }
1239 value.serialize(serializer)
1240 }
1241 }
1242 }
1243}
1244impl<'de> Deserialize<'de> for FinishAttemptOutcome {
1245 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1246 let value = Value::deserialize(deserializer)?;
1247 let tag = value
1248 .get("type")
1249 .and_then(Value::as_str)
1250 .ok_or_else(|| serde::de::Error::custom("union requires type"))?;
1251 match tag {
1252 "cancelled" => Ok(Self::Cancelled(
1253 serde_json::from_value(
1254 value
1255 .get("cancelled")
1256 .cloned()
1257 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
1258 )
1259 .map_err(serde::de::Error::custom)?,
1260 )),
1261 "failed" => Ok(Self::Failed(
1262 serde_json::from_value(
1263 value
1264 .get("failed")
1265 .cloned()
1266 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
1267 )
1268 .map_err(serde::de::Error::custom)?,
1269 )),
1270 "succeeded" => Ok(Self::Succeeded(
1271 serde_json::from_value(
1272 value
1273 .get("succeeded")
1274 .cloned()
1275 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
1276 )
1277 .map_err(serde::de::Error::custom)?,
1278 )),
1279 tag => Ok(Self::Unknown {
1280 tag: tag.to_owned(),
1281 value,
1282 }),
1283 }
1284 }
1285}
1286impl<'de> DeserializeStrict<'de> for FinishAttemptOutcome {
1287 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1288 #[derive(Deserialize)]
1289 enum __Tag0 {
1290 #[serde(rename = "cancelled")]
1291 Value,
1292 }
1293 #[derive(Deserialize)]
1294 #[serde(deny_unknown_fields)]
1295 struct __Arm0 {
1296 #[serde(rename = "type")]
1297 _tag: __Tag0,
1298 #[serde(rename = "cancelled")]
1299 value: Strict<FinishAttemptOutcomeCancelled>,
1300 }
1301 #[derive(Deserialize)]
1302 enum __Tag1 {
1303 #[serde(rename = "failed")]
1304 Value,
1305 }
1306 #[derive(Deserialize)]
1307 #[serde(deny_unknown_fields)]
1308 struct __Arm1 {
1309 #[serde(rename = "type")]
1310 _tag: __Tag1,
1311 #[serde(rename = "failed")]
1312 value: Strict<FinishAttemptOutcomeFailed>,
1313 }
1314 #[derive(Deserialize)]
1315 enum __Tag2 {
1316 #[serde(rename = "succeeded")]
1317 Value,
1318 }
1319 #[derive(Deserialize)]
1320 #[serde(deny_unknown_fields)]
1321 struct __Arm2 {
1322 #[serde(rename = "type")]
1323 _tag: __Tag2,
1324 #[serde(rename = "succeeded")]
1325 value: Strict<FinishAttemptOutcomeSucceeded>,
1326 }
1327 #[derive(Deserialize)]
1328 #[serde(untagged)]
1329 enum __Known {
1330 Cancelled(Box<__Arm0>),
1331 Failed(Box<__Arm1>),
1332 Succeeded(Box<__Arm2>),
1333 }
1334 Ok(match __Known::deserialize(deserializer)? {
1335 __Known::Cancelled(arm) => Self::Cancelled(arm.value.0),
1336 __Known::Failed(arm) => Self::Failed(arm.value.0),
1337 __Known::Succeeded(arm) => Self::Succeeded(arm.value.0),
1338 })
1339 }
1340}
1341
1342#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1344pub struct FinishAttemptOutcomeCancelled {}
1345impl<'de> DeserializeStrict<'de> for FinishAttemptOutcomeCancelled {
1346 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1347 #[derive(Deserialize)]
1348 #[serde(deny_unknown_fields)]
1349 struct __Wire {}
1350 __Wire::deserialize(deserializer)?;
1351 Ok(Self {})
1352 }
1353}
1354
1355#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1357pub struct FinishAttemptOutcomeFailed {
1358 #[serde(rename = "failure")]
1360 pub failure: TaskFailure,
1361}
1362impl<'de> DeserializeStrict<'de> for FinishAttemptOutcomeFailed {
1363 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1364 #[derive(Deserialize)]
1365 #[serde(deny_unknown_fields)]
1366 struct __Wire {
1367 #[serde(rename = "failure")]
1368 failure: Strict<TaskFailure>,
1369 }
1370 let wire = __Wire::deserialize(deserializer)?;
1371 Ok(Self {
1372 failure: wire.failure.0,
1373 })
1374 }
1375}
1376
1377#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1379pub struct FinishAttemptOutcomeSucceeded {
1380 #[serde(rename = "result")]
1382 pub result: Value,
1383}
1384impl<'de> DeserializeStrict<'de> for FinishAttemptOutcomeSucceeded {
1385 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1386 #[derive(Deserialize)]
1387 #[serde(deny_unknown_fields)]
1388 struct __Wire {
1389 #[serde(rename = "result")]
1390 result: Strict<Value>,
1391 }
1392 let wire = __Wire::deserialize(deserializer)?;
1393 Ok(Self {
1394 result: wire.result.0,
1395 })
1396 }
1397}
1398
1399#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1401pub struct FinishAttemptRequest {
1402 #[serde(rename = "outcome")]
1404 pub outcome: FinishAttemptOutcome,
1405}
1406impl<'de> DeserializeStrict<'de> for FinishAttemptRequest {
1407 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1408 #[derive(Deserialize)]
1409 #[serde(deny_unknown_fields)]
1410 struct __Wire {
1411 #[serde(rename = "outcome")]
1412 outcome: Strict<FinishAttemptOutcome>,
1413 }
1414 let wire = __Wire::deserialize(deserializer)?;
1415 Ok(Self {
1416 outcome: wire.outcome.0,
1417 })
1418 }
1419}
1420
1421#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1423pub struct FinishAttemptResponse {
1424 #[serde(rename = "attempt")]
1426 pub attempt: TaskAttempt,
1427 #[serde(rename = "task")]
1429 pub task: Task,
1430}
1431impl<'de> DeserializeStrict<'de> for FinishAttemptResponse {
1432 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1433 #[derive(Deserialize)]
1434 #[serde(deny_unknown_fields)]
1435 struct __Wire {
1436 #[serde(rename = "attempt")]
1437 attempt: Strict<TaskAttempt>,
1438 #[serde(rename = "task")]
1439 task: Strict<Task>,
1440 }
1441 let wire = __Wire::deserialize(deserializer)?;
1442 Ok(Self {
1443 attempt: wire.attempt.0,
1444 task: wire.task.0,
1445 })
1446 }
1447}
1448
1449#[derive(Clone, Debug, PartialEq, Eq)]
1451pub enum GpuRuntime {
1452 Cuda,
1454 Unknown(String),
1456}
1457impl Serialize for GpuRuntime {
1458 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1459 serializer.serialize_str(match self {
1460 Self::Cuda => "cuda",
1461 Self::Unknown(value) => value,
1462 })
1463 }
1464}
1465impl<'de> Deserialize<'de> for GpuRuntime {
1466 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1467 Ok(match String::deserialize(deserializer)?.as_str() {
1468 "cuda" => Self::Cuda,
1469 value => Self::Unknown(value.to_owned()),
1470 })
1471 }
1472}
1473impl<'de> DeserializeStrict<'de> for GpuRuntime {
1474 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1475 #[derive(Deserialize)]
1476 enum __Known {
1477 #[serde(rename = "cuda")]
1478 Cuda,
1479 }
1480 Ok(match __Known::deserialize(deserializer)? {
1481 __Known::Cuda => Self::Cuda,
1482 })
1483 }
1484}
1485
1486#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1488pub struct HeartbeatWorkerRequest {
1489 #[serde(rename = "capabilities")]
1491 pub capabilities: WorkerCapabilities,
1492 #[serde(rename = "currentAttemptId")]
1494 #[serde(default, skip_serializing_if = "Option::is_none")]
1495 pub current_attempt_id: Option<Uuid>,
1496 #[serde(rename = "metrics")]
1498 #[serde(default, skip_serializing_if = "Option::is_none")]
1499 pub metrics: Option<Value>,
1500 #[serde(rename = "progress")]
1502 #[serde(default, skip_serializing_if = "Option::is_none")]
1503 pub progress: Option<TaskProgress>,
1504 #[serde(rename = "resourceUsage")]
1506 #[serde(default, skip_serializing_if = "Option::is_none")]
1507 pub resource_usage: Option<ResourceUsage>,
1508}
1509impl<'de> DeserializeStrict<'de> for HeartbeatWorkerRequest {
1510 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1511 #[derive(Deserialize)]
1512 #[serde(deny_unknown_fields)]
1513 struct __Wire {
1514 #[serde(rename = "capabilities")]
1515 capabilities: Strict<WorkerCapabilities>,
1516 #[serde(rename = "currentAttemptId")]
1517 #[serde(default)]
1518 current_attempt_id: Strict<Option<Uuid>>,
1519 #[serde(rename = "metrics")]
1520 #[serde(default)]
1521 metrics: Strict<Option<Value>>,
1522 #[serde(rename = "progress")]
1523 #[serde(default)]
1524 progress: Strict<Option<TaskProgress>>,
1525 #[serde(rename = "resourceUsage")]
1526 #[serde(default)]
1527 resource_usage: Strict<Option<ResourceUsage>>,
1528 }
1529 let wire = __Wire::deserialize(deserializer)?;
1530 Ok(Self {
1531 capabilities: wire.capabilities.0,
1532 current_attempt_id: wire.current_attempt_id.0,
1533 metrics: wire.metrics.0,
1534 progress: wire.progress.0,
1535 resource_usage: wire.resource_usage.0,
1536 })
1537 }
1538}
1539
1540#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1542pub struct HeartbeatWorkerResponse {
1543 #[serde(rename = "lease")]
1545 #[serde(default, skip_serializing_if = "Option::is_none")]
1546 pub lease: Option<AttemptLease>,
1547 #[serde(rename = "workerSession")]
1549 pub worker_session: WorkerSession,
1550}
1551impl<'de> DeserializeStrict<'de> for HeartbeatWorkerResponse {
1552 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1553 #[derive(Deserialize)]
1554 #[serde(deny_unknown_fields)]
1555 struct __Wire {
1556 #[serde(rename = "lease")]
1557 #[serde(default)]
1558 lease: Strict<Option<AttemptLease>>,
1559 #[serde(rename = "workerSession")]
1560 worker_session: Strict<WorkerSession>,
1561 }
1562 let wire = __Wire::deserialize(deserializer)?;
1563 Ok(Self {
1564 lease: wire.lease.0,
1565 worker_session: wire.worker_session.0,
1566 })
1567 }
1568}
1569
1570#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1572pub struct InvocationPage {
1573 #[serde(rename = "items")]
1575 pub items: Vec<TriggerInvocation>,
1576 #[serde(rename = "nextPageToken")]
1578 #[serde(default, skip_serializing_if = "Option::is_none")]
1579 pub next_page_token: Option<String>,
1580}
1581impl<'de> DeserializeStrict<'de> for InvocationPage {
1582 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1583 #[derive(Deserialize)]
1584 #[serde(deny_unknown_fields)]
1585 struct __Wire {
1586 #[serde(rename = "items")]
1587 items: Strict<Vec<TriggerInvocation>>,
1588 #[serde(rename = "nextPageToken")]
1589 #[serde(default)]
1590 next_page_token: Strict<Option<String>>,
1591 }
1592 let wire = __Wire::deserialize(deserializer)?;
1593 Ok(Self {
1594 items: wire.items.0,
1595 next_page_token: wire.next_page_token.0,
1596 })
1597 }
1598}
1599
1600#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1602pub struct InvocationPageRequest {
1603 #[serde(rename = "pageToken")]
1605 #[serde(default, skip_serializing_if = "Option::is_none")]
1606 pub page_token: Option<String>,
1607}
1608impl<'de> DeserializeStrict<'de> for InvocationPageRequest {
1609 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1610 #[derive(Deserialize)]
1611 #[serde(deny_unknown_fields)]
1612 struct __Wire {
1613 #[serde(rename = "pageToken")]
1614 #[serde(default)]
1615 page_token: Strict<Option<String>>,
1616 }
1617 let wire = __Wire::deserialize(deserializer)?;
1618 Ok(Self {
1619 page_token: wire.page_token.0,
1620 })
1621 }
1622}
1623
1624#[derive(Clone, Debug, PartialEq, Eq)]
1626pub enum InvocationStatus {
1627 Accepted,
1629 Skipped,
1631 Unknown(String),
1633}
1634impl Serialize for InvocationStatus {
1635 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1636 serializer.serialize_str(match self {
1637 Self::Accepted => "accepted",
1638 Self::Skipped => "skipped",
1639 Self::Unknown(value) => value,
1640 })
1641 }
1642}
1643impl<'de> Deserialize<'de> for InvocationStatus {
1644 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1645 Ok(match String::deserialize(deserializer)?.as_str() {
1646 "accepted" => Self::Accepted,
1647 "skipped" => Self::Skipped,
1648 value => Self::Unknown(value.to_owned()),
1649 })
1650 }
1651}
1652impl<'de> DeserializeStrict<'de> for InvocationStatus {
1653 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1654 #[derive(Deserialize)]
1655 enum __Known {
1656 #[serde(rename = "accepted")]
1657 Accepted,
1658 #[serde(rename = "skipped")]
1659 Skipped,
1660 }
1661 Ok(match __Known::deserialize(deserializer)? {
1662 __Known::Accepted => Self::Accepted,
1663 __Known::Skipped => Self::Skipped,
1664 })
1665 }
1666}
1667
1668#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1670pub struct LegacyCompactionParameters {
1671 #[serde(rename = "maxScopeFragments")]
1673 pub max_scope_fragments: SafeUnsignedLong,
1674 #[serde(rename = "memoryBudgetBytes")]
1676 pub memory_budget_bytes: SafeUnsignedLong,
1677 #[serde(rename = "sizeThresholdBytes")]
1679 pub size_threshold_bytes: SafeUnsignedLong,
1680}
1681impl<'de> DeserializeStrict<'de> for LegacyCompactionParameters {
1682 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1683 #[derive(Deserialize)]
1684 #[serde(deny_unknown_fields)]
1685 struct __Wire {
1686 #[serde(rename = "maxScopeFragments")]
1687 max_scope_fragments: Strict<SafeUnsignedLong>,
1688 #[serde(rename = "memoryBudgetBytes")]
1689 memory_budget_bytes: Strict<SafeUnsignedLong>,
1690 #[serde(rename = "sizeThresholdBytes")]
1691 size_threshold_bytes: Strict<SafeUnsignedLong>,
1692 }
1693 let wire = __Wire::deserialize(deserializer)?;
1694 Ok(Self {
1695 max_scope_fragments: wire.max_scope_fragments.0,
1696 memory_budget_bytes: wire.memory_budget_bytes.0,
1697 size_threshold_bytes: wire.size_threshold_bytes.0,
1698 })
1699 }
1700}
1701
1702#[derive(Clone, Debug, PartialEq, Eq)]
1704pub enum LegacyCompactionStrategy {
1705 SizeBased,
1707 Overlaps,
1709 Unknown(String),
1711}
1712impl Serialize for LegacyCompactionStrategy {
1713 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1714 serializer.serialize_str(match self {
1715 Self::SizeBased => "size_based",
1716 Self::Overlaps => "overlaps",
1717 Self::Unknown(value) => value,
1718 })
1719 }
1720}
1721impl<'de> Deserialize<'de> for LegacyCompactionStrategy {
1722 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1723 Ok(match String::deserialize(deserializer)?.as_str() {
1724 "size_based" => Self::SizeBased,
1725 "overlaps" => Self::Overlaps,
1726 value => Self::Unknown(value.to_owned()),
1727 })
1728 }
1729}
1730impl<'de> DeserializeStrict<'de> for LegacyCompactionStrategy {
1731 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1732 #[derive(Deserialize)]
1733 enum __Known {
1734 #[serde(rename = "size_based")]
1735 SizeBased,
1736 #[serde(rename = "overlaps")]
1737 Overlaps,
1738 }
1739 Ok(match __Known::deserialize(deserializer)? {
1740 __Known::SizeBased => Self::SizeBased,
1741 __Known::Overlaps => Self::Overlaps,
1742 })
1743 }
1744}
1745
1746#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1749pub struct LegacyTableCompactionWorkerDefinition {
1750 #[serde(rename = "asofMicros")]
1752 pub asof_micros: SafeUnsignedLong,
1753 #[serde(rename = "columnGroup")]
1755 pub column_group: Vec<String>,
1756 #[serde(rename = "coordinatorTaskId")]
1758 pub coordinator_task_id: Uuid,
1759 #[serde(rename = "parameters")]
1761 pub parameters: LegacyCompactionParameters,
1762 #[serde(rename = "runId")]
1764 pub run_id: String,
1765 #[serde(rename = "strategies")]
1767 pub strategies: Vec<LegacyCompactionStrategy>,
1768 #[serde(rename = "tableId")]
1770 pub table_id: String,
1771}
1772impl<'de> DeserializeStrict<'de> for LegacyTableCompactionWorkerDefinition {
1773 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1774 #[derive(Deserialize)]
1775 #[serde(deny_unknown_fields)]
1776 struct __Wire {
1777 #[serde(rename = "asofMicros")]
1778 asof_micros: Strict<SafeUnsignedLong>,
1779 #[serde(rename = "columnGroup")]
1780 column_group: Strict<Vec<String>>,
1781 #[serde(rename = "coordinatorTaskId")]
1782 coordinator_task_id: Strict<Uuid>,
1783 #[serde(rename = "parameters")]
1784 parameters: Strict<LegacyCompactionParameters>,
1785 #[serde(rename = "runId")]
1786 run_id: Strict<String>,
1787 #[serde(rename = "strategies")]
1788 strategies: Strict<Vec<LegacyCompactionStrategy>>,
1789 #[serde(rename = "tableId")]
1790 table_id: Strict<String>,
1791 }
1792 let wire = __Wire::deserialize(deserializer)?;
1793 Ok(Self {
1794 asof_micros: wire.asof_micros.0,
1795 column_group: wire.column_group.0,
1796 coordinator_task_id: wire.coordinator_task_id.0,
1797 parameters: wire.parameters.0,
1798 run_id: wire.run_id.0,
1799 strategies: wire.strategies.0,
1800 table_id: wire.table_id.0,
1801 })
1802 }
1803}
1804
1805#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1807pub struct LegacyTableDefinition {
1808 #[serde(rename = "strip")]
1810 #[serde(default, skip_serializing_if = "Option::is_none")]
1811 pub strip: Option<bool>,
1812 #[serde(rename = "tableId")]
1814 pub table_id: String,
1815}
1816impl<'de> DeserializeStrict<'de> for LegacyTableDefinition {
1817 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1818 #[derive(Deserialize)]
1819 #[serde(deny_unknown_fields)]
1820 struct __Wire {
1821 #[serde(rename = "strip")]
1822 #[serde(default)]
1823 strip: Strict<Option<bool>>,
1824 #[serde(rename = "tableId")]
1825 table_id: Strict<String>,
1826 }
1827 let wire = __Wire::deserialize(deserializer)?;
1828 Ok(Self {
1829 strip: wire.strip.0,
1830 table_id: wire.table_id.0,
1831 })
1832 }
1833}
1834
1835#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1839pub struct LegacyTableMaintenanceDefinition {
1840 #[serde(rename = "fanOut")]
1842 #[serde(default, skip_serializing_if = "Option::is_none")]
1843 pub fan_out: Option<bool>,
1844 #[serde(rename = "strip")]
1846 #[serde(default, skip_serializing_if = "Option::is_none")]
1847 pub strip: Option<bool>,
1848 #[serde(rename = "tableId")]
1850 pub table_id: String,
1851}
1852impl<'de> DeserializeStrict<'de> for LegacyTableMaintenanceDefinition {
1853 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1854 #[derive(Deserialize)]
1855 #[serde(deny_unknown_fields)]
1856 struct __Wire {
1857 #[serde(rename = "fanOut")]
1858 #[serde(default)]
1859 fan_out: Strict<Option<bool>>,
1860 #[serde(rename = "strip")]
1861 #[serde(default)]
1862 strip: Strict<Option<bool>>,
1863 #[serde(rename = "tableId")]
1864 table_id: Strict<String>,
1865 }
1866 let wire = __Wire::deserialize(deserializer)?;
1867 Ok(Self {
1868 fan_out: wire.fan_out.0,
1869 strip: wire.strip.0,
1870 table_id: wire.table_id.0,
1871 })
1872 }
1873}
1874
1875#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1877pub struct ListTaskSpecsResponse {
1878 #[serde(rename = "taskSpecs")]
1880 pub task_specs: Vec<TaskSpecDefaults>,
1881}
1882impl<'de> DeserializeStrict<'de> for ListTaskSpecsResponse {
1883 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1884 #[derive(Deserialize)]
1885 #[serde(deny_unknown_fields)]
1886 struct __Wire {
1887 #[serde(rename = "taskSpecs")]
1888 task_specs: Strict<Vec<TaskSpecDefaults>>,
1889 }
1890 let wire = __Wire::deserialize(deserializer)?;
1891 Ok(Self {
1892 task_specs: wire.task_specs.0,
1893 })
1894 }
1895}
1896
1897#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
1899pub struct ListTasksRequest {
1900 #[serde(rename = "legacyTableId")]
1902 #[serde(default, skip_serializing_if = "Option::is_none")]
1903 pub legacy_table_id: Option<String>,
1904 #[serde(rename = "origin")]
1906 #[serde(default, skip_serializing_if = "Option::is_none")]
1907 pub origin: Option<TaskOrigin>,
1908 #[serde(rename = "pageSize")]
1910 #[serde(default, skip_serializing_if = "Option::is_none")]
1911 pub page_size: Option<u32>,
1912 #[serde(rename = "pageToken")]
1914 #[serde(default, skip_serializing_if = "Option::is_none")]
1915 pub page_token: Option<String>,
1916 #[serde(rename = "parentTaskId")]
1918 #[serde(default, skip_serializing_if = "Option::is_none")]
1919 pub parent_task_id: Option<Uuid>,
1920 #[serde(rename = "query")]
1922 #[serde(default, skip_serializing_if = "Option::is_none")]
1923 pub query: Option<String>,
1924 #[serde(rename = "resourceId")]
1926 #[serde(default, skip_serializing_if = "Option::is_none")]
1927 pub resource_id: Option<Uuid>,
1928 #[serde(rename = "resourceRole")]
1930 #[serde(default, skip_serializing_if = "Option::is_none")]
1931 pub resource_role: Option<TaskResourceRole>,
1932 #[serde(rename = "status")]
1934 #[serde(default, skip_serializing_if = "Option::is_none")]
1935 pub status: Option<TaskStatus>,
1936 #[serde(rename = "taskSpecName")]
1938 #[serde(default, skip_serializing_if = "Option::is_none")]
1939 pub task_spec_name: Option<String>,
1940 #[serde(rename = "workerPoolId")]
1942 #[serde(default, skip_serializing_if = "Option::is_none")]
1943 pub worker_pool_id: Option<Uuid>,
1944 #[serde(rename = "workerSessionId")]
1946 #[serde(default, skip_serializing_if = "Option::is_none")]
1947 pub worker_session_id: Option<Uuid>,
1948}
1949impl<'de> DeserializeStrict<'de> for ListTasksRequest {
1950 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1951 #[derive(Deserialize)]
1952 #[serde(deny_unknown_fields)]
1953 struct __Wire {
1954 #[serde(rename = "legacyTableId")]
1955 #[serde(default)]
1956 legacy_table_id: Strict<Option<String>>,
1957 #[serde(rename = "origin")]
1958 #[serde(default)]
1959 origin: Strict<Option<TaskOrigin>>,
1960 #[serde(rename = "pageSize")]
1961 #[serde(default)]
1962 page_size: Strict<Option<u32>>,
1963 #[serde(rename = "pageToken")]
1964 #[serde(default)]
1965 page_token: Strict<Option<String>>,
1966 #[serde(rename = "parentTaskId")]
1967 #[serde(default)]
1968 parent_task_id: Strict<Option<Uuid>>,
1969 #[serde(rename = "query")]
1970 #[serde(default)]
1971 query: Strict<Option<String>>,
1972 #[serde(rename = "resourceId")]
1973 #[serde(default)]
1974 resource_id: Strict<Option<Uuid>>,
1975 #[serde(rename = "resourceRole")]
1976 #[serde(default)]
1977 resource_role: Strict<Option<TaskResourceRole>>,
1978 #[serde(rename = "status")]
1979 #[serde(default)]
1980 status: Strict<Option<TaskStatus>>,
1981 #[serde(rename = "taskSpecName")]
1982 #[serde(default)]
1983 task_spec_name: Strict<Option<String>>,
1984 #[serde(rename = "workerPoolId")]
1985 #[serde(default)]
1986 worker_pool_id: Strict<Option<Uuid>>,
1987 #[serde(rename = "workerSessionId")]
1988 #[serde(default)]
1989 worker_session_id: Strict<Option<Uuid>>,
1990 }
1991 let wire = __Wire::deserialize(deserializer)?;
1992 Ok(Self {
1993 legacy_table_id: wire.legacy_table_id.0,
1994 origin: wire.origin.0,
1995 page_size: wire.page_size.0,
1996 page_token: wire.page_token.0,
1997 parent_task_id: wire.parent_task_id.0,
1998 query: wire.query.0,
1999 resource_id: wire.resource_id.0,
2000 resource_role: wire.resource_role.0,
2001 status: wire.status.0,
2002 task_spec_name: wire.task_spec_name.0,
2003 worker_pool_id: wire.worker_pool_id.0,
2004 worker_session_id: wire.worker_session_id.0,
2005 })
2006 }
2007}
2008
2009#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2011pub struct ListTasksResponse {
2012 #[serde(rename = "nextPageToken")]
2014 #[serde(default, skip_serializing_if = "Option::is_none")]
2015 pub next_page_token: Option<String>,
2016 #[serde(rename = "targetResources")]
2018 pub target_resources: BTreeMap<String, Vec<TaskResourceReference>>,
2019 #[serde(rename = "tasks")]
2021 pub tasks: Vec<Task>,
2022}
2023impl<'de> DeserializeStrict<'de> for ListTasksResponse {
2024 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2025 #[derive(Deserialize)]
2026 #[serde(deny_unknown_fields)]
2027 struct __Wire {
2028 #[serde(rename = "nextPageToken")]
2029 #[serde(default)]
2030 next_page_token: Strict<Option<String>>,
2031 #[serde(rename = "targetResources")]
2032 target_resources: Strict<BTreeMap<String, Vec<TaskResourceReference>>>,
2033 #[serde(rename = "tasks")]
2034 tasks: Strict<Vec<Task>>,
2035 }
2036 let wire = __Wire::deserialize(deserializer)?;
2037 Ok(Self {
2038 next_page_token: wire.next_page_token.0,
2039 target_resources: wire.target_resources.0,
2040 tasks: wire.tasks.0,
2041 })
2042 }
2043}
2044
2045#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2047pub struct ListWorkerAttemptsRequest {
2048 #[serde(rename = "pageSize")]
2050 #[serde(default, skip_serializing_if = "Option::is_none")]
2051 pub page_size: Option<u32>,
2052 #[serde(rename = "pageToken")]
2054 #[serde(default, skip_serializing_if = "Option::is_none")]
2055 pub page_token: Option<String>,
2056}
2057impl<'de> DeserializeStrict<'de> for ListWorkerAttemptsRequest {
2058 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2059 #[derive(Deserialize)]
2060 #[serde(deny_unknown_fields)]
2061 struct __Wire {
2062 #[serde(rename = "pageSize")]
2063 #[serde(default)]
2064 page_size: Strict<Option<u32>>,
2065 #[serde(rename = "pageToken")]
2066 #[serde(default)]
2067 page_token: Strict<Option<String>>,
2068 }
2069 let wire = __Wire::deserialize(deserializer)?;
2070 Ok(Self {
2071 page_size: wire.page_size.0,
2072 page_token: wire.page_token.0,
2073 })
2074 }
2075}
2076
2077#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2079pub struct ListWorkerAttemptsResponse {
2080 #[serde(rename = "attempts")]
2082 pub attempts: Vec<WorkerAttempt>,
2083 #[serde(rename = "nextPageToken")]
2085 #[serde(default, skip_serializing_if = "Option::is_none")]
2086 pub next_page_token: Option<String>,
2087}
2088impl<'de> DeserializeStrict<'de> for ListWorkerAttemptsResponse {
2089 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2090 #[derive(Deserialize)]
2091 #[serde(deny_unknown_fields)]
2092 struct __Wire {
2093 #[serde(rename = "attempts")]
2094 attempts: Strict<Vec<WorkerAttempt>>,
2095 #[serde(rename = "nextPageToken")]
2096 #[serde(default)]
2097 next_page_token: Strict<Option<String>>,
2098 }
2099 let wire = __Wire::deserialize(deserializer)?;
2100 Ok(Self {
2101 attempts: wire.attempts.0,
2102 next_page_token: wire.next_page_token.0,
2103 })
2104 }
2105}
2106
2107#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2109pub struct ListWorkerPoolsRequest {
2110 #[serde(rename = "pageSize")]
2112 #[serde(default, skip_serializing_if = "Option::is_none")]
2113 pub page_size: Option<u32>,
2114 #[serde(rename = "pageToken")]
2116 #[serde(default, skip_serializing_if = "Option::is_none")]
2117 pub page_token: Option<String>,
2118 #[serde(rename = "workerPoolId")]
2120 #[serde(default, skip_serializing_if = "Option::is_none")]
2121 pub worker_pool_id: Option<Uuid>,
2122}
2123impl<'de> DeserializeStrict<'de> for ListWorkerPoolsRequest {
2124 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2125 #[derive(Deserialize)]
2126 #[serde(deny_unknown_fields)]
2127 struct __Wire {
2128 #[serde(rename = "pageSize")]
2129 #[serde(default)]
2130 page_size: Strict<Option<u32>>,
2131 #[serde(rename = "pageToken")]
2132 #[serde(default)]
2133 page_token: Strict<Option<String>>,
2134 #[serde(rename = "workerPoolId")]
2135 #[serde(default)]
2136 worker_pool_id: Strict<Option<Uuid>>,
2137 }
2138 let wire = __Wire::deserialize(deserializer)?;
2139 Ok(Self {
2140 page_size: wire.page_size.0,
2141 page_token: wire.page_token.0,
2142 worker_pool_id: wire.worker_pool_id.0,
2143 })
2144 }
2145}
2146
2147#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2149pub struct ListWorkerPoolsResponse {
2150 #[serde(rename = "nextPageToken")]
2152 #[serde(default, skip_serializing_if = "Option::is_none")]
2153 pub next_page_token: Option<String>,
2154 #[serde(rename = "stats")]
2156 pub stats: Vec<WorkerPoolStats>,
2157 #[serde(rename = "workerPools")]
2159 pub worker_pools: Vec<WorkerPool>,
2160}
2161impl<'de> DeserializeStrict<'de> for ListWorkerPoolsResponse {
2162 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2163 #[derive(Deserialize)]
2164 #[serde(deny_unknown_fields)]
2165 struct __Wire {
2166 #[serde(rename = "nextPageToken")]
2167 #[serde(default)]
2168 next_page_token: Strict<Option<String>>,
2169 #[serde(rename = "stats")]
2170 stats: Strict<Vec<WorkerPoolStats>>,
2171 #[serde(rename = "workerPools")]
2172 worker_pools: Strict<Vec<WorkerPool>>,
2173 }
2174 let wire = __Wire::deserialize(deserializer)?;
2175 Ok(Self {
2176 next_page_token: wire.next_page_token.0,
2177 stats: wire.stats.0,
2178 worker_pools: wire.worker_pools.0,
2179 })
2180 }
2181}
2182
2183#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2185pub struct ListWorkerSessionsRequest {
2186 #[serde(rename = "pageSize")]
2188 #[serde(default, skip_serializing_if = "Option::is_none")]
2189 pub page_size: Option<u32>,
2190 #[serde(rename = "pageToken")]
2192 #[serde(default, skip_serializing_if = "Option::is_none")]
2193 pub page_token: Option<String>,
2194 #[serde(rename = "status")]
2196 #[serde(default, skip_serializing_if = "Option::is_none")]
2197 pub status: Option<WorkerSessionStatus>,
2198 #[serde(rename = "workerPoolId")]
2200 #[serde(default, skip_serializing_if = "Option::is_none")]
2201 pub worker_pool_id: Option<Uuid>,
2202}
2203impl<'de> DeserializeStrict<'de> for ListWorkerSessionsRequest {
2204 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2205 #[derive(Deserialize)]
2206 #[serde(deny_unknown_fields)]
2207 struct __Wire {
2208 #[serde(rename = "pageSize")]
2209 #[serde(default)]
2210 page_size: Strict<Option<u32>>,
2211 #[serde(rename = "pageToken")]
2212 #[serde(default)]
2213 page_token: Strict<Option<String>>,
2214 #[serde(rename = "status")]
2215 #[serde(default)]
2216 status: Strict<Option<WorkerSessionStatus>>,
2217 #[serde(rename = "workerPoolId")]
2218 #[serde(default)]
2219 worker_pool_id: Strict<Option<Uuid>>,
2220 }
2221 let wire = __Wire::deserialize(deserializer)?;
2222 Ok(Self {
2223 page_size: wire.page_size.0,
2224 page_token: wire.page_token.0,
2225 status: wire.status.0,
2226 worker_pool_id: wire.worker_pool_id.0,
2227 })
2228 }
2229}
2230
2231#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2233pub struct ListWorkerSessionsResponse {
2234 #[serde(rename = "nextPageToken")]
2236 #[serde(default, skip_serializing_if = "Option::is_none")]
2237 pub next_page_token: Option<String>,
2238 #[serde(rename = "workerSessions")]
2240 pub worker_sessions: Vec<WorkerSession>,
2241}
2242impl<'de> DeserializeStrict<'de> for ListWorkerSessionsResponse {
2243 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2244 #[derive(Deserialize)]
2245 #[serde(deny_unknown_fields)]
2246 struct __Wire {
2247 #[serde(rename = "nextPageToken")]
2248 #[serde(default)]
2249 next_page_token: Strict<Option<String>>,
2250 #[serde(rename = "workerSessions")]
2251 worker_sessions: Strict<Vec<WorkerSession>>,
2252 }
2253 let wire = __Wire::deserialize(deserializer)?;
2254 Ok(Self {
2255 next_page_token: wire.next_page_token.0,
2256 worker_sessions: wire.worker_sessions.0,
2257 })
2258 }
2259}
2260
2261#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2264pub struct LocationRefreshDefinition {
2265 #[serde(rename = "locationResourceId")]
2267 pub location_resource_id: Uuid,
2268 #[serde(rename = "readTarget")]
2270 pub read_target: TaskReadTarget,
2271}
2272impl<'de> DeserializeStrict<'de> for LocationRefreshDefinition {
2273 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2274 #[derive(Deserialize)]
2275 #[serde(deny_unknown_fields)]
2276 struct __Wire {
2277 #[serde(rename = "locationResourceId")]
2278 location_resource_id: Strict<Uuid>,
2279 #[serde(rename = "readTarget")]
2280 read_target: Strict<TaskReadTarget>,
2281 }
2282 let wire = __Wire::deserialize(deserializer)?;
2283 Ok(Self {
2284 location_resource_id: wire.location_resource_id.0,
2285 read_target: wire.read_target.0,
2286 })
2287 }
2288}
2289
2290#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2292pub struct MaintenanceTaskProgress {
2293 #[serde(rename = "compaction")]
2295 #[serde(default, skip_serializing_if = "Option::is_none")]
2296 pub compaction: Option<ColumnGroupCompactionProgress>,
2297 #[serde(rename = "completed")]
2299 pub completed: SafeUnsignedLong,
2300 #[serde(rename = "deletionApplication")]
2302 #[serde(default, skip_serializing_if = "Option::is_none")]
2303 pub deletion_application: Option<DeletionApplicationProgress>,
2304 #[serde(rename = "lastCompactionCommit")]
2306 #[serde(default, skip_serializing_if = "Option::is_none")]
2307 pub last_compaction_commit: Option<ColumnGroupCompactionCommit>,
2308 #[serde(rename = "pass")]
2310 pub pass: u32,
2311 #[serde(rename = "stage")]
2313 pub stage: MaintenanceTaskStage,
2314 #[serde(rename = "total")]
2316 #[serde(default, skip_serializing_if = "Option::is_none")]
2317 pub total: Option<SafeUnsignedLong>,
2318}
2319impl<'de> DeserializeStrict<'de> for MaintenanceTaskProgress {
2320 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2321 #[derive(Deserialize)]
2322 #[serde(deny_unknown_fields)]
2323 struct __Wire {
2324 #[serde(rename = "compaction")]
2325 #[serde(default)]
2326 compaction: Strict<Option<ColumnGroupCompactionProgress>>,
2327 #[serde(rename = "completed")]
2328 completed: Strict<SafeUnsignedLong>,
2329 #[serde(rename = "deletionApplication")]
2330 #[serde(default)]
2331 deletion_application: Strict<Option<DeletionApplicationProgress>>,
2332 #[serde(rename = "lastCompactionCommit")]
2333 #[serde(default)]
2334 last_compaction_commit: Strict<Option<ColumnGroupCompactionCommit>>,
2335 #[serde(rename = "pass")]
2336 pass: Strict<u32>,
2337 #[serde(rename = "stage")]
2338 stage: Strict<MaintenanceTaskStage>,
2339 #[serde(rename = "total")]
2340 #[serde(default)]
2341 total: Strict<Option<SafeUnsignedLong>>,
2342 }
2343 let wire = __Wire::deserialize(deserializer)?;
2344 Ok(Self {
2345 compaction: wire.compaction.0,
2346 completed: wire.completed.0,
2347 deletion_application: wire.deletion_application.0,
2348 last_compaction_commit: wire.last_compaction_commit.0,
2349 pass: wire.pass.0,
2350 stage: wire.stage.0,
2351 total: wire.total.0,
2352 })
2353 }
2354}
2355
2356#[derive(Clone, Debug, PartialEq, Eq)]
2358pub enum MaintenanceTaskStage {
2359 ReadingSnapshot,
2361 FlushingWal,
2363 Planning,
2365 PreparingCompaction,
2367 Compacting,
2369 CompactingKeySpaces,
2371 Unknown(String),
2373}
2374impl Serialize for MaintenanceTaskStage {
2375 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2376 serializer.serialize_str(match self {
2377 Self::ReadingSnapshot => "reading_snapshot",
2378 Self::FlushingWal => "flushing_wal",
2379 Self::Planning => "planning",
2380 Self::PreparingCompaction => "preparing_compaction",
2381 Self::Compacting => "compacting",
2382 Self::CompactingKeySpaces => "compacting_key_spaces",
2383 Self::Unknown(value) => value,
2384 })
2385 }
2386}
2387impl<'de> Deserialize<'de> for MaintenanceTaskStage {
2388 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2389 Ok(match String::deserialize(deserializer)?.as_str() {
2390 "reading_snapshot" => Self::ReadingSnapshot,
2391 "flushing_wal" => Self::FlushingWal,
2392 "planning" => Self::Planning,
2393 "preparing_compaction" => Self::PreparingCompaction,
2394 "compacting" => Self::Compacting,
2395 "compacting_key_spaces" => Self::CompactingKeySpaces,
2396 value => Self::Unknown(value.to_owned()),
2397 })
2398 }
2399}
2400impl<'de> DeserializeStrict<'de> for MaintenanceTaskStage {
2401 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2402 #[derive(Deserialize)]
2403 enum __Known {
2404 #[serde(rename = "reading_snapshot")]
2405 ReadingSnapshot,
2406 #[serde(rename = "flushing_wal")]
2407 FlushingWal,
2408 #[serde(rename = "planning")]
2409 Planning,
2410 #[serde(rename = "preparing_compaction")]
2411 PreparingCompaction,
2412 #[serde(rename = "compacting")]
2413 Compacting,
2414 #[serde(rename = "compacting_key_spaces")]
2415 CompactingKeySpaces,
2416 }
2417 Ok(match __Known::deserialize(deserializer)? {
2418 __Known::ReadingSnapshot => Self::ReadingSnapshot,
2419 __Known::FlushingWal => Self::FlushingWal,
2420 __Known::Planning => Self::Planning,
2421 __Known::PreparingCompaction => Self::PreparingCompaction,
2422 __Known::Compacting => Self::Compacting,
2423 __Known::CompactingKeySpaces => Self::CompactingKeySpaces,
2424 })
2425 }
2426}
2427
2428#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2430pub struct PollTaskResponse {
2431 #[serde(rename = "task")]
2433 #[serde(default, skip_serializing_if = "Option::is_none")]
2434 pub task: Option<WorkerTask>,
2435}
2436impl<'de> DeserializeStrict<'de> for PollTaskResponse {
2437 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2438 #[derive(Deserialize)]
2439 #[serde(deny_unknown_fields)]
2440 struct __Wire {
2441 #[serde(rename = "task")]
2442 #[serde(default)]
2443 task: Strict<Option<WorkerTask>>,
2444 }
2445 let wire = __Wire::deserialize(deserializer)?;
2446 Ok(Self { task: wire.task.0 })
2447 }
2448}
2449
2450#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2452pub struct PublishedVersion {
2453 #[serde(rename = "resourceId")]
2455 pub resource_id: Uuid,
2456 #[serde(rename = "versionId")]
2458 pub version_id: Uuid,
2459}
2460impl<'de> DeserializeStrict<'de> for PublishedVersion {
2461 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2462 #[derive(Deserialize)]
2463 #[serde(deny_unknown_fields)]
2464 struct __Wire {
2465 #[serde(rename = "resourceId")]
2466 resource_id: Strict<Uuid>,
2467 #[serde(rename = "versionId")]
2468 version_id: Strict<Uuid>,
2469 }
2470 let wire = __Wire::deserialize(deserializer)?;
2471 Ok(Self {
2472 resource_id: wire.resource_id.0,
2473 version_id: wire.version_id.0,
2474 })
2475 }
2476}
2477
2478#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2480pub struct RegisterWorkerRequest {
2481 #[serde(rename = "capabilities")]
2483 pub capabilities: WorkerCapabilities,
2484 #[serde(rename = "processInstanceId")]
2486 pub process_instance_id: Uuid,
2487 #[serde(rename = "projectId")]
2489 pub project_id: String,
2490 #[serde(rename = "releaseVersion")]
2492 pub release_version: String,
2493 #[serde(rename = "tags")]
2495 #[serde(default, skip_serializing_if = "Option::is_none")]
2496 pub tags: Option<WorkerSessionTags>,
2497 #[serde(rename = "workerPoolId")]
2499 #[serde(default, skip_serializing_if = "Option::is_none")]
2500 pub worker_pool_id: Option<Uuid>,
2501}
2502impl<'de> DeserializeStrict<'de> for RegisterWorkerRequest {
2503 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2504 #[derive(Deserialize)]
2505 #[serde(deny_unknown_fields)]
2506 struct __Wire {
2507 #[serde(rename = "capabilities")]
2508 capabilities: Strict<WorkerCapabilities>,
2509 #[serde(rename = "processInstanceId")]
2510 process_instance_id: Strict<Uuid>,
2511 #[serde(rename = "projectId")]
2512 project_id: Strict<String>,
2513 #[serde(rename = "releaseVersion")]
2514 release_version: Strict<String>,
2515 #[serde(rename = "tags")]
2516 #[serde(default)]
2517 tags: Strict<Option<WorkerSessionTags>>,
2518 #[serde(rename = "workerPoolId")]
2519 #[serde(default)]
2520 worker_pool_id: Strict<Option<Uuid>>,
2521 }
2522 let wire = __Wire::deserialize(deserializer)?;
2523 Ok(Self {
2524 capabilities: wire.capabilities.0,
2525 process_instance_id: wire.process_instance_id.0,
2526 project_id: wire.project_id.0,
2527 release_version: wire.release_version.0,
2528 tags: wire.tags.0,
2529 worker_pool_id: wire.worker_pool_id.0,
2530 })
2531 }
2532}
2533
2534#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2536pub struct RegisterWorkerResponse {
2537 #[serde(rename = "workerSession")]
2539 pub worker_session: WorkerSession,
2540}
2541impl<'de> DeserializeStrict<'de> for RegisterWorkerResponse {
2542 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2543 #[derive(Deserialize)]
2544 #[serde(deny_unknown_fields)]
2545 struct __Wire {
2546 #[serde(rename = "workerSession")]
2547 worker_session: Strict<WorkerSession>,
2548 }
2549 let wire = __Wire::deserialize(deserializer)?;
2550 Ok(Self {
2551 worker_session: wire.worker_session.0,
2552 })
2553 }
2554}
2555
2556#[derive(Clone, Debug, PartialEq, Eq)]
2558pub enum ResourceEventType {
2559 ResourceUpdated,
2561 Unknown(String),
2563}
2564impl Serialize for ResourceEventType {
2565 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2566 serializer.serialize_str(match self {
2567 Self::ResourceUpdated => "resource_updated",
2568 Self::Unknown(value) => value,
2569 })
2570 }
2571}
2572impl<'de> Deserialize<'de> for ResourceEventType {
2573 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2574 Ok(match String::deserialize(deserializer)?.as_str() {
2575 "resource_updated" => Self::ResourceUpdated,
2576 value => Self::Unknown(value.to_owned()),
2577 })
2578 }
2579}
2580impl<'de> DeserializeStrict<'de> for ResourceEventType {
2581 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2582 #[derive(Deserialize)]
2583 enum __Known {
2584 #[serde(rename = "resource_updated")]
2585 ResourceUpdated,
2586 }
2587 Ok(match __Known::deserialize(deserializer)? {
2588 __Known::ResourceUpdated => Self::ResourceUpdated,
2589 })
2590 }
2591}
2592
2593#[derive(Clone, Debug, PartialEq, Eq)]
2595pub enum ResourceProfile {
2596 Cpu1,
2598 Cpu2,
2600 Cpu4,
2602 Cpu8,
2604 Cpu16,
2606 Unknown(String),
2608}
2609impl Serialize for ResourceProfile {
2610 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2611 serializer.serialize_str(match self {
2612 Self::Cpu1 => "cpu_1",
2613 Self::Cpu2 => "cpu_2",
2614 Self::Cpu4 => "cpu_4",
2615 Self::Cpu8 => "cpu_8",
2616 Self::Cpu16 => "cpu_16",
2617 Self::Unknown(value) => value,
2618 })
2619 }
2620}
2621impl<'de> Deserialize<'de> for ResourceProfile {
2622 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2623 Ok(match String::deserialize(deserializer)?.as_str() {
2624 "cpu_1" => Self::Cpu1,
2625 "cpu_2" => Self::Cpu2,
2626 "cpu_4" => Self::Cpu4,
2627 "cpu_8" => Self::Cpu8,
2628 "cpu_16" => Self::Cpu16,
2629 value => Self::Unknown(value.to_owned()),
2630 })
2631 }
2632}
2633impl<'de> DeserializeStrict<'de> for ResourceProfile {
2634 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2635 #[derive(Deserialize)]
2636 enum __Known {
2637 #[serde(rename = "cpu_1")]
2638 Cpu1,
2639 #[serde(rename = "cpu_2")]
2640 Cpu2,
2641 #[serde(rename = "cpu_4")]
2642 Cpu4,
2643 #[serde(rename = "cpu_8")]
2644 Cpu8,
2645 #[serde(rename = "cpu_16")]
2646 Cpu16,
2647 }
2648 Ok(match __Known::deserialize(deserializer)? {
2649 __Known::Cpu1 => Self::Cpu1,
2650 __Known::Cpu2 => Self::Cpu2,
2651 __Known::Cpu4 => Self::Cpu4,
2652 __Known::Cpu8 => Self::Cpu8,
2653 __Known::Cpu16 => Self::Cpu16,
2654 })
2655 }
2656}
2657
2658#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2660pub struct ResourceProfileDetails {
2661 #[serde(rename = "cpu")]
2663 pub cpu: u32,
2664 #[serde(rename = "id")]
2666 pub id: ResourceProfile,
2667 #[serde(rename = "memoryGib")]
2669 pub memory_gib: SafeUnsignedLong,
2670}
2671impl<'de> DeserializeStrict<'de> for ResourceProfileDetails {
2672 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2673 #[derive(Deserialize)]
2674 #[serde(deny_unknown_fields)]
2675 struct __Wire {
2676 #[serde(rename = "cpu")]
2677 cpu: Strict<u32>,
2678 #[serde(rename = "id")]
2679 id: Strict<ResourceProfile>,
2680 #[serde(rename = "memoryGib")]
2681 memory_gib: Strict<SafeUnsignedLong>,
2682 }
2683 let wire = __Wire::deserialize(deserializer)?;
2684 Ok(Self {
2685 cpu: wire.cpu.0,
2686 id: wire.id.0,
2687 memory_gib: wire.memory_gib.0,
2688 })
2689 }
2690}
2691
2692#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2694pub struct ResourceUsage {
2695 #[serde(rename = "cpuLimitMillicores")]
2697 #[serde(default, skip_serializing_if = "Option::is_none")]
2698 pub cpu_limit_millicores: Option<SafeUnsignedLong>,
2699 #[serde(rename = "cpuTimeMicros")]
2701 #[serde(default, skip_serializing_if = "Option::is_none")]
2702 pub cpu_time_micros: Option<SafeUnsignedLong>,
2703 #[serde(rename = "durationMicros")]
2705 pub duration_micros: SafeUnsignedLong,
2706 #[serde(rename = "memoryBytes")]
2708 #[serde(default, skip_serializing_if = "Option::is_none")]
2709 pub memory_bytes: Option<SafeUnsignedLong>,
2710 #[serde(rename = "memoryLimitBytes")]
2712 #[serde(default, skip_serializing_if = "Option::is_none")]
2713 pub memory_limit_bytes: Option<SafeUnsignedLong>,
2714 #[serde(rename = "observedAtMicros")]
2716 pub observed_at_micros: SafeLong,
2717 #[serde(rename = "peakMemoryBytes")]
2719 #[serde(default, skip_serializing_if = "Option::is_none")]
2720 pub peak_memory_bytes: Option<SafeUnsignedLong>,
2721 #[serde(rename = "sequence")]
2723 pub sequence: SafeUnsignedLong,
2724 #[serde(rename = "source")]
2726 pub source: ResourceUsageSource,
2727}
2728impl<'de> DeserializeStrict<'de> for ResourceUsage {
2729 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2730 #[derive(Deserialize)]
2731 #[serde(deny_unknown_fields)]
2732 struct __Wire {
2733 #[serde(rename = "cpuLimitMillicores")]
2734 #[serde(default)]
2735 cpu_limit_millicores: Strict<Option<SafeUnsignedLong>>,
2736 #[serde(rename = "cpuTimeMicros")]
2737 #[serde(default)]
2738 cpu_time_micros: Strict<Option<SafeUnsignedLong>>,
2739 #[serde(rename = "durationMicros")]
2740 duration_micros: Strict<SafeUnsignedLong>,
2741 #[serde(rename = "memoryBytes")]
2742 #[serde(default)]
2743 memory_bytes: Strict<Option<SafeUnsignedLong>>,
2744 #[serde(rename = "memoryLimitBytes")]
2745 #[serde(default)]
2746 memory_limit_bytes: Strict<Option<SafeUnsignedLong>>,
2747 #[serde(rename = "observedAtMicros")]
2748 observed_at_micros: Strict<SafeLong>,
2749 #[serde(rename = "peakMemoryBytes")]
2750 #[serde(default)]
2751 peak_memory_bytes: Strict<Option<SafeUnsignedLong>>,
2752 #[serde(rename = "sequence")]
2753 sequence: Strict<SafeUnsignedLong>,
2754 #[serde(rename = "source")]
2755 source: Strict<ResourceUsageSource>,
2756 }
2757 let wire = __Wire::deserialize(deserializer)?;
2758 Ok(Self {
2759 cpu_limit_millicores: wire.cpu_limit_millicores.0,
2760 cpu_time_micros: wire.cpu_time_micros.0,
2761 duration_micros: wire.duration_micros.0,
2762 memory_bytes: wire.memory_bytes.0,
2763 memory_limit_bytes: wire.memory_limit_bytes.0,
2764 observed_at_micros: wire.observed_at_micros.0,
2765 peak_memory_bytes: wire.peak_memory_bytes.0,
2766 sequence: wire.sequence.0,
2767 source: wire.source.0,
2768 })
2769 }
2770}
2771
2772#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2774pub struct ResourceUsageHistory {
2775 #[serde(rename = "attempts")]
2777 pub attempts: Vec<WorkerAttempt>,
2778 #[serde(rename = "fromMicros")]
2780 pub from_micros: SafeLong,
2781 #[serde(rename = "points")]
2783 pub points: Vec<ResourceUsageSummary>,
2784 #[serde(rename = "resolutionMicros")]
2786 pub resolution_micros: SafeLong,
2787 #[serde(rename = "toMicros")]
2789 pub to_micros: SafeLong,
2790}
2791impl<'de> DeserializeStrict<'de> for ResourceUsageHistory {
2792 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2793 #[derive(Deserialize)]
2794 #[serde(deny_unknown_fields)]
2795 struct __Wire {
2796 #[serde(rename = "attempts")]
2797 attempts: Strict<Vec<WorkerAttempt>>,
2798 #[serde(rename = "fromMicros")]
2799 from_micros: Strict<SafeLong>,
2800 #[serde(rename = "points")]
2801 points: Strict<Vec<ResourceUsageSummary>>,
2802 #[serde(rename = "resolutionMicros")]
2803 resolution_micros: Strict<SafeLong>,
2804 #[serde(rename = "toMicros")]
2805 to_micros: Strict<SafeLong>,
2806 }
2807 let wire = __Wire::deserialize(deserializer)?;
2808 Ok(Self {
2809 attempts: wire.attempts.0,
2810 from_micros: wire.from_micros.0,
2811 points: wire.points.0,
2812 resolution_micros: wire.resolution_micros.0,
2813 to_micros: wire.to_micros.0,
2814 })
2815 }
2816}
2817
2818#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2820pub struct ResourceUsageRequest {
2821 #[serde(rename = "attemptId")]
2823 #[serde(default, skip_serializing_if = "Option::is_none")]
2824 pub attempt_id: Option<Uuid>,
2825}
2826impl<'de> DeserializeStrict<'de> for ResourceUsageRequest {
2827 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2828 #[derive(Deserialize)]
2829 #[serde(deny_unknown_fields)]
2830 struct __Wire {
2831 #[serde(rename = "attemptId")]
2832 #[serde(default)]
2833 attempt_id: Strict<Option<Uuid>>,
2834 }
2835 let wire = __Wire::deserialize(deserializer)?;
2836 Ok(Self {
2837 attempt_id: wire.attempt_id.0,
2838 })
2839 }
2840}
2841
2842#[derive(Clone, Debug, PartialEq, Eq)]
2844pub enum ResourceUsageSource {
2845 Cgroup,
2847 ProcessTree,
2849 Unknown(String),
2851}
2852impl Serialize for ResourceUsageSource {
2853 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2854 serializer.serialize_str(match self {
2855 Self::Cgroup => "cgroup",
2856 Self::ProcessTree => "process_tree",
2857 Self::Unknown(value) => value,
2858 })
2859 }
2860}
2861impl<'de> Deserialize<'de> for ResourceUsageSource {
2862 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2863 Ok(match String::deserialize(deserializer)?.as_str() {
2864 "cgroup" => Self::Cgroup,
2865 "process_tree" => Self::ProcessTree,
2866 value => Self::Unknown(value.to_owned()),
2867 })
2868 }
2869}
2870impl<'de> DeserializeStrict<'de> for ResourceUsageSource {
2871 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2872 #[derive(Deserialize)]
2873 enum __Known {
2874 #[serde(rename = "cgroup")]
2875 Cgroup,
2876 #[serde(rename = "process_tree")]
2877 ProcessTree,
2878 }
2879 Ok(match __Known::deserialize(deserializer)? {
2880 __Known::Cgroup => Self::Cgroup,
2881 __Known::ProcessTree => Self::ProcessTree,
2882 })
2883 }
2884}
2885
2886#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2888pub struct ResourceUsageSummary {
2889 #[serde(rename = "cpuObservedMicros")]
2891 pub cpu_observed_micros: SafeUnsignedLong,
2892 #[serde(rename = "cpuTimeMicros")]
2894 pub cpu_time_micros: SafeUnsignedLong,
2895 #[serde(rename = "latest")]
2897 pub latest: ResourceUsage,
2898 #[serde(rename = "peakMemoryBytes")]
2900 #[serde(default, skip_serializing_if = "Option::is_none")]
2901 pub peak_memory_bytes: Option<SafeUnsignedLong>,
2902 #[serde(rename = "receivedAtMicros")]
2904 pub received_at_micros: SafeLong,
2905}
2906impl<'de> DeserializeStrict<'de> for ResourceUsageSummary {
2907 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2908 #[derive(Deserialize)]
2909 #[serde(deny_unknown_fields)]
2910 struct __Wire {
2911 #[serde(rename = "cpuObservedMicros")]
2912 cpu_observed_micros: Strict<SafeUnsignedLong>,
2913 #[serde(rename = "cpuTimeMicros")]
2914 cpu_time_micros: Strict<SafeUnsignedLong>,
2915 #[serde(rename = "latest")]
2916 latest: Strict<ResourceUsage>,
2917 #[serde(rename = "peakMemoryBytes")]
2918 #[serde(default)]
2919 peak_memory_bytes: Strict<Option<SafeUnsignedLong>>,
2920 #[serde(rename = "receivedAtMicros")]
2921 received_at_micros: Strict<SafeLong>,
2922 }
2923 let wire = __Wire::deserialize(deserializer)?;
2924 Ok(Self {
2925 cpu_observed_micros: wire.cpu_observed_micros.0,
2926 cpu_time_micros: wire.cpu_time_micros.0,
2927 latest: wire.latest.0,
2928 peak_memory_bytes: wire.peak_memory_bytes.0,
2929 received_at_micros: wire.received_at_micros.0,
2930 })
2931 }
2932}
2933
2934#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2936pub struct RunTriggerRequest {
2937 #[serde(rename = "requestId")]
2939 pub request_id: Uuid,
2940}
2941impl<'de> DeserializeStrict<'de> for RunTriggerRequest {
2942 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2943 #[derive(Deserialize)]
2944 #[serde(deny_unknown_fields)]
2945 struct __Wire {
2946 #[serde(rename = "requestId")]
2947 request_id: Strict<Uuid>,
2948 }
2949 let wire = __Wire::deserialize(deserializer)?;
2950 Ok(Self {
2951 request_id: wire.request_id.0,
2952 })
2953 }
2954}
2955
2956#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
2958pub struct SubmitTaskRequest {
2959 #[serde(rename = "claim")]
2961 #[serde(default, skip_serializing_if = "Option::is_none")]
2962 pub claim: Option<TaskClaim>,
2963 #[serde(rename = "definition")]
2965 pub definition: TaskDefinition,
2966 #[serde(rename = "idempotencyKey")]
2968 pub idempotency_key: String,
2969 #[serde(rename = "options")]
2971 #[serde(default, skip_serializing_if = "Option::is_none")]
2972 pub options: Option<TaskOptions>,
2973 #[serde(rename = "parentTaskId")]
2975 #[serde(default, skip_serializing_if = "Option::is_none")]
2976 pub parent_task_id: Option<Uuid>,
2977}
2978impl<'de> DeserializeStrict<'de> for SubmitTaskRequest {
2979 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2980 #[derive(Deserialize)]
2981 #[serde(deny_unknown_fields)]
2982 struct __Wire {
2983 #[serde(rename = "claim")]
2984 #[serde(default)]
2985 claim: Strict<Option<TaskClaim>>,
2986 #[serde(rename = "definition")]
2987 definition: Strict<TaskDefinition>,
2988 #[serde(rename = "idempotencyKey")]
2989 idempotency_key: Strict<String>,
2990 #[serde(rename = "options")]
2991 #[serde(default)]
2992 options: Strict<Option<TaskOptions>>,
2993 #[serde(rename = "parentTaskId")]
2994 #[serde(default)]
2995 parent_task_id: Strict<Option<Uuid>>,
2996 }
2997 let wire = __Wire::deserialize(deserializer)?;
2998 Ok(Self {
2999 claim: wire.claim.0,
3000 definition: wire.definition.0,
3001 idempotency_key: wire.idempotency_key.0,
3002 options: wire.options.0,
3003 parent_task_id: wire.parent_task_id.0,
3004 })
3005 }
3006}
3007
3008#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
3011pub struct TableMaintenanceDefinition {
3012 #[serde(rename = "readTarget")]
3014 pub read_target: TaskReadTarget,
3015 #[serde(rename = "tableResourceId")]
3017 pub table_resource_id: Uuid,
3018}
3019impl<'de> DeserializeStrict<'de> for TableMaintenanceDefinition {
3020 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3021 #[derive(Deserialize)]
3022 #[serde(deny_unknown_fields)]
3023 struct __Wire {
3024 #[serde(rename = "readTarget")]
3025 read_target: Strict<TaskReadTarget>,
3026 #[serde(rename = "tableResourceId")]
3027 table_resource_id: Strict<Uuid>,
3028 }
3029 let wire = __Wire::deserialize(deserializer)?;
3030 Ok(Self {
3031 read_target: wire.read_target.0,
3032 table_resource_id: wire.table_resource_id.0,
3033 })
3034 }
3035}
3036
3037#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
3039pub struct Task {
3040 #[serde(rename = "attemptCount")]
3042 pub attempt_count: u32,
3043 #[serde(rename = "availableAtMicros")]
3045 pub available_at_micros: SafeLong,
3046 #[serde(rename = "buffered")]
3048 pub buffered: bool,
3049 #[serde(rename = "cancellationReason")]
3051 #[serde(default, skip_serializing_if = "Option::is_none")]
3052 pub cancellation_reason: Option<TaskCancellationReason>,
3053 #[serde(rename = "cancelledBy")]
3055 #[serde(default, skip_serializing_if = "Option::is_none")]
3056 pub cancelled_by: Option<Caller>,
3057 #[serde(rename = "claim")]
3059 #[serde(default, skip_serializing_if = "Option::is_none")]
3060 pub claim: Option<TaskClaim>,
3061 #[serde(rename = "createdAtMicros")]
3063 pub created_at_micros: SafeLong,
3064 #[serde(rename = "currentAttemptId")]
3066 #[serde(default, skip_serializing_if = "Option::is_none")]
3067 pub current_attempt_id: Option<Uuid>,
3068 #[serde(rename = "deadlineAtMicros")]
3070 #[serde(default, skip_serializing_if = "Option::is_none")]
3071 pub deadline_at_micros: Option<SafeLong>,
3072 #[serde(rename = "definition")]
3074 #[serde(default, skip_serializing_if = "Option::is_none")]
3075 pub definition: Option<TaskDefinition>,
3076 #[serde(rename = "failure")]
3078 #[serde(default, skip_serializing_if = "Option::is_none")]
3079 pub failure: Option<TaskFailure>,
3080 #[serde(rename = "latestWorker")]
3082 #[serde(default, skip_serializing_if = "Option::is_none")]
3083 pub latest_worker: Option<TaskWorker>,
3084 #[serde(rename = "legacyTableId")]
3086 #[serde(default, skip_serializing_if = "Option::is_none")]
3087 pub legacy_table_id: Option<String>,
3088 #[serde(rename = "maxAttempts")]
3090 pub max_attempts: u32,
3091 #[serde(rename = "maximumAttemptDurationMicros")]
3093 #[serde(default, skip_serializing_if = "Option::is_none")]
3094 pub maximum_attempt_duration_micros: Option<SafeLong>,
3095 #[serde(rename = "parentTaskId")]
3097 #[serde(default, skip_serializing_if = "Option::is_none")]
3098 pub parent_task_id: Option<Uuid>,
3099 #[serde(rename = "pendingExpiresAtMicros")]
3101 pub pending_expires_at_micros: SafeLong,
3102 #[serde(rename = "projectId")]
3104 pub project_id: String,
3105 #[serde(rename = "published")]
3107 #[serde(default, skip_serializing_if = "Option::is_none")]
3108 pub published: Option<TaskResult>,
3109 #[serde(rename = "requestedBy")]
3111 pub requested_by: Caller,
3112 #[serde(rename = "requirements")]
3114 pub requirements: TaskRequirements,
3115 #[serde(rename = "result")]
3117 #[serde(default, skip_serializing_if = "Option::is_none")]
3118 pub result: Option<Value>,
3119 #[serde(rename = "startedAtMicros")]
3121 #[serde(default, skip_serializing_if = "Option::is_none")]
3122 pub started_at_micros: Option<SafeLong>,
3123 #[serde(rename = "status")]
3125 pub status: TaskStatus,
3126 #[serde(rename = "stopDeadlineAtMicros")]
3128 #[serde(default, skip_serializing_if = "Option::is_none")]
3129 pub stop_deadline_at_micros: Option<SafeLong>,
3130 #[serde(rename = "stopReason")]
3132 #[serde(default, skip_serializing_if = "Option::is_none")]
3133 pub stop_reason: Option<TaskStopReason>,
3134 #[serde(rename = "stopRequestedAtMicros")]
3136 #[serde(default, skip_serializing_if = "Option::is_none")]
3137 pub stop_requested_at_micros: Option<SafeLong>,
3138 #[serde(rename = "taskId")]
3140 pub task_id: Uuid,
3141 #[serde(rename = "taskSpecId")]
3143 pub task_spec_id: TaskSpecId,
3144 #[serde(rename = "terminalAtMicros")]
3146 #[serde(default, skip_serializing_if = "Option::is_none")]
3147 pub terminal_at_micros: Option<SafeLong>,
3148 #[serde(rename = "updatedAtMicros")]
3150 pub updated_at_micros: SafeLong,
3151 #[serde(rename = "workerPoolClaimExpiresAtMicros")]
3153 #[serde(default, skip_serializing_if = "Option::is_none")]
3154 pub worker_pool_claim_expires_at_micros: Option<SafeLong>,
3155 #[serde(rename = "workerPoolId")]
3157 #[serde(default, skip_serializing_if = "Option::is_none")]
3158 pub worker_pool_id: Option<Uuid>,
3159}
3160impl<'de> DeserializeStrict<'de> for Task {
3161 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3162 #[derive(Deserialize)]
3163 #[serde(deny_unknown_fields)]
3164 struct __Wire {
3165 #[serde(rename = "attemptCount")]
3166 attempt_count: Strict<u32>,
3167 #[serde(rename = "availableAtMicros")]
3168 available_at_micros: Strict<SafeLong>,
3169 #[serde(rename = "buffered")]
3170 buffered: Strict<bool>,
3171 #[serde(rename = "cancellationReason")]
3172 #[serde(default)]
3173 cancellation_reason: Strict<Option<TaskCancellationReason>>,
3174 #[serde(rename = "cancelledBy")]
3175 #[serde(default)]
3176 cancelled_by: Strict<Option<Caller>>,
3177 #[serde(rename = "claim")]
3178 #[serde(default)]
3179 claim: Strict<Option<TaskClaim>>,
3180 #[serde(rename = "createdAtMicros")]
3181 created_at_micros: Strict<SafeLong>,
3182 #[serde(rename = "currentAttemptId")]
3183 #[serde(default)]
3184 current_attempt_id: Strict<Option<Uuid>>,
3185 #[serde(rename = "deadlineAtMicros")]
3186 #[serde(default)]
3187 deadline_at_micros: Strict<Option<SafeLong>>,
3188 #[serde(rename = "definition")]
3189 #[serde(default)]
3190 definition: Strict<Option<TaskDefinition>>,
3191 #[serde(rename = "failure")]
3192 #[serde(default)]
3193 failure: Strict<Option<TaskFailure>>,
3194 #[serde(rename = "latestWorker")]
3195 #[serde(default)]
3196 latest_worker: Strict<Option<TaskWorker>>,
3197 #[serde(rename = "legacyTableId")]
3198 #[serde(default)]
3199 legacy_table_id: Strict<Option<String>>,
3200 #[serde(rename = "maxAttempts")]
3201 max_attempts: Strict<u32>,
3202 #[serde(rename = "maximumAttemptDurationMicros")]
3203 #[serde(default)]
3204 maximum_attempt_duration_micros: Strict<Option<SafeLong>>,
3205 #[serde(rename = "parentTaskId")]
3206 #[serde(default)]
3207 parent_task_id: Strict<Option<Uuid>>,
3208 #[serde(rename = "pendingExpiresAtMicros")]
3209 pending_expires_at_micros: Strict<SafeLong>,
3210 #[serde(rename = "projectId")]
3211 project_id: Strict<String>,
3212 #[serde(rename = "published")]
3213 #[serde(default)]
3214 published: Strict<Option<TaskResult>>,
3215 #[serde(rename = "requestedBy")]
3216 requested_by: Strict<Caller>,
3217 #[serde(rename = "requirements")]
3218 requirements: Strict<TaskRequirements>,
3219 #[serde(rename = "result")]
3220 #[serde(default)]
3221 result: Strict<Option<Value>>,
3222 #[serde(rename = "startedAtMicros")]
3223 #[serde(default)]
3224 started_at_micros: Strict<Option<SafeLong>>,
3225 #[serde(rename = "status")]
3226 status: Strict<TaskStatus>,
3227 #[serde(rename = "stopDeadlineAtMicros")]
3228 #[serde(default)]
3229 stop_deadline_at_micros: Strict<Option<SafeLong>>,
3230 #[serde(rename = "stopReason")]
3231 #[serde(default)]
3232 stop_reason: Strict<Option<TaskStopReason>>,
3233 #[serde(rename = "stopRequestedAtMicros")]
3234 #[serde(default)]
3235 stop_requested_at_micros: Strict<Option<SafeLong>>,
3236 #[serde(rename = "taskId")]
3237 task_id: Strict<Uuid>,
3238 #[serde(rename = "taskSpecId")]
3239 task_spec_id: Strict<TaskSpecId>,
3240 #[serde(rename = "terminalAtMicros")]
3241 #[serde(default)]
3242 terminal_at_micros: Strict<Option<SafeLong>>,
3243 #[serde(rename = "updatedAtMicros")]
3244 updated_at_micros: Strict<SafeLong>,
3245 #[serde(rename = "workerPoolClaimExpiresAtMicros")]
3246 #[serde(default)]
3247 worker_pool_claim_expires_at_micros: Strict<Option<SafeLong>>,
3248 #[serde(rename = "workerPoolId")]
3249 #[serde(default)]
3250 worker_pool_id: Strict<Option<Uuid>>,
3251 }
3252 let wire = __Wire::deserialize(deserializer)?;
3253 Ok(Self {
3254 attempt_count: wire.attempt_count.0,
3255 available_at_micros: wire.available_at_micros.0,
3256 buffered: wire.buffered.0,
3257 cancellation_reason: wire.cancellation_reason.0,
3258 cancelled_by: wire.cancelled_by.0,
3259 claim: wire.claim.0,
3260 created_at_micros: wire.created_at_micros.0,
3261 current_attempt_id: wire.current_attempt_id.0,
3262 deadline_at_micros: wire.deadline_at_micros.0,
3263 definition: wire.definition.0,
3264 failure: wire.failure.0,
3265 latest_worker: wire.latest_worker.0,
3266 legacy_table_id: wire.legacy_table_id.0,
3267 max_attempts: wire.max_attempts.0,
3268 maximum_attempt_duration_micros: wire.maximum_attempt_duration_micros.0,
3269 parent_task_id: wire.parent_task_id.0,
3270 pending_expires_at_micros: wire.pending_expires_at_micros.0,
3271 project_id: wire.project_id.0,
3272 published: wire.published.0,
3273 requested_by: wire.requested_by.0,
3274 requirements: wire.requirements.0,
3275 result: wire.result.0,
3276 started_at_micros: wire.started_at_micros.0,
3277 status: wire.status.0,
3278 stop_deadline_at_micros: wire.stop_deadline_at_micros.0,
3279 stop_reason: wire.stop_reason.0,
3280 stop_requested_at_micros: wire.stop_requested_at_micros.0,
3281 task_id: wire.task_id.0,
3282 task_spec_id: wire.task_spec_id.0,
3283 terminal_at_micros: wire.terminal_at_micros.0,
3284 updated_at_micros: wire.updated_at_micros.0,
3285 worker_pool_claim_expires_at_micros: wire.worker_pool_claim_expires_at_micros.0,
3286 worker_pool_id: wire.worker_pool_id.0,
3287 })
3288 }
3289}
3290
3291#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
3293pub struct TaskAttempt {
3294 #[serde(rename = "attemptDeadlineAtMicros")]
3296 #[serde(default, skip_serializing_if = "Option::is_none")]
3297 pub attempt_deadline_at_micros: Option<SafeLong>,
3298 #[serde(rename = "attemptId")]
3300 pub attempt_id: Uuid,
3301 #[serde(rename = "failure")]
3303 #[serde(default, skip_serializing_if = "Option::is_none")]
3304 pub failure: Option<TaskFailure>,
3305 #[serde(rename = "lastHeartbeatAtMicros")]
3307 pub last_heartbeat_at_micros: SafeLong,
3308 #[serde(rename = "leaseExpiresAtMicros")]
3310 pub lease_expires_at_micros: SafeLong,
3311 #[serde(rename = "ordinal")]
3313 pub ordinal: u32,
3314 #[serde(rename = "progress")]
3316 #[serde(default, skip_serializing_if = "Option::is_none")]
3317 pub progress: Option<TaskProgress>,
3318 #[serde(rename = "resourceUsage")]
3320 #[serde(default, skip_serializing_if = "Option::is_none")]
3321 pub resource_usage: Option<ResourceUsageSummary>,
3322 #[serde(rename = "startedAtMicros")]
3324 pub started_at_micros: SafeLong,
3325 #[serde(rename = "status")]
3327 pub status: AttemptStatus,
3328 #[serde(rename = "taskId")]
3330 pub task_id: Uuid,
3331 #[serde(rename = "terminalAtMicros")]
3333 #[serde(default, skip_serializing_if = "Option::is_none")]
3334 pub terminal_at_micros: Option<SafeLong>,
3335 #[serde(rename = "workerSessionId")]
3337 pub worker_session_id: Uuid,
3338}
3339impl<'de> DeserializeStrict<'de> for TaskAttempt {
3340 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3341 #[derive(Deserialize)]
3342 #[serde(deny_unknown_fields)]
3343 struct __Wire {
3344 #[serde(rename = "attemptDeadlineAtMicros")]
3345 #[serde(default)]
3346 attempt_deadline_at_micros: Strict<Option<SafeLong>>,
3347 #[serde(rename = "attemptId")]
3348 attempt_id: Strict<Uuid>,
3349 #[serde(rename = "failure")]
3350 #[serde(default)]
3351 failure: Strict<Option<TaskFailure>>,
3352 #[serde(rename = "lastHeartbeatAtMicros")]
3353 last_heartbeat_at_micros: Strict<SafeLong>,
3354 #[serde(rename = "leaseExpiresAtMicros")]
3355 lease_expires_at_micros: Strict<SafeLong>,
3356 #[serde(rename = "ordinal")]
3357 ordinal: Strict<u32>,
3358 #[serde(rename = "progress")]
3359 #[serde(default)]
3360 progress: Strict<Option<TaskProgress>>,
3361 #[serde(rename = "resourceUsage")]
3362 #[serde(default)]
3363 resource_usage: Strict<Option<ResourceUsageSummary>>,
3364 #[serde(rename = "startedAtMicros")]
3365 started_at_micros: Strict<SafeLong>,
3366 #[serde(rename = "status")]
3367 status: Strict<AttemptStatus>,
3368 #[serde(rename = "taskId")]
3369 task_id: Strict<Uuid>,
3370 #[serde(rename = "terminalAtMicros")]
3371 #[serde(default)]
3372 terminal_at_micros: Strict<Option<SafeLong>>,
3373 #[serde(rename = "workerSessionId")]
3374 worker_session_id: Strict<Uuid>,
3375 }
3376 let wire = __Wire::deserialize(deserializer)?;
3377 Ok(Self {
3378 attempt_deadline_at_micros: wire.attempt_deadline_at_micros.0,
3379 attempt_id: wire.attempt_id.0,
3380 failure: wire.failure.0,
3381 last_heartbeat_at_micros: wire.last_heartbeat_at_micros.0,
3382 lease_expires_at_micros: wire.lease_expires_at_micros.0,
3383 ordinal: wire.ordinal.0,
3384 progress: wire.progress.0,
3385 resource_usage: wire.resource_usage.0,
3386 started_at_micros: wire.started_at_micros.0,
3387 status: wire.status.0,
3388 task_id: wire.task_id.0,
3389 terminal_at_micros: wire.terminal_at_micros.0,
3390 worker_session_id: wire.worker_session_id.0,
3391 })
3392 }
3393}
3394
3395#[derive(Clone, Debug, PartialEq, Eq)]
3397pub enum TaskCancellationReason {
3398 OverlapSkipped,
3400 User,
3402 PendingTimeout,
3404 ParentCancelled,
3406 ParentFailed,
3408 Unknown(String),
3410}
3411impl Serialize for TaskCancellationReason {
3412 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3413 serializer.serialize_str(match self {
3414 Self::OverlapSkipped => "overlap_skipped",
3415 Self::User => "user",
3416 Self::PendingTimeout => "pending_timeout",
3417 Self::ParentCancelled => "parent_cancelled",
3418 Self::ParentFailed => "parent_failed",
3419 Self::Unknown(value) => value,
3420 })
3421 }
3422}
3423impl<'de> Deserialize<'de> for TaskCancellationReason {
3424 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3425 Ok(match String::deserialize(deserializer)?.as_str() {
3426 "overlap_skipped" => Self::OverlapSkipped,
3427 "user" => Self::User,
3428 "pending_timeout" => Self::PendingTimeout,
3429 "parent_cancelled" => Self::ParentCancelled,
3430 "parent_failed" => Self::ParentFailed,
3431 value => Self::Unknown(value.to_owned()),
3432 })
3433 }
3434}
3435impl<'de> DeserializeStrict<'de> for TaskCancellationReason {
3436 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3437 #[derive(Deserialize)]
3438 enum __Known {
3439 #[serde(rename = "overlap_skipped")]
3440 OverlapSkipped,
3441 #[serde(rename = "user")]
3442 User,
3443 #[serde(rename = "pending_timeout")]
3444 PendingTimeout,
3445 #[serde(rename = "parent_cancelled")]
3446 ParentCancelled,
3447 #[serde(rename = "parent_failed")]
3448 ParentFailed,
3449 }
3450 Ok(match __Known::deserialize(deserializer)? {
3451 __Known::OverlapSkipped => Self::OverlapSkipped,
3452 __Known::User => Self::User,
3453 __Known::PendingTimeout => Self::PendingTimeout,
3454 __Known::ParentCancelled => Self::ParentCancelled,
3455 __Known::ParentFailed => Self::ParentFailed,
3456 })
3457 }
3458}
3459
3460#[derive(Clone, Debug, PartialEq, Eq)]
3466pub enum TaskClaim {
3467 Pool,
3469 Submitter,
3471 Unknown(String),
3473}
3474impl Serialize for TaskClaim {
3475 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3476 serializer.serialize_str(match self {
3477 Self::Pool => "pool",
3478 Self::Submitter => "submitter",
3479 Self::Unknown(value) => value,
3480 })
3481 }
3482}
3483impl<'de> Deserialize<'de> for TaskClaim {
3484 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3485 Ok(match String::deserialize(deserializer)?.as_str() {
3486 "pool" => Self::Pool,
3487 "submitter" => Self::Submitter,
3488 value => Self::Unknown(value.to_owned()),
3489 })
3490 }
3491}
3492impl<'de> DeserializeStrict<'de> for TaskClaim {
3493 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3494 #[derive(Deserialize)]
3495 enum __Known {
3496 #[serde(rename = "pool")]
3497 Pool,
3498 #[serde(rename = "submitter")]
3499 Submitter,
3500 }
3501 Ok(match __Known::deserialize(deserializer)? {
3502 __Known::Pool => Self::Pool,
3503 __Known::Submitter => Self::Submitter,
3504 })
3505 }
3506}
3507
3508#[derive(Clone, Debug, PartialEq, Eq)]
3511pub enum TaskDefinition {
3512 EnrichmentCompute(EnrichmentComputeDefinition),
3514 EnrichmentRefresh(EnrichmentRefreshDefinition),
3516 LegacyTableCompactionWorker(LegacyTableCompactionWorkerDefinition),
3518 LegacyTableMaintenance(LegacyTableMaintenanceDefinition),
3520 LegacyWalFlush(LegacyTableDefinition),
3522 LocationRefresh(LocationRefreshDefinition),
3524 TableMaintenance(TableMaintenanceDefinition),
3526 VectorIndexRefresh(VectorIndexRefreshDefinition),
3528 Unknown { tag: String, value: Value },
3530}
3531impl Serialize for TaskDefinition {
3532 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3533 match self {
3534 Self::EnrichmentCompute(value) => {
3535 let mut object = serde_json::Map::new();
3536 object.insert("type".into(), Value::String("enrichmentCompute".into()));
3537 object.insert(
3538 "enrichmentCompute".into(),
3539 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
3540 );
3541 Value::Object(object).serialize(serializer)
3542 }
3543 Self::EnrichmentRefresh(value) => {
3544 let mut object = serde_json::Map::new();
3545 object.insert("type".into(), Value::String("enrichmentRefresh".into()));
3546 object.insert(
3547 "enrichmentRefresh".into(),
3548 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
3549 );
3550 Value::Object(object).serialize(serializer)
3551 }
3552 Self::LegacyTableCompactionWorker(value) => {
3553 let mut object = serde_json::Map::new();
3554 object.insert(
3555 "type".into(),
3556 Value::String("legacyTableCompactionWorker".into()),
3557 );
3558 object.insert(
3559 "legacyTableCompactionWorker".into(),
3560 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
3561 );
3562 Value::Object(object).serialize(serializer)
3563 }
3564 Self::LegacyTableMaintenance(value) => {
3565 let mut object = serde_json::Map::new();
3566 object.insert(
3567 "type".into(),
3568 Value::String("legacyTableMaintenance".into()),
3569 );
3570 object.insert(
3571 "legacyTableMaintenance".into(),
3572 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
3573 );
3574 Value::Object(object).serialize(serializer)
3575 }
3576 Self::LegacyWalFlush(value) => {
3577 let mut object = serde_json::Map::new();
3578 object.insert("type".into(), Value::String("legacyWalFlush".into()));
3579 object.insert(
3580 "legacyWalFlush".into(),
3581 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
3582 );
3583 Value::Object(object).serialize(serializer)
3584 }
3585 Self::LocationRefresh(value) => {
3586 let mut object = serde_json::Map::new();
3587 object.insert("type".into(), Value::String("locationRefresh".into()));
3588 object.insert(
3589 "locationRefresh".into(),
3590 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
3591 );
3592 Value::Object(object).serialize(serializer)
3593 }
3594 Self::TableMaintenance(value) => {
3595 let mut object = serde_json::Map::new();
3596 object.insert("type".into(), Value::String("tableMaintenance".into()));
3597 object.insert(
3598 "tableMaintenance".into(),
3599 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
3600 );
3601 Value::Object(object).serialize(serializer)
3602 }
3603 Self::VectorIndexRefresh(value) => {
3604 let mut object = serde_json::Map::new();
3605 object.insert("type".into(), Value::String("vectorIndexRefresh".into()));
3606 object.insert(
3607 "vectorIndexRefresh".into(),
3608 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
3609 );
3610 Value::Object(object).serialize(serializer)
3611 }
3612 Self::Unknown { tag, value } => {
3613 if value.get("type").and_then(Value::as_str) != Some(tag.as_str()) {
3614 return Err(serde::ser::Error::custom(
3615 "unknown union discriminator mismatch",
3616 ));
3617 }
3618 value.serialize(serializer)
3619 }
3620 }
3621 }
3622}
3623impl<'de> Deserialize<'de> for TaskDefinition {
3624 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3625 let value = Value::deserialize(deserializer)?;
3626 let tag = value
3627 .get("type")
3628 .and_then(Value::as_str)
3629 .ok_or_else(|| serde::de::Error::custom("union requires type"))?;
3630 match tag {
3631 "enrichmentCompute" => Ok(Self::EnrichmentCompute(
3632 serde_json::from_value(
3633 value
3634 .get("enrichmentCompute")
3635 .cloned()
3636 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
3637 )
3638 .map_err(serde::de::Error::custom)?,
3639 )),
3640 "enrichmentRefresh" => Ok(Self::EnrichmentRefresh(
3641 serde_json::from_value(
3642 value
3643 .get("enrichmentRefresh")
3644 .cloned()
3645 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
3646 )
3647 .map_err(serde::de::Error::custom)?,
3648 )),
3649 "legacyTableCompactionWorker" => Ok(Self::LegacyTableCompactionWorker(
3650 serde_json::from_value(
3651 value
3652 .get("legacyTableCompactionWorker")
3653 .cloned()
3654 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
3655 )
3656 .map_err(serde::de::Error::custom)?,
3657 )),
3658 "legacyTableMaintenance" => Ok(Self::LegacyTableMaintenance(
3659 serde_json::from_value(
3660 value
3661 .get("legacyTableMaintenance")
3662 .cloned()
3663 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
3664 )
3665 .map_err(serde::de::Error::custom)?,
3666 )),
3667 "legacyWalFlush" => Ok(Self::LegacyWalFlush(
3668 serde_json::from_value(
3669 value
3670 .get("legacyWalFlush")
3671 .cloned()
3672 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
3673 )
3674 .map_err(serde::de::Error::custom)?,
3675 )),
3676 "locationRefresh" => Ok(Self::LocationRefresh(
3677 serde_json::from_value(
3678 value
3679 .get("locationRefresh")
3680 .cloned()
3681 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
3682 )
3683 .map_err(serde::de::Error::custom)?,
3684 )),
3685 "tableMaintenance" => Ok(Self::TableMaintenance(
3686 serde_json::from_value(
3687 value
3688 .get("tableMaintenance")
3689 .cloned()
3690 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
3691 )
3692 .map_err(serde::de::Error::custom)?,
3693 )),
3694 "vectorIndexRefresh" => Ok(Self::VectorIndexRefresh(
3695 serde_json::from_value(
3696 value
3697 .get("vectorIndexRefresh")
3698 .cloned()
3699 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
3700 )
3701 .map_err(serde::de::Error::custom)?,
3702 )),
3703 tag => Ok(Self::Unknown {
3704 tag: tag.to_owned(),
3705 value,
3706 }),
3707 }
3708 }
3709}
3710impl<'de> DeserializeStrict<'de> for TaskDefinition {
3711 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3712 #[derive(Deserialize)]
3713 enum __Tag0 {
3714 #[serde(rename = "enrichmentCompute")]
3715 Value,
3716 }
3717 #[derive(Deserialize)]
3718 #[serde(deny_unknown_fields)]
3719 struct __Arm0 {
3720 #[serde(rename = "type")]
3721 _tag: __Tag0,
3722 #[serde(rename = "enrichmentCompute")]
3723 value: Strict<EnrichmentComputeDefinition>,
3724 }
3725 #[derive(Deserialize)]
3726 enum __Tag1 {
3727 #[serde(rename = "enrichmentRefresh")]
3728 Value,
3729 }
3730 #[derive(Deserialize)]
3731 #[serde(deny_unknown_fields)]
3732 struct __Arm1 {
3733 #[serde(rename = "type")]
3734 _tag: __Tag1,
3735 #[serde(rename = "enrichmentRefresh")]
3736 value: Strict<EnrichmentRefreshDefinition>,
3737 }
3738 #[derive(Deserialize)]
3739 enum __Tag2 {
3740 #[serde(rename = "legacyTableCompactionWorker")]
3741 Value,
3742 }
3743 #[derive(Deserialize)]
3744 #[serde(deny_unknown_fields)]
3745 struct __Arm2 {
3746 #[serde(rename = "type")]
3747 _tag: __Tag2,
3748 #[serde(rename = "legacyTableCompactionWorker")]
3749 value: Strict<LegacyTableCompactionWorkerDefinition>,
3750 }
3751 #[derive(Deserialize)]
3752 enum __Tag3 {
3753 #[serde(rename = "legacyTableMaintenance")]
3754 Value,
3755 }
3756 #[derive(Deserialize)]
3757 #[serde(deny_unknown_fields)]
3758 struct __Arm3 {
3759 #[serde(rename = "type")]
3760 _tag: __Tag3,
3761 #[serde(rename = "legacyTableMaintenance")]
3762 value: Strict<LegacyTableMaintenanceDefinition>,
3763 }
3764 #[derive(Deserialize)]
3765 enum __Tag4 {
3766 #[serde(rename = "legacyWalFlush")]
3767 Value,
3768 }
3769 #[derive(Deserialize)]
3770 #[serde(deny_unknown_fields)]
3771 struct __Arm4 {
3772 #[serde(rename = "type")]
3773 _tag: __Tag4,
3774 #[serde(rename = "legacyWalFlush")]
3775 value: Strict<LegacyTableDefinition>,
3776 }
3777 #[derive(Deserialize)]
3778 enum __Tag5 {
3779 #[serde(rename = "locationRefresh")]
3780 Value,
3781 }
3782 #[derive(Deserialize)]
3783 #[serde(deny_unknown_fields)]
3784 struct __Arm5 {
3785 #[serde(rename = "type")]
3786 _tag: __Tag5,
3787 #[serde(rename = "locationRefresh")]
3788 value: Strict<LocationRefreshDefinition>,
3789 }
3790 #[derive(Deserialize)]
3791 enum __Tag6 {
3792 #[serde(rename = "tableMaintenance")]
3793 Value,
3794 }
3795 #[derive(Deserialize)]
3796 #[serde(deny_unknown_fields)]
3797 struct __Arm6 {
3798 #[serde(rename = "type")]
3799 _tag: __Tag6,
3800 #[serde(rename = "tableMaintenance")]
3801 value: Strict<TableMaintenanceDefinition>,
3802 }
3803 #[derive(Deserialize)]
3804 enum __Tag7 {
3805 #[serde(rename = "vectorIndexRefresh")]
3806 Value,
3807 }
3808 #[derive(Deserialize)]
3809 #[serde(deny_unknown_fields)]
3810 struct __Arm7 {
3811 #[serde(rename = "type")]
3812 _tag: __Tag7,
3813 #[serde(rename = "vectorIndexRefresh")]
3814 value: Strict<VectorIndexRefreshDefinition>,
3815 }
3816 #[derive(Deserialize)]
3817 #[serde(untagged)]
3818 enum __Known {
3819 EnrichmentCompute(Box<__Arm0>),
3820 EnrichmentRefresh(Box<__Arm1>),
3821 LegacyTableCompactionWorker(Box<__Arm2>),
3822 LegacyTableMaintenance(Box<__Arm3>),
3823 LegacyWalFlush(Box<__Arm4>),
3824 LocationRefresh(Box<__Arm5>),
3825 TableMaintenance(Box<__Arm6>),
3826 VectorIndexRefresh(Box<__Arm7>),
3827 }
3828 Ok(match __Known::deserialize(deserializer)? {
3829 __Known::EnrichmentCompute(arm) => Self::EnrichmentCompute(arm.value.0),
3830 __Known::EnrichmentRefresh(arm) => Self::EnrichmentRefresh(arm.value.0),
3831 __Known::LegacyTableCompactionWorker(arm) => {
3832 Self::LegacyTableCompactionWorker(arm.value.0)
3833 }
3834 __Known::LegacyTableMaintenance(arm) => Self::LegacyTableMaintenance(arm.value.0),
3835 __Known::LegacyWalFlush(arm) => Self::LegacyWalFlush(arm.value.0),
3836 __Known::LocationRefresh(arm) => Self::LocationRefresh(arm.value.0),
3837 __Known::TableMaintenance(arm) => Self::TableMaintenance(arm.value.0),
3838 __Known::VectorIndexRefresh(arm) => Self::VectorIndexRefresh(arm.value.0),
3839 })
3840 }
3841}
3842
3843#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
3845pub struct TaskDetails {
3846 #[serde(rename = "attempts")]
3848 pub attempts: Vec<TaskAttempt>,
3849 #[serde(rename = "invocation")]
3851 #[serde(default, skip_serializing_if = "Option::is_none")]
3852 pub invocation: Option<TriggerInvocation>,
3853 #[serde(rename = "resources")]
3855 pub resources: Vec<TaskResourceReference>,
3856 #[serde(rename = "task")]
3858 pub task: Task,
3859}
3860impl<'de> DeserializeStrict<'de> for TaskDetails {
3861 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3862 #[derive(Deserialize)]
3863 #[serde(deny_unknown_fields)]
3864 struct __Wire {
3865 #[serde(rename = "attempts")]
3866 attempts: Strict<Vec<TaskAttempt>>,
3867 #[serde(rename = "invocation")]
3868 #[serde(default)]
3869 invocation: Strict<Option<TriggerInvocation>>,
3870 #[serde(rename = "resources")]
3871 resources: Strict<Vec<TaskResourceReference>>,
3872 #[serde(rename = "task")]
3873 task: Strict<Task>,
3874 }
3875 let wire = __Wire::deserialize(deserializer)?;
3876 Ok(Self {
3877 attempts: wire.attempts.0,
3878 invocation: wire.invocation.0,
3879 resources: wire.resources.0,
3880 task: wire.task.0,
3881 })
3882 }
3883}
3884
3885#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
3887pub struct TaskFailure {
3888 #[serde(rename = "code")]
3890 pub code: String,
3891 #[serde(rename = "message")]
3893 pub message: String,
3894 #[serde(rename = "retryable")]
3896 pub retryable: bool,
3897}
3898impl<'de> DeserializeStrict<'de> for TaskFailure {
3899 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3900 #[derive(Deserialize)]
3901 #[serde(deny_unknown_fields)]
3902 struct __Wire {
3903 #[serde(rename = "code")]
3904 code: Strict<String>,
3905 #[serde(rename = "message")]
3906 message: Strict<String>,
3907 #[serde(rename = "retryable")]
3908 retryable: Strict<bool>,
3909 }
3910 let wire = __Wire::deserialize(deserializer)?;
3911 Ok(Self {
3912 code: wire.code.0,
3913 message: wire.message.0,
3914 retryable: wire.retryable.0,
3915 })
3916 }
3917}
3918
3919#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
3921pub struct TaskOptions {
3922 #[serde(rename = "deadlineAtMicros")]
3924 #[serde(default, skip_serializing_if = "Option::is_none")]
3925 pub deadline_at_micros: Option<SafeLong>,
3926 #[serde(rename = "maxAttempts")]
3928 #[serde(default, skip_serializing_if = "Option::is_none")]
3929 pub max_attempts: Option<u32>,
3930 #[serde(rename = "resourceProfile")]
3932 #[serde(default, skip_serializing_if = "Option::is_none")]
3933 pub resource_profile: Option<ResourceProfile>,
3934}
3935impl<'de> DeserializeStrict<'de> for TaskOptions {
3936 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3937 #[derive(Deserialize)]
3938 #[serde(deny_unknown_fields)]
3939 struct __Wire {
3940 #[serde(rename = "deadlineAtMicros")]
3941 #[serde(default)]
3942 deadline_at_micros: Strict<Option<SafeLong>>,
3943 #[serde(rename = "maxAttempts")]
3944 #[serde(default)]
3945 max_attempts: Strict<Option<u32>>,
3946 #[serde(rename = "resourceProfile")]
3947 #[serde(default)]
3948 resource_profile: Strict<Option<ResourceProfile>>,
3949 }
3950 let wire = __Wire::deserialize(deserializer)?;
3951 Ok(Self {
3952 deadline_at_micros: wire.deadline_at_micros.0,
3953 max_attempts: wire.max_attempts.0,
3954 resource_profile: wire.resource_profile.0,
3955 })
3956 }
3957}
3958
3959#[derive(Clone, Debug, PartialEq, Eq)]
3961pub enum TaskOrigin {
3962 Manual,
3964 Event,
3966 Schedule,
3968 Unknown(String),
3970}
3971impl Serialize for TaskOrigin {
3972 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3973 serializer.serialize_str(match self {
3974 Self::Manual => "manual",
3975 Self::Event => "event",
3976 Self::Schedule => "schedule",
3977 Self::Unknown(value) => value,
3978 })
3979 }
3980}
3981impl<'de> Deserialize<'de> for TaskOrigin {
3982 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3983 Ok(match String::deserialize(deserializer)?.as_str() {
3984 "manual" => Self::Manual,
3985 "event" => Self::Event,
3986 "schedule" => Self::Schedule,
3987 value => Self::Unknown(value.to_owned()),
3988 })
3989 }
3990}
3991impl<'de> DeserializeStrict<'de> for TaskOrigin {
3992 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3993 #[derive(Deserialize)]
3994 enum __Known {
3995 #[serde(rename = "manual")]
3996 Manual,
3997 #[serde(rename = "event")]
3998 Event,
3999 #[serde(rename = "schedule")]
4000 Schedule,
4001 }
4002 Ok(match __Known::deserialize(deserializer)? {
4003 __Known::Manual => Self::Manual,
4004 __Known::Event => Self::Event,
4005 __Known::Schedule => Self::Schedule,
4006 })
4007 }
4008}
4009
4010#[derive(Clone, Debug, PartialEq, Eq)]
4012pub enum TaskOverlapPolicy {
4013 AllowAll,
4015 BufferOne,
4017 BufferAll,
4019 RejectDuplicate,
4021 Unknown(String),
4023}
4024impl Serialize for TaskOverlapPolicy {
4025 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4026 serializer.serialize_str(match self {
4027 Self::AllowAll => "allow_all",
4028 Self::BufferOne => "buffer_one",
4029 Self::BufferAll => "buffer_all",
4030 Self::RejectDuplicate => "reject_duplicate",
4031 Self::Unknown(value) => value,
4032 })
4033 }
4034}
4035impl<'de> Deserialize<'de> for TaskOverlapPolicy {
4036 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4037 Ok(match String::deserialize(deserializer)?.as_str() {
4038 "allow_all" => Self::AllowAll,
4039 "buffer_one" => Self::BufferOne,
4040 "buffer_all" => Self::BufferAll,
4041 "reject_duplicate" => Self::RejectDuplicate,
4042 value => Self::Unknown(value.to_owned()),
4043 })
4044 }
4045}
4046impl<'de> DeserializeStrict<'de> for TaskOverlapPolicy {
4047 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4048 #[derive(Deserialize)]
4049 enum __Known {
4050 #[serde(rename = "allow_all")]
4051 AllowAll,
4052 #[serde(rename = "buffer_one")]
4053 BufferOne,
4054 #[serde(rename = "buffer_all")]
4055 BufferAll,
4056 #[serde(rename = "reject_duplicate")]
4057 RejectDuplicate,
4058 }
4059 Ok(match __Known::deserialize(deserializer)? {
4060 __Known::AllowAll => Self::AllowAll,
4061 __Known::BufferOne => Self::BufferOne,
4062 __Known::BufferAll => Self::BufferAll,
4063 __Known::RejectDuplicate => Self::RejectDuplicate,
4064 })
4065 }
4066}
4067
4068#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4070pub struct TaskProgress {
4071 #[serde(rename = "maintenance")]
4073 #[serde(default, skip_serializing_if = "Option::is_none")]
4074 pub maintenance: Option<MaintenanceTaskProgress>,
4075 #[serde(rename = "percentage")]
4077 pub percentage: u32,
4078 #[serde(rename = "phase")]
4080 pub phase: TaskProgressPhase,
4081 #[serde(rename = "work")]
4083 #[serde(default, skip_serializing_if = "Option::is_none")]
4084 pub work: Option<TaskWorkProgress>,
4085}
4086impl<'de> DeserializeStrict<'de> for TaskProgress {
4087 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4088 #[derive(Deserialize)]
4089 #[serde(deny_unknown_fields)]
4090 struct __Wire {
4091 #[serde(rename = "maintenance")]
4092 #[serde(default)]
4093 maintenance: Strict<Option<MaintenanceTaskProgress>>,
4094 #[serde(rename = "percentage")]
4095 percentage: Strict<u32>,
4096 #[serde(rename = "phase")]
4097 phase: Strict<TaskProgressPhase>,
4098 #[serde(rename = "work")]
4099 #[serde(default)]
4100 work: Strict<Option<TaskWorkProgress>>,
4101 }
4102 let wire = __Wire::deserialize(deserializer)?;
4103 Ok(Self {
4104 maintenance: wire.maintenance.0,
4105 percentage: wire.percentage.0,
4106 phase: wire.phase.0,
4107 work: wire.work.0,
4108 })
4109 }
4110}
4111
4112#[derive(Clone, Debug, PartialEq, Eq)]
4114pub enum TaskProgressPhase {
4115 Preparing,
4117 Computing,
4119 Finalizing,
4121 Unknown(String),
4123}
4124impl Serialize for TaskProgressPhase {
4125 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4126 serializer.serialize_str(match self {
4127 Self::Preparing => "preparing",
4128 Self::Computing => "computing",
4129 Self::Finalizing => "finalizing",
4130 Self::Unknown(value) => value,
4131 })
4132 }
4133}
4134impl<'de> Deserialize<'de> for TaskProgressPhase {
4135 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4136 Ok(match String::deserialize(deserializer)?.as_str() {
4137 "preparing" => Self::Preparing,
4138 "computing" => Self::Computing,
4139 "finalizing" => Self::Finalizing,
4140 value => Self::Unknown(value.to_owned()),
4141 })
4142 }
4143}
4144impl<'de> DeserializeStrict<'de> for TaskProgressPhase {
4145 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4146 #[derive(Deserialize)]
4147 enum __Known {
4148 #[serde(rename = "preparing")]
4149 Preparing,
4150 #[serde(rename = "computing")]
4151 Computing,
4152 #[serde(rename = "finalizing")]
4153 Finalizing,
4154 }
4155 Ok(match __Known::deserialize(deserializer)? {
4156 __Known::Preparing => Self::Preparing,
4157 __Known::Computing => Self::Computing,
4158 __Known::Finalizing => Self::Finalizing,
4159 })
4160 }
4161}
4162
4163#[derive(Clone, Debug, PartialEq, Eq)]
4165pub enum TaskReadTarget {
4166 CommitOnBranch(TaskReadTargetCommitOnBranch),
4168 LatestOnBranch(TaskReadTargetLatestOnBranch),
4170 Unknown { tag: String, value: Value },
4172}
4173impl Serialize for TaskReadTarget {
4174 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4175 match self {
4176 Self::CommitOnBranch(value) => {
4177 let mut object = serde_json::Map::new();
4178 object.insert("type".into(), Value::String("commitOnBranch".into()));
4179 object.insert(
4180 "commitOnBranch".into(),
4181 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
4182 );
4183 Value::Object(object).serialize(serializer)
4184 }
4185 Self::LatestOnBranch(value) => {
4186 let mut object = serde_json::Map::new();
4187 object.insert("type".into(), Value::String("latestOnBranch".into()));
4188 object.insert(
4189 "latestOnBranch".into(),
4190 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
4191 );
4192 Value::Object(object).serialize(serializer)
4193 }
4194 Self::Unknown { tag, value } => {
4195 if value.get("type").and_then(Value::as_str) != Some(tag.as_str()) {
4196 return Err(serde::ser::Error::custom(
4197 "unknown union discriminator mismatch",
4198 ));
4199 }
4200 value.serialize(serializer)
4201 }
4202 }
4203 }
4204}
4205impl<'de> Deserialize<'de> for TaskReadTarget {
4206 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4207 let value = Value::deserialize(deserializer)?;
4208 let tag = value
4209 .get("type")
4210 .and_then(Value::as_str)
4211 .ok_or_else(|| serde::de::Error::custom("union requires type"))?;
4212 match tag {
4213 "commitOnBranch" => Ok(Self::CommitOnBranch(
4214 serde_json::from_value(
4215 value
4216 .get("commitOnBranch")
4217 .cloned()
4218 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
4219 )
4220 .map_err(serde::de::Error::custom)?,
4221 )),
4222 "latestOnBranch" => Ok(Self::LatestOnBranch(
4223 serde_json::from_value(
4224 value
4225 .get("latestOnBranch")
4226 .cloned()
4227 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
4228 )
4229 .map_err(serde::de::Error::custom)?,
4230 )),
4231 tag => Ok(Self::Unknown {
4232 tag: tag.to_owned(),
4233 value,
4234 }),
4235 }
4236 }
4237}
4238impl<'de> DeserializeStrict<'de> for TaskReadTarget {
4239 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4240 #[derive(Deserialize)]
4241 enum __Tag0 {
4242 #[serde(rename = "commitOnBranch")]
4243 Value,
4244 }
4245 #[derive(Deserialize)]
4246 #[serde(deny_unknown_fields)]
4247 struct __Arm0 {
4248 #[serde(rename = "type")]
4249 _tag: __Tag0,
4250 #[serde(rename = "commitOnBranch")]
4251 value: Strict<TaskReadTargetCommitOnBranch>,
4252 }
4253 #[derive(Deserialize)]
4254 enum __Tag1 {
4255 #[serde(rename = "latestOnBranch")]
4256 Value,
4257 }
4258 #[derive(Deserialize)]
4259 #[serde(deny_unknown_fields)]
4260 struct __Arm1 {
4261 #[serde(rename = "type")]
4262 _tag: __Tag1,
4263 #[serde(rename = "latestOnBranch")]
4264 value: Strict<TaskReadTargetLatestOnBranch>,
4265 }
4266 #[derive(Deserialize)]
4267 #[serde(untagged)]
4268 enum __Known {
4269 CommitOnBranch(Box<__Arm0>),
4270 LatestOnBranch(Box<__Arm1>),
4271 }
4272 Ok(match __Known::deserialize(deserializer)? {
4273 __Known::CommitOnBranch(arm) => Self::CommitOnBranch(arm.value.0),
4274 __Known::LatestOnBranch(arm) => Self::LatestOnBranch(arm.value.0),
4275 })
4276 }
4277}
4278
4279#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4281pub struct TaskReadTargetCommitOnBranch {
4282 #[serde(rename = "branchId")]
4284 pub branch_id: Uuid,
4285 #[serde(rename = "commitId")]
4287 pub commit_id: Uuid,
4288}
4289impl<'de> DeserializeStrict<'de> for TaskReadTargetCommitOnBranch {
4290 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4291 #[derive(Deserialize)]
4292 #[serde(deny_unknown_fields)]
4293 struct __Wire {
4294 #[serde(rename = "branchId")]
4295 branch_id: Strict<Uuid>,
4296 #[serde(rename = "commitId")]
4297 commit_id: Strict<Uuid>,
4298 }
4299 let wire = __Wire::deserialize(deserializer)?;
4300 Ok(Self {
4301 branch_id: wire.branch_id.0,
4302 commit_id: wire.commit_id.0,
4303 })
4304 }
4305}
4306
4307#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4309pub struct TaskReadTargetLatestOnBranch {
4310 #[serde(rename = "branchId")]
4312 pub branch_id: Uuid,
4313}
4314impl<'de> DeserializeStrict<'de> for TaskReadTargetLatestOnBranch {
4315 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4316 #[derive(Deserialize)]
4317 #[serde(deny_unknown_fields)]
4318 struct __Wire {
4319 #[serde(rename = "branchId")]
4320 branch_id: Strict<Uuid>,
4321 }
4322 let wire = __Wire::deserialize(deserializer)?;
4323 Ok(Self {
4324 branch_id: wire.branch_id.0,
4325 })
4326 }
4327}
4328
4329#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4331pub struct TaskRequirements {
4332 #[serde(rename = "computeClass")]
4334 pub compute_class: ComputeClass,
4335 #[serde(rename = "cpu")]
4337 pub cpu: u32,
4338 #[serde(rename = "memoryBytes")]
4340 pub memory_bytes: SafeUnsignedLong,
4341}
4342impl<'de> DeserializeStrict<'de> for TaskRequirements {
4343 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4344 #[derive(Deserialize)]
4345 #[serde(deny_unknown_fields)]
4346 struct __Wire {
4347 #[serde(rename = "computeClass")]
4348 compute_class: Strict<ComputeClass>,
4349 #[serde(rename = "cpu")]
4350 cpu: Strict<u32>,
4351 #[serde(rename = "memoryBytes")]
4352 memory_bytes: Strict<SafeUnsignedLong>,
4353 }
4354 let wire = __Wire::deserialize(deserializer)?;
4355 Ok(Self {
4356 compute_class: wire.compute_class.0,
4357 cpu: wire.cpu.0,
4358 memory_bytes: wire.memory_bytes.0,
4359 })
4360 }
4361}
4362
4363#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4365pub struct TaskResourceReference {
4366 #[serde(rename = "definitionVersionId")]
4368 #[serde(default, skip_serializing_if = "Option::is_none")]
4369 pub definition_version_id: Option<Uuid>,
4370 #[serde(rename = "readTarget")]
4372 pub read_target: TaskReadTarget,
4373 #[serde(rename = "resourceId")]
4375 pub resource_id: Uuid,
4376 #[serde(rename = "resourceVersionId")]
4378 #[serde(default, skip_serializing_if = "Option::is_none")]
4379 pub resource_version_id: Option<Uuid>,
4380 #[serde(rename = "role")]
4382 pub role: TaskResourceRole,
4383}
4384impl<'de> DeserializeStrict<'de> for TaskResourceReference {
4385 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4386 #[derive(Deserialize)]
4387 #[serde(deny_unknown_fields)]
4388 struct __Wire {
4389 #[serde(rename = "definitionVersionId")]
4390 #[serde(default)]
4391 definition_version_id: Strict<Option<Uuid>>,
4392 #[serde(rename = "readTarget")]
4393 read_target: Strict<TaskReadTarget>,
4394 #[serde(rename = "resourceId")]
4395 resource_id: Strict<Uuid>,
4396 #[serde(rename = "resourceVersionId")]
4397 #[serde(default)]
4398 resource_version_id: Strict<Option<Uuid>>,
4399 #[serde(rename = "role")]
4400 role: Strict<TaskResourceRole>,
4401 }
4402 let wire = __Wire::deserialize(deserializer)?;
4403 Ok(Self {
4404 definition_version_id: wire.definition_version_id.0,
4405 read_target: wire.read_target.0,
4406 resource_id: wire.resource_id.0,
4407 resource_version_id: wire.resource_version_id.0,
4408 role: wire.role.0,
4409 })
4410 }
4411}
4412
4413#[derive(Clone, Debug, PartialEq, Eq)]
4415pub enum TaskResourceRole {
4416 Target,
4418 Source,
4420 Dependency,
4422 SourceLocation,
4424 Unknown(String),
4426}
4427impl Serialize for TaskResourceRole {
4428 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4429 serializer.serialize_str(match self {
4430 Self::Target => "target",
4431 Self::Source => "source",
4432 Self::Dependency => "dependency",
4433 Self::SourceLocation => "source_location",
4434 Self::Unknown(value) => value,
4435 })
4436 }
4437}
4438impl<'de> Deserialize<'de> for TaskResourceRole {
4439 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4440 Ok(match String::deserialize(deserializer)?.as_str() {
4441 "target" => Self::Target,
4442 "source" => Self::Source,
4443 "dependency" => Self::Dependency,
4444 "source_location" => Self::SourceLocation,
4445 value => Self::Unknown(value.to_owned()),
4446 })
4447 }
4448}
4449impl<'de> DeserializeStrict<'de> for TaskResourceRole {
4450 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4451 #[derive(Deserialize)]
4452 enum __Known {
4453 #[serde(rename = "target")]
4454 Target,
4455 #[serde(rename = "source")]
4456 Source,
4457 #[serde(rename = "dependency")]
4458 Dependency,
4459 #[serde(rename = "source_location")]
4460 SourceLocation,
4461 }
4462 Ok(match __Known::deserialize(deserializer)? {
4463 __Known::Target => Self::Target,
4464 __Known::Source => Self::Source,
4465 __Known::Dependency => Self::Dependency,
4466 __Known::SourceLocation => Self::SourceLocation,
4467 })
4468 }
4469}
4470
4471#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4474pub struct TaskResult {
4475 #[serde(rename = "commitId")]
4477 #[serde(default, skip_serializing_if = "Option::is_none")]
4478 pub commit_id: Option<Uuid>,
4479 #[serde(rename = "versions")]
4481 pub versions: Vec<PublishedVersion>,
4482}
4483impl<'de> DeserializeStrict<'de> for TaskResult {
4484 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4485 #[derive(Deserialize)]
4486 #[serde(deny_unknown_fields)]
4487 struct __Wire {
4488 #[serde(rename = "commitId")]
4489 #[serde(default)]
4490 commit_id: Strict<Option<Uuid>>,
4491 #[serde(rename = "versions")]
4492 versions: Strict<Vec<PublishedVersion>>,
4493 }
4494 let wire = __Wire::deserialize(deserializer)?;
4495 Ok(Self {
4496 commit_id: wire.commit_id.0,
4497 versions: wire.versions.0,
4498 })
4499 }
4500}
4501
4502#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4504pub struct TaskSpecDefaults {
4505 #[serde(rename = "allowedResourceProfiles")]
4507 pub allowed_resource_profiles: Vec<ResourceProfileDetails>,
4508 #[serde(rename = "defaultResourceProfile")]
4510 pub default_resource_profile: ResourceProfile,
4511 #[serde(rename = "overlapPolicy")]
4513 pub overlap_policy: TaskOverlapPolicy,
4514 #[serde(rename = "taskSpecId")]
4516 pub task_spec_id: TaskSpecId,
4517}
4518impl<'de> DeserializeStrict<'de> for TaskSpecDefaults {
4519 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4520 #[derive(Deserialize)]
4521 #[serde(deny_unknown_fields)]
4522 struct __Wire {
4523 #[serde(rename = "allowedResourceProfiles")]
4524 allowed_resource_profiles: Strict<Vec<ResourceProfileDetails>>,
4525 #[serde(rename = "defaultResourceProfile")]
4526 default_resource_profile: Strict<ResourceProfile>,
4527 #[serde(rename = "overlapPolicy")]
4528 overlap_policy: Strict<TaskOverlapPolicy>,
4529 #[serde(rename = "taskSpecId")]
4530 task_spec_id: Strict<TaskSpecId>,
4531 }
4532 let wire = __Wire::deserialize(deserializer)?;
4533 Ok(Self {
4534 allowed_resource_profiles: wire.allowed_resource_profiles.0,
4535 default_resource_profile: wire.default_resource_profile.0,
4536 overlap_policy: wire.overlap_policy.0,
4537 task_spec_id: wire.task_spec_id.0,
4538 })
4539 }
4540}
4541
4542#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4544pub struct TaskSpecId {
4545 #[serde(rename = "name")]
4547 pub name: String,
4548 #[serde(rename = "version")]
4550 pub version: u32,
4551}
4552impl<'de> DeserializeStrict<'de> for TaskSpecId {
4553 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4554 #[derive(Deserialize)]
4555 #[serde(deny_unknown_fields)]
4556 struct __Wire {
4557 #[serde(rename = "name")]
4558 name: Strict<String>,
4559 #[serde(rename = "version")]
4560 version: Strict<u32>,
4561 }
4562 let wire = __Wire::deserialize(deserializer)?;
4563 Ok(Self {
4564 name: wire.name.0,
4565 version: wire.version.0,
4566 })
4567 }
4568}
4569
4570#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4572pub struct TaskStats {
4573 #[serde(rename = "cancelledTaskCount")]
4575 pub cancelled_task_count: SafeUnsignedLong,
4576 #[serde(rename = "failedTaskCount")]
4578 pub failed_task_count: SafeUnsignedLong,
4579 #[serde(rename = "readyTaskCount")]
4581 pub ready_task_count: SafeUnsignedLong,
4582 #[serde(rename = "runningTaskCount")]
4584 pub running_task_count: SafeUnsignedLong,
4585 #[serde(rename = "succeededTaskCount")]
4587 pub succeeded_task_count: SafeUnsignedLong,
4588}
4589impl<'de> DeserializeStrict<'de> for TaskStats {
4590 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4591 #[derive(Deserialize)]
4592 #[serde(deny_unknown_fields)]
4593 struct __Wire {
4594 #[serde(rename = "cancelledTaskCount")]
4595 cancelled_task_count: Strict<SafeUnsignedLong>,
4596 #[serde(rename = "failedTaskCount")]
4597 failed_task_count: Strict<SafeUnsignedLong>,
4598 #[serde(rename = "readyTaskCount")]
4599 ready_task_count: Strict<SafeUnsignedLong>,
4600 #[serde(rename = "runningTaskCount")]
4601 running_task_count: Strict<SafeUnsignedLong>,
4602 #[serde(rename = "succeededTaskCount")]
4603 succeeded_task_count: Strict<SafeUnsignedLong>,
4604 }
4605 let wire = __Wire::deserialize(deserializer)?;
4606 Ok(Self {
4607 cancelled_task_count: wire.cancelled_task_count.0,
4608 failed_task_count: wire.failed_task_count.0,
4609 ready_task_count: wire.ready_task_count.0,
4610 running_task_count: wire.running_task_count.0,
4611 succeeded_task_count: wire.succeeded_task_count.0,
4612 })
4613 }
4614}
4615
4616#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4618pub struct TaskStatsRequest {
4619 #[serde(rename = "workerPoolId")]
4621 #[serde(default, skip_serializing_if = "Option::is_none")]
4622 pub worker_pool_id: Option<Uuid>,
4623}
4624impl<'de> DeserializeStrict<'de> for TaskStatsRequest {
4625 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4626 #[derive(Deserialize)]
4627 #[serde(deny_unknown_fields)]
4628 struct __Wire {
4629 #[serde(rename = "workerPoolId")]
4630 #[serde(default)]
4631 worker_pool_id: Strict<Option<Uuid>>,
4632 }
4633 let wire = __Wire::deserialize(deserializer)?;
4634 Ok(Self {
4635 worker_pool_id: wire.worker_pool_id.0,
4636 })
4637 }
4638}
4639
4640#[derive(Clone, Debug, PartialEq, Eq)]
4642pub enum TaskStatus {
4643 Ready,
4645 Running,
4647 Succeeded,
4649 Failed,
4651 Cancelled,
4653 Unknown(String),
4655}
4656impl Serialize for TaskStatus {
4657 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4658 serializer.serialize_str(match self {
4659 Self::Ready => "ready",
4660 Self::Running => "running",
4661 Self::Succeeded => "succeeded",
4662 Self::Failed => "failed",
4663 Self::Cancelled => "cancelled",
4664 Self::Unknown(value) => value,
4665 })
4666 }
4667}
4668impl<'de> Deserialize<'de> for TaskStatus {
4669 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4670 Ok(match String::deserialize(deserializer)?.as_str() {
4671 "ready" => Self::Ready,
4672 "running" => Self::Running,
4673 "succeeded" => Self::Succeeded,
4674 "failed" => Self::Failed,
4675 "cancelled" => Self::Cancelled,
4676 value => Self::Unknown(value.to_owned()),
4677 })
4678 }
4679}
4680impl<'de> DeserializeStrict<'de> for TaskStatus {
4681 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4682 #[derive(Deserialize)]
4683 enum __Known {
4684 #[serde(rename = "ready")]
4685 Ready,
4686 #[serde(rename = "running")]
4687 Running,
4688 #[serde(rename = "succeeded")]
4689 Succeeded,
4690 #[serde(rename = "failed")]
4691 Failed,
4692 #[serde(rename = "cancelled")]
4693 Cancelled,
4694 }
4695 Ok(match __Known::deserialize(deserializer)? {
4696 __Known::Ready => Self::Ready,
4697 __Known::Running => Self::Running,
4698 __Known::Succeeded => Self::Succeeded,
4699 __Known::Failed => Self::Failed,
4700 __Known::Cancelled => Self::Cancelled,
4701 })
4702 }
4703}
4704
4705#[derive(Clone, Debug, PartialEq, Eq)]
4707pub enum TaskStopReason {
4708 User,
4710 OverallDeadline,
4712 ParentFailed,
4714 ParentCancelled,
4716 Unknown(String),
4718}
4719impl Serialize for TaskStopReason {
4720 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4721 serializer.serialize_str(match self {
4722 Self::User => "user",
4723 Self::OverallDeadline => "overall_deadline",
4724 Self::ParentFailed => "parent_failed",
4725 Self::ParentCancelled => "parent_cancelled",
4726 Self::Unknown(value) => value,
4727 })
4728 }
4729}
4730impl<'de> Deserialize<'de> for TaskStopReason {
4731 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4732 Ok(match String::deserialize(deserializer)?.as_str() {
4733 "user" => Self::User,
4734 "overall_deadline" => Self::OverallDeadline,
4735 "parent_failed" => Self::ParentFailed,
4736 "parent_cancelled" => Self::ParentCancelled,
4737 value => Self::Unknown(value.to_owned()),
4738 })
4739 }
4740}
4741impl<'de> DeserializeStrict<'de> for TaskStopReason {
4742 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4743 #[derive(Deserialize)]
4744 enum __Known {
4745 #[serde(rename = "user")]
4746 User,
4747 #[serde(rename = "overall_deadline")]
4748 OverallDeadline,
4749 #[serde(rename = "parent_failed")]
4750 ParentFailed,
4751 #[serde(rename = "parent_cancelled")]
4752 ParentCancelled,
4753 }
4754 Ok(match __Known::deserialize(deserializer)? {
4755 __Known::User => Self::User,
4756 __Known::OverallDeadline => Self::OverallDeadline,
4757 __Known::ParentFailed => Self::ParentFailed,
4758 __Known::ParentCancelled => Self::ParentCancelled,
4759 })
4760 }
4761}
4762
4763#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4765pub struct TaskTrigger {
4766 #[serde(rename = "checkpointSequence")]
4768 #[serde(default, skip_serializing_if = "Option::is_none")]
4769 pub checkpoint_sequence: Option<SafeLong>,
4770 #[serde(rename = "createdAtMicros")]
4772 pub created_at_micros: SafeLong,
4773 #[serde(rename = "createdBy")]
4775 pub created_by: Caller,
4776 #[serde(rename = "definition")]
4778 pub definition: TriggerDefinition,
4779 #[serde(rename = "error")]
4781 #[serde(default, skip_serializing_if = "Option::is_none")]
4782 pub error: Option<String>,
4783 #[serde(rename = "nextFireAtMicros")]
4785 #[serde(default, skip_serializing_if = "Option::is_none")]
4786 pub next_fire_at_micros: Option<SafeLong>,
4787 #[serde(rename = "projectId")]
4789 pub project_id: String,
4790 #[serde(rename = "resources")]
4792 pub resources: Vec<TaskResourceReference>,
4793 #[serde(rename = "revision")]
4795 pub revision: SafeLong,
4796 #[serde(rename = "triggerId")]
4798 pub trigger_id: Uuid,
4799}
4800impl<'de> DeserializeStrict<'de> for TaskTrigger {
4801 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4802 #[derive(Deserialize)]
4803 #[serde(deny_unknown_fields)]
4804 struct __Wire {
4805 #[serde(rename = "checkpointSequence")]
4806 #[serde(default)]
4807 checkpoint_sequence: Strict<Option<SafeLong>>,
4808 #[serde(rename = "createdAtMicros")]
4809 created_at_micros: Strict<SafeLong>,
4810 #[serde(rename = "createdBy")]
4811 created_by: Strict<Caller>,
4812 #[serde(rename = "definition")]
4813 definition: Strict<TriggerDefinition>,
4814 #[serde(rename = "error")]
4815 #[serde(default)]
4816 error: Strict<Option<String>>,
4817 #[serde(rename = "nextFireAtMicros")]
4818 #[serde(default)]
4819 next_fire_at_micros: Strict<Option<SafeLong>>,
4820 #[serde(rename = "projectId")]
4821 project_id: Strict<String>,
4822 #[serde(rename = "resources")]
4823 resources: Strict<Vec<TaskResourceReference>>,
4824 #[serde(rename = "revision")]
4825 revision: Strict<SafeLong>,
4826 #[serde(rename = "triggerId")]
4827 trigger_id: Strict<Uuid>,
4828 }
4829 let wire = __Wire::deserialize(deserializer)?;
4830 Ok(Self {
4831 checkpoint_sequence: wire.checkpoint_sequence.0,
4832 created_at_micros: wire.created_at_micros.0,
4833 created_by: wire.created_by.0,
4834 definition: wire.definition.0,
4835 error: wire.error.0,
4836 next_fire_at_micros: wire.next_fire_at_micros.0,
4837 project_id: wire.project_id.0,
4838 resources: wire.resources.0,
4839 revision: wire.revision.0,
4840 trigger_id: wire.trigger_id.0,
4841 })
4842 }
4843}
4844
4845#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4847pub struct TaskWorkProgress {
4848 #[serde(rename = "completed")]
4850 pub completed: SafeUnsignedLong,
4851 #[serde(rename = "stage")]
4853 pub stage: TaskWorkStage,
4854 #[serde(rename = "total")]
4856 #[serde(default, skip_serializing_if = "Option::is_none")]
4857 pub total: Option<SafeUnsignedLong>,
4858}
4859impl<'de> DeserializeStrict<'de> for TaskWorkProgress {
4860 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4861 #[derive(Deserialize)]
4862 #[serde(deny_unknown_fields)]
4863 struct __Wire {
4864 #[serde(rename = "completed")]
4865 completed: Strict<SafeUnsignedLong>,
4866 #[serde(rename = "stage")]
4867 stage: Strict<TaskWorkStage>,
4868 #[serde(rename = "total")]
4869 #[serde(default)]
4870 total: Strict<Option<SafeUnsignedLong>>,
4871 }
4872 let wire = __Wire::deserialize(deserializer)?;
4873 Ok(Self {
4874 completed: wire.completed.0,
4875 stage: wire.stage.0,
4876 total: wire.total.0,
4877 })
4878 }
4879}
4880
4881#[derive(Clone, Debug, PartialEq, Eq)]
4883pub enum TaskWorkStage {
4884 Preparing,
4886 RefreshingDataset,
4888 BuildingVectorIndex,
4890 ReadingTable,
4892 Compacting,
4894 DispatchingWorkers,
4896 WaitingForWorkers,
4898 EvaluatingEnrichment,
4900 WritingFragment,
4902 Publishing,
4904 Unknown(String),
4906}
4907impl Serialize for TaskWorkStage {
4908 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4909 serializer.serialize_str(match self {
4910 Self::Preparing => "preparing",
4911 Self::RefreshingDataset => "refreshing_dataset",
4912 Self::BuildingVectorIndex => "building_vector_index",
4913 Self::ReadingTable => "reading_table",
4914 Self::Compacting => "compacting",
4915 Self::DispatchingWorkers => "dispatching_workers",
4916 Self::WaitingForWorkers => "waiting_for_workers",
4917 Self::EvaluatingEnrichment => "evaluating_enrichment",
4918 Self::WritingFragment => "writing_fragment",
4919 Self::Publishing => "publishing",
4920 Self::Unknown(value) => value,
4921 })
4922 }
4923}
4924impl<'de> Deserialize<'de> for TaskWorkStage {
4925 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4926 Ok(match String::deserialize(deserializer)?.as_str() {
4927 "preparing" => Self::Preparing,
4928 "refreshing_dataset" => Self::RefreshingDataset,
4929 "building_vector_index" => Self::BuildingVectorIndex,
4930 "reading_table" => Self::ReadingTable,
4931 "compacting" => Self::Compacting,
4932 "dispatching_workers" => Self::DispatchingWorkers,
4933 "waiting_for_workers" => Self::WaitingForWorkers,
4934 "evaluating_enrichment" => Self::EvaluatingEnrichment,
4935 "writing_fragment" => Self::WritingFragment,
4936 "publishing" => Self::Publishing,
4937 value => Self::Unknown(value.to_owned()),
4938 })
4939 }
4940}
4941impl<'de> DeserializeStrict<'de> for TaskWorkStage {
4942 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4943 #[derive(Deserialize)]
4944 enum __Known {
4945 #[serde(rename = "preparing")]
4946 Preparing,
4947 #[serde(rename = "refreshing_dataset")]
4948 RefreshingDataset,
4949 #[serde(rename = "building_vector_index")]
4950 BuildingVectorIndex,
4951 #[serde(rename = "reading_table")]
4952 ReadingTable,
4953 #[serde(rename = "compacting")]
4954 Compacting,
4955 #[serde(rename = "dispatching_workers")]
4956 DispatchingWorkers,
4957 #[serde(rename = "waiting_for_workers")]
4958 WaitingForWorkers,
4959 #[serde(rename = "evaluating_enrichment")]
4960 EvaluatingEnrichment,
4961 #[serde(rename = "writing_fragment")]
4962 WritingFragment,
4963 #[serde(rename = "publishing")]
4964 Publishing,
4965 }
4966 Ok(match __Known::deserialize(deserializer)? {
4967 __Known::Preparing => Self::Preparing,
4968 __Known::RefreshingDataset => Self::RefreshingDataset,
4969 __Known::BuildingVectorIndex => Self::BuildingVectorIndex,
4970 __Known::ReadingTable => Self::ReadingTable,
4971 __Known::Compacting => Self::Compacting,
4972 __Known::DispatchingWorkers => Self::DispatchingWorkers,
4973 __Known::WaitingForWorkers => Self::WaitingForWorkers,
4974 __Known::EvaluatingEnrichment => Self::EvaluatingEnrichment,
4975 __Known::WritingFragment => Self::WritingFragment,
4976 __Known::Publishing => Self::Publishing,
4977 })
4978 }
4979}
4980
4981#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4983pub struct TaskWorker {
4984 #[serde(rename = "managed")]
4986 pub managed: bool,
4987 #[serde(rename = "workerPoolId")]
4989 #[serde(default, skip_serializing_if = "Option::is_none")]
4990 pub worker_pool_id: Option<Uuid>,
4991 #[serde(rename = "workerSessionId")]
4993 pub worker_session_id: Uuid,
4994}
4995impl<'de> DeserializeStrict<'de> for TaskWorker {
4996 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4997 #[derive(Deserialize)]
4998 #[serde(deny_unknown_fields)]
4999 struct __Wire {
5000 #[serde(rename = "managed")]
5001 managed: Strict<bool>,
5002 #[serde(rename = "workerPoolId")]
5003 #[serde(default)]
5004 worker_pool_id: Strict<Option<Uuid>>,
5005 #[serde(rename = "workerSessionId")]
5006 worker_session_id: Strict<Uuid>,
5007 }
5008 let wire = __Wire::deserialize(deserializer)?;
5009 Ok(Self {
5010 managed: wire.managed.0,
5011 worker_pool_id: wire.worker_pool_id.0,
5012 worker_session_id: wire.worker_session_id.0,
5013 })
5014 }
5015}
5016
5017#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5019pub struct TestTriggerRequest {
5020 #[serde(rename = "eventId")]
5022 #[serde(default, skip_serializing_if = "Option::is_none")]
5023 pub event_id: Option<Uuid>,
5024}
5025impl<'de> DeserializeStrict<'de> for TestTriggerRequest {
5026 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5027 #[derive(Deserialize)]
5028 #[serde(deny_unknown_fields)]
5029 struct __Wire {
5030 #[serde(rename = "eventId")]
5031 #[serde(default)]
5032 event_id: Strict<Option<Uuid>>,
5033 }
5034 let wire = __Wire::deserialize(deserializer)?;
5035 Ok(Self {
5036 event_id: wire.event_id.0,
5037 })
5038 }
5039}
5040
5041#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5043pub struct TestTriggerResponse {
5044 #[serde(rename = "eventId")]
5046 pub event_id: Uuid,
5047 #[serde(rename = "matches")]
5049 pub matches: bool,
5050}
5051impl<'de> DeserializeStrict<'de> for TestTriggerResponse {
5052 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5053 #[derive(Deserialize)]
5054 #[serde(deny_unknown_fields)]
5055 struct __Wire {
5056 #[serde(rename = "eventId")]
5057 event_id: Strict<Uuid>,
5058 #[serde(rename = "matches")]
5059 matches: Strict<bool>,
5060 }
5061 let wire = __Wire::deserialize(deserializer)?;
5062 Ok(Self {
5063 event_id: wire.event_id.0,
5064 matches: wire.matches.0,
5065 })
5066 }
5067}
5068
5069#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5071pub struct TriggerAction {
5072 #[serde(rename = "input")]
5074 pub input: Value,
5075 #[serde(rename = "options")]
5077 #[serde(default, skip_serializing_if = "Option::is_none")]
5078 pub options: Option<TaskOptions>,
5079 #[serde(rename = "taskSpecId")]
5081 pub task_spec_id: TaskSpecId,
5082}
5083impl<'de> DeserializeStrict<'de> for TriggerAction {
5084 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5085 #[derive(Deserialize)]
5086 #[serde(deny_unknown_fields)]
5087 struct __Wire {
5088 #[serde(rename = "input")]
5089 input: Strict<Value>,
5090 #[serde(rename = "options")]
5091 #[serde(default)]
5092 options: Strict<Option<TaskOptions>>,
5093 #[serde(rename = "taskSpecId")]
5094 task_spec_id: Strict<TaskSpecId>,
5095 }
5096 let wire = __Wire::deserialize(deserializer)?;
5097 Ok(Self {
5098 input: wire.input.0,
5099 options: wire.options.0,
5100 task_spec_id: wire.task_spec_id.0,
5101 })
5102 }
5103}
5104
5105#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5107pub struct TriggerDefinition {
5108 #[serde(rename = "action")]
5110 pub action: TriggerAction,
5111 #[serde(rename = "enabled")]
5113 pub enabled: bool,
5114 #[serde(rename = "name")]
5116 pub name: String,
5117 #[serde(rename = "source")]
5119 pub source: TriggerSource,
5120}
5121impl<'de> DeserializeStrict<'de> for TriggerDefinition {
5122 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5123 #[derive(Deserialize)]
5124 #[serde(deny_unknown_fields)]
5125 struct __Wire {
5126 #[serde(rename = "action")]
5127 action: Strict<TriggerAction>,
5128 #[serde(rename = "enabled")]
5129 enabled: Strict<bool>,
5130 #[serde(rename = "name")]
5131 name: Strict<String>,
5132 #[serde(rename = "source")]
5133 source: Strict<TriggerSource>,
5134 }
5135 let wire = __Wire::deserialize(deserializer)?;
5136 Ok(Self {
5137 action: wire.action.0,
5138 enabled: wire.enabled.0,
5139 name: wire.name.0,
5140 source: wire.source.0,
5141 })
5142 }
5143}
5144
5145#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5147pub struct TriggerInvocation {
5148 #[serde(rename = "createdAtMicros")]
5150 pub created_at_micros: SafeLong,
5151 #[serde(rename = "invocationId")]
5153 pub invocation_id: Uuid,
5154 #[serde(rename = "occurrence")]
5156 pub occurrence: TriggerOccurrence,
5157 #[serde(rename = "status")]
5159 pub status: InvocationStatus,
5160 #[serde(rename = "taskId")]
5162 #[serde(default, skip_serializing_if = "Option::is_none")]
5163 pub task_id: Option<Uuid>,
5164 #[serde(rename = "triggerId")]
5166 pub trigger_id: Uuid,
5167 #[serde(rename = "triggerRevision")]
5169 pub trigger_revision: SafeLong,
5170}
5171impl<'de> DeserializeStrict<'de> for TriggerInvocation {
5172 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5173 #[derive(Deserialize)]
5174 #[serde(deny_unknown_fields)]
5175 struct __Wire {
5176 #[serde(rename = "createdAtMicros")]
5177 created_at_micros: Strict<SafeLong>,
5178 #[serde(rename = "invocationId")]
5179 invocation_id: Strict<Uuid>,
5180 #[serde(rename = "occurrence")]
5181 occurrence: Strict<TriggerOccurrence>,
5182 #[serde(rename = "status")]
5183 status: Strict<InvocationStatus>,
5184 #[serde(rename = "taskId")]
5185 #[serde(default)]
5186 task_id: Strict<Option<Uuid>>,
5187 #[serde(rename = "triggerId")]
5188 trigger_id: Strict<Uuid>,
5189 #[serde(rename = "triggerRevision")]
5190 trigger_revision: Strict<SafeLong>,
5191 }
5192 let wire = __Wire::deserialize(deserializer)?;
5193 Ok(Self {
5194 created_at_micros: wire.created_at_micros.0,
5195 invocation_id: wire.invocation_id.0,
5196 occurrence: wire.occurrence.0,
5197 status: wire.status.0,
5198 task_id: wire.task_id.0,
5199 trigger_id: wire.trigger_id.0,
5200 trigger_revision: wire.trigger_revision.0,
5201 })
5202 }
5203}
5204
5205#[derive(Clone, Debug, PartialEq, Eq)]
5207pub enum TriggerOccurrence {
5208 JournalEvent(TriggerOccurrenceJournalEvent),
5210 Manual(TriggerOccurrenceManual),
5212 Schedule(TriggerOccurrenceSchedule),
5214 Unknown { tag: String, value: Value },
5216}
5217impl Serialize for TriggerOccurrence {
5218 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5219 match self {
5220 Self::JournalEvent(value) => {
5221 let mut object = serde_json::Map::new();
5222 object.insert("type".into(), Value::String("journalEvent".into()));
5223 object.insert(
5224 "journalEvent".into(),
5225 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
5226 );
5227 Value::Object(object).serialize(serializer)
5228 }
5229 Self::Manual(value) => {
5230 let mut object = serde_json::Map::new();
5231 object.insert("type".into(), Value::String("manual".into()));
5232 object.insert(
5233 "manual".into(),
5234 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
5235 );
5236 Value::Object(object).serialize(serializer)
5237 }
5238 Self::Schedule(value) => {
5239 let mut object = serde_json::Map::new();
5240 object.insert("type".into(), Value::String("schedule".into()));
5241 object.insert(
5242 "schedule".into(),
5243 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
5244 );
5245 Value::Object(object).serialize(serializer)
5246 }
5247 Self::Unknown { tag, value } => {
5248 if value.get("type").and_then(Value::as_str) != Some(tag.as_str()) {
5249 return Err(serde::ser::Error::custom(
5250 "unknown union discriminator mismatch",
5251 ));
5252 }
5253 value.serialize(serializer)
5254 }
5255 }
5256 }
5257}
5258impl<'de> Deserialize<'de> for TriggerOccurrence {
5259 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5260 let value = Value::deserialize(deserializer)?;
5261 let tag = value
5262 .get("type")
5263 .and_then(Value::as_str)
5264 .ok_or_else(|| serde::de::Error::custom("union requires type"))?;
5265 match tag {
5266 "journalEvent" => Ok(Self::JournalEvent(
5267 serde_json::from_value(
5268 value
5269 .get("journalEvent")
5270 .cloned()
5271 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
5272 )
5273 .map_err(serde::de::Error::custom)?,
5274 )),
5275 "manual" => Ok(Self::Manual(
5276 serde_json::from_value(
5277 value
5278 .get("manual")
5279 .cloned()
5280 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
5281 )
5282 .map_err(serde::de::Error::custom)?,
5283 )),
5284 "schedule" => Ok(Self::Schedule(
5285 serde_json::from_value(
5286 value
5287 .get("schedule")
5288 .cloned()
5289 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
5290 )
5291 .map_err(serde::de::Error::custom)?,
5292 )),
5293 tag => Ok(Self::Unknown {
5294 tag: tag.to_owned(),
5295 value,
5296 }),
5297 }
5298 }
5299}
5300impl<'de> DeserializeStrict<'de> for TriggerOccurrence {
5301 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5302 #[derive(Deserialize)]
5303 enum __Tag0 {
5304 #[serde(rename = "journalEvent")]
5305 Value,
5306 }
5307 #[derive(Deserialize)]
5308 #[serde(deny_unknown_fields)]
5309 struct __Arm0 {
5310 #[serde(rename = "type")]
5311 _tag: __Tag0,
5312 #[serde(rename = "journalEvent")]
5313 value: Strict<TriggerOccurrenceJournalEvent>,
5314 }
5315 #[derive(Deserialize)]
5316 enum __Tag1 {
5317 #[serde(rename = "manual")]
5318 Value,
5319 }
5320 #[derive(Deserialize)]
5321 #[serde(deny_unknown_fields)]
5322 struct __Arm1 {
5323 #[serde(rename = "type")]
5324 _tag: __Tag1,
5325 #[serde(rename = "manual")]
5326 value: Strict<TriggerOccurrenceManual>,
5327 }
5328 #[derive(Deserialize)]
5329 enum __Tag2 {
5330 #[serde(rename = "schedule")]
5331 Value,
5332 }
5333 #[derive(Deserialize)]
5334 #[serde(deny_unknown_fields)]
5335 struct __Arm2 {
5336 #[serde(rename = "type")]
5337 _tag: __Tag2,
5338 #[serde(rename = "schedule")]
5339 value: Strict<TriggerOccurrenceSchedule>,
5340 }
5341 #[derive(Deserialize)]
5342 #[serde(untagged)]
5343 enum __Known {
5344 JournalEvent(Box<__Arm0>),
5345 Manual(Box<__Arm1>),
5346 Schedule(Box<__Arm2>),
5347 }
5348 Ok(match __Known::deserialize(deserializer)? {
5349 __Known::JournalEvent(arm) => Self::JournalEvent(arm.value.0),
5350 __Known::Manual(arm) => Self::Manual(arm.value.0),
5351 __Known::Schedule(arm) => Self::Schedule(arm.value.0),
5352 })
5353 }
5354}
5355
5356#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5358pub struct TriggerOccurrenceJournalEvent {
5359 #[serde(rename = "branchId")]
5361 pub branch_id: Uuid,
5362 #[serde(rename = "commitId")]
5364 pub commit_id: Uuid,
5365 #[serde(rename = "eventId")]
5367 pub event_id: Uuid,
5368 #[serde(rename = "resourceId")]
5370 pub resource_id: Uuid,
5371}
5372impl<'de> DeserializeStrict<'de> for TriggerOccurrenceJournalEvent {
5373 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5374 #[derive(Deserialize)]
5375 #[serde(deny_unknown_fields)]
5376 struct __Wire {
5377 #[serde(rename = "branchId")]
5378 branch_id: Strict<Uuid>,
5379 #[serde(rename = "commitId")]
5380 commit_id: Strict<Uuid>,
5381 #[serde(rename = "eventId")]
5382 event_id: Strict<Uuid>,
5383 #[serde(rename = "resourceId")]
5384 resource_id: Strict<Uuid>,
5385 }
5386 let wire = __Wire::deserialize(deserializer)?;
5387 Ok(Self {
5388 branch_id: wire.branch_id.0,
5389 commit_id: wire.commit_id.0,
5390 event_id: wire.event_id.0,
5391 resource_id: wire.resource_id.0,
5392 })
5393 }
5394}
5395
5396#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5398pub struct TriggerOccurrenceManual {
5399 #[serde(rename = "requestId")]
5401 pub request_id: Uuid,
5402}
5403impl<'de> DeserializeStrict<'de> for TriggerOccurrenceManual {
5404 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5405 #[derive(Deserialize)]
5406 #[serde(deny_unknown_fields)]
5407 struct __Wire {
5408 #[serde(rename = "requestId")]
5409 request_id: Strict<Uuid>,
5410 }
5411 let wire = __Wire::deserialize(deserializer)?;
5412 Ok(Self {
5413 request_id: wire.request_id.0,
5414 })
5415 }
5416}
5417
5418#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5420pub struct TriggerOccurrenceSchedule {
5421 #[serde(rename = "scheduledAtMicros")]
5423 pub scheduled_at_micros: SafeLong,
5424}
5425impl<'de> DeserializeStrict<'de> for TriggerOccurrenceSchedule {
5426 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5427 #[derive(Deserialize)]
5428 #[serde(deny_unknown_fields)]
5429 struct __Wire {
5430 #[serde(rename = "scheduledAtMicros")]
5431 scheduled_at_micros: Strict<SafeLong>,
5432 }
5433 let wire = __Wire::deserialize(deserializer)?;
5434 Ok(Self {
5435 scheduled_at_micros: wire.scheduled_at_micros.0,
5436 })
5437 }
5438}
5439
5440#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5442pub struct TriggerPage {
5443 #[serde(rename = "items")]
5445 pub items: Vec<TaskTrigger>,
5446 #[serde(rename = "nextPageToken")]
5448 #[serde(default, skip_serializing_if = "Option::is_none")]
5449 pub next_page_token: Option<String>,
5450}
5451impl<'de> DeserializeStrict<'de> for TriggerPage {
5452 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5453 #[derive(Deserialize)]
5454 #[serde(deny_unknown_fields)]
5455 struct __Wire {
5456 #[serde(rename = "items")]
5457 items: Strict<Vec<TaskTrigger>>,
5458 #[serde(rename = "nextPageToken")]
5459 #[serde(default)]
5460 next_page_token: Strict<Option<String>>,
5461 }
5462 let wire = __Wire::deserialize(deserializer)?;
5463 Ok(Self {
5464 items: wire.items.0,
5465 next_page_token: wire.next_page_token.0,
5466 })
5467 }
5468}
5469
5470#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5472pub struct TriggerPageRequest {
5473 #[serde(rename = "legacyTableId")]
5475 #[serde(default, skip_serializing_if = "Option::is_none")]
5476 pub legacy_table_id: Option<String>,
5477 #[serde(rename = "pageToken")]
5479 #[serde(default, skip_serializing_if = "Option::is_none")]
5480 pub page_token: Option<String>,
5481 #[serde(rename = "resourceId")]
5483 #[serde(default, skip_serializing_if = "Option::is_none")]
5484 pub resource_id: Option<Uuid>,
5485}
5486impl<'de> DeserializeStrict<'de> for TriggerPageRequest {
5487 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5488 #[derive(Deserialize)]
5489 #[serde(deny_unknown_fields)]
5490 struct __Wire {
5491 #[serde(rename = "legacyTableId")]
5492 #[serde(default)]
5493 legacy_table_id: Strict<Option<String>>,
5494 #[serde(rename = "pageToken")]
5495 #[serde(default)]
5496 page_token: Strict<Option<String>>,
5497 #[serde(rename = "resourceId")]
5498 #[serde(default)]
5499 resource_id: Strict<Option<Uuid>>,
5500 }
5501 let wire = __Wire::deserialize(deserializer)?;
5502 Ok(Self {
5503 legacy_table_id: wire.legacy_table_id.0,
5504 page_token: wire.page_token.0,
5505 resource_id: wire.resource_id.0,
5506 })
5507 }
5508}
5509
5510#[derive(Clone, Debug, PartialEq, Eq)]
5512pub enum TriggerSource {
5513 Interval(TriggerSourceInterval),
5515 JournalEvent(TriggerSourceJournalEvent),
5517 Unknown { tag: String, value: Value },
5519}
5520impl Serialize for TriggerSource {
5521 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5522 match self {
5523 Self::Interval(value) => {
5524 let mut object = serde_json::Map::new();
5525 object.insert("type".into(), Value::String("interval".into()));
5526 object.insert(
5527 "interval".into(),
5528 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
5529 );
5530 Value::Object(object).serialize(serializer)
5531 }
5532 Self::JournalEvent(value) => {
5533 let mut object = serde_json::Map::new();
5534 object.insert("type".into(), Value::String("journalEvent".into()));
5535 object.insert(
5536 "journalEvent".into(),
5537 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
5538 );
5539 Value::Object(object).serialize(serializer)
5540 }
5541 Self::Unknown { tag, value } => {
5542 if value.get("type").and_then(Value::as_str) != Some(tag.as_str()) {
5543 return Err(serde::ser::Error::custom(
5544 "unknown union discriminator mismatch",
5545 ));
5546 }
5547 value.serialize(serializer)
5548 }
5549 }
5550 }
5551}
5552impl<'de> Deserialize<'de> for TriggerSource {
5553 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5554 let value = Value::deserialize(deserializer)?;
5555 let tag = value
5556 .get("type")
5557 .and_then(Value::as_str)
5558 .ok_or_else(|| serde::de::Error::custom("union requires type"))?;
5559 match tag {
5560 "interval" => Ok(Self::Interval(
5561 serde_json::from_value(
5562 value
5563 .get("interval")
5564 .cloned()
5565 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
5566 )
5567 .map_err(serde::de::Error::custom)?,
5568 )),
5569 "journalEvent" => Ok(Self::JournalEvent(
5570 serde_json::from_value(
5571 value
5572 .get("journalEvent")
5573 .cloned()
5574 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
5575 )
5576 .map_err(serde::de::Error::custom)?,
5577 )),
5578 tag => Ok(Self::Unknown {
5579 tag: tag.to_owned(),
5580 value,
5581 }),
5582 }
5583 }
5584}
5585impl<'de> DeserializeStrict<'de> for TriggerSource {
5586 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5587 #[derive(Deserialize)]
5588 enum __Tag0 {
5589 #[serde(rename = "interval")]
5590 Value,
5591 }
5592 #[derive(Deserialize)]
5593 #[serde(deny_unknown_fields)]
5594 struct __Arm0 {
5595 #[serde(rename = "type")]
5596 _tag: __Tag0,
5597 #[serde(rename = "interval")]
5598 value: Strict<TriggerSourceInterval>,
5599 }
5600 #[derive(Deserialize)]
5601 enum __Tag1 {
5602 #[serde(rename = "journalEvent")]
5603 Value,
5604 }
5605 #[derive(Deserialize)]
5606 #[serde(deny_unknown_fields)]
5607 struct __Arm1 {
5608 #[serde(rename = "type")]
5609 _tag: __Tag1,
5610 #[serde(rename = "journalEvent")]
5611 value: Strict<TriggerSourceJournalEvent>,
5612 }
5613 #[derive(Deserialize)]
5614 #[serde(untagged)]
5615 enum __Known {
5616 Interval(Box<__Arm0>),
5617 JournalEvent(Box<__Arm1>),
5618 }
5619 Ok(match __Known::deserialize(deserializer)? {
5620 __Known::Interval(arm) => Self::Interval(arm.value.0),
5621 __Known::JournalEvent(arm) => Self::JournalEvent(arm.value.0),
5622 })
5623 }
5624}
5625
5626#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5628pub struct TriggerSourceInterval {
5629 #[serde(rename = "everySeconds")]
5631 pub every_seconds: u32,
5632 #[serde(rename = "startAtMicros")]
5634 #[serde(default, skip_serializing_if = "Option::is_none")]
5635 pub start_at_micros: Option<SafeLong>,
5636}
5637impl<'de> DeserializeStrict<'de> for TriggerSourceInterval {
5638 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5639 #[derive(Deserialize)]
5640 #[serde(deny_unknown_fields)]
5641 struct __Wire {
5642 #[serde(rename = "everySeconds")]
5643 every_seconds: Strict<u32>,
5644 #[serde(rename = "startAtMicros")]
5645 #[serde(default)]
5646 start_at_micros: Strict<Option<SafeLong>>,
5647 }
5648 let wire = __Wire::deserialize(deserializer)?;
5649 Ok(Self {
5650 every_seconds: wire.every_seconds.0,
5651 start_at_micros: wire.start_at_micros.0,
5652 })
5653 }
5654}
5655
5656#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5658pub struct TriggerSourceJournalEvent {
5659 #[serde(rename = "branchId")]
5661 pub branch_id: Uuid,
5662 #[serde(rename = "eventType")]
5664 pub event_type: ResourceEventType,
5665 #[serde(rename = "resourceId")]
5667 pub resource_id: Uuid,
5668}
5669impl<'de> DeserializeStrict<'de> for TriggerSourceJournalEvent {
5670 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5671 #[derive(Deserialize)]
5672 #[serde(deny_unknown_fields)]
5673 struct __Wire {
5674 #[serde(rename = "branchId")]
5675 branch_id: Strict<Uuid>,
5676 #[serde(rename = "eventType")]
5677 event_type: Strict<ResourceEventType>,
5678 #[serde(rename = "resourceId")]
5679 resource_id: Strict<Uuid>,
5680 }
5681 let wire = __Wire::deserialize(deserializer)?;
5682 Ok(Self {
5683 branch_id: wire.branch_id.0,
5684 event_type: wire.event_type.0,
5685 resource_id: wire.resource_id.0,
5686 })
5687 }
5688}
5689
5690#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5692pub struct UpdateTriggerRequest {
5693 #[serde(rename = "definition")]
5695 pub definition: TriggerDefinition,
5696 #[serde(rename = "expectedRevision")]
5698 pub expected_revision: SafeLong,
5699}
5700impl<'de> DeserializeStrict<'de> for UpdateTriggerRequest {
5701 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5702 #[derive(Deserialize)]
5703 #[serde(deny_unknown_fields)]
5704 struct __Wire {
5705 #[serde(rename = "definition")]
5706 definition: Strict<TriggerDefinition>,
5707 #[serde(rename = "expectedRevision")]
5708 expected_revision: Strict<SafeLong>,
5709 }
5710 let wire = __Wire::deserialize(deserializer)?;
5711 Ok(Self {
5712 definition: wire.definition.0,
5713 expected_revision: wire.expected_revision.0,
5714 })
5715 }
5716}
5717
5718#[derive(Clone, Debug, PartialEq, Eq)]
5720pub enum VectorIndexBuildMode {
5721 Auto,
5723 Full,
5725 Incremental,
5727 Unknown(String),
5729}
5730impl Serialize for VectorIndexBuildMode {
5731 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5732 serializer.serialize_str(match self {
5733 Self::Auto => "auto",
5734 Self::Full => "full",
5735 Self::Incremental => "incremental",
5736 Self::Unknown(value) => value,
5737 })
5738 }
5739}
5740impl<'de> Deserialize<'de> for VectorIndexBuildMode {
5741 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5742 Ok(match String::deserialize(deserializer)?.as_str() {
5743 "auto" => Self::Auto,
5744 "full" => Self::Full,
5745 "incremental" => Self::Incremental,
5746 value => Self::Unknown(value.to_owned()),
5747 })
5748 }
5749}
5750impl<'de> DeserializeStrict<'de> for VectorIndexBuildMode {
5751 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5752 #[derive(Deserialize)]
5753 enum __Known {
5754 #[serde(rename = "auto")]
5755 Auto,
5756 #[serde(rename = "full")]
5757 Full,
5758 #[serde(rename = "incremental")]
5759 Incremental,
5760 }
5761 Ok(match __Known::deserialize(deserializer)? {
5762 __Known::Auto => Self::Auto,
5763 __Known::Full => Self::Full,
5764 __Known::Incremental => Self::Incremental,
5765 })
5766 }
5767}
5768
5769#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5772pub struct VectorIndexRefreshDefinition {
5773 #[serde(rename = "latest")]
5775 #[serde(default, skip_serializing_if = "Option::is_none")]
5776 pub latest: Option<bool>,
5777 #[serde(rename = "mode")]
5779 pub mode: VectorIndexBuildMode,
5780 #[serde(rename = "readTarget")]
5782 pub read_target: TaskReadTarget,
5783 #[serde(rename = "sourceResourceId")]
5785 pub source_resource_id: Uuid,
5786 #[serde(rename = "vectorIndexId")]
5788 pub vector_index_id: Uuid,
5789 #[serde(rename = "vectorIndexResourceId")]
5791 pub vector_index_resource_id: Uuid,
5792}
5793impl<'de> DeserializeStrict<'de> for VectorIndexRefreshDefinition {
5794 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5795 #[derive(Deserialize)]
5796 #[serde(deny_unknown_fields)]
5797 struct __Wire {
5798 #[serde(rename = "latest")]
5799 #[serde(default)]
5800 latest: Strict<Option<bool>>,
5801 #[serde(rename = "mode")]
5802 mode: Strict<VectorIndexBuildMode>,
5803 #[serde(rename = "readTarget")]
5804 read_target: Strict<TaskReadTarget>,
5805 #[serde(rename = "sourceResourceId")]
5806 source_resource_id: Strict<Uuid>,
5807 #[serde(rename = "vectorIndexId")]
5808 vector_index_id: Strict<Uuid>,
5809 #[serde(rename = "vectorIndexResourceId")]
5810 vector_index_resource_id: Strict<Uuid>,
5811 }
5812 let wire = __Wire::deserialize(deserializer)?;
5813 Ok(Self {
5814 latest: wire.latest.0,
5815 mode: wire.mode.0,
5816 read_target: wire.read_target.0,
5817 source_resource_id: wire.source_resource_id.0,
5818 vector_index_id: wire.vector_index_id.0,
5819 vector_index_resource_id: wire.vector_index_resource_id.0,
5820 })
5821 }
5822}
5823
5824#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5826pub struct WorkerAttempt {
5827 #[serde(rename = "attemptId")]
5829 pub attempt_id: Uuid,
5830 #[serde(rename = "ordinal")]
5832 pub ordinal: u32,
5833 #[serde(rename = "requirements")]
5835 pub requirements: TaskRequirements,
5836 #[serde(rename = "startedAtMicros")]
5838 pub started_at_micros: SafeLong,
5839 #[serde(rename = "status")]
5841 pub status: AttemptStatus,
5842 #[serde(rename = "taskId")]
5844 pub task_id: Uuid,
5845 #[serde(rename = "taskSpecName")]
5847 pub task_spec_name: String,
5848 #[serde(rename = "terminalAtMicros")]
5850 #[serde(default, skip_serializing_if = "Option::is_none")]
5851 pub terminal_at_micros: Option<SafeLong>,
5852}
5853impl<'de> DeserializeStrict<'de> for WorkerAttempt {
5854 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5855 #[derive(Deserialize)]
5856 #[serde(deny_unknown_fields)]
5857 struct __Wire {
5858 #[serde(rename = "attemptId")]
5859 attempt_id: Strict<Uuid>,
5860 #[serde(rename = "ordinal")]
5861 ordinal: Strict<u32>,
5862 #[serde(rename = "requirements")]
5863 requirements: Strict<TaskRequirements>,
5864 #[serde(rename = "startedAtMicros")]
5865 started_at_micros: Strict<SafeLong>,
5866 #[serde(rename = "status")]
5867 status: Strict<AttemptStatus>,
5868 #[serde(rename = "taskId")]
5869 task_id: Strict<Uuid>,
5870 #[serde(rename = "taskSpecName")]
5871 task_spec_name: Strict<String>,
5872 #[serde(rename = "terminalAtMicros")]
5873 #[serde(default)]
5874 terminal_at_micros: Strict<Option<SafeLong>>,
5875 }
5876 let wire = __Wire::deserialize(deserializer)?;
5877 Ok(Self {
5878 attempt_id: wire.attempt_id.0,
5879 ordinal: wire.ordinal.0,
5880 requirements: wire.requirements.0,
5881 started_at_micros: wire.started_at_micros.0,
5882 status: wire.status.0,
5883 task_id: wire.task_id.0,
5884 task_spec_name: wire.task_spec_name.0,
5885 terminal_at_micros: wire.terminal_at_micros.0,
5886 })
5887 }
5888}
5889
5890#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5892pub struct WorkerCapabilities {
5893 #[serde(rename = "architecture")]
5895 pub architecture: String,
5896 #[serde(rename = "installedTaskSpecs")]
5898 pub installed_task_specs: Vec<TaskSpecId>,
5899 #[serde(rename = "operatingSystem")]
5901 pub operating_system: String,
5902 #[serde(rename = "resources")]
5904 pub resources: WorkerResources,
5905}
5906impl<'de> DeserializeStrict<'de> for WorkerCapabilities {
5907 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5908 #[derive(Deserialize)]
5909 #[serde(deny_unknown_fields)]
5910 struct __Wire {
5911 #[serde(rename = "architecture")]
5912 architecture: Strict<String>,
5913 #[serde(rename = "installedTaskSpecs")]
5914 installed_task_specs: Strict<Vec<TaskSpecId>>,
5915 #[serde(rename = "operatingSystem")]
5916 operating_system: Strict<String>,
5917 #[serde(rename = "resources")]
5918 resources: Strict<WorkerResources>,
5919 }
5920 let wire = __Wire::deserialize(deserializer)?;
5921 Ok(Self {
5922 architecture: wire.architecture.0,
5923 installed_task_specs: wire.installed_task_specs.0,
5924 operating_system: wire.operating_system.0,
5925 resources: wire.resources.0,
5926 })
5927 }
5928}
5929
5930#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
5932pub struct WorkerGpuResources {
5933 #[serde(rename = "count")]
5935 pub count: u32,
5936 #[serde(rename = "memoryBytes")]
5938 pub memory_bytes: SafeUnsignedLong,
5939 #[serde(rename = "runtime")]
5941 pub runtime: GpuRuntime,
5942}
5943impl<'de> DeserializeStrict<'de> for WorkerGpuResources {
5944 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5945 #[derive(Deserialize)]
5946 #[serde(deny_unknown_fields)]
5947 struct __Wire {
5948 #[serde(rename = "count")]
5949 count: Strict<u32>,
5950 #[serde(rename = "memoryBytes")]
5951 memory_bytes: Strict<SafeUnsignedLong>,
5952 #[serde(rename = "runtime")]
5953 runtime: Strict<GpuRuntime>,
5954 }
5955 let wire = __Wire::deserialize(deserializer)?;
5956 Ok(Self {
5957 count: wire.count.0,
5958 memory_bytes: wire.memory_bytes.0,
5959 runtime: wire.runtime.0,
5960 })
5961 }
5962}
5963
5964#[derive(Clone, Debug, PartialEq, Eq)]
5966pub enum WorkerIdentity {
5967 User(WorkerIdentityUser),
5969 Workload(WorkerIdentityWorkload),
5971 Unknown { tag: String, value: Value },
5973}
5974impl Serialize for WorkerIdentity {
5975 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5976 match self {
5977 Self::User(value) => {
5978 let mut object = serde_json::Map::new();
5979 object.insert("type".into(), Value::String("user".into()));
5980 object.insert(
5981 "user".into(),
5982 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
5983 );
5984 Value::Object(object).serialize(serializer)
5985 }
5986 Self::Workload(value) => {
5987 let mut object = serde_json::Map::new();
5988 object.insert("type".into(), Value::String("workload".into()));
5989 object.insert(
5990 "workload".into(),
5991 serde_json::to_value(value).map_err(serde::ser::Error::custom)?,
5992 );
5993 Value::Object(object).serialize(serializer)
5994 }
5995 Self::Unknown { tag, value } => {
5996 if value.get("type").and_then(Value::as_str) != Some(tag.as_str()) {
5997 return Err(serde::ser::Error::custom(
5998 "unknown union discriminator mismatch",
5999 ));
6000 }
6001 value.serialize(serializer)
6002 }
6003 }
6004 }
6005}
6006impl<'de> Deserialize<'de> for WorkerIdentity {
6007 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6008 let value = Value::deserialize(deserializer)?;
6009 let tag = value
6010 .get("type")
6011 .and_then(Value::as_str)
6012 .ok_or_else(|| serde::de::Error::custom("union requires type"))?;
6013 match tag {
6014 "user" => Ok(Self::User(
6015 serde_json::from_value(
6016 value
6017 .get("user")
6018 .cloned()
6019 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
6020 )
6021 .map_err(serde::de::Error::custom)?,
6022 )),
6023 "workload" => Ok(Self::Workload(
6024 serde_json::from_value(
6025 value
6026 .get("workload")
6027 .cloned()
6028 .ok_or_else(|| serde::de::Error::custom("union requires matching arm"))?,
6029 )
6030 .map_err(serde::de::Error::custom)?,
6031 )),
6032 tag => Ok(Self::Unknown {
6033 tag: tag.to_owned(),
6034 value,
6035 }),
6036 }
6037 }
6038}
6039impl<'de> DeserializeStrict<'de> for WorkerIdentity {
6040 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6041 #[derive(Deserialize)]
6042 enum __Tag0 {
6043 #[serde(rename = "user")]
6044 Value,
6045 }
6046 #[derive(Deserialize)]
6047 #[serde(deny_unknown_fields)]
6048 struct __Arm0 {
6049 #[serde(rename = "type")]
6050 _tag: __Tag0,
6051 #[serde(rename = "user")]
6052 value: Strict<WorkerIdentityUser>,
6053 }
6054 #[derive(Deserialize)]
6055 enum __Tag1 {
6056 #[serde(rename = "workload")]
6057 Value,
6058 }
6059 #[derive(Deserialize)]
6060 #[serde(deny_unknown_fields)]
6061 struct __Arm1 {
6062 #[serde(rename = "type")]
6063 _tag: __Tag1,
6064 #[serde(rename = "workload")]
6065 value: Strict<WorkerIdentityWorkload>,
6066 }
6067 #[derive(Deserialize)]
6068 #[serde(untagged)]
6069 enum __Known {
6070 User(Box<__Arm0>),
6071 Workload(Box<__Arm1>),
6072 }
6073 Ok(match __Known::deserialize(deserializer)? {
6074 __Known::User(arm) => Self::User(arm.value.0),
6075 __Known::Workload(arm) => Self::Workload(arm.value.0),
6076 })
6077 }
6078}
6079
6080#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
6082pub struct WorkerIdentityUser {
6083 #[serde(rename = "userId")]
6085 pub user_id: String,
6086}
6087impl<'de> DeserializeStrict<'de> for WorkerIdentityUser {
6088 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6089 #[derive(Deserialize)]
6090 #[serde(deny_unknown_fields)]
6091 struct __Wire {
6092 #[serde(rename = "userId")]
6093 user_id: Strict<String>,
6094 }
6095 let wire = __Wire::deserialize(deserializer)?;
6096 Ok(Self {
6097 user_id: wire.user_id.0,
6098 })
6099 }
6100}
6101
6102#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
6104pub struct WorkerIdentityWorkload {
6105 #[serde(rename = "workloadId")]
6107 pub workload_id: String,
6108}
6109impl<'de> DeserializeStrict<'de> for WorkerIdentityWorkload {
6110 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6111 #[derive(Deserialize)]
6112 #[serde(deny_unknown_fields)]
6113 struct __Wire {
6114 #[serde(rename = "workloadId")]
6115 workload_id: Strict<String>,
6116 }
6117 let wire = __Wire::deserialize(deserializer)?;
6118 Ok(Self {
6119 workload_id: wire.workload_id.0,
6120 })
6121 }
6122}
6123
6124#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
6126pub struct WorkerPool {
6127 #[serde(rename = "capabilities")]
6129 pub capabilities: WorkerCapabilities,
6130 #[serde(rename = "createdAtMicros")]
6132 pub created_at_micros: SafeLong,
6133 #[serde(rename = "managedProfileId")]
6135 #[serde(default, skip_serializing_if = "Option::is_none")]
6136 pub managed_profile_id: Option<String>,
6137 #[serde(rename = "managedProviderId")]
6139 #[serde(default, skip_serializing_if = "Option::is_none")]
6140 pub managed_provider_id: Option<String>,
6141 #[serde(rename = "maxWorkers")]
6143 pub max_workers: u32,
6144 #[serde(rename = "name")]
6146 pub name: String,
6147 #[serde(rename = "projectId")]
6149 pub project_id: String,
6150 #[serde(rename = "status")]
6152 pub status: WorkerPoolStatus,
6153 #[serde(rename = "updatedAtMicros")]
6155 pub updated_at_micros: SafeLong,
6156 #[serde(rename = "workerPoolId")]
6158 pub worker_pool_id: Uuid,
6159}
6160impl<'de> DeserializeStrict<'de> for WorkerPool {
6161 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6162 #[derive(Deserialize)]
6163 #[serde(deny_unknown_fields)]
6164 struct __Wire {
6165 #[serde(rename = "capabilities")]
6166 capabilities: Strict<WorkerCapabilities>,
6167 #[serde(rename = "createdAtMicros")]
6168 created_at_micros: Strict<SafeLong>,
6169 #[serde(rename = "managedProfileId")]
6170 #[serde(default)]
6171 managed_profile_id: Strict<Option<String>>,
6172 #[serde(rename = "managedProviderId")]
6173 #[serde(default)]
6174 managed_provider_id: Strict<Option<String>>,
6175 #[serde(rename = "maxWorkers")]
6176 max_workers: Strict<u32>,
6177 #[serde(rename = "name")]
6178 name: Strict<String>,
6179 #[serde(rename = "projectId")]
6180 project_id: Strict<String>,
6181 #[serde(rename = "status")]
6182 status: Strict<WorkerPoolStatus>,
6183 #[serde(rename = "updatedAtMicros")]
6184 updated_at_micros: Strict<SafeLong>,
6185 #[serde(rename = "workerPoolId")]
6186 worker_pool_id: Strict<Uuid>,
6187 }
6188 let wire = __Wire::deserialize(deserializer)?;
6189 Ok(Self {
6190 capabilities: wire.capabilities.0,
6191 created_at_micros: wire.created_at_micros.0,
6192 managed_profile_id: wire.managed_profile_id.0,
6193 managed_provider_id: wire.managed_provider_id.0,
6194 max_workers: wire.max_workers.0,
6195 name: wire.name.0,
6196 project_id: wire.project_id.0,
6197 status: wire.status.0,
6198 updated_at_micros: wire.updated_at_micros.0,
6199 worker_pool_id: wire.worker_pool_id.0,
6200 })
6201 }
6202}
6203
6204#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
6206pub struct WorkerPoolDetails {
6207 #[serde(rename = "stats")]
6209 pub stats: WorkerPoolStats,
6210 #[serde(rename = "workerPool")]
6212 pub worker_pool: WorkerPool,
6213}
6214impl<'de> DeserializeStrict<'de> for WorkerPoolDetails {
6215 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6216 #[derive(Deserialize)]
6217 #[serde(deny_unknown_fields)]
6218 struct __Wire {
6219 #[serde(rename = "stats")]
6220 stats: Strict<WorkerPoolStats>,
6221 #[serde(rename = "workerPool")]
6222 worker_pool: Strict<WorkerPool>,
6223 }
6224 let wire = __Wire::deserialize(deserializer)?;
6225 Ok(Self {
6226 stats: wire.stats.0,
6227 worker_pool: wire.worker_pool.0,
6228 })
6229 }
6230}
6231
6232#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
6234pub struct WorkerPoolResponse {
6235 #[serde(rename = "workerPool")]
6237 pub worker_pool: WorkerPool,
6238}
6239impl<'de> DeserializeStrict<'de> for WorkerPoolResponse {
6240 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6241 #[derive(Deserialize)]
6242 #[serde(deny_unknown_fields)]
6243 struct __Wire {
6244 #[serde(rename = "workerPool")]
6245 worker_pool: Strict<WorkerPool>,
6246 }
6247 let wire = __Wire::deserialize(deserializer)?;
6248 Ok(Self {
6249 worker_pool: wire.worker_pool.0,
6250 })
6251 }
6252}
6253
6254#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
6256pub struct WorkerPoolStats {
6257 #[serde(rename = "activeWorkerCount")]
6259 pub active_worker_count: SafeUnsignedLong,
6260 #[serde(rename = "busyWorkerCount")]
6262 pub busy_worker_count: SafeUnsignedLong,
6263 #[serde(rename = "claimedReadyTaskCount")]
6265 pub claimed_ready_task_count: SafeUnsignedLong,
6266 #[serde(rename = "oldestReadyTaskAvailableAtMicros")]
6268 #[serde(default, skip_serializing_if = "Option::is_none")]
6269 pub oldest_ready_task_available_at_micros: Option<SafeLong>,
6270 #[serde(rename = "runningTaskCount")]
6272 pub running_task_count: SafeUnsignedLong,
6273 #[serde(rename = "workerPoolId")]
6275 pub worker_pool_id: Uuid,
6276}
6277impl<'de> DeserializeStrict<'de> for WorkerPoolStats {
6278 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6279 #[derive(Deserialize)]
6280 #[serde(deny_unknown_fields)]
6281 struct __Wire {
6282 #[serde(rename = "activeWorkerCount")]
6283 active_worker_count: Strict<SafeUnsignedLong>,
6284 #[serde(rename = "busyWorkerCount")]
6285 busy_worker_count: Strict<SafeUnsignedLong>,
6286 #[serde(rename = "claimedReadyTaskCount")]
6287 claimed_ready_task_count: Strict<SafeUnsignedLong>,
6288 #[serde(rename = "oldestReadyTaskAvailableAtMicros")]
6289 #[serde(default)]
6290 oldest_ready_task_available_at_micros: Strict<Option<SafeLong>>,
6291 #[serde(rename = "runningTaskCount")]
6292 running_task_count: Strict<SafeUnsignedLong>,
6293 #[serde(rename = "workerPoolId")]
6294 worker_pool_id: Strict<Uuid>,
6295 }
6296 let wire = __Wire::deserialize(deserializer)?;
6297 Ok(Self {
6298 active_worker_count: wire.active_worker_count.0,
6299 busy_worker_count: wire.busy_worker_count.0,
6300 claimed_ready_task_count: wire.claimed_ready_task_count.0,
6301 oldest_ready_task_available_at_micros: wire.oldest_ready_task_available_at_micros.0,
6302 running_task_count: wire.running_task_count.0,
6303 worker_pool_id: wire.worker_pool_id.0,
6304 })
6305 }
6306}
6307
6308#[derive(Clone, Debug, PartialEq, Eq)]
6310pub enum WorkerPoolStatus {
6311 Active,
6313 Paused,
6315 Retired,
6317 Unknown(String),
6319}
6320impl Serialize for WorkerPoolStatus {
6321 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6322 serializer.serialize_str(match self {
6323 Self::Active => "active",
6324 Self::Paused => "paused",
6325 Self::Retired => "retired",
6326 Self::Unknown(value) => value,
6327 })
6328 }
6329}
6330impl<'de> Deserialize<'de> for WorkerPoolStatus {
6331 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6332 Ok(match String::deserialize(deserializer)?.as_str() {
6333 "active" => Self::Active,
6334 "paused" => Self::Paused,
6335 "retired" => Self::Retired,
6336 value => Self::Unknown(value.to_owned()),
6337 })
6338 }
6339}
6340impl<'de> DeserializeStrict<'de> for WorkerPoolStatus {
6341 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6342 #[derive(Deserialize)]
6343 enum __Known {
6344 #[serde(rename = "active")]
6345 Active,
6346 #[serde(rename = "paused")]
6347 Paused,
6348 #[serde(rename = "retired")]
6349 Retired,
6350 }
6351 Ok(match __Known::deserialize(deserializer)? {
6352 __Known::Active => Self::Active,
6353 __Known::Paused => Self::Paused,
6354 __Known::Retired => Self::Retired,
6355 })
6356 }
6357}
6358
6359#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
6361pub struct WorkerResources {
6362 #[serde(rename = "cpuCount")]
6364 pub cpu_count: u32,
6365 #[serde(rename = "gpu")]
6367 #[serde(default, skip_serializing_if = "Option::is_none")]
6368 pub gpu: Option<WorkerGpuResources>,
6369 #[serde(rename = "memoryBytes")]
6371 pub memory_bytes: SafeUnsignedLong,
6372}
6373impl<'de> DeserializeStrict<'de> for WorkerResources {
6374 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6375 #[derive(Deserialize)]
6376 #[serde(deny_unknown_fields)]
6377 struct __Wire {
6378 #[serde(rename = "cpuCount")]
6379 cpu_count: Strict<u32>,
6380 #[serde(rename = "gpu")]
6381 #[serde(default)]
6382 gpu: Strict<Option<WorkerGpuResources>>,
6383 #[serde(rename = "memoryBytes")]
6384 memory_bytes: Strict<SafeUnsignedLong>,
6385 }
6386 let wire = __Wire::deserialize(deserializer)?;
6387 Ok(Self {
6388 cpu_count: wire.cpu_count.0,
6389 gpu: wire.gpu.0,
6390 memory_bytes: wire.memory_bytes.0,
6391 })
6392 }
6393}
6394
6395#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
6397pub struct WorkerSession {
6398 #[serde(rename = "capabilities")]
6400 pub capabilities: WorkerCapabilities,
6401 #[serde(rename = "createdAtMicros")]
6403 pub created_at_micros: SafeLong,
6404 #[serde(rename = "currentAttemptId")]
6406 #[serde(default, skip_serializing_if = "Option::is_none")]
6407 pub current_attempt_id: Option<Uuid>,
6408 #[serde(rename = "identity")]
6410 pub identity: WorkerIdentity,
6411 #[serde(rename = "lastHeartbeatAtMicros")]
6413 pub last_heartbeat_at_micros: SafeLong,
6414 #[serde(rename = "processInstanceId")]
6416 pub process_instance_id: Uuid,
6417 #[serde(rename = "projectId")]
6419 pub project_id: String,
6420 #[serde(rename = "releaseVersion")]
6422 pub release_version: String,
6423 #[serde(rename = "resourceUsage")]
6425 #[serde(default, skip_serializing_if = "Option::is_none")]
6426 pub resource_usage: Option<ResourceUsageSummary>,
6427 #[serde(rename = "status")]
6429 pub status: WorkerSessionStatus,
6430 #[serde(rename = "tags")]
6432 #[serde(default, skip_serializing_if = "Option::is_none")]
6433 pub tags: Option<WorkerSessionTags>,
6434 #[serde(rename = "updatedAtMicros")]
6436 pub updated_at_micros: SafeLong,
6437 #[serde(rename = "workerPoolId")]
6439 #[serde(default, skip_serializing_if = "Option::is_none")]
6440 pub worker_pool_id: Option<Uuid>,
6441 #[serde(rename = "workerSessionId")]
6443 pub worker_session_id: Uuid,
6444}
6445impl<'de> DeserializeStrict<'de> for WorkerSession {
6446 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6447 #[derive(Deserialize)]
6448 #[serde(deny_unknown_fields)]
6449 struct __Wire {
6450 #[serde(rename = "capabilities")]
6451 capabilities: Strict<WorkerCapabilities>,
6452 #[serde(rename = "createdAtMicros")]
6453 created_at_micros: Strict<SafeLong>,
6454 #[serde(rename = "currentAttemptId")]
6455 #[serde(default)]
6456 current_attempt_id: Strict<Option<Uuid>>,
6457 #[serde(rename = "identity")]
6458 identity: Strict<WorkerIdentity>,
6459 #[serde(rename = "lastHeartbeatAtMicros")]
6460 last_heartbeat_at_micros: Strict<SafeLong>,
6461 #[serde(rename = "processInstanceId")]
6462 process_instance_id: Strict<Uuid>,
6463 #[serde(rename = "projectId")]
6464 project_id: Strict<String>,
6465 #[serde(rename = "releaseVersion")]
6466 release_version: Strict<String>,
6467 #[serde(rename = "resourceUsage")]
6468 #[serde(default)]
6469 resource_usage: Strict<Option<ResourceUsageSummary>>,
6470 #[serde(rename = "status")]
6471 status: Strict<WorkerSessionStatus>,
6472 #[serde(rename = "tags")]
6473 #[serde(default)]
6474 tags: Strict<Option<WorkerSessionTags>>,
6475 #[serde(rename = "updatedAtMicros")]
6476 updated_at_micros: Strict<SafeLong>,
6477 #[serde(rename = "workerPoolId")]
6478 #[serde(default)]
6479 worker_pool_id: Strict<Option<Uuid>>,
6480 #[serde(rename = "workerSessionId")]
6481 worker_session_id: Strict<Uuid>,
6482 }
6483 let wire = __Wire::deserialize(deserializer)?;
6484 Ok(Self {
6485 capabilities: wire.capabilities.0,
6486 created_at_micros: wire.created_at_micros.0,
6487 current_attempt_id: wire.current_attempt_id.0,
6488 identity: wire.identity.0,
6489 last_heartbeat_at_micros: wire.last_heartbeat_at_micros.0,
6490 process_instance_id: wire.process_instance_id.0,
6491 project_id: wire.project_id.0,
6492 release_version: wire.release_version.0,
6493 resource_usage: wire.resource_usage.0,
6494 status: wire.status.0,
6495 tags: wire.tags.0,
6496 updated_at_micros: wire.updated_at_micros.0,
6497 worker_pool_id: wire.worker_pool_id.0,
6498 worker_session_id: wire.worker_session_id.0,
6499 })
6500 }
6501}
6502
6503#[derive(Clone, Debug, PartialEq, Eq)]
6505pub enum WorkerSessionStatus {
6506 Active,
6508 Draining,
6510 Expired,
6512 Unknown(String),
6514}
6515impl Serialize for WorkerSessionStatus {
6516 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6517 serializer.serialize_str(match self {
6518 Self::Active => "active",
6519 Self::Draining => "draining",
6520 Self::Expired => "expired",
6521 Self::Unknown(value) => value,
6522 })
6523 }
6524}
6525impl<'de> Deserialize<'de> for WorkerSessionStatus {
6526 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6527 Ok(match String::deserialize(deserializer)?.as_str() {
6528 "active" => Self::Active,
6529 "draining" => Self::Draining,
6530 "expired" => Self::Expired,
6531 value => Self::Unknown(value.to_owned()),
6532 })
6533 }
6534}
6535impl<'de> DeserializeStrict<'de> for WorkerSessionStatus {
6536 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6537 #[derive(Deserialize)]
6538 enum __Known {
6539 #[serde(rename = "active")]
6540 Active,
6541 #[serde(rename = "draining")]
6542 Draining,
6543 #[serde(rename = "expired")]
6544 Expired,
6545 }
6546 Ok(match __Known::deserialize(deserializer)? {
6547 __Known::Active => Self::Active,
6548 __Known::Draining => Self::Draining,
6549 __Known::Expired => Self::Expired,
6550 })
6551 }
6552}
6553
6554#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
6556#[serde(transparent)]
6557pub struct WorkerSessionTags(pub BTreeMap<String, String>);
6558impl<'de> DeserializeStrict<'de> for WorkerSessionTags {
6559 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6560 Ok(Self(
6561 Strict::<BTreeMap<String, String>>::deserialize(deserializer)?.0,
6562 ))
6563 }
6564}
6565
6566#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
6568pub struct WorkerTask {
6569 #[serde(rename = "attemptId")]
6571 pub attempt_id: Uuid,
6572 #[serde(rename = "input")]
6574 pub input: Value,
6575 #[serde(rename = "leaseExpiresAtMicros")]
6577 pub lease_expires_at_micros: SafeLong,
6578 #[serde(rename = "projectId")]
6580 pub project_id: String,
6581 #[serde(rename = "stopReason")]
6583 #[serde(default, skip_serializing_if = "Option::is_none")]
6584 pub stop_reason: Option<TaskStopReason>,
6585 #[serde(rename = "taskId")]
6587 pub task_id: Uuid,
6588 #[serde(rename = "taskSpecId")]
6590 pub task_spec_id: TaskSpecId,
6591 #[serde(rename = "traceContext")]
6593 pub trace_context: BTreeMap<String, String>,
6594}
6595impl<'de> DeserializeStrict<'de> for WorkerTask {
6596 fn deserialize_strict<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6597 #[derive(Deserialize)]
6598 #[serde(deny_unknown_fields)]
6599 struct __Wire {
6600 #[serde(rename = "attemptId")]
6601 attempt_id: Strict<Uuid>,
6602 #[serde(rename = "input")]
6603 input: Strict<Value>,
6604 #[serde(rename = "leaseExpiresAtMicros")]
6605 lease_expires_at_micros: Strict<SafeLong>,
6606 #[serde(rename = "projectId")]
6607 project_id: Strict<String>,
6608 #[serde(rename = "stopReason")]
6609 #[serde(default)]
6610 stop_reason: Strict<Option<TaskStopReason>>,
6611 #[serde(rename = "taskId")]
6612 task_id: Strict<Uuid>,
6613 #[serde(rename = "taskSpecId")]
6614 task_spec_id: Strict<TaskSpecId>,
6615 #[serde(rename = "traceContext")]
6616 trace_context: Strict<BTreeMap<String, String>>,
6617 }
6618 let wire = __Wire::deserialize(deserializer)?;
6619 Ok(Self {
6620 attempt_id: wire.attempt_id.0,
6621 input: wire.input.0,
6622 lease_expires_at_micros: wire.lease_expires_at_micros.0,
6623 project_id: wire.project_id.0,
6624 stop_reason: wire.stop_reason.0,
6625 task_id: wire.task_id.0,
6626 task_spec_id: wire.task_spec_id.0,
6627 trace_context: wire.trace_context.0,
6628 })
6629 }
6630}
6631
6632#[derive(Clone, Debug, PartialEq, Eq)]
6634pub enum TasksError {
6635 Conflict { reason: String },
6637 InvalidArgument { reason: String },
6639 LimitReached { reason: String },
6641 NotFound { resource: String },
6643 NotImplemented { reason: String },
6645}
6646impl TasksError {
6647 pub fn status(&self) -> u16 {
6649 match self {
6650 Self::Conflict { .. } => 409,
6651 Self::InvalidArgument { .. } => 400,
6652 Self::LimitReached { .. } => 412,
6653 Self::NotFound { .. } => 404,
6654 Self::NotImplemented { .. } => 412,
6655 }
6656 }
6657 pub fn envelope(&self, instance: String) -> ErrorEnvelope {
6659 match self {
6660 Self::Conflict { reason } => {
6661 let mut envelope = ErrorEnvelope::new("CONFLICT", "Tasks:Conflict", instance);
6662 envelope
6663 .parameters
6664 .insert("reason".into(), reason.to_string());
6665 envelope
6666 }
6667 Self::InvalidArgument { reason } => {
6668 let mut envelope =
6669 ErrorEnvelope::new("INVALID_ARGUMENT", "Tasks:InvalidArgument", instance);
6670 envelope
6671 .parameters
6672 .insert("reason".into(), reason.to_string());
6673 envelope
6674 }
6675 Self::LimitReached { reason } => {
6676 let mut envelope =
6677 ErrorEnvelope::new("FAILED_PRECONDITION", "Tasks:LimitReached", instance);
6678 envelope
6679 .parameters
6680 .insert("reason".into(), reason.to_string());
6681 envelope
6682 }
6683 Self::NotFound { resource } => {
6684 let mut envelope = ErrorEnvelope::new("NOT_FOUND", "Tasks:NotFound", instance);
6685 envelope
6686 .parameters
6687 .insert("resource".into(), resource.to_string());
6688 envelope
6689 }
6690 Self::NotImplemented { reason } => {
6691 let mut envelope =
6692 ErrorEnvelope::new("FAILED_PRECONDITION", "Tasks:NotImplemented", instance);
6693 envelope
6694 .parameters
6695 .insert("reason".into(), reason.to_string());
6696 envelope
6697 }
6698 }
6699 }
6700 pub fn decode_envelope(envelope: &ErrorEnvelope) -> Option<Self> {
6702 if envelope.error_instance_id.len() != 36
6703 || Uuid::parse_str(&envelope.error_instance_id).is_err()
6704 {
6705 return None;
6706 }
6707 match envelope.error_name.as_str() {
6708 "Tasks:Conflict" => {
6709 if envelope.error_code != "CONFLICT" {
6710 return None;
6711 }
6712 let reason = envelope.parameters.get("reason")?.clone();
6713 Some(Self::Conflict { reason })
6714 }
6715 "Tasks:InvalidArgument" => {
6716 if envelope.error_code != "INVALID_ARGUMENT" {
6717 return None;
6718 }
6719 let reason = envelope.parameters.get("reason")?.clone();
6720 Some(Self::InvalidArgument { reason })
6721 }
6722 "Tasks:LimitReached" => {
6723 if envelope.error_code != "FAILED_PRECONDITION" {
6724 return None;
6725 }
6726 let reason = envelope.parameters.get("reason")?.clone();
6727 Some(Self::LimitReached { reason })
6728 }
6729 "Tasks:NotFound" => {
6730 if envelope.error_code != "NOT_FOUND" {
6731 return None;
6732 }
6733 let resource = envelope.parameters.get("resource")?.clone();
6734 Some(Self::NotFound { resource })
6735 }
6736 "Tasks:NotImplemented" => {
6737 if envelope.error_code != "FAILED_PRECONDITION" {
6738 return None;
6739 }
6740 let reason = envelope.parameters.get("reason")?.clone();
6741 Some(Self::NotImplemented { reason })
6742 }
6743 _ => None,
6744 }
6745 }
6746}
6747impl Display for TasksError {
6748 fn fmt(&self, formatter: &mut Formatter<'_>) -> fmt::Result {
6749 match self {
6750 Self::Conflict { reason } => write!(formatter, "Tasks:Conflict (reason: {})", reason),
6751 Self::InvalidArgument { reason } => {
6752 write!(formatter, "Tasks:InvalidArgument (reason: {})", reason)
6753 }
6754 Self::LimitReached { reason } => {
6755 write!(formatter, "Tasks:LimitReached (reason: {})", reason)
6756 }
6757 Self::NotFound { resource } => {
6758 write!(formatter, "Tasks:NotFound (resource: {})", resource)
6759 }
6760 Self::NotImplemented { reason } => {
6761 write!(formatter, "Tasks:NotImplemented (reason: {})", reason)
6762 }
6763 }
6764 }
6765}
6766impl StdError for TasksError {}
6767impl ServiceError for TasksError {
6768 fn to_envelope(&self, instance: String) -> ErrorEnvelope {
6769 Self::envelope(self, instance)
6770 }
6771 fn from_envelope(envelope: &ErrorEnvelope) -> Option<Self> {
6772 Self::decode_envelope(envelope)
6773 }
6774}
6775#[automatically_derived]
6776impl Default for InvocationPageRequest {
6777 fn default() -> Self {
6778 Self { page_token: None }
6779 }
6780}
6781#[automatically_derived]
6782impl Default for ListTasksRequest {
6783 fn default() -> Self {
6784 Self {
6785 legacy_table_id: None,
6786 origin: None,
6787 page_size: None,
6788 page_token: None,
6789 parent_task_id: None,
6790 query: None,
6791 resource_id: None,
6792 resource_role: None,
6793 status: None,
6794 task_spec_name: None,
6795 worker_pool_id: None,
6796 worker_session_id: None,
6797 }
6798 }
6799}
6800#[automatically_derived]
6801impl Default for ListWorkerAttemptsRequest {
6802 fn default() -> Self {
6803 Self {
6804 page_size: None,
6805 page_token: None,
6806 }
6807 }
6808}
6809#[automatically_derived]
6810impl Default for ListWorkerPoolsRequest {
6811 fn default() -> Self {
6812 Self {
6813 page_size: None,
6814 page_token: None,
6815 worker_pool_id: None,
6816 }
6817 }
6818}
6819#[automatically_derived]
6820impl Default for ListWorkerSessionsRequest {
6821 fn default() -> Self {
6822 Self {
6823 page_size: None,
6824 page_token: None,
6825 status: None,
6826 worker_pool_id: None,
6827 }
6828 }
6829}
6830#[automatically_derived]
6831impl Default for ResourceUsageRequest {
6832 fn default() -> Self {
6833 Self { attempt_id: None }
6834 }
6835}
6836#[automatically_derived]
6837impl Default for TaskStatsRequest {
6838 fn default() -> Self {
6839 Self {
6840 worker_pool_id: None,
6841 }
6842 }
6843}
6844#[automatically_derived]
6845impl Default for TestTriggerRequest {
6846 fn default() -> Self {
6847 Self { event_id: None }
6848 }
6849}
6850#[automatically_derived]
6851impl Default for TriggerPageRequest {
6852 fn default() -> Self {
6853 Self {
6854 legacy_table_id: None,
6855 page_token: None,
6856 resource_id: None,
6857 }
6858 }
6859}