windmill-api 1.544.2__py3-none-any.whl → 1.546.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 (129) 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/create_account_json_body.py +8 -8
  12. windmill_api/models/delete_completed_job_response_200_flow_status_failure_module.py +24 -0
  13. windmill_api/models/delete_completed_job_response_200_flow_status_failure_module_flow_jobs_duration.py +71 -0
  14. windmill_api/models/delete_completed_job_response_200_flow_status_modules_item.py +24 -0
  15. windmill_api/models/delete_completed_job_response_200_flow_status_modules_item_flow_jobs_duration.py +71 -0
  16. windmill_api/models/delete_completed_job_response_200_flow_status_preprocessor_module.py +26 -0
  17. windmill_api/models/delete_completed_job_response_200_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  18. windmill_api/models/extended_jobs_jobs_item_type_0_flow_status_failure_module.py +24 -0
  19. windmill_api/models/extended_jobs_jobs_item_type_0_flow_status_failure_module_flow_jobs_duration.py +71 -0
  20. windmill_api/models/extended_jobs_jobs_item_type_0_flow_status_modules_item.py +24 -0
  21. windmill_api/models/extended_jobs_jobs_item_type_0_flow_status_modules_item_flow_jobs_duration.py +71 -0
  22. windmill_api/models/extended_jobs_jobs_item_type_0_flow_status_preprocessor_module.py +24 -0
  23. windmill_api/models/extended_jobs_jobs_item_type_0_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  24. windmill_api/models/extended_jobs_jobs_item_type_1_flow_status_failure_module.py +24 -0
  25. windmill_api/models/extended_jobs_jobs_item_type_1_flow_status_failure_module_flow_jobs_duration.py +71 -0
  26. windmill_api/models/extended_jobs_jobs_item_type_1_flow_status_modules_item.py +24 -0
  27. windmill_api/models/extended_jobs_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration.py +71 -0
  28. windmill_api/models/extended_jobs_jobs_item_type_1_flow_status_preprocessor_module.py +24 -0
  29. windmill_api/models/extended_jobs_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  30. windmill_api/models/flow_status_failure_module.py +18 -0
  31. windmill_api/models/flow_status_failure_module_flow_jobs_duration.py +71 -0
  32. windmill_api/models/flow_status_module.py +18 -0
  33. windmill_api/models/flow_status_module_flow_jobs_duration.py +71 -0
  34. windmill_api/models/flow_status_modules_item.py +18 -0
  35. windmill_api/models/flow_status_modules_item_flow_jobs_duration.py +71 -0
  36. windmill_api/models/flow_status_preprocessor_module.py +20 -0
  37. windmill_api/models/flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  38. windmill_api/models/get_completed_job_response_200_flow_status_failure_module.py +24 -0
  39. windmill_api/models/get_completed_job_response_200_flow_status_failure_module_flow_jobs_duration.py +71 -0
  40. windmill_api/models/get_completed_job_response_200_flow_status_modules_item.py +24 -0
  41. windmill_api/models/get_completed_job_response_200_flow_status_modules_item_flow_jobs_duration.py +71 -0
  42. windmill_api/models/get_completed_job_response_200_flow_status_preprocessor_module.py +24 -0
  43. windmill_api/models/get_completed_job_response_200_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  44. windmill_api/models/get_job_response_200_type_0_flow_status_failure_module.py +24 -0
  45. windmill_api/models/get_job_response_200_type_0_flow_status_failure_module_flow_jobs_duration.py +71 -0
  46. windmill_api/models/get_job_response_200_type_0_flow_status_modules_item.py +24 -0
  47. windmill_api/models/get_job_response_200_type_0_flow_status_modules_item_flow_jobs_duration.py +71 -0
  48. windmill_api/models/get_job_response_200_type_0_flow_status_preprocessor_module.py +24 -0
  49. windmill_api/models/get_job_response_200_type_0_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  50. windmill_api/models/get_job_response_200_type_1_flow_status_failure_module.py +24 -0
  51. windmill_api/models/get_job_response_200_type_1_flow_status_failure_module_flow_jobs_duration.py +71 -0
  52. windmill_api/models/get_job_response_200_type_1_flow_status_modules_item.py +24 -0
  53. windmill_api/models/get_job_response_200_type_1_flow_status_modules_item_flow_jobs_duration.py +71 -0
  54. windmill_api/models/get_job_response_200_type_1_flow_status_preprocessor_module.py +24 -0
  55. windmill_api/models/get_job_response_200_type_1_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  56. windmill_api/models/get_job_updates_response_200_flow_status_failure_module.py +24 -0
  57. windmill_api/models/get_job_updates_response_200_flow_status_failure_module_flow_jobs_duration.py +71 -0
  58. windmill_api/models/get_job_updates_response_200_flow_status_modules_item.py +24 -0
  59. windmill_api/models/get_job_updates_response_200_flow_status_modules_item_flow_jobs_duration.py +71 -0
  60. windmill_api/models/get_job_updates_response_200_flow_status_preprocessor_module.py +24 -0
  61. windmill_api/models/get_job_updates_response_200_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  62. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_flow_status_failure_module.py +29 -0
  63. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_flow_status_failure_module_flow_jobs_duration.py +73 -0
  64. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_flow_status_modules_item.py +26 -0
  65. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_flow_status_modules_item_flow_jobs_duration.py +73 -0
  66. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_flow_status_preprocessor_module.py +31 -0
  67. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_flow_status_preprocessor_module_flow_jobs_duration.py +73 -0
  68. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_flow_status_failure_module.py +29 -0
  69. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_flow_status_failure_module_flow_jobs_duration.py +73 -0
  70. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_flow_status_modules_item.py +26 -0
  71. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_flow_status_modules_item_flow_jobs_duration.py +73 -0
  72. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_flow_status_preprocessor_module.py +31 -0
  73. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_flow_status_preprocessor_module_flow_jobs_duration.py +73 -0
  74. windmill_api/models/job_type_0_flow_status_failure_module_flow_jobs_duration.py +71 -0
  75. windmill_api/models/job_type_0_flow_status_modules_item_flow_jobs_duration.py +71 -0
  76. windmill_api/models/job_type_0_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  77. windmill_api/models/job_type_1_flow_status_failure_module_flow_jobs_duration.py +71 -0
  78. windmill_api/models/job_type_1_flow_status_modules_item_flow_jobs_duration.py +71 -0
  79. windmill_api/models/job_type_1_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  80. windmill_api/models/list_available_teams_channels_response_200_item.py +0 -16
  81. windmill_api/models/list_completed_jobs_response_200_item_flow_status_failure_module.py +24 -0
  82. windmill_api/models/list_completed_jobs_response_200_item_flow_status_failure_module_flow_jobs_duration.py +71 -0
  83. windmill_api/models/list_completed_jobs_response_200_item_flow_status_modules_item.py +24 -0
  84. windmill_api/models/list_completed_jobs_response_200_item_flow_status_modules_item_flow_jobs_duration.py +71 -0
  85. windmill_api/models/list_completed_jobs_response_200_item_flow_status_preprocessor_module.py +26 -0
  86. windmill_api/models/list_completed_jobs_response_200_item_flow_status_preprocessor_module_flow_jobs_duration.py +73 -0
  87. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_flow_status_failure_module.py +31 -0
  88. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_flow_status_failure_module_flow_jobs_duration.py +73 -0
  89. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_flow_status_modules_item.py +29 -0
  90. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_flow_status_modules_item_flow_jobs_duration.py +73 -0
  91. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module.py +31 -0
  92. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module_flow_jobs_duration.py +73 -0
  93. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module.py +31 -0
  94. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module_flow_jobs_duration.py +73 -0
  95. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_flow_status_modules_item.py +29 -0
  96. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration.py +73 -0
  97. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_flow_status_preprocessor_module.py +31 -0
  98. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration.py +73 -0
  99. windmill_api/models/list_jobs_response_200_item_type_0_flow_status_failure_module.py +24 -0
  100. windmill_api/models/list_jobs_response_200_item_type_0_flow_status_failure_module_flow_jobs_duration.py +71 -0
  101. windmill_api/models/list_jobs_response_200_item_type_0_flow_status_modules_item.py +24 -0
  102. windmill_api/models/list_jobs_response_200_item_type_0_flow_status_modules_item_flow_jobs_duration.py +71 -0
  103. windmill_api/models/list_jobs_response_200_item_type_0_flow_status_preprocessor_module.py +24 -0
  104. windmill_api/models/list_jobs_response_200_item_type_0_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  105. windmill_api/models/list_jobs_response_200_item_type_1_flow_status_failure_module.py +24 -0
  106. windmill_api/models/list_jobs_response_200_item_type_1_flow_status_failure_module_flow_jobs_duration.py +71 -0
  107. windmill_api/models/list_jobs_response_200_item_type_1_flow_status_modules_item.py +24 -0
  108. windmill_api/models/list_jobs_response_200_item_type_1_flow_status_modules_item_flow_jobs_duration.py +71 -0
  109. windmill_api/models/list_jobs_response_200_item_type_1_flow_status_preprocessor_module.py +24 -0
  110. windmill_api/models/list_jobs_response_200_item_type_1_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  111. windmill_api/models/list_queue_response_200_item_flow_status_failure_module.py +24 -0
  112. windmill_api/models/list_queue_response_200_item_flow_status_failure_module_flow_jobs_duration.py +71 -0
  113. windmill_api/models/list_queue_response_200_item_flow_status_modules_item.py +24 -0
  114. windmill_api/models/list_queue_response_200_item_flow_status_modules_item_flow_jobs_duration.py +71 -0
  115. windmill_api/models/list_queue_response_200_item_flow_status_preprocessor_module.py +24 -0
  116. windmill_api/models/list_queue_response_200_item_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  117. windmill_api/models/queued_job_flow_status_failure_module.py +22 -0
  118. windmill_api/models/queued_job_flow_status_failure_module_flow_jobs_duration.py +71 -0
  119. windmill_api/models/queued_job_flow_status_modules_item.py +22 -0
  120. windmill_api/models/queued_job_flow_status_modules_item_flow_jobs_duration.py +71 -0
  121. windmill_api/models/queued_job_flow_status_preprocessor_module.py +22 -0
  122. windmill_api/models/queued_job_flow_status_preprocessor_module_flow_jobs_duration.py +71 -0
  123. {windmill_api-1.544.2.dist-info → windmill_api-1.546.0.dist-info}/METADATA +1 -1
  124. {windmill_api-1.544.2.dist-info → windmill_api-1.546.0.dist-info}/RECORD +126 -68
  125. windmill_api/models/sync_teams_response_200_item.py +0 -87
  126. windmill_api/models/sync_teams_response_200_item_channels_item.py +0 -80
  127. windmill_api/models/upload_file_part.py +0 -65
  128. {windmill_api-1.544.2.dist-info → windmill_api-1.546.0.dist-info}/LICENSE +0 -0
  129. {windmill_api-1.544.2.dist-info → windmill_api-1.546.0.dist-info}/WHEEL +0 -0
@@ -24,6 +24,9 @@ if TYPE_CHECKING:
24
24
  from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module_branchall import (
25
25
  ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleBranchall,
26
26
  )
27
+ from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module_flow_jobs_duration import (
28
+ ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleFlowJobsDuration,
29
+ )
27
30
  from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module_iterator import (
28
31
  ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleIterator,
29
32
  )
@@ -44,6 +47,8 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModule:
44
47
  iterator (Union[Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset,
51
+ ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleFlowJobsDuration]):
47
52
  branch_chosen (Union[Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleBranchChosen]):
48
53
  branchall (Union[Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleBranchall]):
49
54
  approvers (Union[Unset,
@@ -64,6 +69,9 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModule:
64
69
  iterator: Union[Unset, "ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleIterator"] = UNSET
65
70
  flow_jobs: Union[Unset, List[str]] = UNSET
66
71
  flow_jobs_success: Union[Unset, List[bool]] = UNSET
72
+ flow_jobs_duration: Union[
73
+ Unset, "ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleFlowJobsDuration"
74
+ ] = UNSET
67
75
  branch_chosen: Union[
68
76
  Unset, "ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleBranchChosen"
69
77
  ] = UNSET
@@ -108,6 +116,10 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModule:
108
116
  if not isinstance(self.flow_jobs_success, Unset):
109
117
  flow_jobs_success = self.flow_jobs_success
110
118
 
119
+ flow_jobs_duration: Union[Unset, Dict[str, Any]] = UNSET
120
+ if not isinstance(self.flow_jobs_duration, Unset):
121
+ flow_jobs_duration = self.flow_jobs_duration.to_dict()
122
+
111
123
  branch_chosen: Union[Unset, Dict[str, Any]] = UNSET
112
124
  if not isinstance(self.branch_chosen, Unset):
113
125
  branch_chosen = self.branch_chosen.to_dict()
@@ -171,6 +183,8 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModule:
171
183
  field_dict["flow_jobs"] = flow_jobs
172
184
  if flow_jobs_success is not UNSET:
173
185
  field_dict["flow_jobs_success"] = flow_jobs_success
186
+ if flow_jobs_duration is not UNSET:
187
+ field_dict["flow_jobs_duration"] = flow_jobs_duration
174
188
  if branch_chosen is not UNSET:
175
189
  field_dict["branch_chosen"] = branch_chosen
176
190
  if branchall is not UNSET:
@@ -205,6 +219,9 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModule:
205
219
  from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module_branchall import (
206
220
  ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleBranchall,
207
221
  )
222
+ from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module_flow_jobs_duration import (
223
+ ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleFlowJobsDuration,
224
+ )
208
225
  from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module_iterator import (
209
226
  ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleIterator,
210
227
  )
@@ -231,6 +248,19 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModule:
231
248
 
232
249
  flow_jobs_success = cast(List[bool], d.pop("flow_jobs_success", UNSET))
233
250
 
251
+ _flow_jobs_duration = d.pop("flow_jobs_duration", UNSET)
252
+ flow_jobs_duration: Union[
253
+ Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleFlowJobsDuration
254
+ ]
255
+ if isinstance(_flow_jobs_duration, Unset):
256
+ flow_jobs_duration = UNSET
257
+ else:
258
+ flow_jobs_duration = (
259
+ ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleFlowJobsDuration.from_dict(
260
+ _flow_jobs_duration
261
+ )
262
+ )
263
+
234
264
  _branch_chosen = d.pop("branch_chosen", UNSET)
235
265
  branch_chosen: Union[Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleBranchChosen]
236
266
  if isinstance(_branch_chosen, Unset):
@@ -309,6 +339,7 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModule:
309
339
  iterator=iterator,
310
340
  flow_jobs=flow_jobs,
311
341
  flow_jobs_success=flow_jobs_success,
342
+ flow_jobs_duration=flow_jobs_duration,
312
343
  branch_chosen=branch_chosen,
313
344
  branchall=branchall,
314
345
  approvers=approvers,
@@ -0,0 +1,73 @@
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="ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class ListExtendedJobsResponse200JobsItemType0FlowStatusPreprocessorModuleFlowJobsDuration:
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
+ list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module_flow_jobs_duration.additional_properties = (
55
+ d
56
+ )
57
+ return list_extended_jobs_response_200_jobs_item_type_0_flow_status_preprocessor_module_flow_jobs_duration
58
+
59
+ @property
60
+ def additional_keys(self) -> List[str]:
61
+ return list(self.additional_properties.keys())
62
+
63
+ def __getitem__(self, key: str) -> Any:
64
+ return self.additional_properties[key]
65
+
66
+ def __setitem__(self, key: str, value: Any) -> None:
67
+ self.additional_properties[key] = value
68
+
69
+ def __delitem__(self, key: str) -> None:
70
+ del self.additional_properties[key]
71
+
72
+ def __contains__(self, key: str) -> bool:
73
+ return key in self.additional_properties
@@ -24,6 +24,9 @@ if TYPE_CHECKING:
24
24
  from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module_branchall import (
25
25
  ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleBranchall,
26
26
  )
27
+ from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module_flow_jobs_duration import (
28
+ ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleFlowJobsDuration,
29
+ )
27
30
  from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module_iterator import (
28
31
  ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleIterator,
29
32
  )
@@ -44,6 +47,8 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModule:
44
47
  iterator (Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset,
51
+ ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleFlowJobsDuration]):
47
52
  branch_chosen (Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleBranchChosen]):
48
53
  branchall (Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleBranchall]):
49
54
  approvers (Union[Unset, List['ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleApproversItem']]):
@@ -64,6 +69,9 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModule:
64
69
  iterator: Union[Unset, "ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleIterator"] = UNSET
65
70
  flow_jobs: Union[Unset, List[str]] = UNSET
66
71
  flow_jobs_success: Union[Unset, List[bool]] = UNSET
72
+ flow_jobs_duration: Union[
73
+ Unset, "ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleFlowJobsDuration"
74
+ ] = UNSET
67
75
  branch_chosen: Union[Unset, "ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleBranchChosen"] = UNSET
68
76
  branchall: Union[Unset, "ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleBranchall"] = UNSET
69
77
  approvers: Union[
@@ -107,6 +115,10 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModule:
107
115
  if not isinstance(self.flow_jobs_success, Unset):
108
116
  flow_jobs_success = self.flow_jobs_success
109
117
 
118
+ flow_jobs_duration: Union[Unset, Dict[str, Any]] = UNSET
119
+ if not isinstance(self.flow_jobs_duration, Unset):
120
+ flow_jobs_duration = self.flow_jobs_duration.to_dict()
121
+
110
122
  branch_chosen: Union[Unset, Dict[str, Any]] = UNSET
111
123
  if not isinstance(self.branch_chosen, Unset):
112
124
  branch_chosen = self.branch_chosen.to_dict()
@@ -172,6 +184,8 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModule:
172
184
  field_dict["flow_jobs"] = flow_jobs
173
185
  if flow_jobs_success is not UNSET:
174
186
  field_dict["flow_jobs_success"] = flow_jobs_success
187
+ if flow_jobs_duration is not UNSET:
188
+ field_dict["flow_jobs_duration"] = flow_jobs_duration
175
189
  if branch_chosen is not UNSET:
176
190
  field_dict["branch_chosen"] = branch_chosen
177
191
  if branchall is not UNSET:
@@ -208,6 +222,9 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModule:
208
222
  from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module_branchall import (
209
223
  ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleBranchall,
210
224
  )
225
+ from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module_flow_jobs_duration import (
226
+ ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleFlowJobsDuration,
227
+ )
211
228
  from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module_iterator import (
212
229
  ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleIterator,
213
230
  )
@@ -234,6 +251,19 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModule:
234
251
 
235
252
  flow_jobs_success = cast(List[bool], d.pop("flow_jobs_success", UNSET))
236
253
 
254
+ _flow_jobs_duration = d.pop("flow_jobs_duration", UNSET)
255
+ flow_jobs_duration: Union[
256
+ Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleFlowJobsDuration
257
+ ]
258
+ if isinstance(_flow_jobs_duration, Unset):
259
+ flow_jobs_duration = UNSET
260
+ else:
261
+ flow_jobs_duration = (
262
+ ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleFlowJobsDuration.from_dict(
263
+ _flow_jobs_duration
264
+ )
265
+ )
266
+
237
267
  _branch_chosen = d.pop("branch_chosen", UNSET)
238
268
  branch_chosen: Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleBranchChosen]
239
269
  if isinstance(_branch_chosen, Unset):
@@ -310,6 +340,7 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModule:
310
340
  iterator=iterator,
311
341
  flow_jobs=flow_jobs,
312
342
  flow_jobs_success=flow_jobs_success,
343
+ flow_jobs_duration=flow_jobs_duration,
313
344
  branch_chosen=branch_chosen,
314
345
  branchall=branchall,
315
346
  approvers=approvers,
@@ -0,0 +1,73 @@
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="ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class ListExtendedJobsResponse200JobsItemType1FlowStatusFailureModuleFlowJobsDuration:
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
+ list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module_flow_jobs_duration.additional_properties = (
55
+ d
56
+ )
57
+ return list_extended_jobs_response_200_jobs_item_type_1_flow_status_failure_module_flow_jobs_duration
58
+
59
+ @property
60
+ def additional_keys(self) -> List[str]:
61
+ return list(self.additional_properties.keys())
62
+
63
+ def __getitem__(self, key: str) -> Any:
64
+ return self.additional_properties[key]
65
+
66
+ def __setitem__(self, key: str, value: Any) -> None:
67
+ self.additional_properties[key] = value
68
+
69
+ def __delitem__(self, key: str) -> None:
70
+ del self.additional_properties[key]
71
+
72
+ def __contains__(self, key: str) -> bool:
73
+ return key in self.additional_properties
@@ -24,6 +24,9 @@ if TYPE_CHECKING:
24
24
  from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_modules_item_branchall import (
25
25
  ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemBranchall,
26
26
  )
27
+ from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration import (
28
+ ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemFlowJobsDuration,
29
+ )
27
30
  from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_modules_item_iterator import (
28
31
  ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemIterator,
29
32
  )
@@ -44,6 +47,8 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItem:
44
47
  iterator (Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset,
51
+ ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemFlowJobsDuration]):
47
52
  branch_chosen (Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemBranchChosen]):
48
53
  branchall (Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemBranchall]):
49
54
  approvers (Union[Unset, List['ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemApproversItem']]):
@@ -63,6 +68,9 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItem:
63
68
  iterator: Union[Unset, "ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemIterator"] = UNSET
64
69
  flow_jobs: Union[Unset, List[str]] = UNSET
65
70
  flow_jobs_success: Union[Unset, List[bool]] = UNSET
71
+ flow_jobs_duration: Union[
72
+ Unset, "ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemFlowJobsDuration"
73
+ ] = UNSET
66
74
  branch_chosen: Union[Unset, "ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemBranchChosen"] = UNSET
67
75
  branchall: Union[Unset, "ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemBranchall"] = UNSET
68
76
  approvers: Union[Unset, List["ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemApproversItem"]] = UNSET
@@ -103,6 +111,10 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItem:
103
111
  if not isinstance(self.flow_jobs_success, Unset):
104
112
  flow_jobs_success = self.flow_jobs_success
105
113
 
114
+ flow_jobs_duration: Union[Unset, Dict[str, Any]] = UNSET
115
+ if not isinstance(self.flow_jobs_duration, Unset):
116
+ flow_jobs_duration = self.flow_jobs_duration.to_dict()
117
+
106
118
  branch_chosen: Union[Unset, Dict[str, Any]] = UNSET
107
119
  if not isinstance(self.branch_chosen, Unset):
108
120
  branch_chosen = self.branch_chosen.to_dict()
@@ -166,6 +178,8 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItem:
166
178
  field_dict["flow_jobs"] = flow_jobs
167
179
  if flow_jobs_success is not UNSET:
168
180
  field_dict["flow_jobs_success"] = flow_jobs_success
181
+ if flow_jobs_duration is not UNSET:
182
+ field_dict["flow_jobs_duration"] = flow_jobs_duration
169
183
  if branch_chosen is not UNSET:
170
184
  field_dict["branch_chosen"] = branch_chosen
171
185
  if branchall is not UNSET:
@@ -200,6 +214,9 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItem:
200
214
  from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_modules_item_branchall import (
201
215
  ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemBranchall,
202
216
  )
217
+ from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration import (
218
+ ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemFlowJobsDuration,
219
+ )
203
220
  from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_modules_item_iterator import (
204
221
  ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemIterator,
205
222
  )
@@ -226,6 +243,17 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItem:
226
243
 
227
244
  flow_jobs_success = cast(List[bool], d.pop("flow_jobs_success", UNSET))
228
245
 
246
+ _flow_jobs_duration = d.pop("flow_jobs_duration", UNSET)
247
+ flow_jobs_duration: Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemFlowJobsDuration]
248
+ if isinstance(_flow_jobs_duration, Unset):
249
+ flow_jobs_duration = UNSET
250
+ else:
251
+ flow_jobs_duration = (
252
+ ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemFlowJobsDuration.from_dict(
253
+ _flow_jobs_duration
254
+ )
255
+ )
256
+
229
257
  _branch_chosen = d.pop("branch_chosen", UNSET)
230
258
  branch_chosen: Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemBranchChosen]
231
259
  if isinstance(_branch_chosen, Unset):
@@ -300,6 +328,7 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItem:
300
328
  iterator=iterator,
301
329
  flow_jobs=flow_jobs,
302
330
  flow_jobs_success=flow_jobs_success,
331
+ flow_jobs_duration=flow_jobs_duration,
303
332
  branch_chosen=branch_chosen,
304
333
  branchall=branchall,
305
334
  approvers=approvers,
@@ -0,0 +1,73 @@
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="ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class ListExtendedJobsResponse200JobsItemType1FlowStatusModulesItemFlowJobsDuration:
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
+ list_extended_jobs_response_200_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
+ list_extended_jobs_response_200_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration.additional_properties = (
55
+ d
56
+ )
57
+ return list_extended_jobs_response_200_jobs_item_type_1_flow_status_modules_item_flow_jobs_duration
58
+
59
+ @property
60
+ def additional_keys(self) -> List[str]:
61
+ return list(self.additional_properties.keys())
62
+
63
+ def __getitem__(self, key: str) -> Any:
64
+ return self.additional_properties[key]
65
+
66
+ def __setitem__(self, key: str, value: Any) -> None:
67
+ self.additional_properties[key] = value
68
+
69
+ def __delitem__(self, key: str) -> None:
70
+ del self.additional_properties[key]
71
+
72
+ def __contains__(self, key: str) -> bool:
73
+ return key in self.additional_properties
@@ -24,6 +24,9 @@ if TYPE_CHECKING:
24
24
  from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_preprocessor_module_branchall import (
25
25
  ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleBranchall,
26
26
  )
27
+ from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration import (
28
+ ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration,
29
+ )
27
30
  from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_preprocessor_module_iterator import (
28
31
  ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleIterator,
29
32
  )
@@ -44,6 +47,8 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModule:
44
47
  iterator (Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset,
51
+ ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration]):
47
52
  branch_chosen (Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleBranchChosen]):
48
53
  branchall (Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleBranchall]):
49
54
  approvers (Union[Unset,
@@ -64,6 +69,9 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModule:
64
69
  iterator: Union[Unset, "ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleIterator"] = UNSET
65
70
  flow_jobs: Union[Unset, List[str]] = UNSET
66
71
  flow_jobs_success: Union[Unset, List[bool]] = UNSET
72
+ flow_jobs_duration: Union[
73
+ Unset, "ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration"
74
+ ] = UNSET
67
75
  branch_chosen: Union[
68
76
  Unset, "ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleBranchChosen"
69
77
  ] = UNSET
@@ -108,6 +116,10 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModule:
108
116
  if not isinstance(self.flow_jobs_success, Unset):
109
117
  flow_jobs_success = self.flow_jobs_success
110
118
 
119
+ flow_jobs_duration: Union[Unset, Dict[str, Any]] = UNSET
120
+ if not isinstance(self.flow_jobs_duration, Unset):
121
+ flow_jobs_duration = self.flow_jobs_duration.to_dict()
122
+
111
123
  branch_chosen: Union[Unset, Dict[str, Any]] = UNSET
112
124
  if not isinstance(self.branch_chosen, Unset):
113
125
  branch_chosen = self.branch_chosen.to_dict()
@@ -171,6 +183,8 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModule:
171
183
  field_dict["flow_jobs"] = flow_jobs
172
184
  if flow_jobs_success is not UNSET:
173
185
  field_dict["flow_jobs_success"] = flow_jobs_success
186
+ if flow_jobs_duration is not UNSET:
187
+ field_dict["flow_jobs_duration"] = flow_jobs_duration
174
188
  if branch_chosen is not UNSET:
175
189
  field_dict["branch_chosen"] = branch_chosen
176
190
  if branchall is not UNSET:
@@ -205,6 +219,9 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModule:
205
219
  from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_preprocessor_module_branchall import (
206
220
  ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleBranchall,
207
221
  )
222
+ from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration import (
223
+ ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration,
224
+ )
208
225
  from ..models.list_extended_jobs_response_200_jobs_item_type_1_flow_status_preprocessor_module_iterator import (
209
226
  ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleIterator,
210
227
  )
@@ -231,6 +248,19 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModule:
231
248
 
232
249
  flow_jobs_success = cast(List[bool], d.pop("flow_jobs_success", UNSET))
233
250
 
251
+ _flow_jobs_duration = d.pop("flow_jobs_duration", UNSET)
252
+ flow_jobs_duration: Union[
253
+ Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration
254
+ ]
255
+ if isinstance(_flow_jobs_duration, Unset):
256
+ flow_jobs_duration = UNSET
257
+ else:
258
+ flow_jobs_duration = (
259
+ ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration.from_dict(
260
+ _flow_jobs_duration
261
+ )
262
+ )
263
+
234
264
  _branch_chosen = d.pop("branch_chosen", UNSET)
235
265
  branch_chosen: Union[Unset, ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleBranchChosen]
236
266
  if isinstance(_branch_chosen, Unset):
@@ -309,6 +339,7 @@ class ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModule:
309
339
  iterator=iterator,
310
340
  flow_jobs=flow_jobs,
311
341
  flow_jobs_success=flow_jobs_success,
342
+ flow_jobs_duration=flow_jobs_duration,
312
343
  branch_chosen=branch_chosen,
313
344
  branchall=branchall,
314
345
  approvers=approvers,
@@ -0,0 +1,73 @@
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="ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class ListExtendedJobsResponse200JobsItemType1FlowStatusPreprocessorModuleFlowJobsDuration:
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
+ list_extended_jobs_response_200_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
+ list_extended_jobs_response_200_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration.additional_properties = (
55
+ d
56
+ )
57
+ return list_extended_jobs_response_200_jobs_item_type_1_flow_status_preprocessor_module_flow_jobs_duration
58
+
59
+ @property
60
+ def additional_keys(self) -> List[str]:
61
+ return list(self.additional_properties.keys())
62
+
63
+ def __getitem__(self, key: str) -> Any:
64
+ return self.additional_properties[key]
65
+
66
+ def __setitem__(self, key: str, value: Any) -> None:
67
+ self.additional_properties[key] = value
68
+
69
+ def __delitem__(self, key: str) -> None:
70
+ del self.additional_properties[key]
71
+
72
+ def __contains__(self, key: str) -> bool:
73
+ return key in self.additional_properties