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.
- windmill_api/api/setting/{databases_exist.py → get_ducklake_instance_catalog_db_status.py} +25 -48
- windmill_api/api/setting/setup_ducklake_catalog_db.py +152 -0
- windmill_api/models/completed_job_job_kind.py +1 -1
- windmill_api/models/create_schedule_json_body.py +9 -0
- windmill_api/models/delete_completed_job_response_200_job_kind.py +1 -1
- windmill_api/models/ducklake_instance_catalog_db_status_logs_created_database.py +10 -0
- windmill_api/models/ducklake_instance_catalog_db_status_logs_database_credentials.py +10 -0
- windmill_api/models/ducklake_instance_catalog_db_status_logs_db_connect.py +10 -0
- windmill_api/models/ducklake_instance_catalog_db_status_logs_grant_permissions.py +10 -0
- windmill_api/models/ducklake_instance_catalog_db_status_logs_super_admin.py +10 -0
- windmill_api/models/ducklake_instance_catalog_db_status_logs_valid_dbname.py +10 -0
- windmill_api/models/edit_schedule.py +9 -0
- windmill_api/models/extended_jobs_jobs_item_type_0_job_kind.py +1 -1
- windmill_api/models/extended_jobs_jobs_item_type_1_job_kind.py +1 -1
- windmill_api/models/flow_module_value_2_type_3_parallelism_type_0.py +67 -0
- windmill_api/models/flow_module_value_2_type_3_parallelism_type_0_type.py +8 -0
- windmill_api/models/flow_module_value_2_type_3_parallelism_type_1.py +67 -0
- windmill_api/models/flow_module_value_2_type_3_parallelism_type_1_type.py +8 -0
- windmill_api/models/flow_module_value_2_type_4_parallelism_type_0.py +67 -0
- windmill_api/models/flow_module_value_2_type_4_parallelism_type_0_type.py +8 -0
- windmill_api/models/flow_module_value_2_type_4_parallelism_type_1.py +67 -0
- windmill_api/models/flow_module_value_2_type_4_parallelism_type_1_type.py +8 -0
- windmill_api/models/forloop_flow.py +50 -4
- windmill_api/models/forloop_flow_parallelism_type_0.py +67 -0
- windmill_api/models/forloop_flow_parallelism_type_0_type.py +8 -0
- windmill_api/models/forloop_flow_parallelism_type_1.py +67 -0
- windmill_api/models/forloop_flow_parallelism_type_1_type.py +8 -0
- windmill_api/models/get_completed_job_response_200_job_kind.py +1 -1
- windmill_api/models/get_ducklake_instance_catalog_db_status_response_200.py +66 -0
- windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property.py +86 -0
- windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs.py +187 -0
- windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs_created_database.py +10 -0
- windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs_database_credentials.py +10 -0
- windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs_db_connect.py +10 -0
- windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs_grant_permissions.py +10 -0
- windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs_super_admin.py +10 -0
- windmill_api/models/get_ducklake_instance_catalog_db_status_response_200_additional_property_logs_valid_dbname.py +10 -0
- windmill_api/models/get_job_response_200_type_0_job_kind.py +1 -1
- windmill_api/models/get_job_response_200_type_1_job_kind.py +1 -1
- windmill_api/models/get_schedule_response_200.py +9 -0
- windmill_api/models/get_suspended_job_flow_response_200_job_type_0_job_kind.py +1 -1
- windmill_api/models/get_suspended_job_flow_response_200_job_type_1_job_kind.py +1 -1
- windmill_api/models/job_type_0_job_kind.py +1 -1
- windmill_api/models/job_type_1_job_kind.py +1 -1
- windmill_api/models/list_completed_jobs_response_200_item_job_kind.py +1 -1
- windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_job_kind.py +1 -1
- windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_job_kind.py +1 -1
- windmill_api/models/list_jobs_response_200_item_type_0_job_kind.py +1 -1
- windmill_api/models/list_jobs_response_200_item_type_1_job_kind.py +1 -1
- windmill_api/models/list_queue_response_200_item_job_kind.py +1 -1
- windmill_api/models/list_schedules_response_200_item.py +9 -0
- windmill_api/models/list_schedules_with_jobs_response_200_item.py +9 -0
- windmill_api/models/logged_wizard_status.py +10 -0
- windmill_api/models/new_schedule.py +9 -0
- windmill_api/models/queued_job_job_kind.py +1 -1
- windmill_api/models/schedule.py +9 -0
- windmill_api/models/schedule_w_jobs.py +9 -0
- windmill_api/models/setup_ducklake_catalog_db_response_200.py +82 -0
- windmill_api/models/setup_ducklake_catalog_db_response_200_logs.py +164 -0
- windmill_api/models/setup_ducklake_catalog_db_response_200_logs_created_database.py +10 -0
- windmill_api/models/setup_ducklake_catalog_db_response_200_logs_database_credentials.py +10 -0
- windmill_api/models/setup_ducklake_catalog_db_response_200_logs_db_connect.py +10 -0
- windmill_api/models/setup_ducklake_catalog_db_response_200_logs_grant_permissions.py +10 -0
- windmill_api/models/setup_ducklake_catalog_db_response_200_logs_super_admin.py +10 -0
- windmill_api/models/setup_ducklake_catalog_db_response_200_logs_valid_dbname.py +10 -0
- windmill_api/models/update_schedule_json_body.py +9 -0
- windmill_api/models/whileloop_flow.py +51 -4
- windmill_api/models/whileloop_flow_parallelism_type_0.py +67 -0
- windmill_api/models/whileloop_flow_parallelism_type_0_type.py +8 -0
- windmill_api/models/whileloop_flow_parallelism_type_1.py +67 -0
- windmill_api/models/whileloop_flow_parallelism_type_1_type.py +8 -0
- {windmill_api-1.555.1.dist-info → windmill_api-1.556.0.dist-info}/METADATA +1 -1
- {windmill_api-1.555.1.dist-info → windmill_api-1.556.0.dist-info}/RECORD +75 -35
- windmill_api/api/setting/create_ducklake_database.py +0 -95
- {windmill_api-1.555.1.dist-info → windmill_api-1.556.0.dist-info}/LICENSE +0 -0
- {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
|
|
@@ -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[
|
|
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[
|
|
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
|
|
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
|
-
|
|
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,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
|