windmill-api 1.555.1__py3-none-any.whl → 1.556.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 (76) hide show
  1. windmill_api/api/setting/{databases_exist.py → get_ducklake_instance_catalog_db_status.py} +25 -48
  2. windmill_api/api/setting/setup_ducklake_catalog_db.py +152 -0
  3. windmill_api/models/completed_job_job_kind.py +1 -1
  4. windmill_api/models/create_schedule_json_body.py +9 -0
  5. windmill_api/models/delete_completed_job_response_200_job_kind.py +1 -1
  6. windmill_api/models/ducklake_instance_catalog_db_status_logs_created_database.py +10 -0
  7. windmill_api/models/ducklake_instance_catalog_db_status_logs_database_credentials.py +10 -0
  8. windmill_api/models/ducklake_instance_catalog_db_status_logs_db_connect.py +10 -0
  9. windmill_api/models/ducklake_instance_catalog_db_status_logs_grant_permissions.py +10 -0
  10. windmill_api/models/ducklake_instance_catalog_db_status_logs_super_admin.py +10 -0
  11. windmill_api/models/ducklake_instance_catalog_db_status_logs_valid_dbname.py +10 -0
  12. windmill_api/models/edit_schedule.py +9 -0
  13. windmill_api/models/extended_jobs_jobs_item_type_0_job_kind.py +1 -1
  14. windmill_api/models/extended_jobs_jobs_item_type_1_job_kind.py +1 -1
  15. windmill_api/models/flow_module_value_2_type_3_parallelism_type_0.py +67 -0
  16. windmill_api/models/flow_module_value_2_type_3_parallelism_type_0_type.py +8 -0
  17. windmill_api/models/flow_module_value_2_type_3_parallelism_type_1.py +67 -0
  18. windmill_api/models/flow_module_value_2_type_3_parallelism_type_1_type.py +8 -0
  19. windmill_api/models/flow_module_value_2_type_4_parallelism_type_0.py +67 -0
  20. windmill_api/models/flow_module_value_2_type_4_parallelism_type_0_type.py +8 -0
  21. windmill_api/models/flow_module_value_2_type_4_parallelism_type_1.py +67 -0
  22. windmill_api/models/flow_module_value_2_type_4_parallelism_type_1_type.py +8 -0
  23. windmill_api/models/forloop_flow.py +50 -4
  24. windmill_api/models/forloop_flow_parallelism_type_0.py +67 -0
  25. windmill_api/models/forloop_flow_parallelism_type_0_type.py +8 -0
  26. windmill_api/models/forloop_flow_parallelism_type_1.py +67 -0
  27. windmill_api/models/forloop_flow_parallelism_type_1_type.py +8 -0
  28. windmill_api/models/get_completed_job_response_200_job_kind.py +1 -1
  29. windmill_api/models/get_ducklake_instance_catalog_db_status_response_200.py +66 -0
  30. windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property.py +86 -0
  31. windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs.py +187 -0
  32. windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs_created_database.py +10 -0
  33. windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs_database_credentials.py +10 -0
  34. windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs_db_connect.py +10 -0
  35. windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs_grant_permissions.py +10 -0
  36. windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs_super_admin.py +10 -0
  37. windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs_valid_dbname.py +10 -0
  38. windmill_api/models/get_job_response_200_type_0_job_kind.py +1 -1
  39. windmill_api/models/get_job_response_200_type_1_job_kind.py +1 -1
  40. windmill_api/models/get_schedule_response_200.py +9 -0
  41. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_job_kind.py +1 -1
  42. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_job_kind.py +1 -1
  43. windmill_api/models/job_type_0_job_kind.py +1 -1
  44. windmill_api/models/job_type_1_job_kind.py +1 -1
  45. windmill_api/models/list_completed_jobs_response_200_item_job_kind.py +1 -1
  46. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_job_kind.py +1 -1
  47. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_job_kind.py +1 -1
  48. windmill_api/models/list_jobs_response_200_item_type_0_job_kind.py +1 -1
  49. windmill_api/models/list_jobs_response_200_item_type_1_job_kind.py +1 -1
  50. windmill_api/models/list_queue_response_200_item_job_kind.py +1 -1
  51. windmill_api/models/list_schedules_response_200_item.py +9 -0
  52. windmill_api/models/list_schedules_with_jobs_response_200_item.py +9 -0
  53. windmill_api/models/logged_wizard_status.py +10 -0
  54. windmill_api/models/new_schedule.py +9 -0
  55. windmill_api/models/queued_job_job_kind.py +1 -1
  56. windmill_api/models/schedule.py +9 -0
  57. windmill_api/models/schedule_w_jobs.py +9 -0
  58. windmill_api/models/setup_ducklake_catalog_db_response_200.py +82 -0
  59. windmill_api/models/setup_ducklake_catalog_db_response_200_logs.py +164 -0
  60. windmill_api/models/setup_ducklake_catalog_db_response_200_logs_created_database.py +10 -0
  61. windmill_api/models/setup_ducklake_catalog_db_response_200_logs_database_credentials.py +10 -0
  62. windmill_api/models/setup_ducklake_catalog_db_response_200_logs_db_connect.py +10 -0
  63. windmill_api/models/setup_ducklake_catalog_db_response_200_logs_grant_permissions.py +10 -0
  64. windmill_api/models/setup_ducklake_catalog_db_response_200_logs_super_admin.py +10 -0
  65. windmill_api/models/setup_ducklake_catalog_db_response_200_logs_valid_dbname.py +10 -0
  66. windmill_api/models/update_schedule_json_body.py +9 -0
  67. windmill_api/models/whileloop_flow.py +51 -4
  68. windmill_api/models/whileloop_flow_parallelism_type_0.py +67 -0
  69. windmill_api/models/whileloop_flow_parallelism_type_0_type.py +8 -0
  70. windmill_api/models/whileloop_flow_parallelism_type_1.py +67 -0
  71. windmill_api/models/whileloop_flow_parallelism_type_1_type.py +8 -0
  72. {windmill_api-1.555.1.dist-info → windmill_api-1.556.0.dist-info}/METADATA +1 -1
  73. {windmill_api-1.555.1.dist-info → windmill_api-1.556.0.dist-info}/RECORD +75 -35
  74. windmill_api/api/setting/create_ducklake_database.py +0 -95
  75. {windmill_api-1.555.1.dist-info → windmill_api-1.556.0.dist-info}/LICENSE +0 -0
  76. {windmill_api-1.555.1.dist-info → windmill_api-1.556.0.dist-info}/WHEEL +0 -0
@@ -56,6 +56,8 @@ class ScheduleWJobs:
56
56
  tag (Union[Unset, str]):
57
57
  paused_until (Union[Unset, datetime.datetime]):
58
58
  cron_version (Union[Unset, str]):
59
+ dynamic_skip (Union[Unset, str]): Path to a script that validates scheduled datetimes. Receives scheduled_for
60
+ datetime and returns boolean.
59
61
  jobs (Union[Unset, List['ScheduleWJobsJobsItem']]):
60
62
  """
61
63
 
@@ -88,6 +90,7 @@ class ScheduleWJobs:
88
90
  tag: Union[Unset, str] = UNSET
89
91
  paused_until: Union[Unset, datetime.datetime] = UNSET
90
92
  cron_version: Union[Unset, str] = UNSET
93
+ dynamic_skip: Union[Unset, str] = UNSET
91
94
  jobs: Union[Unset, List["ScheduleWJobsJobsItem"]] = UNSET
92
95
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
93
96
 
@@ -141,6 +144,7 @@ class ScheduleWJobs:
141
144
  paused_until = self.paused_until.isoformat()
142
145
 
143
146
  cron_version = self.cron_version
147
+ dynamic_skip = self.dynamic_skip
144
148
  jobs: Union[Unset, List[Dict[str, Any]]] = UNSET
145
149
  if not isinstance(self.jobs, Unset):
146
150
  jobs = []
@@ -203,6 +207,8 @@ class ScheduleWJobs:
203
207
  field_dict["paused_until"] = paused_until
204
208
  if cron_version is not UNSET:
205
209
  field_dict["cron_version"] = cron_version
210
+ if dynamic_skip is not UNSET:
211
+ field_dict["dynamic_skip"] = dynamic_skip
206
212
  if jobs is not UNSET:
207
213
  field_dict["jobs"] = jobs
208
214
 
@@ -307,6 +313,8 @@ class ScheduleWJobs:
307
313
 
308
314
  cron_version = d.pop("cron_version", UNSET)
309
315
 
316
+ dynamic_skip = d.pop("dynamic_skip", UNSET)
317
+
310
318
  jobs = []
311
319
  _jobs = d.pop("jobs", UNSET)
312
320
  for jobs_item_data in _jobs or []:
@@ -344,6 +352,7 @@ class ScheduleWJobs:
344
352
  tag=tag,
345
353
  paused_until=paused_until,
346
354
  cron_version=cron_version,
355
+ dynamic_skip=dynamic_skip,
347
356
  jobs=jobs,
348
357
  )
349
358
 
@@ -0,0 +1,82 @@
1
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union
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
+ if TYPE_CHECKING:
9
+ from ..models.setup_ducklake_catalog_db_response_200_logs import SetupDucklakeCatalogDbResponse200Logs
10
+
11
+
12
+ T = TypeVar("T", bound="SetupDucklakeCatalogDbResponse200")
13
+
14
+
15
+ @_attrs_define
16
+ class SetupDucklakeCatalogDbResponse200:
17
+ """
18
+ Attributes:
19
+ logs (SetupDucklakeCatalogDbResponse200Logs):
20
+ success (bool): Whether the operation completed successfully Example: True.
21
+ error (Union[Unset, None, str]): Error message if the operation failed Example: Connection timeout.
22
+ """
23
+
24
+ logs: "SetupDucklakeCatalogDbResponse200Logs"
25
+ success: bool
26
+ error: Union[Unset, None, str] = UNSET
27
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> Dict[str, Any]:
30
+ logs = self.logs.to_dict()
31
+
32
+ success = self.success
33
+ error = self.error
34
+
35
+ field_dict: Dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update(
38
+ {
39
+ "logs": logs,
40
+ "success": success,
41
+ }
42
+ )
43
+ if error is not UNSET:
44
+ field_dict["error"] = error
45
+
46
+ return field_dict
47
+
48
+ @classmethod
49
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50
+ from ..models.setup_ducklake_catalog_db_response_200_logs import SetupDucklakeCatalogDbResponse200Logs
51
+
52
+ d = src_dict.copy()
53
+ logs = SetupDucklakeCatalogDbResponse200Logs.from_dict(d.pop("logs"))
54
+
55
+ success = d.pop("success")
56
+
57
+ error = d.pop("error", UNSET)
58
+
59
+ setup_ducklake_catalog_db_response_200 = cls(
60
+ logs=logs,
61
+ success=success,
62
+ error=error,
63
+ )
64
+
65
+ setup_ducklake_catalog_db_response_200.additional_properties = d
66
+ return setup_ducklake_catalog_db_response_200
67
+
68
+ @property
69
+ def additional_keys(self) -> List[str]:
70
+ return list(self.additional_properties.keys())
71
+
72
+ def __getitem__(self, key: str) -> Any:
73
+ return self.additional_properties[key]
74
+
75
+ def __setitem__(self, key: str, value: Any) -> None:
76
+ self.additional_properties[key] = value
77
+
78
+ def __delitem__(self, key: str) -> None:
79
+ del self.additional_properties[key]
80
+
81
+ def __contains__(self, key: str) -> bool:
82
+ return key in self.additional_properties
@@ -0,0 +1,164 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, Union
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..models.setup_ducklake_catalog_db_response_200_logs_created_database import (
7
+ SetupDucklakeCatalogDbResponse200LogsCreatedDatabase,
8
+ )
9
+ from ..models.setup_ducklake_catalog_db_response_200_logs_database_credentials import (
10
+ SetupDucklakeCatalogDbResponse200LogsDatabaseCredentials,
11
+ )
12
+ from ..models.setup_ducklake_catalog_db_response_200_logs_db_connect import (
13
+ SetupDucklakeCatalogDbResponse200LogsDbConnect,
14
+ )
15
+ from ..models.setup_ducklake_catalog_db_response_200_logs_grant_permissions import (
16
+ SetupDucklakeCatalogDbResponse200LogsGrantPermissions,
17
+ )
18
+ from ..models.setup_ducklake_catalog_db_response_200_logs_super_admin import (
19
+ SetupDucklakeCatalogDbResponse200LogsSuperAdmin,
20
+ )
21
+ from ..models.setup_ducklake_catalog_db_response_200_logs_valid_dbname import (
22
+ SetupDucklakeCatalogDbResponse200LogsValidDbname,
23
+ )
24
+ from ..types import UNSET, Unset
25
+
26
+ T = TypeVar("T", bound="SetupDucklakeCatalogDbResponse200Logs")
27
+
28
+
29
+ @_attrs_define
30
+ class SetupDucklakeCatalogDbResponse200Logs:
31
+ """
32
+ Attributes:
33
+ super_admin (Union[Unset, SetupDucklakeCatalogDbResponse200LogsSuperAdmin]):
34
+ database_credentials (Union[Unset, SetupDucklakeCatalogDbResponse200LogsDatabaseCredentials]):
35
+ valid_dbname (Union[Unset, SetupDucklakeCatalogDbResponse200LogsValidDbname]):
36
+ created_database (Union[Unset, SetupDucklakeCatalogDbResponse200LogsCreatedDatabase]): Created database status
37
+ log
38
+ db_connect (Union[Unset, SetupDucklakeCatalogDbResponse200LogsDbConnect]):
39
+ grant_permissions (Union[Unset, SetupDucklakeCatalogDbResponse200LogsGrantPermissions]):
40
+ """
41
+
42
+ super_admin: Union[Unset, SetupDucklakeCatalogDbResponse200LogsSuperAdmin] = UNSET
43
+ database_credentials: Union[Unset, SetupDucklakeCatalogDbResponse200LogsDatabaseCredentials] = UNSET
44
+ valid_dbname: Union[Unset, SetupDucklakeCatalogDbResponse200LogsValidDbname] = UNSET
45
+ created_database: Union[Unset, SetupDucklakeCatalogDbResponse200LogsCreatedDatabase] = UNSET
46
+ db_connect: Union[Unset, SetupDucklakeCatalogDbResponse200LogsDbConnect] = UNSET
47
+ grant_permissions: Union[Unset, SetupDucklakeCatalogDbResponse200LogsGrantPermissions] = UNSET
48
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
49
+
50
+ def to_dict(self) -> Dict[str, Any]:
51
+ super_admin: Union[Unset, str] = UNSET
52
+ if not isinstance(self.super_admin, Unset):
53
+ super_admin = self.super_admin.value
54
+
55
+ database_credentials: Union[Unset, str] = UNSET
56
+ if not isinstance(self.database_credentials, Unset):
57
+ database_credentials = self.database_credentials.value
58
+
59
+ valid_dbname: Union[Unset, str] = UNSET
60
+ if not isinstance(self.valid_dbname, Unset):
61
+ valid_dbname = self.valid_dbname.value
62
+
63
+ created_database: Union[Unset, str] = UNSET
64
+ if not isinstance(self.created_database, Unset):
65
+ created_database = self.created_database.value
66
+
67
+ db_connect: Union[Unset, str] = UNSET
68
+ if not isinstance(self.db_connect, Unset):
69
+ db_connect = self.db_connect.value
70
+
71
+ grant_permissions: Union[Unset, str] = UNSET
72
+ if not isinstance(self.grant_permissions, Unset):
73
+ grant_permissions = self.grant_permissions.value
74
+
75
+ field_dict: Dict[str, Any] = {}
76
+ field_dict.update(self.additional_properties)
77
+ field_dict.update({})
78
+ if super_admin is not UNSET:
79
+ field_dict["super_admin"] = super_admin
80
+ if database_credentials is not UNSET:
81
+ field_dict["database_credentials"] = database_credentials
82
+ if valid_dbname is not UNSET:
83
+ field_dict["valid_dbname"] = valid_dbname
84
+ if created_database is not UNSET:
85
+ field_dict["created_database"] = created_database
86
+ if db_connect is not UNSET:
87
+ field_dict["db_connect"] = db_connect
88
+ if grant_permissions is not UNSET:
89
+ field_dict["grant_permissions"] = grant_permissions
90
+
91
+ return field_dict
92
+
93
+ @classmethod
94
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
95
+ d = src_dict.copy()
96
+ _super_admin = d.pop("super_admin", UNSET)
97
+ super_admin: Union[Unset, SetupDucklakeCatalogDbResponse200LogsSuperAdmin]
98
+ if isinstance(_super_admin, Unset):
99
+ super_admin = UNSET
100
+ else:
101
+ super_admin = SetupDucklakeCatalogDbResponse200LogsSuperAdmin(_super_admin)
102
+
103
+ _database_credentials = d.pop("database_credentials", UNSET)
104
+ database_credentials: Union[Unset, SetupDucklakeCatalogDbResponse200LogsDatabaseCredentials]
105
+ if isinstance(_database_credentials, Unset):
106
+ database_credentials = UNSET
107
+ else:
108
+ database_credentials = SetupDucklakeCatalogDbResponse200LogsDatabaseCredentials(_database_credentials)
109
+
110
+ _valid_dbname = d.pop("valid_dbname", UNSET)
111
+ valid_dbname: Union[Unset, SetupDucklakeCatalogDbResponse200LogsValidDbname]
112
+ if isinstance(_valid_dbname, Unset):
113
+ valid_dbname = UNSET
114
+ else:
115
+ valid_dbname = SetupDucklakeCatalogDbResponse200LogsValidDbname(_valid_dbname)
116
+
117
+ _created_database = d.pop("created_database", UNSET)
118
+ created_database: Union[Unset, SetupDucklakeCatalogDbResponse200LogsCreatedDatabase]
119
+ if isinstance(_created_database, Unset):
120
+ created_database = UNSET
121
+ else:
122
+ created_database = SetupDucklakeCatalogDbResponse200LogsCreatedDatabase(_created_database)
123
+
124
+ _db_connect = d.pop("db_connect", UNSET)
125
+ db_connect: Union[Unset, SetupDucklakeCatalogDbResponse200LogsDbConnect]
126
+ if isinstance(_db_connect, Unset):
127
+ db_connect = UNSET
128
+ else:
129
+ db_connect = SetupDucklakeCatalogDbResponse200LogsDbConnect(_db_connect)
130
+
131
+ _grant_permissions = d.pop("grant_permissions", UNSET)
132
+ grant_permissions: Union[Unset, SetupDucklakeCatalogDbResponse200LogsGrantPermissions]
133
+ if isinstance(_grant_permissions, Unset):
134
+ grant_permissions = UNSET
135
+ else:
136
+ grant_permissions = SetupDucklakeCatalogDbResponse200LogsGrantPermissions(_grant_permissions)
137
+
138
+ setup_ducklake_catalog_db_response_200_logs = cls(
139
+ super_admin=super_admin,
140
+ database_credentials=database_credentials,
141
+ valid_dbname=valid_dbname,
142
+ created_database=created_database,
143
+ db_connect=db_connect,
144
+ grant_permissions=grant_permissions,
145
+ )
146
+
147
+ setup_ducklake_catalog_db_response_200_logs.additional_properties = d
148
+ return setup_ducklake_catalog_db_response_200_logs
149
+
150
+ @property
151
+ def additional_keys(self) -> List[str]:
152
+ return list(self.additional_properties.keys())
153
+
154
+ def __getitem__(self, key: str) -> Any:
155
+ return self.additional_properties[key]
156
+
157
+ def __setitem__(self, key: str, value: Any) -> None:
158
+ self.additional_properties[key] = value
159
+
160
+ def __delitem__(self, key: str) -> None:
161
+ del self.additional_properties[key]
162
+
163
+ def __contains__(self, key: str) -> bool:
164
+ return key in self.additional_properties
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class SetupDucklakeCatalogDbResponse200LogsCreatedDatabase(str, Enum):
5
+ FAIL = "FAIL"
6
+ OK = "OK"
7
+ SKIP = "SKIP"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class SetupDucklakeCatalogDbResponse200LogsDatabaseCredentials(str, Enum):
5
+ FAIL = "FAIL"
6
+ OK = "OK"
7
+ SKIP = "SKIP"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class SetupDucklakeCatalogDbResponse200LogsDbConnect(str, Enum):
5
+ FAIL = "FAIL"
6
+ OK = "OK"
7
+ SKIP = "SKIP"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class SetupDucklakeCatalogDbResponse200LogsGrantPermissions(str, Enum):
5
+ FAIL = "FAIL"
6
+ OK = "OK"
7
+ SKIP = "SKIP"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class SetupDucklakeCatalogDbResponse200LogsSuperAdmin(str, Enum):
5
+ FAIL = "FAIL"
6
+ OK = "OK"
7
+ SKIP = "SKIP"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class SetupDucklakeCatalogDbResponse200LogsValidDbname(str, Enum):
5
+ FAIL = "FAIL"
6
+ OK = "OK"
7
+ SKIP = "SKIP"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -45,6 +45,8 @@ class UpdateScheduleJsonBody:
45
45
  tag (Union[Unset, str]): The tag of the schedule
46
46
  paused_until (Union[Unset, datetime.datetime]): The date and time the schedule will be paused until
47
47
  cron_version (Union[Unset, str]): The version of the cron schedule to use (last is v2)
48
+ dynamic_skip (Union[Unset, str]): Path to a script that validates scheduled datetimes. Receives scheduled_for
49
+ datetime and returns boolean.
48
50
  """
49
51
 
50
52
  schedule: str
@@ -67,6 +69,7 @@ class UpdateScheduleJsonBody:
67
69
  tag: Union[Unset, str] = UNSET
68
70
  paused_until: Union[Unset, datetime.datetime] = UNSET
69
71
  cron_version: Union[Unset, str] = UNSET
72
+ dynamic_skip: Union[Unset, str] = UNSET
70
73
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
71
74
 
72
75
  def to_dict(self) -> Dict[str, Any]:
@@ -106,6 +109,7 @@ class UpdateScheduleJsonBody:
106
109
  paused_until = self.paused_until.isoformat()
107
110
 
108
111
  cron_version = self.cron_version
112
+ dynamic_skip = self.dynamic_skip
109
113
 
110
114
  field_dict: Dict[str, Any] = {}
111
115
  field_dict.update(self.additional_properties)
@@ -150,6 +154,8 @@ class UpdateScheduleJsonBody:
150
154
  field_dict["paused_until"] = paused_until
151
155
  if cron_version is not UNSET:
152
156
  field_dict["cron_version"] = cron_version
157
+ if dynamic_skip is not UNSET:
158
+ field_dict["dynamic_skip"] = dynamic_skip
153
159
 
154
160
  return field_dict
155
161
 
@@ -227,6 +233,8 @@ class UpdateScheduleJsonBody:
227
233
 
228
234
  cron_version = d.pop("cron_version", UNSET)
229
235
 
236
+ dynamic_skip = d.pop("dynamic_skip", UNSET)
237
+
230
238
  update_schedule_json_body = cls(
231
239
  schedule=schedule,
232
240
  timezone=timezone,
@@ -248,6 +256,7 @@ class UpdateScheduleJsonBody:
248
256
  tag=tag,
249
257
  paused_until=paused_until,
250
258
  cron_version=cron_version,
259
+ dynamic_skip=dynamic_skip,
251
260
  )
252
261
 
253
262
  update_schedule_json_body.additional_properties = d
@@ -8,6 +8,8 @@ from ..types import UNSET, Unset
8
8
 
9
9
  if TYPE_CHECKING:
10
10
  from ..models.whileloop_flow_modules_item import WhileloopFlowModulesItem
11
+ from ..models.whileloop_flow_parallelism_type_0 import WhileloopFlowParallelismType0
12
+ from ..models.whileloop_flow_parallelism_type_1 import WhileloopFlowParallelismType1
11
13
 
12
14
 
13
15
  T = TypeVar("T", bound="WhileloopFlow")
@@ -21,17 +23,19 @@ class WhileloopFlow:
21
23
  skip_failures (bool):
22
24
  type (WhileloopFlowType):
23
25
  parallel (Union[Unset, bool]):
24
- parallelism (Union[Unset, int]):
26
+ parallelism (Union['WhileloopFlowParallelismType0', 'WhileloopFlowParallelismType1', Unset]):
25
27
  """
26
28
 
27
29
  modules: List["WhileloopFlowModulesItem"]
28
30
  skip_failures: bool
29
31
  type: WhileloopFlowType
30
32
  parallel: Union[Unset, bool] = UNSET
31
- parallelism: Union[Unset, int] = UNSET
33
+ parallelism: Union["WhileloopFlowParallelismType0", "WhileloopFlowParallelismType1", Unset] = UNSET
32
34
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
33
35
 
34
36
  def to_dict(self) -> Dict[str, Any]:
37
+ from ..models.whileloop_flow_parallelism_type_0 import WhileloopFlowParallelismType0
38
+
35
39
  modules = []
36
40
  for modules_item_data in self.modules:
37
41
  modules_item = modules_item_data.to_dict()
@@ -42,7 +46,19 @@ class WhileloopFlow:
42
46
  type = self.type.value
43
47
 
44
48
  parallel = self.parallel
45
- parallelism = self.parallelism
49
+ parallelism: Union[Dict[str, Any], Unset]
50
+ if isinstance(self.parallelism, Unset):
51
+ parallelism = UNSET
52
+
53
+ elif isinstance(self.parallelism, WhileloopFlowParallelismType0):
54
+ parallelism = UNSET
55
+ if not isinstance(self.parallelism, Unset):
56
+ parallelism = self.parallelism.to_dict()
57
+
58
+ else:
59
+ parallelism = UNSET
60
+ if not isinstance(self.parallelism, Unset):
61
+ parallelism = self.parallelism.to_dict()
46
62
 
47
63
  field_dict: Dict[str, Any] = {}
48
64
  field_dict.update(self.additional_properties)
@@ -63,6 +79,8 @@ class WhileloopFlow:
63
79
  @classmethod
64
80
  def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
65
81
  from ..models.whileloop_flow_modules_item import WhileloopFlowModulesItem
82
+ from ..models.whileloop_flow_parallelism_type_0 import WhileloopFlowParallelismType0
83
+ from ..models.whileloop_flow_parallelism_type_1 import WhileloopFlowParallelismType1
66
84
 
67
85
  d = src_dict.copy()
68
86
  modules = []
@@ -78,7 +96,36 @@ class WhileloopFlow:
78
96
 
79
97
  parallel = d.pop("parallel", UNSET)
80
98
 
81
- parallelism = d.pop("parallelism", UNSET)
99
+ def _parse_parallelism(
100
+ data: object,
101
+ ) -> Union["WhileloopFlowParallelismType0", "WhileloopFlowParallelismType1", Unset]:
102
+ if isinstance(data, Unset):
103
+ return data
104
+ try:
105
+ if not isinstance(data, dict):
106
+ raise TypeError()
107
+ _parallelism_type_0 = data
108
+ parallelism_type_0: Union[Unset, WhileloopFlowParallelismType0]
109
+ if isinstance(_parallelism_type_0, Unset):
110
+ parallelism_type_0 = UNSET
111
+ else:
112
+ parallelism_type_0 = WhileloopFlowParallelismType0.from_dict(_parallelism_type_0)
113
+
114
+ return parallelism_type_0
115
+ except: # noqa: E722
116
+ pass
117
+ if not isinstance(data, dict):
118
+ raise TypeError()
119
+ _parallelism_type_1 = data
120
+ parallelism_type_1: Union[Unset, WhileloopFlowParallelismType1]
121
+ if isinstance(_parallelism_type_1, Unset):
122
+ parallelism_type_1 = UNSET
123
+ else:
124
+ parallelism_type_1 = WhileloopFlowParallelismType1.from_dict(_parallelism_type_1)
125
+
126
+ return parallelism_type_1
127
+
128
+ parallelism = _parse_parallelism(d.pop("parallelism", UNSET))
82
129
 
83
130
  whileloop_flow = cls(
84
131
  modules=modules,
@@ -0,0 +1,67 @@
1
+ from typing import Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..models.whileloop_flow_parallelism_type_0_type import WhileloopFlowParallelismType0Type
7
+
8
+ T = TypeVar("T", bound="WhileloopFlowParallelismType0")
9
+
10
+
11
+ @_attrs_define
12
+ class WhileloopFlowParallelismType0:
13
+ """
14
+ Attributes:
15
+ value (Any):
16
+ type (WhileloopFlowParallelismType0Type):
17
+ """
18
+
19
+ value: Any
20
+ type: WhileloopFlowParallelismType0Type
21
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> Dict[str, Any]:
24
+ value = self.value
25
+ type = self.type.value
26
+
27
+ field_dict: Dict[str, Any] = {}
28
+ field_dict.update(self.additional_properties)
29
+ field_dict.update(
30
+ {
31
+ "value": value,
32
+ "type": type,
33
+ }
34
+ )
35
+
36
+ return field_dict
37
+
38
+ @classmethod
39
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40
+ d = src_dict.copy()
41
+ value = d.pop("value")
42
+
43
+ type = WhileloopFlowParallelismType0Type(d.pop("type"))
44
+
45
+ whileloop_flow_parallelism_type_0 = cls(
46
+ value=value,
47
+ type=type,
48
+ )
49
+
50
+ whileloop_flow_parallelism_type_0.additional_properties = d
51
+ return whileloop_flow_parallelism_type_0
52
+
53
+ @property
54
+ def additional_keys(self) -> List[str]:
55
+ return list(self.additional_properties.keys())
56
+
57
+ def __getitem__(self, key: str) -> Any:
58
+ return self.additional_properties[key]
59
+
60
+ def __setitem__(self, key: str, value: Any) -> None:
61
+ self.additional_properties[key] = value
62
+
63
+ def __delitem__(self, key: str) -> None:
64
+ del self.additional_properties[key]
65
+
66
+ def __contains__(self, key: str) -> bool:
67
+ return key in self.additional_properties
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class WhileloopFlowParallelismType0Type(str, Enum):
5
+ STATIC = "static"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,67 @@
1
+ from typing import Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..models.whileloop_flow_parallelism_type_1_type import WhileloopFlowParallelismType1Type
7
+
8
+ T = TypeVar("T", bound="WhileloopFlowParallelismType1")
9
+
10
+
11
+ @_attrs_define
12
+ class WhileloopFlowParallelismType1:
13
+ """
14
+ Attributes:
15
+ expr (str):
16
+ type (WhileloopFlowParallelismType1Type):
17
+ """
18
+
19
+ expr: str
20
+ type: WhileloopFlowParallelismType1Type
21
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> Dict[str, Any]:
24
+ expr = self.expr
25
+ type = self.type.value
26
+
27
+ field_dict: Dict[str, Any] = {}
28
+ field_dict.update(self.additional_properties)
29
+ field_dict.update(
30
+ {
31
+ "expr": expr,
32
+ "type": type,
33
+ }
34
+ )
35
+
36
+ return field_dict
37
+
38
+ @classmethod
39
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40
+ d = src_dict.copy()
41
+ expr = d.pop("expr")
42
+
43
+ type = WhileloopFlowParallelismType1Type(d.pop("type"))
44
+
45
+ whileloop_flow_parallelism_type_1 = cls(
46
+ expr=expr,
47
+ type=type,
48
+ )
49
+
50
+ whileloop_flow_parallelism_type_1.additional_properties = d
51
+ return whileloop_flow_parallelism_type_1
52
+
53
+ @property
54
+ def additional_keys(self) -> List[str]:
55
+ return list(self.additional_properties.keys())
56
+
57
+ def __getitem__(self, key: str) -> Any:
58
+ return self.additional_properties[key]
59
+
60
+ def __setitem__(self, key: str, value: Any) -> None:
61
+ self.additional_properties[key] = value
62
+
63
+ def __delitem__(self, key: str) -> None:
64
+ del self.additional_properties[key]
65
+
66
+ def __contains__(self, key: str) -> bool:
67
+ return key in self.additional_properties
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class WhileloopFlowParallelismType1Type(str, Enum):
5
+ JAVASCRIPT = "javascript"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: windmill-api
3
- Version: 1.555.1
3
+ Version: 1.556.0
4
4
  Summary: A client library for accessing Windmill API
5
5
  License: Apache-2.0
6
6
  Author: Ruben Fiszel