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_completed_jobs_response_200_item_flow_status_modules_item_branchall import (
25
25
  ListCompletedJobsResponse200ItemFlowStatusModulesItemBranchall,
26
26
  )
27
+ from ..models.list_completed_jobs_response_200_item_flow_status_modules_item_flow_jobs_duration import (
28
+ ListCompletedJobsResponse200ItemFlowStatusModulesItemFlowJobsDuration,
29
+ )
27
30
  from ..models.list_completed_jobs_response_200_item_flow_status_modules_item_iterator import (
28
31
  ListCompletedJobsResponse200ItemFlowStatusModulesItemIterator,
29
32
  )
@@ -44,6 +47,7 @@ class ListCompletedJobsResponse200ItemFlowStatusModulesItem:
44
47
  iterator (Union[Unset, ListCompletedJobsResponse200ItemFlowStatusModulesItemIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset, ListCompletedJobsResponse200ItemFlowStatusModulesItemFlowJobsDuration]):
47
51
  branch_chosen (Union[Unset, ListCompletedJobsResponse200ItemFlowStatusModulesItemBranchChosen]):
48
52
  branchall (Union[Unset, ListCompletedJobsResponse200ItemFlowStatusModulesItemBranchall]):
49
53
  approvers (Union[Unset, List['ListCompletedJobsResponse200ItemFlowStatusModulesItemApproversItem']]):
@@ -63,6 +67,7 @@ class ListCompletedJobsResponse200ItemFlowStatusModulesItem:
63
67
  iterator: Union[Unset, "ListCompletedJobsResponse200ItemFlowStatusModulesItemIterator"] = 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, "ListCompletedJobsResponse200ItemFlowStatusModulesItemFlowJobsDuration"] = UNSET
66
71
  branch_chosen: Union[Unset, "ListCompletedJobsResponse200ItemFlowStatusModulesItemBranchChosen"] = UNSET
67
72
  branchall: Union[Unset, "ListCompletedJobsResponse200ItemFlowStatusModulesItemBranchall"] = UNSET
68
73
  approvers: Union[Unset, List["ListCompletedJobsResponse200ItemFlowStatusModulesItemApproversItem"]] = UNSET
@@ -103,6 +108,10 @@ class ListCompletedJobsResponse200ItemFlowStatusModulesItem:
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 ListCompletedJobsResponse200ItemFlowStatusModulesItem:
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 ListCompletedJobsResponse200ItemFlowStatusModulesItem:
199
210
  from ..models.list_completed_jobs_response_200_item_flow_status_modules_item_branchall import (
200
211
  ListCompletedJobsResponse200ItemFlowStatusModulesItemBranchall,
201
212
  )
213
+ from ..models.list_completed_jobs_response_200_item_flow_status_modules_item_flow_jobs_duration import (
214
+ ListCompletedJobsResponse200ItemFlowStatusModulesItemFlowJobsDuration,
215
+ )
202
216
  from ..models.list_completed_jobs_response_200_item_flow_status_modules_item_iterator import (
203
217
  ListCompletedJobsResponse200ItemFlowStatusModulesItemIterator,
204
218
  )
@@ -225,6 +239,15 @@ class ListCompletedJobsResponse200ItemFlowStatusModulesItem:
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, ListCompletedJobsResponse200ItemFlowStatusModulesItemFlowJobsDuration]
244
+ if isinstance(_flow_jobs_duration, Unset):
245
+ flow_jobs_duration = UNSET
246
+ else:
247
+ flow_jobs_duration = ListCompletedJobsResponse200ItemFlowStatusModulesItemFlowJobsDuration.from_dict(
248
+ _flow_jobs_duration
249
+ )
250
+
228
251
  _branch_chosen = d.pop("branch_chosen", UNSET)
229
252
  branch_chosen: Union[Unset, ListCompletedJobsResponse200ItemFlowStatusModulesItemBranchChosen]
230
253
  if isinstance(_branch_chosen, Unset):
@@ -295,6 +318,7 @@ class ListCompletedJobsResponse200ItemFlowStatusModulesItem:
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="ListCompletedJobsResponse200ItemFlowStatusModulesItemFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class ListCompletedJobsResponse200ItemFlowStatusModulesItemFlowJobsDuration:
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_completed_jobs_response_200_item_flow_status_modules_item_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ list_completed_jobs_response_200_item_flow_status_modules_item_flow_jobs_duration.additional_properties = d
55
+ return list_completed_jobs_response_200_item_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.list_completed_jobs_response_200_item_flow_status_preprocessor_module_branchall import (
25
25
  ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleBranchall,
26
26
  )
27
+ from ..models.list_completed_jobs_response_200_item_flow_status_preprocessor_module_flow_jobs_duration import (
28
+ ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleFlowJobsDuration,
29
+ )
27
30
  from ..models.list_completed_jobs_response_200_item_flow_status_preprocessor_module_iterator import (
28
31
  ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleIterator,
29
32
  )
@@ -44,6 +47,7 @@ class ListCompletedJobsResponse200ItemFlowStatusPreprocessorModule:
44
47
  iterator (Union[Unset, ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset, ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleFlowJobsDuration]):
47
51
  branch_chosen (Union[Unset, ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleBranchChosen]):
48
52
  branchall (Union[Unset, ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleBranchall]):
49
53
  approvers (Union[Unset, List['ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleApproversItem']]):
@@ -63,6 +67,9 @@ class ListCompletedJobsResponse200ItemFlowStatusPreprocessorModule:
63
67
  iterator: Union[Unset, "ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleIterator"] = 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[
71
+ Unset, "ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleFlowJobsDuration"
72
+ ] = UNSET
66
73
  branch_chosen: Union[Unset, "ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleBranchChosen"] = UNSET
67
74
  branchall: Union[Unset, "ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleBranchall"] = UNSET
68
75
  approvers: Union[Unset, List["ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleApproversItem"]] = UNSET
@@ -103,6 +110,10 @@ class ListCompletedJobsResponse200ItemFlowStatusPreprocessorModule:
103
110
  if not isinstance(self.flow_jobs_success, Unset):
104
111
  flow_jobs_success = self.flow_jobs_success
105
112
 
113
+ flow_jobs_duration: Union[Unset, Dict[str, Any]] = UNSET
114
+ if not isinstance(self.flow_jobs_duration, Unset):
115
+ flow_jobs_duration = self.flow_jobs_duration.to_dict()
116
+
106
117
  branch_chosen: Union[Unset, Dict[str, Any]] = UNSET
107
118
  if not isinstance(self.branch_chosen, Unset):
108
119
  branch_chosen = self.branch_chosen.to_dict()
@@ -166,6 +177,8 @@ class ListCompletedJobsResponse200ItemFlowStatusPreprocessorModule:
166
177
  field_dict["flow_jobs"] = flow_jobs
167
178
  if flow_jobs_success is not UNSET:
168
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
169
182
  if branch_chosen is not UNSET:
170
183
  field_dict["branch_chosen"] = branch_chosen
171
184
  if branchall is not UNSET:
@@ -200,6 +213,9 @@ class ListCompletedJobsResponse200ItemFlowStatusPreprocessorModule:
200
213
  from ..models.list_completed_jobs_response_200_item_flow_status_preprocessor_module_branchall import (
201
214
  ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleBranchall,
202
215
  )
216
+ from ..models.list_completed_jobs_response_200_item_flow_status_preprocessor_module_flow_jobs_duration import (
217
+ ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleFlowJobsDuration,
218
+ )
203
219
  from ..models.list_completed_jobs_response_200_item_flow_status_preprocessor_module_iterator import (
204
220
  ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleIterator,
205
221
  )
@@ -226,6 +242,15 @@ class ListCompletedJobsResponse200ItemFlowStatusPreprocessorModule:
226
242
 
227
243
  flow_jobs_success = cast(List[bool], d.pop("flow_jobs_success", UNSET))
228
244
 
245
+ _flow_jobs_duration = d.pop("flow_jobs_duration", UNSET)
246
+ flow_jobs_duration: Union[Unset, ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleFlowJobsDuration]
247
+ if isinstance(_flow_jobs_duration, Unset):
248
+ flow_jobs_duration = UNSET
249
+ else:
250
+ flow_jobs_duration = ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleFlowJobsDuration.from_dict(
251
+ _flow_jobs_duration
252
+ )
253
+
229
254
  _branch_chosen = d.pop("branch_chosen", UNSET)
230
255
  branch_chosen: Union[Unset, ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleBranchChosen]
231
256
  if isinstance(_branch_chosen, Unset):
@@ -300,6 +325,7 @@ class ListCompletedJobsResponse200ItemFlowStatusPreprocessorModule:
300
325
  iterator=iterator,
301
326
  flow_jobs=flow_jobs,
302
327
  flow_jobs_success=flow_jobs_success,
328
+ flow_jobs_duration=flow_jobs_duration,
303
329
  branch_chosen=branch_chosen,
304
330
  branchall=branchall,
305
331
  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="ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class ListCompletedJobsResponse200ItemFlowStatusPreprocessorModuleFlowJobsDuration:
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_completed_jobs_response_200_item_flow_status_preprocessor_module_flow_jobs_duration = cls(
50
+ started_at=started_at,
51
+ duration_ms=duration_ms,
52
+ )
53
+
54
+ list_completed_jobs_response_200_item_flow_status_preprocessor_module_flow_jobs_duration.additional_properties = (
55
+ d
56
+ )
57
+ return list_completed_jobs_response_200_item_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_0_flow_status_failure_module_branchall import (
25
25
  ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleBranchall,
26
26
  )
27
+ from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_failure_module_flow_jobs_duration import (
28
+ ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleFlowJobsDuration,
29
+ )
27
30
  from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_failure_module_iterator import (
28
31
  ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleIterator,
29
32
  )
@@ -44,6 +47,8 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModule:
44
47
  iterator (Union[Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset,
51
+ ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleFlowJobsDuration]):
47
52
  branch_chosen (Union[Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleBranchChosen]):
48
53
  branchall (Union[Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleBranchall]):
49
54
  approvers (Union[Unset, List['ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleApproversItem']]):
@@ -64,6 +69,9 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModule:
64
69
  iterator: Union[Unset, "ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleIterator"] = 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, "ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleFlowJobsDuration"
74
+ ] = UNSET
67
75
  branch_chosen: Union[Unset, "ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleBranchChosen"] = UNSET
68
76
  branchall: Union[Unset, "ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleBranchall"] = UNSET
69
77
  approvers: Union[
@@ -107,6 +115,10 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModule:
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 ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModule:
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 ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModule:
208
222
  from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_failure_module_branchall import (
209
223
  ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleBranchall,
210
224
  )
225
+ from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_failure_module_flow_jobs_duration import (
226
+ ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleFlowJobsDuration,
227
+ )
211
228
  from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_failure_module_iterator import (
212
229
  ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleIterator,
213
230
  )
@@ -234,6 +251,19 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModule:
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, ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleFlowJobsDuration
257
+ ]
258
+ if isinstance(_flow_jobs_duration, Unset):
259
+ flow_jobs_duration = UNSET
260
+ else:
261
+ flow_jobs_duration = (
262
+ ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleFlowJobsDuration.from_dict(
263
+ _flow_jobs_duration
264
+ )
265
+ )
266
+
237
267
  _branch_chosen = d.pop("branch_chosen", UNSET)
238
268
  branch_chosen: Union[Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleBranchChosen]
239
269
  if isinstance(_branch_chosen, Unset):
@@ -310,6 +340,7 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModule:
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="ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class ListExtendedJobsResponse200JobsItemType0FlowStatusFailureModuleFlowJobsDuration:
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_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_0_flow_status_failure_module_flow_jobs_duration.additional_properties = (
55
+ d
56
+ )
57
+ return list_extended_jobs_response_200_jobs_item_type_0_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_0_flow_status_modules_item_branchall import (
25
25
  ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemBranchall,
26
26
  )
27
+ from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_modules_item_flow_jobs_duration import (
28
+ ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemFlowJobsDuration,
29
+ )
27
30
  from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_modules_item_iterator import (
28
31
  ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemIterator,
29
32
  )
@@ -44,6 +47,8 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItem:
44
47
  iterator (Union[Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemIterator]):
45
48
  flow_jobs (Union[Unset, List[str]]):
46
49
  flow_jobs_success (Union[Unset, List[bool]]):
50
+ flow_jobs_duration (Union[Unset,
51
+ ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemFlowJobsDuration]):
47
52
  branch_chosen (Union[Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemBranchChosen]):
48
53
  branchall (Union[Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemBranchall]):
49
54
  approvers (Union[Unset, List['ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemApproversItem']]):
@@ -63,6 +68,9 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItem:
63
68
  iterator: Union[Unset, "ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemIterator"] = 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, "ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemFlowJobsDuration"
73
+ ] = UNSET
66
74
  branch_chosen: Union[Unset, "ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemBranchChosen"] = UNSET
67
75
  branchall: Union[Unset, "ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemBranchall"] = UNSET
68
76
  approvers: Union[Unset, List["ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemApproversItem"]] = UNSET
@@ -103,6 +111,10 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItem:
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 ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItem:
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 ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItem:
200
214
  from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_modules_item_branchall import (
201
215
  ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemBranchall,
202
216
  )
217
+ from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_modules_item_flow_jobs_duration import (
218
+ ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemFlowJobsDuration,
219
+ )
203
220
  from ..models.list_extended_jobs_response_200_jobs_item_type_0_flow_status_modules_item_iterator import (
204
221
  ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemIterator,
205
222
  )
@@ -226,6 +243,17 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItem:
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, ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemFlowJobsDuration]
248
+ if isinstance(_flow_jobs_duration, Unset):
249
+ flow_jobs_duration = UNSET
250
+ else:
251
+ flow_jobs_duration = (
252
+ ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemFlowJobsDuration.from_dict(
253
+ _flow_jobs_duration
254
+ )
255
+ )
256
+
229
257
  _branch_chosen = d.pop("branch_chosen", UNSET)
230
258
  branch_chosen: Union[Unset, ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemBranchChosen]
231
259
  if isinstance(_branch_chosen, Unset):
@@ -300,6 +328,7 @@ class ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItem:
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="ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemFlowJobsDuration")
9
+
10
+
11
+ @_attrs_define
12
+ class ListExtendedJobsResponse200JobsItemType0FlowStatusModulesItemFlowJobsDuration:
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_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_0_flow_status_modules_item_flow_jobs_duration.additional_properties = (
55
+ d
56
+ )
57
+ return list_extended_jobs_response_200_jobs_item_type_0_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