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
@@ -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="FlowStatusModulesItemFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class FlowStatusModulesItemFlowJobsDuration:
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_modules_item_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ flow_status_modules_item_flow_jobs_duration.additional_properties = d
55
+ return 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
@@ -16,6 +16,7 @@ if TYPE_CHECKING:
16
16
  from ..models.flow_status_preprocessor_module_approvers_item import FlowStatusPreprocessorModuleApproversItem
17
17
  from ..models.flow_status_preprocessor_module_branch_chosen import FlowStatusPreprocessorModuleBranchChosen
18
18
  from ..models.flow_status_preprocessor_module_branchall import FlowStatusPreprocessorModuleBranchall
19
+ from ..models.flow_status_preprocessor_module_flow_jobs_duration import FlowStatusPreprocessorModuleFlowJobsDuration
19
20
  from ..models.flow_status_preprocessor_module_iterator import FlowStatusPreprocessorModuleIterator
20
21
 
21
22
 
@@ -34,6 +35,7 @@ class FlowStatusPreprocessorModule:
34
35
  iterator (Union[Unset, FlowStatusPreprocessorModuleIterator]):
35
36
  flow_jobs (Union[Unset, List[str]]):
36
37
  flow_jobs_success (Union[Unset, List[bool]]):
38
+ flow_jobs_duration (Union[Unset, FlowStatusPreprocessorModuleFlowJobsDuration]):
37
39
  branch_chosen (Union[Unset, FlowStatusPreprocessorModuleBranchChosen]):
38
40
  branchall (Union[Unset, FlowStatusPreprocessorModuleBranchall]):
39
41
  approvers (Union[Unset, List['FlowStatusPreprocessorModuleApproversItem']]):
@@ -52,6 +54,7 @@ class FlowStatusPreprocessorModule:
52
54
  iterator: Union[Unset, "FlowStatusPreprocessorModuleIterator"] = UNSET
53
55
  flow_jobs: Union[Unset, List[str]] = UNSET
54
56
  flow_jobs_success: Union[Unset, List[bool]] = UNSET
57
+ flow_jobs_duration: Union[Unset, "FlowStatusPreprocessorModuleFlowJobsDuration"] = UNSET
55
58
  branch_chosen: Union[Unset, "FlowStatusPreprocessorModuleBranchChosen"] = UNSET
56
59
  branchall: Union[Unset, "FlowStatusPreprocessorModuleBranchall"] = UNSET
57
60
  approvers: Union[Unset, List["FlowStatusPreprocessorModuleApproversItem"]] = UNSET
@@ -91,6 +94,10 @@ class FlowStatusPreprocessorModule:
91
94
  if not isinstance(self.flow_jobs_success, Unset):
92
95
  flow_jobs_success = self.flow_jobs_success
93
96
 
97
+ flow_jobs_duration: Union[Unset, Dict[str, Any]] = UNSET
98
+ if not isinstance(self.flow_jobs_duration, Unset):
99
+ flow_jobs_duration = self.flow_jobs_duration.to_dict()
100
+
94
101
  branch_chosen: Union[Unset, Dict[str, Any]] = UNSET
95
102
  if not isinstance(self.branch_chosen, Unset):
96
103
  branch_chosen = self.branch_chosen.to_dict()
@@ -151,6 +158,8 @@ class FlowStatusPreprocessorModule:
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:
@@ -179,6 +188,9 @@ class FlowStatusPreprocessorModule:
179
188
  from ..models.flow_status_preprocessor_module_approvers_item import FlowStatusPreprocessorModuleApproversItem
180
189
  from ..models.flow_status_preprocessor_module_branch_chosen import FlowStatusPreprocessorModuleBranchChosen
181
190
  from ..models.flow_status_preprocessor_module_branchall import FlowStatusPreprocessorModuleBranchall
191
+ from ..models.flow_status_preprocessor_module_flow_jobs_duration import (
192
+ FlowStatusPreprocessorModuleFlowJobsDuration,
193
+ )
182
194
  from ..models.flow_status_preprocessor_module_iterator import FlowStatusPreprocessorModuleIterator
183
195
 
184
196
  d = src_dict.copy()
@@ -203,6 +215,13 @@ class FlowStatusPreprocessorModule:
203
215
 
204
216
  flow_jobs_success = cast(List[bool], d.pop("flow_jobs_success", UNSET))
205
217
 
218
+ _flow_jobs_duration = d.pop("flow_jobs_duration", UNSET)
219
+ flow_jobs_duration: Union[Unset, FlowStatusPreprocessorModuleFlowJobsDuration]
220
+ if isinstance(_flow_jobs_duration, Unset):
221
+ flow_jobs_duration = UNSET
222
+ else:
223
+ flow_jobs_duration = FlowStatusPreprocessorModuleFlowJobsDuration.from_dict(_flow_jobs_duration)
224
+
206
225
  _branch_chosen = d.pop("branch_chosen", UNSET)
207
226
  branch_chosen: Union[Unset, FlowStatusPreprocessorModuleBranchChosen]
208
227
  if isinstance(_branch_chosen, Unset):
@@ -266,6 +285,7 @@ class FlowStatusPreprocessorModule:
266
285
  iterator=iterator,
267
286
  flow_jobs=flow_jobs,
268
287
  flow_jobs_success=flow_jobs_success,
288
+ flow_jobs_duration=flow_jobs_duration,
269
289
  branch_chosen=branch_chosen,
270
290
  branchall=branchall,
271
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="FlowStatusPreprocessorModuleFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class FlowStatusPreprocessorModuleFlowJobsDuration:
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_preprocessor_module_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ flow_status_preprocessor_module_flow_jobs_duration.additional_properties = d
55
+ return 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
@@ -24,6 +24,9 @@ if TYPE_CHECKING:
24
24
  from ..models.get_completed_job_response_200_flow_status_failure_module_branchall import (
25
25
  GetCompletedJobResponse200FlowStatusFailureModuleBranchall,
26
26
  )
27
+ from ..models.get_completed_job_response_200_flow_status_failure_module_flow_jobs_duration import (
28
+ GetCompletedJobResponse200FlowStatusFailureModuleFlowJobsDuration,
29
+ )
27
30
  from ..models.get_completed_job_response_200_flow_status_failure_module_iterator import (
28
31
  GetCompletedJobResponse200FlowStatusFailureModuleIterator,
29
32
  )
@@ -44,6 +47,7 @@ class GetCompletedJobResponse200FlowStatusFailureModule:
44
47
  iterator (Union[Unset, GetCompletedJobResponse200FlowStatusFailureModuleIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset, GetCompletedJobResponse200FlowStatusFailureModuleFlowJobsDuration]):
47
51
  branch_chosen (Union[Unset, GetCompletedJobResponse200FlowStatusFailureModuleBranchChosen]):
48
52
  branchall (Union[Unset, GetCompletedJobResponse200FlowStatusFailureModuleBranchall]):
49
53
  approvers (Union[Unset, List['GetCompletedJobResponse200FlowStatusFailureModuleApproversItem']]):
@@ -63,6 +67,7 @@ class GetCompletedJobResponse200FlowStatusFailureModule:
63
67
  iterator: Union[Unset, "GetCompletedJobResponse200FlowStatusFailureModuleIterator"] = 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, "GetCompletedJobResponse200FlowStatusFailureModuleFlowJobsDuration"] = UNSET
66
71
  branch_chosen: Union[Unset, "GetCompletedJobResponse200FlowStatusFailureModuleBranchChosen"] = UNSET
67
72
  branchall: Union[Unset, "GetCompletedJobResponse200FlowStatusFailureModuleBranchall"] = UNSET
68
73
  approvers: Union[Unset, List["GetCompletedJobResponse200FlowStatusFailureModuleApproversItem"]] = UNSET
@@ -104,6 +109,10 @@ class GetCompletedJobResponse200FlowStatusFailureModule:
104
109
  if not isinstance(self.flow_jobs_success, Unset):
105
110
  flow_jobs_success = self.flow_jobs_success
106
111
 
112
+ flow_jobs_duration: Union[Unset, Dict[str, Any]] = UNSET
113
+ if not isinstance(self.flow_jobs_duration, Unset):
114
+ flow_jobs_duration = self.flow_jobs_duration.to_dict()
115
+
107
116
  branch_chosen: Union[Unset, Dict[str, Any]] = UNSET
108
117
  if not isinstance(self.branch_chosen, Unset):
109
118
  branch_chosen = self.branch_chosen.to_dict()
@@ -168,6 +177,8 @@ class GetCompletedJobResponse200FlowStatusFailureModule:
168
177
  field_dict["flow_jobs"] = flow_jobs
169
178
  if flow_jobs_success is not UNSET:
170
179
  field_dict["flow_jobs_success"] = flow_jobs_success
180
+ if flow_jobs_duration is not UNSET:
181
+ field_dict["flow_jobs_duration"] = flow_jobs_duration
171
182
  if branch_chosen is not UNSET:
172
183
  field_dict["branch_chosen"] = branch_chosen
173
184
  if branchall is not UNSET:
@@ -204,6 +215,9 @@ class GetCompletedJobResponse200FlowStatusFailureModule:
204
215
  from ..models.get_completed_job_response_200_flow_status_failure_module_branchall import (
205
216
  GetCompletedJobResponse200FlowStatusFailureModuleBranchall,
206
217
  )
218
+ from ..models.get_completed_job_response_200_flow_status_failure_module_flow_jobs_duration import (
219
+ GetCompletedJobResponse200FlowStatusFailureModuleFlowJobsDuration,
220
+ )
207
221
  from ..models.get_completed_job_response_200_flow_status_failure_module_iterator import (
208
222
  GetCompletedJobResponse200FlowStatusFailureModuleIterator,
209
223
  )
@@ -230,6 +244,15 @@ class GetCompletedJobResponse200FlowStatusFailureModule:
230
244
 
231
245
  flow_jobs_success = cast(List[bool], d.pop("flow_jobs_success", UNSET))
232
246
 
247
+ _flow_jobs_duration = d.pop("flow_jobs_duration", UNSET)
248
+ flow_jobs_duration: Union[Unset, GetCompletedJobResponse200FlowStatusFailureModuleFlowJobsDuration]
249
+ if isinstance(_flow_jobs_duration, Unset):
250
+ flow_jobs_duration = UNSET
251
+ else:
252
+ flow_jobs_duration = GetCompletedJobResponse200FlowStatusFailureModuleFlowJobsDuration.from_dict(
253
+ _flow_jobs_duration
254
+ )
255
+
233
256
  _branch_chosen = d.pop("branch_chosen", UNSET)
234
257
  branch_chosen: Union[Unset, GetCompletedJobResponse200FlowStatusFailureModuleBranchChosen]
235
258
  if isinstance(_branch_chosen, Unset):
@@ -302,6 +325,7 @@ class GetCompletedJobResponse200FlowStatusFailureModule:
302
325
  iterator=iterator,
303
326
  flow_jobs=flow_jobs,
304
327
  flow_jobs_success=flow_jobs_success,
328
+ flow_jobs_duration=flow_jobs_duration,
305
329
  branch_chosen=branch_chosen,
306
330
  branchall=branchall,
307
331
  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="GetCompletedJobResponse200FlowStatusFailureModuleFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class GetCompletedJobResponse200FlowStatusFailureModuleFlowJobsDuration:
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
+ get_completed_job_response_200_flow_status_failure_module_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ get_completed_job_response_200_flow_status_failure_module_flow_jobs_duration.additional_properties = d
55
+ return get_completed_job_response_200_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
@@ -24,6 +24,9 @@ if TYPE_CHECKING:
24
24
  from ..models.get_completed_job_response_200_flow_status_modules_item_branchall import (
25
25
  GetCompletedJobResponse200FlowStatusModulesItemBranchall,
26
26
  )
27
+ from ..models.get_completed_job_response_200_flow_status_modules_item_flow_jobs_duration import (
28
+ GetCompletedJobResponse200FlowStatusModulesItemFlowJobsDuration,
29
+ )
27
30
  from ..models.get_completed_job_response_200_flow_status_modules_item_iterator import (
28
31
  GetCompletedJobResponse200FlowStatusModulesItemIterator,
29
32
  )
@@ -44,6 +47,7 @@ class GetCompletedJobResponse200FlowStatusModulesItem:
44
47
  iterator (Union[Unset, GetCompletedJobResponse200FlowStatusModulesItemIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset, GetCompletedJobResponse200FlowStatusModulesItemFlowJobsDuration]):
47
51
  branch_chosen (Union[Unset, GetCompletedJobResponse200FlowStatusModulesItemBranchChosen]):
48
52
  branchall (Union[Unset, GetCompletedJobResponse200FlowStatusModulesItemBranchall]):
49
53
  approvers (Union[Unset, List['GetCompletedJobResponse200FlowStatusModulesItemApproversItem']]):
@@ -62,6 +66,7 @@ class GetCompletedJobResponse200FlowStatusModulesItem:
62
66
  iterator: Union[Unset, "GetCompletedJobResponse200FlowStatusModulesItemIterator"] = 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, "GetCompletedJobResponse200FlowStatusModulesItemFlowJobsDuration"] = UNSET
65
70
  branch_chosen: Union[Unset, "GetCompletedJobResponse200FlowStatusModulesItemBranchChosen"] = UNSET
66
71
  branchall: Union[Unset, "GetCompletedJobResponse200FlowStatusModulesItemBranchall"] = UNSET
67
72
  approvers: Union[Unset, List["GetCompletedJobResponse200FlowStatusModulesItemApproversItem"]] = UNSET
@@ -102,6 +107,10 @@ class GetCompletedJobResponse200FlowStatusModulesItem:
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 GetCompletedJobResponse200FlowStatusModulesItem:
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 GetCompletedJobResponse200FlowStatusModulesItem:
198
209
  from ..models.get_completed_job_response_200_flow_status_modules_item_branchall import (
199
210
  GetCompletedJobResponse200FlowStatusModulesItemBranchall,
200
211
  )
212
+ from ..models.get_completed_job_response_200_flow_status_modules_item_flow_jobs_duration import (
213
+ GetCompletedJobResponse200FlowStatusModulesItemFlowJobsDuration,
214
+ )
201
215
  from ..models.get_completed_job_response_200_flow_status_modules_item_iterator import (
202
216
  GetCompletedJobResponse200FlowStatusModulesItemIterator,
203
217
  )
@@ -224,6 +238,15 @@ class GetCompletedJobResponse200FlowStatusModulesItem:
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, GetCompletedJobResponse200FlowStatusModulesItemFlowJobsDuration]
243
+ if isinstance(_flow_jobs_duration, Unset):
244
+ flow_jobs_duration = UNSET
245
+ else:
246
+ flow_jobs_duration = GetCompletedJobResponse200FlowStatusModulesItemFlowJobsDuration.from_dict(
247
+ _flow_jobs_duration
248
+ )
249
+
227
250
  _branch_chosen = d.pop("branch_chosen", UNSET)
228
251
  branch_chosen: Union[Unset, GetCompletedJobResponse200FlowStatusModulesItemBranchChosen]
229
252
  if isinstance(_branch_chosen, Unset):
@@ -292,6 +315,7 @@ class GetCompletedJobResponse200FlowStatusModulesItem:
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="GetCompletedJobResponse200FlowStatusModulesItemFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class GetCompletedJobResponse200FlowStatusModulesItemFlowJobsDuration:
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
+ get_completed_job_response_200_flow_status_modules_item_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ get_completed_job_response_200_flow_status_modules_item_flow_jobs_duration.additional_properties = d
55
+ return get_completed_job_response_200_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.get_completed_job_response_200_flow_status_preprocessor_module_branchall import (
25
25
  GetCompletedJobResponse200FlowStatusPreprocessorModuleBranchall,
26
26
  )
27
+ from ..models.get_completed_job_response_200_flow_status_preprocessor_module_flow_jobs_duration import (
28
+ GetCompletedJobResponse200FlowStatusPreprocessorModuleFlowJobsDuration,
29
+ )
27
30
  from ..models.get_completed_job_response_200_flow_status_preprocessor_module_iterator import (
28
31
  GetCompletedJobResponse200FlowStatusPreprocessorModuleIterator,
29
32
  )
@@ -44,6 +47,7 @@ class GetCompletedJobResponse200FlowStatusPreprocessorModule:
44
47
  iterator (Union[Unset, GetCompletedJobResponse200FlowStatusPreprocessorModuleIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset, GetCompletedJobResponse200FlowStatusPreprocessorModuleFlowJobsDuration]):
47
51
  branch_chosen (Union[Unset, GetCompletedJobResponse200FlowStatusPreprocessorModuleBranchChosen]):
48
52
  branchall (Union[Unset, GetCompletedJobResponse200FlowStatusPreprocessorModuleBranchall]):
49
53
  approvers (Union[Unset, List['GetCompletedJobResponse200FlowStatusPreprocessorModuleApproversItem']]):
@@ -63,6 +67,7 @@ class GetCompletedJobResponse200FlowStatusPreprocessorModule:
63
67
  iterator: Union[Unset, "GetCompletedJobResponse200FlowStatusPreprocessorModuleIterator"] = 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, "GetCompletedJobResponse200FlowStatusPreprocessorModuleFlowJobsDuration"] = UNSET
66
71
  branch_chosen: Union[Unset, "GetCompletedJobResponse200FlowStatusPreprocessorModuleBranchChosen"] = UNSET
67
72
  branchall: Union[Unset, "GetCompletedJobResponse200FlowStatusPreprocessorModuleBranchall"] = UNSET
68
73
  approvers: Union[Unset, List["GetCompletedJobResponse200FlowStatusPreprocessorModuleApproversItem"]] = UNSET
@@ -103,6 +108,10 @@ class GetCompletedJobResponse200FlowStatusPreprocessorModule:
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 GetCompletedJobResponse200FlowStatusPreprocessorModule:
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 GetCompletedJobResponse200FlowStatusPreprocessorModule:
199
210
  from ..models.get_completed_job_response_200_flow_status_preprocessor_module_branchall import (
200
211
  GetCompletedJobResponse200FlowStatusPreprocessorModuleBranchall,
201
212
  )
213
+ from ..models.get_completed_job_response_200_flow_status_preprocessor_module_flow_jobs_duration import (
214
+ GetCompletedJobResponse200FlowStatusPreprocessorModuleFlowJobsDuration,
215
+ )
202
216
  from ..models.get_completed_job_response_200_flow_status_preprocessor_module_iterator import (
203
217
  GetCompletedJobResponse200FlowStatusPreprocessorModuleIterator,
204
218
  )
@@ -225,6 +239,15 @@ class GetCompletedJobResponse200FlowStatusPreprocessorModule:
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, GetCompletedJobResponse200FlowStatusPreprocessorModuleFlowJobsDuration]
244
+ if isinstance(_flow_jobs_duration, Unset):
245
+ flow_jobs_duration = UNSET
246
+ else:
247
+ flow_jobs_duration = GetCompletedJobResponse200FlowStatusPreprocessorModuleFlowJobsDuration.from_dict(
248
+ _flow_jobs_duration
249
+ )
250
+
228
251
  _branch_chosen = d.pop("branch_chosen", UNSET)
229
252
  branch_chosen: Union[Unset, GetCompletedJobResponse200FlowStatusPreprocessorModuleBranchChosen]
230
253
  if isinstance(_branch_chosen, Unset):
@@ -295,6 +318,7 @@ class GetCompletedJobResponse200FlowStatusPreprocessorModule:
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="GetCompletedJobResponse200FlowStatusPreprocessorModuleFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class GetCompletedJobResponse200FlowStatusPreprocessorModuleFlowJobsDuration:
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
+ get_completed_job_response_200_flow_status_preprocessor_module_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ get_completed_job_response_200_flow_status_preprocessor_module_flow_jobs_duration.additional_properties = d
55
+ return get_completed_job_response_200_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