windmill-api 1.544.2__py3-none-any.whl → 1.545.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of windmill-api might be problematic. Click here for more details.

Files changed (128) hide show
  1. windmill_api/api/job/cancel_selection.py +20 -1
  2. windmill_api/api/{teams/sync_teams.py → job/get_started_at_by_ids.py} +64 -20
  3. windmill_api/api/workspace/list_available_teams_channels.py +40 -5
  4. windmill_api/api/workspace/list_available_teams_ids.py +21 -1
  5. windmill_api/models/completed_job_flow_status_failure_module.py +22 -0
  6. windmill_api/models/completed_job_flow_status_failure_module_flow_jobs_duration.py +71 -0
  7. windmill_api/models/completed_job_flow_status_modules_item.py +22 -0
  8. windmill_api/models/completed_job_flow_status_modules_item_flow_jobs_duration.py +71 -0
  9. windmill_api/models/completed_job_flow_status_preprocessor_module.py +22 -0
  10. windmill_api/models/completed_job_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  11. windmill_api/models/delete_completed_job_response_200_flow_status_failure_module.py +24 -0
  12. windmill_api/models/delete_completed_job_response_200_flow_status_failure_module_flow_jobs_duration.py +71 -0
  13. windmill_api/models/delete_completed_job_response_200_flow_status_modules_item.py +24 -0
  14. windmill_api/models/delete_completed_job_response_200_flow_status_modules_item_flow_jobs_duration.py +71 -0
  15. windmill_api/models/delete_completed_job_response_200_flow_status_preprocessor_module.py +26 -0
  16. windmill_api/models/delete_completed_job_response_200_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  17. windmill_api/models/extended_jobs_jobs_item_type_0_flow_status_failure_module.py +24 -0
  18. windmill_api/models/extended_jobs_jobs_item_type_0_flow_status_failure_module_flow_jobs_duration.py +71 -0
  19. windmill_api/models/extended_jobs_jobs_item_type_0_flow_status_modules_item.py +24 -0
  20. windmill_api/models/extended_jobs_jobs_item_type_0_flow_status_modules_item_flow_jobs_duration.py +71 -0
  21. windmill_api/models/extended_jobs_jobs_item_type_0_flow_status_preprocessor_module.py +24 -0
  22. windmill_api/models/extended_jobs_jobs_item_type_0_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  23. windmill_api/models/extended_jobs_jobs_item_type_1_flow_status_failure_module.py +24 -0
  24. windmill_api/models/extended_jobs_jobs_item_type_1_flow_status_failure_module_flow_jobs_duration.py +71 -0
  25. windmill_api/models/extended_jobs_jobs_item_type_1_flow_status_modules_item.py +24 -0
  26. windmill_api/models/extended_jobs_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration.py +71 -0
  27. windmill_api/models/extended_jobs_jobs_item_type_1_flow_status_preprocessor_module.py +24 -0
  28. windmill_api/models/extended_jobs_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  29. windmill_api/models/flow_status_failure_module.py +18 -0
  30. windmill_api/models/flow_status_failure_module_flow_jobs_duration.py +71 -0
  31. windmill_api/models/flow_status_module.py +18 -0
  32. windmill_api/models/flow_status_module_flow_jobs_duration.py +71 -0
  33. windmill_api/models/flow_status_modules_item.py +18 -0
  34. windmill_api/models/flow_status_modules_item_flow_jobs_duration.py +71 -0
  35. windmill_api/models/flow_status_preprocessor_module.py +20 -0
  36. windmill_api/models/flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  37. windmill_api/models/get_completed_job_response_200_flow_status_failure_module.py +24 -0
  38. windmill_api/models/get_completed_job_response_200_flow_status_failure_module_flow_jobs_duration.py +71 -0
  39. windmill_api/models/get_completed_job_response_200_flow_status_modules_item.py +24 -0
  40. windmill_api/models/get_completed_job_response_200_flow_status_modules_item_flow_jobs_duration.py +71 -0
  41. windmill_api/models/get_completed_job_response_200_flow_status_preprocessor_module.py +24 -0
  42. windmill_api/models/get_completed_job_response_200_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  43. windmill_api/models/get_job_response_200_type_0_flow_status_failure_module.py +24 -0
  44. windmill_api/models/get_job_response_200_type_0_flow_status_failure_module_flow_jobs_duration.py +71 -0
  45. windmill_api/models/get_job_response_200_type_0_flow_status_modules_item.py +24 -0
  46. windmill_api/models/get_job_response_200_type_0_flow_status_modules_item_flow_jobs_duration.py +71 -0
  47. windmill_api/models/get_job_response_200_type_0_flow_status_preprocessor_module.py +24 -0
  48. windmill_api/models/get_job_response_200_type_0_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  49. windmill_api/models/get_job_response_200_type_1_flow_status_failure_module.py +24 -0
  50. windmill_api/models/get_job_response_200_type_1_flow_status_failure_module_flow_jobs_duration.py +71 -0
  51. windmill_api/models/get_job_response_200_type_1_flow_status_modules_item.py +24 -0
  52. windmill_api/models/get_job_response_200_type_1_flow_status_modules_item_flow_jobs_duration.py +71 -0
  53. windmill_api/models/get_job_response_200_type_1_flow_status_preprocessor_module.py +24 -0
  54. windmill_api/models/get_job_response_200_type_1_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  55. windmill_api/models/get_job_updates_response_200_flow_status_failure_module.py +24 -0
  56. windmill_api/models/get_job_updates_response_200_flow_status_failure_module_flow_jobs_duration.py +71 -0
  57. windmill_api/models/get_job_updates_response_200_flow_status_modules_item.py +24 -0
  58. windmill_api/models/get_job_updates_response_200_flow_status_modules_item_flow_jobs_duration.py +71 -0
  59. windmill_api/models/get_job_updates_response_200_flow_status_preprocessor_module.py +24 -0
  60. windmill_api/models/get_job_updates_response_200_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  61. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_flow_status_failure_module.py +29 -0
  62. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_flow_status_failure_module_flow_jobs_duration.py +73 -0
  63. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_flow_status_modules_item.py +26 -0
  64. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_flow_status_modules_item_flow_jobs_duration.py +73 -0
  65. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_flow_status_preprocessor_module.py +31 -0
  66. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_flow_status_preprocessor_module_flow_jobs_duration.py +73 -0
  67. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_flow_status_failure_module.py +29 -0
  68. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_flow_status_failure_module_flow_jobs_duration.py +73 -0
  69. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_flow_status_modules_item.py +26 -0
  70. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_flow_status_modules_item_flow_jobs_duration.py +73 -0
  71. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_flow_status_preprocessor_module.py +31 -0
  72. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_flow_status_preprocessor_module_flow_jobs_duration.py +73 -0
  73. windmill_api/models/job_type_0_flow_status_failure_module_flow_jobs_duration.py +71 -0
  74. windmill_api/models/job_type_0_flow_status_modules_item_flow_jobs_duration.py +71 -0
  75. windmill_api/models/job_type_0_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  76. windmill_api/models/job_type_1_flow_status_failure_module_flow_jobs_duration.py +71 -0
  77. windmill_api/models/job_type_1_flow_status_modules_item_flow_jobs_duration.py +71 -0
  78. windmill_api/models/job_type_1_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  79. windmill_api/models/list_available_teams_channels_response_200_item.py +0 -16
  80. windmill_api/models/list_completed_jobs_response_200_item_flow_status_failure_module.py +24 -0
  81. windmill_api/models/list_completed_jobs_response_200_item_flow_status_failure_module_flow_jobs_duration.py +71 -0
  82. windmill_api/models/list_completed_jobs_response_200_item_flow_status_modules_item.py +24 -0
  83. windmill_api/models/list_completed_jobs_response_200_item_flow_status_modules_item_flow_jobs_duration.py +71 -0
  84. windmill_api/models/list_completed_jobs_response_200_item_flow_status_preprocessor_module.py +26 -0
  85. windmill_api/models/list_completed_jobs_response_200_item_flow_status_preprocessor_module_flow_jobs_duration.py +73 -0
  86. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_flow_status_failure_module.py +31 -0
  87. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_flow_status_failure_module_flow_jobs_duration.py +73 -0
  88. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_flow_status_modules_item.py +29 -0
  89. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_flow_status_modules_item_flow_jobs_duration.py +73 -0
  90. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module.py +31 -0
  91. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module_flow_jobs_duration.py +73 -0
  92. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module.py +31 -0
  93. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module_flow_jobs_duration.py +73 -0
  94. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_flow_status_modules_item.py +29 -0
  95. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration.py +73 -0
  96. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_flow_status_preprocessor_module.py +31 -0
  97. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration.py +73 -0
  98. windmill_api/models/list_jobs_response_200_item_type_0_flow_status_failure_module.py +24 -0
  99. windmill_api/models/list_jobs_response_200_item_type_0_flow_status_failure_module_flow_jobs_duration.py +71 -0
  100. windmill_api/models/list_jobs_response_200_item_type_0_flow_status_modules_item.py +24 -0
  101. windmill_api/models/list_jobs_response_200_item_type_0_flow_status_modules_item_flow_jobs_duration.py +71 -0
  102. windmill_api/models/list_jobs_response_200_item_type_0_flow_status_preprocessor_module.py +24 -0
  103. windmill_api/models/list_jobs_response_200_item_type_0_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  104. windmill_api/models/list_jobs_response_200_item_type_1_flow_status_failure_module.py +24 -0
  105. windmill_api/models/list_jobs_response_200_item_type_1_flow_status_failure_module_flow_jobs_duration.py +71 -0
  106. windmill_api/models/list_jobs_response_200_item_type_1_flow_status_modules_item.py +24 -0
  107. windmill_api/models/list_jobs_response_200_item_type_1_flow_status_modules_item_flow_jobs_duration.py +71 -0
  108. windmill_api/models/list_jobs_response_200_item_type_1_flow_status_preprocessor_module.py +24 -0
  109. windmill_api/models/list_jobs_response_200_item_type_1_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  110. windmill_api/models/list_queue_response_200_item_flow_status_failure_module.py +24 -0
  111. windmill_api/models/list_queue_response_200_item_flow_status_failure_module_flow_jobs_duration.py +71 -0
  112. windmill_api/models/list_queue_response_200_item_flow_status_modules_item.py +24 -0
  113. windmill_api/models/list_queue_response_200_item_flow_status_modules_item_flow_jobs_duration.py +71 -0
  114. windmill_api/models/list_queue_response_200_item_flow_status_preprocessor_module.py +24 -0
  115. windmill_api/models/list_queue_response_200_item_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  116. windmill_api/models/queued_job_flow_status_failure_module.py +22 -0
  117. windmill_api/models/queued_job_flow_status_failure_module_flow_jobs_duration.py +71 -0
  118. windmill_api/models/queued_job_flow_status_modules_item.py +22 -0
  119. windmill_api/models/queued_job_flow_status_modules_item_flow_jobs_duration.py +71 -0
  120. windmill_api/models/queued_job_flow_status_preprocessor_module.py +22 -0
  121. windmill_api/models/queued_job_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  122. {windmill_api-1.544.2.dist-info → windmill_api-1.545.0.dist-info}/METADATA +1 -1
  123. {windmill_api-1.544.2.dist-info → windmill_api-1.545.0.dist-info}/RECORD +125 -67
  124. windmill_api/models/sync_teams_response_200_item.py +0 -87
  125. windmill_api/models/sync_teams_response_200_item_channels_item.py +0 -80
  126. windmill_api/models/upload_file_part.py +0 -65
  127. {windmill_api-1.544.2.dist-info → windmill_api-1.545.0.dist-info}/LICENSE +0 -0
  128. {windmill_api-1.544.2.dist-info → windmill_api-1.545.0.dist-info}/WHEEL +0 -0
@@ -24,6 +24,9 @@ if TYPE_CHECKING:
24
24
  from ..models.extended_jobs_jobs_item_type_1_flow_status_modules_item_branchall import (
25
25
  ExtendedJobsJobsItemType1FlowStatusModulesItemBranchall,
26
26
  )
27
+ from ..models.extended_jobs_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration import (
28
+ ExtendedJobsJobsItemType1FlowStatusModulesItemFlowJobsDuration,
29
+ )
27
30
  from ..models.extended_jobs_jobs_item_type_1_flow_status_modules_item_iterator import (
28
31
  ExtendedJobsJobsItemType1FlowStatusModulesItemIterator,
29
32
  )
@@ -44,6 +47,7 @@ class ExtendedJobsJobsItemType1FlowStatusModulesItem:
44
47
  iterator (Union[Unset, ExtendedJobsJobsItemType1FlowStatusModulesItemIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset, ExtendedJobsJobsItemType1FlowStatusModulesItemFlowJobsDuration]):
47
51
  branch_chosen (Union[Unset, ExtendedJobsJobsItemType1FlowStatusModulesItemBranchChosen]):
48
52
  branchall (Union[Unset, ExtendedJobsJobsItemType1FlowStatusModulesItemBranchall]):
49
53
  approvers (Union[Unset, List['ExtendedJobsJobsItemType1FlowStatusModulesItemApproversItem']]):
@@ -62,6 +66,7 @@ class ExtendedJobsJobsItemType1FlowStatusModulesItem:
62
66
  iterator: Union[Unset, "ExtendedJobsJobsItemType1FlowStatusModulesItemIterator"] = UNSET
63
67
  flow_jobs: Union[Unset, List[str]] = UNSET
64
68
  flow_jobs_success: Union[Unset, List[bool]] = UNSET
69
+ flow_jobs_duration: Union[Unset, "ExtendedJobsJobsItemType1FlowStatusModulesItemFlowJobsDuration"] = UNSET
65
70
  branch_chosen: Union[Unset, "ExtendedJobsJobsItemType1FlowStatusModulesItemBranchChosen"] = UNSET
66
71
  branchall: Union[Unset, "ExtendedJobsJobsItemType1FlowStatusModulesItemBranchall"] = UNSET
67
72
  approvers: Union[Unset, List["ExtendedJobsJobsItemType1FlowStatusModulesItemApproversItem"]] = UNSET
@@ -102,6 +107,10 @@ class ExtendedJobsJobsItemType1FlowStatusModulesItem:
102
107
  if not isinstance(self.flow_jobs_success, Unset):
103
108
  flow_jobs_success = self.flow_jobs_success
104
109
 
110
+ flow_jobs_duration: Union[Unset, Dict[str, Any]] = UNSET
111
+ if not isinstance(self.flow_jobs_duration, Unset):
112
+ flow_jobs_duration = self.flow_jobs_duration.to_dict()
113
+
105
114
  branch_chosen: Union[Unset, Dict[str, Any]] = UNSET
106
115
  if not isinstance(self.branch_chosen, Unset):
107
116
  branch_chosen = self.branch_chosen.to_dict()
@@ -164,6 +173,8 @@ class ExtendedJobsJobsItemType1FlowStatusModulesItem:
164
173
  field_dict["flow_jobs"] = flow_jobs
165
174
  if flow_jobs_success is not UNSET:
166
175
  field_dict["flow_jobs_success"] = flow_jobs_success
176
+ if flow_jobs_duration is not UNSET:
177
+ field_dict["flow_jobs_duration"] = flow_jobs_duration
167
178
  if branch_chosen is not UNSET:
168
179
  field_dict["branch_chosen"] = branch_chosen
169
180
  if branchall is not UNSET:
@@ -198,6 +209,9 @@ class ExtendedJobsJobsItemType1FlowStatusModulesItem:
198
209
  from ..models.extended_jobs_jobs_item_type_1_flow_status_modules_item_branchall import (
199
210
  ExtendedJobsJobsItemType1FlowStatusModulesItemBranchall,
200
211
  )
212
+ from ..models.extended_jobs_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration import (
213
+ ExtendedJobsJobsItemType1FlowStatusModulesItemFlowJobsDuration,
214
+ )
201
215
  from ..models.extended_jobs_jobs_item_type_1_flow_status_modules_item_iterator import (
202
216
  ExtendedJobsJobsItemType1FlowStatusModulesItemIterator,
203
217
  )
@@ -224,6 +238,15 @@ class ExtendedJobsJobsItemType1FlowStatusModulesItem:
224
238
 
225
239
  flow_jobs_success = cast(List[bool], d.pop("flow_jobs_success", UNSET))
226
240
 
241
+ _flow_jobs_duration = d.pop("flow_jobs_duration", UNSET)
242
+ flow_jobs_duration: Union[Unset, ExtendedJobsJobsItemType1FlowStatusModulesItemFlowJobsDuration]
243
+ if isinstance(_flow_jobs_duration, Unset):
244
+ flow_jobs_duration = UNSET
245
+ else:
246
+ flow_jobs_duration = ExtendedJobsJobsItemType1FlowStatusModulesItemFlowJobsDuration.from_dict(
247
+ _flow_jobs_duration
248
+ )
249
+
227
250
  _branch_chosen = d.pop("branch_chosen", UNSET)
228
251
  branch_chosen: Union[Unset, ExtendedJobsJobsItemType1FlowStatusModulesItemBranchChosen]
229
252
  if isinstance(_branch_chosen, Unset):
@@ -292,6 +315,7 @@ class ExtendedJobsJobsItemType1FlowStatusModulesItem:
292
315
  iterator=iterator,
293
316
  flow_jobs=flow_jobs,
294
317
  flow_jobs_success=flow_jobs_success,
318
+ flow_jobs_duration=flow_jobs_duration,
295
319
  branch_chosen=branch_chosen,
296
320
  branchall=branchall,
297
321
  approvers=approvers,
@@ -0,0 +1,71 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, Union, cast
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="ExtendedJobsJobsItemType1FlowStatusModulesItemFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class ExtendedJobsJobsItemType1FlowStatusModulesItemFlowJobsDuration:
13
+ """
14
+ Attributes:
15
+ started_at (Union[Unset, List[str]]):
16
+ duration_ms (Union[Unset, List[int]]):
17
+ """
18
+
19
+ started_at: Union[Unset, List[str]] = UNSET
20
+ duration_ms: Union[Unset, List[int]] = UNSET
21
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> Dict[str, Any]:
24
+ started_at: Union[Unset, List[str]] = UNSET
25
+ if not isinstance(self.started_at, Unset):
26
+ started_at = self.started_at
27
+
28
+ duration_ms: Union[Unset, List[int]] = UNSET
29
+ if not isinstance(self.duration_ms, Unset):
30
+ duration_ms = self.duration_ms
31
+
32
+ field_dict: Dict[str, Any] = {}
33
+ field_dict.update(self.additional_properties)
34
+ field_dict.update({})
35
+ if started_at is not UNSET:
36
+ field_dict["started_at"] = started_at
37
+ if duration_ms is not UNSET:
38
+ field_dict["duration_ms"] = duration_ms
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44
+ d = src_dict.copy()
45
+ started_at = cast(List[str], d.pop("started_at", UNSET))
46
+
47
+ duration_ms = cast(List[int], d.pop("duration_ms", UNSET))
48
+
49
+ extended_jobs_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ extended_jobs_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration.additional_properties = d
55
+ return extended_jobs_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration
56
+
57
+ @property
58
+ def additional_keys(self) -> List[str]:
59
+ return list(self.additional_properties.keys())
60
+
61
+ def __getitem__(self, key: str) -> Any:
62
+ return self.additional_properties[key]
63
+
64
+ def __setitem__(self, key: str, value: Any) -> None:
65
+ self.additional_properties[key] = value
66
+
67
+ def __delitem__(self, key: str) -> None:
68
+ del self.additional_properties[key]
69
+
70
+ def __contains__(self, key: str) -> bool:
71
+ return key in self.additional_properties
@@ -24,6 +24,9 @@ if TYPE_CHECKING:
24
24
  from ..models.extended_jobs_jobs_item_type_1_flow_status_preprocessor_module_branchall import (
25
25
  ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleBranchall,
26
26
  )
27
+ from ..models.extended_jobs_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration import (
28
+ ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration,
29
+ )
27
30
  from ..models.extended_jobs_jobs_item_type_1_flow_status_preprocessor_module_iterator import (
28
31
  ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleIterator,
29
32
  )
@@ -44,6 +47,7 @@ class ExtendedJobsJobsItemType1FlowStatusPreprocessorModule:
44
47
  iterator (Union[Unset, ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset, ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration]):
47
51
  branch_chosen (Union[Unset, ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleBranchChosen]):
48
52
  branchall (Union[Unset, ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleBranchall]):
49
53
  approvers (Union[Unset, List['ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleApproversItem']]):
@@ -63,6 +67,7 @@ class ExtendedJobsJobsItemType1FlowStatusPreprocessorModule:
63
67
  iterator: Union[Unset, "ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleIterator"] = UNSET
64
68
  flow_jobs: Union[Unset, List[str]] = UNSET
65
69
  flow_jobs_success: Union[Unset, List[bool]] = UNSET
70
+ flow_jobs_duration: Union[Unset, "ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration"] = UNSET
66
71
  branch_chosen: Union[Unset, "ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleBranchChosen"] = UNSET
67
72
  branchall: Union[Unset, "ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleBranchall"] = UNSET
68
73
  approvers: Union[Unset, List["ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleApproversItem"]] = UNSET
@@ -103,6 +108,10 @@ class ExtendedJobsJobsItemType1FlowStatusPreprocessorModule:
103
108
  if not isinstance(self.flow_jobs_success, Unset):
104
109
  flow_jobs_success = self.flow_jobs_success
105
110
 
111
+ flow_jobs_duration: Union[Unset, Dict[str, Any]] = UNSET
112
+ if not isinstance(self.flow_jobs_duration, Unset):
113
+ flow_jobs_duration = self.flow_jobs_duration.to_dict()
114
+
106
115
  branch_chosen: Union[Unset, Dict[str, Any]] = UNSET
107
116
  if not isinstance(self.branch_chosen, Unset):
108
117
  branch_chosen = self.branch_chosen.to_dict()
@@ -165,6 +174,8 @@ class ExtendedJobsJobsItemType1FlowStatusPreprocessorModule:
165
174
  field_dict["flow_jobs"] = flow_jobs
166
175
  if flow_jobs_success is not UNSET:
167
176
  field_dict["flow_jobs_success"] = flow_jobs_success
177
+ if flow_jobs_duration is not UNSET:
178
+ field_dict["flow_jobs_duration"] = flow_jobs_duration
168
179
  if branch_chosen is not UNSET:
169
180
  field_dict["branch_chosen"] = branch_chosen
170
181
  if branchall is not UNSET:
@@ -199,6 +210,9 @@ class ExtendedJobsJobsItemType1FlowStatusPreprocessorModule:
199
210
  from ..models.extended_jobs_jobs_item_type_1_flow_status_preprocessor_module_branchall import (
200
211
  ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleBranchall,
201
212
  )
213
+ from ..models.extended_jobs_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration import (
214
+ ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration,
215
+ )
202
216
  from ..models.extended_jobs_jobs_item_type_1_flow_status_preprocessor_module_iterator import (
203
217
  ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleIterator,
204
218
  )
@@ -225,6 +239,15 @@ class ExtendedJobsJobsItemType1FlowStatusPreprocessorModule:
225
239
 
226
240
  flow_jobs_success = cast(List[bool], d.pop("flow_jobs_success", UNSET))
227
241
 
242
+ _flow_jobs_duration = d.pop("flow_jobs_duration", UNSET)
243
+ flow_jobs_duration: Union[Unset, ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration]
244
+ if isinstance(_flow_jobs_duration, Unset):
245
+ flow_jobs_duration = UNSET
246
+ else:
247
+ flow_jobs_duration = ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration.from_dict(
248
+ _flow_jobs_duration
249
+ )
250
+
228
251
  _branch_chosen = d.pop("branch_chosen", UNSET)
229
252
  branch_chosen: Union[Unset, ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleBranchChosen]
230
253
  if isinstance(_branch_chosen, Unset):
@@ -295,6 +318,7 @@ class ExtendedJobsJobsItemType1FlowStatusPreprocessorModule:
295
318
  iterator=iterator,
296
319
  flow_jobs=flow_jobs,
297
320
  flow_jobs_success=flow_jobs_success,
321
+ flow_jobs_duration=flow_jobs_duration,
298
322
  branch_chosen=branch_chosen,
299
323
  branchall=branchall,
300
324
  approvers=approvers,
@@ -0,0 +1,71 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, Union, cast
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class ExtendedJobsJobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration:
13
+ """
14
+ Attributes:
15
+ started_at (Union[Unset, List[str]]):
16
+ duration_ms (Union[Unset, List[int]]):
17
+ """
18
+
19
+ started_at: Union[Unset, List[str]] = UNSET
20
+ duration_ms: Union[Unset, List[int]] = UNSET
21
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> Dict[str, Any]:
24
+ started_at: Union[Unset, List[str]] = UNSET
25
+ if not isinstance(self.started_at, Unset):
26
+ started_at = self.started_at
27
+
28
+ duration_ms: Union[Unset, List[int]] = UNSET
29
+ if not isinstance(self.duration_ms, Unset):
30
+ duration_ms = self.duration_ms
31
+
32
+ field_dict: Dict[str, Any] = {}
33
+ field_dict.update(self.additional_properties)
34
+ field_dict.update({})
35
+ if started_at is not UNSET:
36
+ field_dict["started_at"] = started_at
37
+ if duration_ms is not UNSET:
38
+ field_dict["duration_ms"] = duration_ms
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44
+ d = src_dict.copy()
45
+ started_at = cast(List[str], d.pop("started_at", UNSET))
46
+
47
+ duration_ms = cast(List[int], d.pop("duration_ms", UNSET))
48
+
49
+ extended_jobs_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ extended_jobs_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration.additional_properties = d
55
+ return extended_jobs_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration
56
+
57
+ @property
58
+ def additional_keys(self) -> List[str]:
59
+ return list(self.additional_properties.keys())
60
+
61
+ def __getitem__(self, key: str) -> Any:
62
+ return self.additional_properties[key]
63
+
64
+ def __setitem__(self, key: str, value: Any) -> None:
65
+ self.additional_properties[key] = value
66
+
67
+ def __delitem__(self, key: str) -> None:
68
+ del self.additional_properties[key]
69
+
70
+ def __contains__(self, key: str) -> bool:
71
+ return key in self.additional_properties
@@ -16,6 +16,7 @@ if TYPE_CHECKING:
16
16
  from ..models.flow_status_failure_module_approvers_item import FlowStatusFailureModuleApproversItem
17
17
  from ..models.flow_status_failure_module_branch_chosen import FlowStatusFailureModuleBranchChosen
18
18
  from ..models.flow_status_failure_module_branchall import FlowStatusFailureModuleBranchall
19
+ from ..models.flow_status_failure_module_flow_jobs_duration import FlowStatusFailureModuleFlowJobsDuration
19
20
  from ..models.flow_status_failure_module_iterator import FlowStatusFailureModuleIterator
20
21
 
21
22
 
@@ -34,6 +35,7 @@ class FlowStatusFailureModule:
34
35
  iterator (Union[Unset, FlowStatusFailureModuleIterator]):
35
36
  flow_jobs (Union[Unset, List[str]]):
36
37
  flow_jobs_success (Union[Unset, List[bool]]):
38
+ flow_jobs_duration (Union[Unset, FlowStatusFailureModuleFlowJobsDuration]):
37
39
  branch_chosen (Union[Unset, FlowStatusFailureModuleBranchChosen]):
38
40
  branchall (Union[Unset, FlowStatusFailureModuleBranchall]):
39
41
  approvers (Union[Unset, List['FlowStatusFailureModuleApproversItem']]):
@@ -53,6 +55,7 @@ class FlowStatusFailureModule:
53
55
  iterator: Union[Unset, "FlowStatusFailureModuleIterator"] = UNSET
54
56
  flow_jobs: Union[Unset, List[str]] = UNSET
55
57
  flow_jobs_success: Union[Unset, List[bool]] = UNSET
58
+ flow_jobs_duration: Union[Unset, "FlowStatusFailureModuleFlowJobsDuration"] = UNSET
56
59
  branch_chosen: Union[Unset, "FlowStatusFailureModuleBranchChosen"] = UNSET
57
60
  branchall: Union[Unset, "FlowStatusFailureModuleBranchall"] = UNSET
58
61
  approvers: Union[Unset, List["FlowStatusFailureModuleApproversItem"]] = UNSET
@@ -89,6 +92,10 @@ class FlowStatusFailureModule:
89
92
  if not isinstance(self.flow_jobs_success, Unset):
90
93
  flow_jobs_success = self.flow_jobs_success
91
94
 
95
+ flow_jobs_duration: Union[Unset, Dict[str, Any]] = UNSET
96
+ if not isinstance(self.flow_jobs_duration, Unset):
97
+ flow_jobs_duration = self.flow_jobs_duration.to_dict()
98
+
92
99
  branch_chosen: Union[Unset, Dict[str, Any]] = UNSET
93
100
  if not isinstance(self.branch_chosen, Unset):
94
101
  branch_chosen = self.branch_chosen.to_dict()
@@ -151,6 +158,8 @@ class FlowStatusFailureModule:
151
158
  field_dict["flow_jobs"] = flow_jobs
152
159
  if flow_jobs_success is not UNSET:
153
160
  field_dict["flow_jobs_success"] = flow_jobs_success
161
+ if flow_jobs_duration is not UNSET:
162
+ field_dict["flow_jobs_duration"] = flow_jobs_duration
154
163
  if branch_chosen is not UNSET:
155
164
  field_dict["branch_chosen"] = branch_chosen
156
165
  if branchall is not UNSET:
@@ -181,6 +190,7 @@ class FlowStatusFailureModule:
181
190
  from ..models.flow_status_failure_module_approvers_item import FlowStatusFailureModuleApproversItem
182
191
  from ..models.flow_status_failure_module_branch_chosen import FlowStatusFailureModuleBranchChosen
183
192
  from ..models.flow_status_failure_module_branchall import FlowStatusFailureModuleBranchall
193
+ from ..models.flow_status_failure_module_flow_jobs_duration import FlowStatusFailureModuleFlowJobsDuration
184
194
  from ..models.flow_status_failure_module_iterator import FlowStatusFailureModuleIterator
185
195
 
186
196
  d = src_dict.copy()
@@ -205,6 +215,13 @@ class FlowStatusFailureModule:
205
215
 
206
216
  flow_jobs_success = cast(List[bool], d.pop("flow_jobs_success", UNSET))
207
217
 
218
+ _flow_jobs_duration = d.pop("flow_jobs_duration", UNSET)
219
+ flow_jobs_duration: Union[Unset, FlowStatusFailureModuleFlowJobsDuration]
220
+ if isinstance(_flow_jobs_duration, Unset):
221
+ flow_jobs_duration = UNSET
222
+ else:
223
+ flow_jobs_duration = FlowStatusFailureModuleFlowJobsDuration.from_dict(_flow_jobs_duration)
224
+
208
225
  _branch_chosen = d.pop("branch_chosen", UNSET)
209
226
  branch_chosen: Union[Unset, FlowStatusFailureModuleBranchChosen]
210
227
  if isinstance(_branch_chosen, Unset):
@@ -268,6 +285,7 @@ class FlowStatusFailureModule:
268
285
  iterator=iterator,
269
286
  flow_jobs=flow_jobs,
270
287
  flow_jobs_success=flow_jobs_success,
288
+ flow_jobs_duration=flow_jobs_duration,
271
289
  branch_chosen=branch_chosen,
272
290
  branchall=branchall,
273
291
  approvers=approvers,
@@ -0,0 +1,71 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, Union, cast
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="FlowStatusFailureModuleFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class FlowStatusFailureModuleFlowJobsDuration:
13
+ """
14
+ Attributes:
15
+ started_at (Union[Unset, List[str]]):
16
+ duration_ms (Union[Unset, List[int]]):
17
+ """
18
+
19
+ started_at: Union[Unset, List[str]] = UNSET
20
+ duration_ms: Union[Unset, List[int]] = UNSET
21
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> Dict[str, Any]:
24
+ started_at: Union[Unset, List[str]] = UNSET
25
+ if not isinstance(self.started_at, Unset):
26
+ started_at = self.started_at
27
+
28
+ duration_ms: Union[Unset, List[int]] = UNSET
29
+ if not isinstance(self.duration_ms, Unset):
30
+ duration_ms = self.duration_ms
31
+
32
+ field_dict: Dict[str, Any] = {}
33
+ field_dict.update(self.additional_properties)
34
+ field_dict.update({})
35
+ if started_at is not UNSET:
36
+ field_dict["started_at"] = started_at
37
+ if duration_ms is not UNSET:
38
+ field_dict["duration_ms"] = duration_ms
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44
+ d = src_dict.copy()
45
+ started_at = cast(List[str], d.pop("started_at", UNSET))
46
+
47
+ duration_ms = cast(List[int], d.pop("duration_ms", UNSET))
48
+
49
+ flow_status_failure_module_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ flow_status_failure_module_flow_jobs_duration.additional_properties = d
55
+ return flow_status_failure_module_flow_jobs_duration
56
+
57
+ @property
58
+ def additional_keys(self) -> List[str]:
59
+ return list(self.additional_properties.keys())
60
+
61
+ def __getitem__(self, key: str) -> Any:
62
+ return self.additional_properties[key]
63
+
64
+ def __setitem__(self, key: str, value: Any) -> None:
65
+ self.additional_properties[key] = value
66
+
67
+ def __delitem__(self, key: str) -> None:
68
+ del self.additional_properties[key]
69
+
70
+ def __contains__(self, key: str) -> bool:
71
+ return key in self.additional_properties
@@ -12,6 +12,7 @@ if TYPE_CHECKING:
12
12
  from ..models.flow_status_module_approvers_item import FlowStatusModuleApproversItem
13
13
  from ..models.flow_status_module_branch_chosen import FlowStatusModuleBranchChosen
14
14
  from ..models.flow_status_module_branchall import FlowStatusModuleBranchall
15
+ from ..models.flow_status_module_flow_jobs_duration import FlowStatusModuleFlowJobsDuration
15
16
  from ..models.flow_status_module_iterator import FlowStatusModuleIterator
16
17
 
17
18
 
@@ -30,6 +31,7 @@ class FlowStatusModule:
30
31
  iterator (Union[Unset, FlowStatusModuleIterator]):
31
32
  flow_jobs (Union[Unset, List[str]]):
32
33
  flow_jobs_success (Union[Unset, List[bool]]):
34
+ flow_jobs_duration (Union[Unset, FlowStatusModuleFlowJobsDuration]):
33
35
  branch_chosen (Union[Unset, FlowStatusModuleBranchChosen]):
34
36
  branchall (Union[Unset, FlowStatusModuleBranchall]):
35
37
  approvers (Union[Unset, List['FlowStatusModuleApproversItem']]):
@@ -48,6 +50,7 @@ class FlowStatusModule:
48
50
  iterator: Union[Unset, "FlowStatusModuleIterator"] = UNSET
49
51
  flow_jobs: Union[Unset, List[str]] = UNSET
50
52
  flow_jobs_success: Union[Unset, List[bool]] = UNSET
53
+ flow_jobs_duration: Union[Unset, "FlowStatusModuleFlowJobsDuration"] = UNSET
51
54
  branch_chosen: Union[Unset, "FlowStatusModuleBranchChosen"] = UNSET
52
55
  branchall: Union[Unset, "FlowStatusModuleBranchall"] = UNSET
53
56
  approvers: Union[Unset, List["FlowStatusModuleApproversItem"]] = UNSET
@@ -80,6 +83,10 @@ class FlowStatusModule:
80
83
  if not isinstance(self.flow_jobs_success, Unset):
81
84
  flow_jobs_success = self.flow_jobs_success
82
85
 
86
+ flow_jobs_duration: Union[Unset, Dict[str, Any]] = UNSET
87
+ if not isinstance(self.flow_jobs_duration, Unset):
88
+ flow_jobs_duration = self.flow_jobs_duration.to_dict()
89
+
83
90
  branch_chosen: Union[Unset, Dict[str, Any]] = UNSET
84
91
  if not isinstance(self.branch_chosen, Unset):
85
92
  branch_chosen = self.branch_chosen.to_dict()
@@ -140,6 +147,8 @@ class FlowStatusModule:
140
147
  field_dict["flow_jobs"] = flow_jobs
141
148
  if flow_jobs_success is not UNSET:
142
149
  field_dict["flow_jobs_success"] = flow_jobs_success
150
+ if flow_jobs_duration is not UNSET:
151
+ field_dict["flow_jobs_duration"] = flow_jobs_duration
143
152
  if branch_chosen is not UNSET:
144
153
  field_dict["branch_chosen"] = branch_chosen
145
154
  if branchall is not UNSET:
@@ -164,6 +173,7 @@ class FlowStatusModule:
164
173
  from ..models.flow_status_module_approvers_item import FlowStatusModuleApproversItem
165
174
  from ..models.flow_status_module_branch_chosen import FlowStatusModuleBranchChosen
166
175
  from ..models.flow_status_module_branchall import FlowStatusModuleBranchall
176
+ from ..models.flow_status_module_flow_jobs_duration import FlowStatusModuleFlowJobsDuration
167
177
  from ..models.flow_status_module_iterator import FlowStatusModuleIterator
168
178
 
169
179
  d = src_dict.copy()
@@ -188,6 +198,13 @@ class FlowStatusModule:
188
198
 
189
199
  flow_jobs_success = cast(List[bool], d.pop("flow_jobs_success", UNSET))
190
200
 
201
+ _flow_jobs_duration = d.pop("flow_jobs_duration", UNSET)
202
+ flow_jobs_duration: Union[Unset, FlowStatusModuleFlowJobsDuration]
203
+ if isinstance(_flow_jobs_duration, Unset):
204
+ flow_jobs_duration = UNSET
205
+ else:
206
+ flow_jobs_duration = FlowStatusModuleFlowJobsDuration.from_dict(_flow_jobs_duration)
207
+
191
208
  _branch_chosen = d.pop("branch_chosen", UNSET)
192
209
  branch_chosen: Union[Unset, FlowStatusModuleBranchChosen]
193
210
  if isinstance(_branch_chosen, Unset):
@@ -249,6 +266,7 @@ class FlowStatusModule:
249
266
  iterator=iterator,
250
267
  flow_jobs=flow_jobs,
251
268
  flow_jobs_success=flow_jobs_success,
269
+ flow_jobs_duration=flow_jobs_duration,
252
270
  branch_chosen=branch_chosen,
253
271
  branchall=branchall,
254
272
  approvers=approvers,
@@ -0,0 +1,71 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, Union, cast
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="FlowStatusModuleFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class FlowStatusModuleFlowJobsDuration:
13
+ """
14
+ Attributes:
15
+ started_at (Union[Unset, List[str]]):
16
+ duration_ms (Union[Unset, List[int]]):
17
+ """
18
+
19
+ started_at: Union[Unset, List[str]] = UNSET
20
+ duration_ms: Union[Unset, List[int]] = UNSET
21
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> Dict[str, Any]:
24
+ started_at: Union[Unset, List[str]] = UNSET
25
+ if not isinstance(self.started_at, Unset):
26
+ started_at = self.started_at
27
+
28
+ duration_ms: Union[Unset, List[int]] = UNSET
29
+ if not isinstance(self.duration_ms, Unset):
30
+ duration_ms = self.duration_ms
31
+
32
+ field_dict: Dict[str, Any] = {}
33
+ field_dict.update(self.additional_properties)
34
+ field_dict.update({})
35
+ if started_at is not UNSET:
36
+ field_dict["started_at"] = started_at
37
+ if duration_ms is not UNSET:
38
+ field_dict["duration_ms"] = duration_ms
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44
+ d = src_dict.copy()
45
+ started_at = cast(List[str], d.pop("started_at", UNSET))
46
+
47
+ duration_ms = cast(List[int], d.pop("duration_ms", UNSET))
48
+
49
+ flow_status_module_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ flow_status_module_flow_jobs_duration.additional_properties = d
55
+ return flow_status_module_flow_jobs_duration
56
+
57
+ @property
58
+ def additional_keys(self) -> List[str]:
59
+ return list(self.additional_properties.keys())
60
+
61
+ def __getitem__(self, key: str) -> Any:
62
+ return self.additional_properties[key]
63
+
64
+ def __setitem__(self, key: str, value: Any) -> None:
65
+ self.additional_properties[key] = value
66
+
67
+ def __delitem__(self, key: str) -> None:
68
+ del self.additional_properties[key]
69
+
70
+ def __contains__(self, key: str) -> bool:
71
+ return key in self.additional_properties
@@ -12,6 +12,7 @@ if TYPE_CHECKING:
12
12
  from ..models.flow_status_modules_item_approvers_item import FlowStatusModulesItemApproversItem
13
13
  from ..models.flow_status_modules_item_branch_chosen import FlowStatusModulesItemBranchChosen
14
14
  from ..models.flow_status_modules_item_branchall import FlowStatusModulesItemBranchall
15
+ from ..models.flow_status_modules_item_flow_jobs_duration import FlowStatusModulesItemFlowJobsDuration
15
16
  from ..models.flow_status_modules_item_iterator import FlowStatusModulesItemIterator
16
17
 
17
18
 
@@ -30,6 +31,7 @@ class FlowStatusModulesItem:
30
31
  iterator (Union[Unset, FlowStatusModulesItemIterator]):
31
32
  flow_jobs (Union[Unset, List[str]]):
32
33
  flow_jobs_success (Union[Unset, List[bool]]):
34
+ flow_jobs_duration (Union[Unset, FlowStatusModulesItemFlowJobsDuration]):
33
35
  branch_chosen (Union[Unset, FlowStatusModulesItemBranchChosen]):
34
36
  branchall (Union[Unset, FlowStatusModulesItemBranchall]):
35
37
  approvers (Union[Unset, List['FlowStatusModulesItemApproversItem']]):
@@ -48,6 +50,7 @@ class FlowStatusModulesItem:
48
50
  iterator: Union[Unset, "FlowStatusModulesItemIterator"] = UNSET
49
51
  flow_jobs: Union[Unset, List[str]] = UNSET
50
52
  flow_jobs_success: Union[Unset, List[bool]] = UNSET
53
+ flow_jobs_duration: Union[Unset, "FlowStatusModulesItemFlowJobsDuration"] = UNSET
51
54
  branch_chosen: Union[Unset, "FlowStatusModulesItemBranchChosen"] = UNSET
52
55
  branchall: Union[Unset, "FlowStatusModulesItemBranchall"] = UNSET
53
56
  approvers: Union[Unset, List["FlowStatusModulesItemApproversItem"]] = UNSET
@@ -82,6 +85,10 @@ class FlowStatusModulesItem:
82
85
  if not isinstance(self.flow_jobs_success, Unset):
83
86
  flow_jobs_success = self.flow_jobs_success
84
87
 
88
+ flow_jobs_duration: Union[Unset, Dict[str, Any]] = UNSET
89
+ if not isinstance(self.flow_jobs_duration, Unset):
90
+ flow_jobs_duration = self.flow_jobs_duration.to_dict()
91
+
85
92
  branch_chosen: Union[Unset, Dict[str, Any]] = UNSET
86
93
  if not isinstance(self.branch_chosen, Unset):
87
94
  branch_chosen = self.branch_chosen.to_dict()
@@ -142,6 +149,8 @@ class FlowStatusModulesItem:
142
149
  field_dict["flow_jobs"] = flow_jobs
143
150
  if flow_jobs_success is not UNSET:
144
151
  field_dict["flow_jobs_success"] = flow_jobs_success
152
+ if flow_jobs_duration is not UNSET:
153
+ field_dict["flow_jobs_duration"] = flow_jobs_duration
145
154
  if branch_chosen is not UNSET:
146
155
  field_dict["branch_chosen"] = branch_chosen
147
156
  if branchall is not UNSET:
@@ -170,6 +179,7 @@ class FlowStatusModulesItem:
170
179
  from ..models.flow_status_modules_item_approvers_item import FlowStatusModulesItemApproversItem
171
180
  from ..models.flow_status_modules_item_branch_chosen import FlowStatusModulesItemBranchChosen
172
181
  from ..models.flow_status_modules_item_branchall import FlowStatusModulesItemBranchall
182
+ from ..models.flow_status_modules_item_flow_jobs_duration import FlowStatusModulesItemFlowJobsDuration
173
183
  from ..models.flow_status_modules_item_iterator import FlowStatusModulesItemIterator
174
184
 
175
185
  d = src_dict.copy()
@@ -194,6 +204,13 @@ class FlowStatusModulesItem:
194
204
 
195
205
  flow_jobs_success = cast(List[bool], d.pop("flow_jobs_success", UNSET))
196
206
 
207
+ _flow_jobs_duration = d.pop("flow_jobs_duration", UNSET)
208
+ flow_jobs_duration: Union[Unset, FlowStatusModulesItemFlowJobsDuration]
209
+ if isinstance(_flow_jobs_duration, Unset):
210
+ flow_jobs_duration = UNSET
211
+ else:
212
+ flow_jobs_duration = FlowStatusModulesItemFlowJobsDuration.from_dict(_flow_jobs_duration)
213
+
197
214
  _branch_chosen = d.pop("branch_chosen", UNSET)
198
215
  branch_chosen: Union[Unset, FlowStatusModulesItemBranchChosen]
199
216
  if isinstance(_branch_chosen, Unset):
@@ -255,6 +272,7 @@ class FlowStatusModulesItem:
255
272
  iterator=iterator,
256
273
  flow_jobs=flow_jobs,
257
274
  flow_jobs_success=flow_jobs_success,
275
+ flow_jobs_duration=flow_jobs_duration,
258
276
  branch_chosen=branch_chosen,
259
277
  branchall=branchall,
260
278
  approvers=approvers,