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
@@ -1,31 +1,28 @@
1
1
  from http import HTTPStatus
2
- from typing import Any, Dict, List, Optional, Union, cast
2
+ from typing import Any, Dict, Optional, Union
3
3
 
4
4
  import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
+ from ...models.get_ducklake_instance_catalog_db_status_response_200 import GetDucklakeInstanceCatalogDbStatusResponse200
8
9
  from ...types import Response
9
10
 
10
11
 
11
- def _get_kwargs(
12
- *,
13
- json_body: List[str],
14
- ) -> Dict[str, Any]:
12
+ def _get_kwargs() -> Dict[str, Any]:
15
13
  pass
16
14
 
17
- json_json_body = json_body
18
-
19
15
  return {
20
16
  "method": "post",
21
- "url": "/settings/databases_exist",
22
- "json": json_json_body,
17
+ "url": "/settings/get_ducklake_instance_catalog_db_status",
23
18
  }
24
19
 
25
20
 
26
- def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[List[str]]:
21
+ def _parse_response(
22
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
23
+ ) -> Optional[GetDucklakeInstanceCatalogDbStatusResponse200]:
27
24
  if response.status_code == HTTPStatus.OK:
28
- response_200 = cast(List[str], response.json())
25
+ response_200 = GetDucklakeInstanceCatalogDbStatusResponse200.from_dict(response.json())
29
26
 
30
27
  return response_200
31
28
  if client.raise_on_unexpected_status:
@@ -34,7 +31,9 @@ def _parse_response(*, client: Union[AuthenticatedClient, Client], response: htt
34
31
  return None
35
32
 
36
33
 
37
- def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[List[str]]:
34
+ def _build_response(
35
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
36
+ ) -> Response[GetDucklakeInstanceCatalogDbStatusResponse200]:
38
37
  return Response(
39
38
  status_code=HTTPStatus(response.status_code),
40
39
  content=response.content,
@@ -46,24 +45,18 @@ def _build_response(*, client: Union[AuthenticatedClient, Client], response: htt
46
45
  def sync_detailed(
47
46
  *,
48
47
  client: Union[AuthenticatedClient, Client],
49
- json_body: List[str],
50
- ) -> Response[List[str]]:
51
- """checks that all given databases exist or else return the ones that don't
52
-
53
- Args:
54
- json_body (List[str]):
48
+ ) -> Response[GetDucklakeInstanceCatalogDbStatusResponse200]:
49
+ """Returns the set-up statuses of ducklake instance catalog dbs
55
50
 
56
51
  Raises:
57
52
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
58
53
  httpx.TimeoutException: If the request takes longer than Client.timeout.
59
54
 
60
55
  Returns:
61
- Response[List[str]]
56
+ Response[GetDucklakeInstanceCatalogDbStatusResponse200]
62
57
  """
63
58
 
64
- kwargs = _get_kwargs(
65
- json_body=json_body,
66
- )
59
+ kwargs = _get_kwargs()
67
60
 
68
61
  response = client.get_httpx_client().request(
69
62
  **kwargs,
@@ -75,48 +68,37 @@ def sync_detailed(
75
68
  def sync(
76
69
  *,
77
70
  client: Union[AuthenticatedClient, Client],
78
- json_body: List[str],
79
- ) -> Optional[List[str]]:
80
- """checks that all given databases exist or else return the ones that don't
81
-
82
- Args:
83
- json_body (List[str]):
71
+ ) -> Optional[GetDucklakeInstanceCatalogDbStatusResponse200]:
72
+ """Returns the set-up statuses of ducklake instance catalog dbs
84
73
 
85
74
  Raises:
86
75
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
87
76
  httpx.TimeoutException: If the request takes longer than Client.timeout.
88
77
 
89
78
  Returns:
90
- List[str]
79
+ GetDucklakeInstanceCatalogDbStatusResponse200
91
80
  """
92
81
 
93
82
  return sync_detailed(
94
83
  client=client,
95
- json_body=json_body,
96
84
  ).parsed
97
85
 
98
86
 
99
87
  async def asyncio_detailed(
100
88
  *,
101
89
  client: Union[AuthenticatedClient, Client],
102
- json_body: List[str],
103
- ) -> Response[List[str]]:
104
- """checks that all given databases exist or else return the ones that don't
105
-
106
- Args:
107
- json_body (List[str]):
90
+ ) -> Response[GetDucklakeInstanceCatalogDbStatusResponse200]:
91
+ """Returns the set-up statuses of ducklake instance catalog dbs
108
92
 
109
93
  Raises:
110
94
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
111
95
  httpx.TimeoutException: If the request takes longer than Client.timeout.
112
96
 
113
97
  Returns:
114
- Response[List[str]]
98
+ Response[GetDucklakeInstanceCatalogDbStatusResponse200]
115
99
  """
116
100
 
117
- kwargs = _get_kwargs(
118
- json_body=json_body,
119
- )
101
+ kwargs = _get_kwargs()
120
102
 
121
103
  response = await client.get_async_httpx_client().request(**kwargs)
122
104
 
@@ -126,24 +108,19 @@ async def asyncio_detailed(
126
108
  async def asyncio(
127
109
  *,
128
110
  client: Union[AuthenticatedClient, Client],
129
- json_body: List[str],
130
- ) -> Optional[List[str]]:
131
- """checks that all given databases exist or else return the ones that don't
132
-
133
- Args:
134
- json_body (List[str]):
111
+ ) -> Optional[GetDucklakeInstanceCatalogDbStatusResponse200]:
112
+ """Returns the set-up statuses of ducklake instance catalog dbs
135
113
 
136
114
  Raises:
137
115
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
138
116
  httpx.TimeoutException: If the request takes longer than Client.timeout.
139
117
 
140
118
  Returns:
141
- List[str]
119
+ GetDucklakeInstanceCatalogDbStatusResponse200
142
120
  """
143
121
 
144
122
  return (
145
123
  await asyncio_detailed(
146
124
  client=client,
147
- json_body=json_body,
148
125
  )
149
126
  ).parsed
@@ -0,0 +1,152 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Dict, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.setup_ducklake_catalog_db_response_200 import SetupDucklakeCatalogDbResponse200
9
+ from ...types import Response
10
+
11
+
12
+ def _get_kwargs(
13
+ name: str,
14
+ ) -> Dict[str, Any]:
15
+ pass
16
+
17
+ return {
18
+ "method": "post",
19
+ "url": "/settings/setup_ducklake_catalog_db/{name}".format(
20
+ name=name,
21
+ ),
22
+ }
23
+
24
+
25
+ def _parse_response(
26
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
27
+ ) -> Optional[SetupDucklakeCatalogDbResponse200]:
28
+ if response.status_code == HTTPStatus.OK:
29
+ response_200 = SetupDucklakeCatalogDbResponse200.from_dict(response.json())
30
+
31
+ return response_200
32
+ if client.raise_on_unexpected_status:
33
+ raise errors.UnexpectedStatus(response.status_code, response.content)
34
+ else:
35
+ return None
36
+
37
+
38
+ def _build_response(
39
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
40
+ ) -> Response[SetupDucklakeCatalogDbResponse200]:
41
+ return Response(
42
+ status_code=HTTPStatus(response.status_code),
43
+ content=response.content,
44
+ headers=response.headers,
45
+ parsed=_parse_response(client=client, response=response),
46
+ )
47
+
48
+
49
+ def sync_detailed(
50
+ name: str,
51
+ *,
52
+ client: Union[AuthenticatedClient, Client],
53
+ ) -> Response[SetupDucklakeCatalogDbResponse200]:
54
+ """Runs CREATE DATABASE on the Windmill Postgres and grants access to the ducklake_user
55
+
56
+ Args:
57
+ name (str):
58
+
59
+ Raises:
60
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
61
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
62
+
63
+ Returns:
64
+ Response[SetupDucklakeCatalogDbResponse200]
65
+ """
66
+
67
+ kwargs = _get_kwargs(
68
+ name=name,
69
+ )
70
+
71
+ response = client.get_httpx_client().request(
72
+ **kwargs,
73
+ )
74
+
75
+ return _build_response(client=client, response=response)
76
+
77
+
78
+ def sync(
79
+ name: str,
80
+ *,
81
+ client: Union[AuthenticatedClient, Client],
82
+ ) -> Optional[SetupDucklakeCatalogDbResponse200]:
83
+ """Runs CREATE DATABASE on the Windmill Postgres and grants access to the ducklake_user
84
+
85
+ Args:
86
+ name (str):
87
+
88
+ Raises:
89
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
90
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
91
+
92
+ Returns:
93
+ SetupDucklakeCatalogDbResponse200
94
+ """
95
+
96
+ return sync_detailed(
97
+ name=name,
98
+ client=client,
99
+ ).parsed
100
+
101
+
102
+ async def asyncio_detailed(
103
+ name: str,
104
+ *,
105
+ client: Union[AuthenticatedClient, Client],
106
+ ) -> Response[SetupDucklakeCatalogDbResponse200]:
107
+ """Runs CREATE DATABASE on the Windmill Postgres and grants access to the ducklake_user
108
+
109
+ Args:
110
+ name (str):
111
+
112
+ Raises:
113
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
114
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
115
+
116
+ Returns:
117
+ Response[SetupDucklakeCatalogDbResponse200]
118
+ """
119
+
120
+ kwargs = _get_kwargs(
121
+ name=name,
122
+ )
123
+
124
+ response = await client.get_async_httpx_client().request(**kwargs)
125
+
126
+ return _build_response(client=client, response=response)
127
+
128
+
129
+ async def asyncio(
130
+ name: str,
131
+ *,
132
+ client: Union[AuthenticatedClient, Client],
133
+ ) -> Optional[SetupDucklakeCatalogDbResponse200]:
134
+ """Runs CREATE DATABASE on the Windmill Postgres and grants access to the ducklake_user
135
+
136
+ Args:
137
+ name (str):
138
+
139
+ Raises:
140
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
141
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
142
+
143
+ Returns:
144
+ SetupDucklakeCatalogDbResponse200
145
+ """
146
+
147
+ return (
148
+ await asyncio_detailed(
149
+ name=name,
150
+ client=client,
151
+ )
152
+ ).parsed
@@ -16,7 +16,7 @@ class CompletedJobJobKind(str, Enum):
16
16
  PREVIEW = "preview"
17
17
  SCRIPT = "script"
18
18
  SCRIPT_HUB = "script_hub"
19
- SINGLESCRIPTFLOW = "singlescriptflow"
19
+ SINGLESTEPFLOW = "singlestepflow"
20
20
 
21
21
  def __str__(self) -> str:
22
22
  return str(self.value)
@@ -49,6 +49,8 @@ class CreateScheduleJsonBody:
49
49
  tag (Union[Unset, str]): The tag of the schedule
50
50
  paused_until (Union[Unset, datetime.datetime]): The date and time the schedule will be paused until
51
51
  cron_version (Union[Unset, str]): The version of the cron schedule to use (last is v2)
52
+ dynamic_skip (Union[Unset, str]): Path to a script that validates scheduled datetimes. Receives scheduled_for
53
+ datetime and returns boolean.
52
54
  """
53
55
 
54
56
  path: str
@@ -75,6 +77,7 @@ class CreateScheduleJsonBody:
75
77
  tag: Union[Unset, str] = UNSET
76
78
  paused_until: Union[Unset, datetime.datetime] = UNSET
77
79
  cron_version: Union[Unset, str] = UNSET
80
+ dynamic_skip: Union[Unset, str] = UNSET
78
81
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
79
82
 
80
83
  def to_dict(self) -> Dict[str, Any]:
@@ -118,6 +121,7 @@ class CreateScheduleJsonBody:
118
121
  paused_until = self.paused_until.isoformat()
119
122
 
120
123
  cron_version = self.cron_version
124
+ dynamic_skip = self.dynamic_skip
121
125
 
122
126
  field_dict: Dict[str, Any] = {}
123
127
  field_dict.update(self.additional_properties)
@@ -167,6 +171,8 @@ class CreateScheduleJsonBody:
167
171
  field_dict["paused_until"] = paused_until
168
172
  if cron_version is not UNSET:
169
173
  field_dict["cron_version"] = cron_version
174
+ if dynamic_skip is not UNSET:
175
+ field_dict["dynamic_skip"] = dynamic_skip
170
176
 
171
177
  return field_dict
172
178
 
@@ -252,6 +258,8 @@ class CreateScheduleJsonBody:
252
258
 
253
259
  cron_version = d.pop("cron_version", UNSET)
254
260
 
261
+ dynamic_skip = d.pop("dynamic_skip", UNSET)
262
+
255
263
  create_schedule_json_body = cls(
256
264
  path=path,
257
265
  schedule=schedule,
@@ -277,6 +285,7 @@ class CreateScheduleJsonBody:
277
285
  tag=tag,
278
286
  paused_until=paused_until,
279
287
  cron_version=cron_version,
288
+ dynamic_skip=dynamic_skip,
280
289
  )
281
290
 
282
291
  create_schedule_json_body.additional_properties = d
@@ -16,7 +16,7 @@ class DeleteCompletedJobResponse200JobKind(str, Enum):
16
16
  PREVIEW = "preview"
17
17
  SCRIPT = "script"
18
18
  SCRIPT_HUB = "script_hub"
19
- SINGLESCRIPTFLOW = "singlescriptflow"
19
+ SINGLESTEPFLOW = "singlestepflow"
20
20
 
21
21
  def __str__(self) -> str:
22
22
  return str(self.value)
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class DucklakeInstanceCatalogDbStatusLogsCreatedDatabase(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 DucklakeInstanceCatalogDbStatusLogsDatabaseCredentials(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 DucklakeInstanceCatalogDbStatusLogsDbConnect(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 DucklakeInstanceCatalogDbStatusLogsGrantPermissions(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 DucklakeInstanceCatalogDbStatusLogsSuperAdmin(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 DucklakeInstanceCatalogDbStatusLogsValidDbname(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 EditSchedule:
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 EditSchedule:
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 EditSchedule:
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 EditSchedule:
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 EditSchedule:
227
233
 
228
234
  cron_version = d.pop("cron_version", UNSET)
229
235
 
236
+ dynamic_skip = d.pop("dynamic_skip", UNSET)
237
+
230
238
  edit_schedule = cls(
231
239
  schedule=schedule,
232
240
  timezone=timezone,
@@ -248,6 +256,7 @@ class EditSchedule:
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
  edit_schedule.additional_properties = d
@@ -16,7 +16,7 @@ class ExtendedJobsJobsItemType0JobKind(str, Enum):
16
16
  PREVIEW = "preview"
17
17
  SCRIPT = "script"
18
18
  SCRIPT_HUB = "script_hub"
19
- SINGLESCRIPTFLOW = "singlescriptflow"
19
+ SINGLESTEPFLOW = "singlestepflow"
20
20
 
21
21
  def __str__(self) -> str:
22
22
  return str(self.value)
@@ -16,7 +16,7 @@ class ExtendedJobsJobsItemType1JobKind(str, Enum):
16
16
  PREVIEW = "preview"
17
17
  SCRIPT = "script"
18
18
  SCRIPT_HUB = "script_hub"
19
- SINGLESCRIPTFLOW = "singlescriptflow"
19
+ SINGLESTEPFLOW = "singlestepflow"
20
20
 
21
21
  def __str__(self) -> str:
22
22
  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.flow_module_value_2_type_3_parallelism_type_0_type import FlowModuleValue2Type3ParallelismType0Type
7
+
8
+ T = TypeVar("T", bound="FlowModuleValue2Type3ParallelismType0")
9
+
10
+
11
+ @_attrs_define
12
+ class FlowModuleValue2Type3ParallelismType0:
13
+ """
14
+ Attributes:
15
+ value (Any):
16
+ type (FlowModuleValue2Type3ParallelismType0Type):
17
+ """
18
+
19
+ value: Any
20
+ type: FlowModuleValue2Type3ParallelismType0Type
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 = FlowModuleValue2Type3ParallelismType0Type(d.pop("type"))
44
+
45
+ flow_module_value_2_type_3_parallelism_type_0 = cls(
46
+ value=value,
47
+ type=type,
48
+ )
49
+
50
+ flow_module_value_2_type_3_parallelism_type_0.additional_properties = d
51
+ return flow_module_value_2_type_3_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 FlowModuleValue2Type3ParallelismType0Type(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.flow_module_value_2_type_3_parallelism_type_1_type import FlowModuleValue2Type3ParallelismType1Type
7
+
8
+ T = TypeVar("T", bound="FlowModuleValue2Type3ParallelismType1")
9
+
10
+
11
+ @_attrs_define
12
+ class FlowModuleValue2Type3ParallelismType1:
13
+ """
14
+ Attributes:
15
+ expr (str):
16
+ type (FlowModuleValue2Type3ParallelismType1Type):
17
+ """
18
+
19
+ expr: str
20
+ type: FlowModuleValue2Type3ParallelismType1Type
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 = FlowModuleValue2Type3ParallelismType1Type(d.pop("type"))
44
+
45
+ flow_module_value_2_type_3_parallelism_type_1 = cls(
46
+ expr=expr,
47
+ type=type,
48
+ )
49
+
50
+ flow_module_value_2_type_3_parallelism_type_1.additional_properties = d
51
+ return flow_module_value_2_type_3_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 FlowModuleValue2Type3ParallelismType1Type(str, Enum):
5
+ JAVASCRIPT = "javascript"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)