dnastack-client-library 3.1.179__py3-none-any.whl → 3.1.205__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.
Files changed (73) hide show
  1. dnastack/alpha/app/explorer.py +1 -1
  2. dnastack/alpha/app/workbench.py +4 -4
  3. dnastack/alpha/cli/wes.py +3 -3
  4. dnastack/alpha/client/collections/client.py +2 -3
  5. dnastack/alpha/client/wes/client.py +5 -8
  6. dnastack/cli/commands/collections/commands.py +3 -4
  7. dnastack/cli/commands/collections/tables.py +1 -1
  8. dnastack/cli/commands/collections/utils.py +1 -1
  9. dnastack/cli/commands/config/commands.py +1 -1
  10. dnastack/cli/commands/config/endpoints.py +39 -20
  11. dnastack/cli/commands/config/registries.py +2 -2
  12. dnastack/cli/commands/dataconnect/tables.py +1 -1
  13. dnastack/cli/commands/drs/commands.py +1 -1
  14. dnastack/cli/commands/explorer/questions/commands.py +12 -6
  15. dnastack/cli/commands/explorer/questions/utils.py +16 -7
  16. dnastack/cli/commands/publisher/collections/commands.py +20 -20
  17. dnastack/cli/commands/publisher/collections/items.py +9 -0
  18. dnastack/cli/commands/publisher/collections/tables.py +1 -1
  19. dnastack/cli/commands/publisher/collections/utils.py +1 -1
  20. dnastack/cli/commands/publisher/datasources/commands.py +1 -1
  21. dnastack/cli/commands/workbench/runs/commands.py +11 -3
  22. dnastack/cli/commands/workbench/workflows/versions/dependencies/commands.py +3 -3
  23. dnastack/cli/commands/workbench/workflows/versions/transformations.py +5 -9
  24. dnastack/cli/helpers/exporter.py +1 -1
  25. dnastack/client/base_exceptions.py +2 -2
  26. dnastack/client/collections/client.py +4 -4
  27. dnastack/client/collections/model.py +30 -29
  28. dnastack/client/data_connect.py +5 -9
  29. dnastack/client/datasources/model.py +3 -3
  30. dnastack/client/drs.py +4 -4
  31. dnastack/client/explorer/client.py +1 -1
  32. dnastack/client/explorer/models.py +3 -7
  33. dnastack/client/factory.py +1 -1
  34. dnastack/client/models.py +6 -6
  35. dnastack/client/service_registry/factory.py +3 -3
  36. dnastack/client/service_registry/helper.py +7 -14
  37. dnastack/client/service_registry/manager.py +4 -4
  38. dnastack/client/workbench/base_client.py +2 -2
  39. dnastack/client/workbench/ewes/client.py +3 -3
  40. dnastack/client/workbench/ewes/models.py +246 -181
  41. dnastack/client/workbench/models.py +7 -7
  42. dnastack/client/workbench/samples/models.py +40 -40
  43. dnastack/client/workbench/storage/client.py +2 -2
  44. dnastack/client/workbench/storage/models.py +24 -24
  45. dnastack/client/workbench/workflow/client.py +7 -7
  46. dnastack/client/workbench/workflow/models.py +64 -64
  47. dnastack/client/workbench/workflow/utils.py +5 -5
  48. dnastack/common/auth_manager.py +6 -13
  49. dnastack/common/class_decorator.py +3 -3
  50. dnastack/common/events.py +7 -7
  51. dnastack/common/json_argument_parser.py +4 -4
  52. dnastack/common/model_mixin.py +1 -1
  53. dnastack/common/parser.py +3 -3
  54. dnastack/common/simple_stream.py +1 -1
  55. dnastack/configuration/manager.py +8 -4
  56. dnastack/configuration/models.py +2 -2
  57. dnastack/constants.py +1 -1
  58. dnastack/context/manager.py +2 -2
  59. dnastack/context/models.py +2 -2
  60. dnastack/feature_flags.py +2 -2
  61. dnastack/http/authenticators/abstract.py +2 -2
  62. dnastack/http/authenticators/factory.py +2 -2
  63. dnastack/http/authenticators/oauth2.py +8 -8
  64. dnastack/http/authenticators/oauth2_adapter/client_credential.py +5 -14
  65. dnastack/http/authenticators/oauth2_adapter/models.py +15 -15
  66. dnastack/http/session.py +3 -3
  67. dnastack/http/session_info.py +3 -3
  68. {dnastack_client_library-3.1.179.dist-info → dnastack_client_library-3.1.205.dist-info}/METADATA +2 -2
  69. {dnastack_client_library-3.1.179.dist-info → dnastack_client_library-3.1.205.dist-info}/RECORD +73 -73
  70. {dnastack_client_library-3.1.179.dist-info → dnastack_client_library-3.1.205.dist-info}/WHEEL +0 -0
  71. {dnastack_client_library-3.1.179.dist-info → dnastack_client_library-3.1.205.dist-info}/entry_points.txt +0 -0
  72. {dnastack_client_library-3.1.179.dist-info → dnastack_client_library-3.1.205.dist-info}/licenses/LICENSE +0 -0
  73. {dnastack_client_library-3.1.179.dist-info → dnastack_client_library-3.1.205.dist-info}/top_level.txt +0 -0
@@ -21,197 +21,260 @@ class LogType(str, CaseInsensitiveEnum):
21
21
 
22
22
 
23
23
  class WesServiceInfo(Service):
24
- workflow_type_versions: Optional[Dict]
25
- supported_wes_versions: Optional[List[str]]
26
- supported_filesystem_protocols: Optional[List[str]]
27
- workflow_engine_versions: Optional[Dict]
28
- default_workflow_engine_parameters: Optional[List[Dict]]
29
- system_state_counts: Optional[Dict]
30
- auth_instructions_url: Optional[str]
31
- tags: Optional[Dict]
24
+ workflow_type_versions: Optional[Dict] = None
25
+ supported_wes_versions: Optional[List[str]] = None
26
+ supported_filesystem_protocols: Optional[List[str]] = None
27
+ workflow_engine_versions: Optional[Dict] = None
28
+ default_workflow_engine_parameters: Optional[List[Dict]] = None
29
+ system_state_counts: Optional[Dict] = None
30
+ auth_instructions_url: Optional[str] = None
31
+ tags: Optional[Dict] = None
32
32
 
33
33
  class SimpleSample(BaseModel):
34
34
  id: str
35
- storage_account_id: Optional[str]
35
+ storage_account_id: Optional[str] = None
36
36
 
37
37
 
38
+ class Hook(BaseModel):
39
+ id: Optional[str] = None
40
+ type: Optional[str] = None
41
+ result_data: Optional[Dict] = None
42
+ config: Optional[Dict] = None
43
+ state: Optional[str] = None
44
+ created_at: Optional[datetime] = None
45
+ started_at: Optional[datetime] = None
46
+ finished_at: Optional[datetime] = None
47
+ updated_at: Optional[datetime] = None
48
+
38
49
  class ExtendedRunStatus(BaseModel):
39
50
  run_id: str
40
- external_id: Optional[str]
51
+ external_id: Optional[str] = None
41
52
  state: State
42
53
  start_time: datetime
43
- end_time: Optional[datetime]
44
- submitted_by: Optional[str]
45
- workflow_id: Optional[str]
46
- workflow_version_id: Optional[str]
47
- workflow_url: Optional[str]
48
- workflow_name: Optional[str]
49
- workflow_version: Optional[str]
50
- workflow_authors: Optional[List[str]]
51
- workflow_type: Optional[str]
52
- workflow_type_version: Optional[str]
53
- workflow_params: Optional[Dict]
54
- tags: Optional[Dict]
55
- workflow_engine_parameters: Optional[Dict]
56
- samples: Optional[List[SimpleSample]]
54
+ end_time: Optional[datetime] = None
55
+ submitted_by: Optional[str] = None
56
+ workflow_id: Optional[str] = None
57
+ workflow_version_id: Optional[str] = None
58
+ workflow_url: Optional[str] = None
59
+ workflow_name: Optional[str] = None
60
+ workflow_version: Optional[str] = None
61
+ workflow_authors: Optional[List[str]] = None
62
+ workflow_type: Optional[str] = None
63
+ workflow_type_version: Optional[str] = None
64
+ workflow_params: Optional[Dict] = None
65
+ tags: Optional[Dict] = None
66
+ workflow_engine_parameters: Optional[Dict] = None
67
+ samples: Optional[List[SimpleSample]] = None
68
+ hooks: Optional[List[Hook]] = None
57
69
 
58
70
 
59
71
  class Log(BaseModel):
60
- task_id: Optional[str]
72
+ task_id: Optional[str] = None
61
73
  name: str
62
- pretty_name: Optional[str]
63
- cmd: Optional[Any]
64
- start_time: Optional[datetime]
65
- end_time: Optional[datetime]
66
- stdout: Optional[str]
67
- stderr: Optional[str]
68
- exit_code: Optional[int]
69
- state: Optional[State]
74
+ pretty_name: Optional[str] = None
75
+ cmd: Optional[Any] = None
76
+ start_time: Optional[datetime] = None
77
+ end_time: Optional[datetime] = None
78
+ stdout: Optional[str] = None
79
+ stderr: Optional[str] = None
80
+ exit_code: Optional[int] = None
81
+ state: Optional[State] = None
70
82
 
71
83
  class RunDependency(BaseModel):
72
84
  run_id: str
73
85
 
74
86
  class ExtendedRunRequest(BaseModel):
75
- workflow_url: Optional[str]
76
- workflow_name: Optional[str]
77
- workflow_version: Optional[str]
78
- workflow_authors: Optional[List[str]]
79
- workflow_type: Optional[str]
80
- workflow_type_version: Optional[str]
81
- workflow_id: Optional[str]
82
- workflow_version_id: Optional[str]
83
- submitted_by: Optional[str]
84
- workflow_params: Optional[Dict]
85
- workflow_engine_parameters: Optional[Dict]
86
- dependencies: Optional[List[RunDependency]]
87
- tags: Optional[Dict]
88
- samples: Optional[List[SimpleSample]]
89
-
90
-
91
- class EventType(str, Enum):
92
- PREPROCESSING = "PREPROCESSING"
93
- RUN_SUBMITTED = "RUN_SUBMITTED"
94
- RUN_SUBMITTED_TO_ENGINE = "RUN_SUBMITTED_TO_ENGINE"
95
- ERROR_OCCURRED = "ERROR_OCCURRED"
96
- ENGINE_STATUS_UPDATE = "ENGINE_STATUS_UPDATE"
97
- STATE_TRANSITION = "STATE_TRANSITION"
98
- EVENT_METADATA = "EventMetadata"
87
+ workflow_url: Optional[str] = None
88
+ workflow_name: Optional[str] = None
89
+ workflow_version: Optional[str] = None
90
+ workflow_authors: Optional[List[str]] = None
91
+ workflow_type: Optional[str] = None
92
+ workflow_type_version: Optional[str] = None
93
+ workflow_id: Optional[str] = None
94
+ workflow_version_id: Optional[str] = None
95
+ submitted_by: Optional[str] = None
96
+ workflow_params: Optional[Dict] = None
97
+ workflow_engine_parameters: Optional[Dict] = None
98
+ dependencies: Optional[List[RunDependency]] = None
99
+ tags: Optional[Dict] = None
100
+ samples: Optional[List[SimpleSample]] = None
101
+ hooks: Optional[List[Hook]] = None
102
+
99
103
 
100
104
  class SampleId(BaseModel):
101
- id: Optional[str]
102
- storage_account_id: Optional[str]
103
-
104
- class RunEventMetadata(BaseModel):
105
- event_type: Literal[EventType.EVENT_METADATA]
106
- message: Optional[str]
107
-
108
-
109
- class RunSubmittedMetadata(RunEventMetadata):
110
- event_type: Literal[EventType.RUN_SUBMITTED]
111
- start_time: Optional[str]
112
- submitted_by: Optional[str]
113
- state: Optional[State]
114
- workflow_id: Optional[str]
115
- workflow_version_id: Optional[str]
116
- workflow_url: Optional[str]
117
- workflow_name: Optional[str]
118
- workflow_version: Optional[str]
119
- workflow_authors: Optional[List[str]]
120
- workflow_type: Optional[str]
121
- workflow_type_version: Optional[str]
122
- tags: Optional[dict[str, str]]
123
- sample_ids: Optional[List[SampleId]]
124
-
125
- class PreprocessingMetadata(RunEventMetadata):
126
- event_type: Literal[EventType.PREPROCESSING]
127
- outcome: Optional[str]
128
-
129
- class ErrorOccurredMetadata(RunEventMetadata):
130
- event_type: Literal[EventType.ERROR_OCCURRED]
131
- errors: Optional[List[str]]
132
-
133
- class StateTransitionMetadata(RunEventMetadata):
134
- event_type: Literal[EventType.STATE_TRANSITION]
135
- end_time: Optional[str]
136
- old_state: Optional[State]
137
- new_state: Optional[State]
138
- errors: Optional[List[str]]
139
-
140
- class EngineStatusUpdateMetadata(RunEventMetadata):
141
- event_type: Literal[EventType.ENGINE_STATUS_UPDATE]
142
- # Add other fields as you discover them
143
-
144
-
145
- class RunSubmittedToEngineMetadata(RunEventMetadata):
146
- event_type: Literal[EventType.RUN_SUBMITTED_TO_ENGINE]
147
- external_id: Optional[str]
148
-
149
-
150
- RunEventMetadataUnion = Union[
105
+ id: Optional[str] = None
106
+ storage_account_id: Optional[str] = None
107
+
108
+
109
+ # Base metadata class for unknown event types
110
+ class UnknownEventMetadata(BaseModel):
111
+ """Fallback metadata for unknown event types from the server."""
112
+ event_type: str
113
+ message: Optional[str] = None
114
+
115
+ # Allow arbitrary fields for unknown event types (Pydantic v1)
116
+ class Config:
117
+ extra = 'allow'
118
+
119
+
120
+ class RunSubmittedMetadata(BaseModel):
121
+ event_type: Literal["RUN_SUBMITTED"]
122
+ message: Optional[str] = None
123
+ start_time: Optional[str] = None
124
+ submitted_by: Optional[str] = None
125
+ state: Optional[State] = None
126
+ workflow_id: Optional[str] = None
127
+ workflow_version_id: Optional[str] = None
128
+ workflow_url: Optional[str] = None
129
+ workflow_name: Optional[str] = None
130
+ workflow_version: Optional[str] = None
131
+ workflow_authors: Optional[List[str]] = None
132
+ workflow_type: Optional[str] = None
133
+ workflow_type_version: Optional[str] = None
134
+ tags: Optional[dict[str, str]] = None
135
+ sample_ids: Optional[List[SampleId]] = None
136
+
137
+
138
+ class PreprocessingMetadata(BaseModel):
139
+ event_type: Literal["PREPROCESSING"]
140
+ message: Optional[str] = None
141
+ outcome: Optional[str] = None
142
+
143
+
144
+ class ErrorOccurredMetadata(BaseModel):
145
+ event_type: Literal["ERROR_OCCURRED"]
146
+ message: Optional[str] = None
147
+ errors: Optional[List[str]] = None
148
+
149
+
150
+ class StateTransitionMetadata(BaseModel):
151
+ event_type: Literal["STATE_TRANSITION"]
152
+ message: Optional[str] = None
153
+ end_time: Optional[str] = None
154
+ old_state: Optional[State] = None
155
+ new_state: Optional[State] = None
156
+ errors: Optional[List[str]] = None
157
+
158
+
159
+ class EngineStatusUpdateMetadata(BaseModel):
160
+ event_type: Literal["ENGINE_STATUS_UPDATE"]
161
+ message: Optional[str] = None
162
+
163
+
164
+ class RunSubmittedToEngineMetadata(BaseModel):
165
+ event_type: Literal["RUN_SUBMITTED_TO_ENGINE"]
166
+ message: Optional[str] = None
167
+ external_id: Optional[str] = None
168
+
169
+
170
+ # Custom validator to handle unknown event types gracefully
171
+ def parse_event_metadata(data: Dict[str, Any]) -> Union[
151
172
  RunSubmittedMetadata,
152
173
  PreprocessingMetadata,
153
174
  ErrorOccurredMetadata,
154
175
  StateTransitionMetadata,
155
176
  EngineStatusUpdateMetadata,
156
177
  RunSubmittedToEngineMetadata,
157
- RunEventMetadata
158
- ]
178
+ UnknownEventMetadata
179
+ ]:
180
+ """Parse event metadata, falling back to UnknownEventMetadata for unknown types."""
181
+ if not isinstance(data, dict):
182
+ raise ValueError("metadata must be a dict")
183
+
184
+ event_type = data.get('event_type')
185
+ if not event_type:
186
+ raise ValueError("event_type is required in metadata")
187
+
188
+ # Try to parse as known types
189
+ type_mapping = {
190
+ "RUN_SUBMITTED": RunSubmittedMetadata,
191
+ "PREPROCESSING": PreprocessingMetadata,
192
+ "ERROR_OCCURRED": ErrorOccurredMetadata,
193
+ "STATE_TRANSITION": StateTransitionMetadata,
194
+ "ENGINE_STATUS_UPDATE": EngineStatusUpdateMetadata,
195
+ "RUN_SUBMITTED_TO_ENGINE": RunSubmittedToEngineMetadata,
196
+ }
197
+
198
+ metadata_class = type_mapping.get(event_type)
199
+ if metadata_class:
200
+ return metadata_class(**data)
201
+ else:
202
+ # Unknown event type - use fallback
203
+ return UnknownEventMetadata(**data)
204
+
159
205
 
160
206
  class RunEvent(BaseModel):
161
207
  id: str
162
- event_type: EventType
208
+ event_type: str
163
209
  created_at: datetime
164
- metadata: RunEventMetadataUnion = Field(discriminator='event_type')
210
+ metadata: Union[
211
+ RunSubmittedMetadata,
212
+ PreprocessingMetadata,
213
+ ErrorOccurredMetadata,
214
+ StateTransitionMetadata,
215
+ EngineStatusUpdateMetadata,
216
+ RunSubmittedToEngineMetadata,
217
+ UnknownEventMetadata
218
+ ]
219
+
220
+ @classmethod
221
+ def parse_obj(cls, obj: Any) -> 'RunEvent':
222
+ """Custom validation to handle unknown event types (Pydantic v1)."""
223
+ if isinstance(obj, dict):
224
+ # Parse metadata with our custom function
225
+ if 'metadata' in obj:
226
+ obj = {**obj, 'metadata': parse_event_metadata(obj['metadata'])}
227
+ return super().parse_obj(obj)
165
228
 
166
229
 
167
230
  class ExtendedRunEvents(BaseModel):
168
- events: Optional[List[RunEvent]]
231
+ events: Optional[List[RunEvent]] = None
169
232
 
170
233
  class ExtendedRun(BaseModel):
171
234
  run_id: str
172
- external_id: Optional[str]
173
- engine_id: Optional[str]
174
- request: Optional[ExtendedRunRequest]
175
- state: Optional[State]
176
- run_log: Optional[Log]
177
- errors: Optional[List[str]]
178
- task_logs: Optional[List[Log]]
179
- task_logs_url: Optional[str]
180
- outputs: Optional[Dict]
181
- dependencies: Optional[List[RunDependency]]
182
- events: Optional[List[RunEvent]]
235
+ external_id: Optional[str] = None
236
+ engine_id: Optional[str] = None
237
+ request: Optional[ExtendedRunRequest] = None
238
+ state: Optional[State] = None
239
+ run_log: Optional[Log] = None
240
+ errors: Optional[List[str]] = None
241
+ task_logs: Optional[List[Log]] = None
242
+ task_logs_url: Optional[str] = None
243
+ outputs: Optional[Dict] = None
244
+ dependencies: Optional[List[RunDependency]] = None
245
+ events: Optional[List[RunEvent]] = None
183
246
 
184
247
 
185
248
 
186
249
  class MinimalExtendedRun(BaseModel):
187
- run_id: Optional[str]
188
- state: Optional[State]
189
- msg: Optional[str]
190
- error_code: Optional[int]
191
- timestamp: Optional[str]
192
- trace_id: Optional[str]
250
+ run_id: Optional[str] = None
251
+ state: Optional[State] = None
252
+ msg: Optional[str] = None
253
+ error_code: Optional[int] = None
254
+ timestamp: Optional[str] = None
255
+ trace_id: Optional[str] = None
193
256
 
194
257
 
195
258
  class MinimalExtendedRunWithInputs(BaseModel):
196
259
  run_id: str
197
- inputs: Optional[Dict]
260
+ inputs: Optional[Dict] = None
198
261
 
199
262
 
200
263
  class MinimalExtendedRunWithOutputs(BaseModel):
201
264
  run_id: str
202
- outputs: Optional[Dict]
265
+ outputs: Optional[Dict] = None
203
266
 
204
267
 
205
268
  class BatchRunRequest(BaseModel):
206
269
  workflow_url: str
207
- workflow_type: Optional[str]
208
- workflow_type_version: Optional[str]
209
- engine_id: Optional[str]
210
- default_workflow_params: Optional[Dict]
211
- default_workflow_engine_parameters: Optional[Dict]
212
- default_tags: Optional[Dict]
213
- run_requests: Optional[List[ExtendedRunRequest]]
214
- samples: Optional[List[SimpleSample]]
270
+ workflow_type: Optional[str] = None
271
+ workflow_type_version: Optional[str] = None
272
+ engine_id: Optional[str] = None
273
+ default_workflow_params: Optional[Dict] = None
274
+ default_workflow_engine_parameters: Optional[Dict] = None
275
+ default_tags: Optional[Dict] = None
276
+ run_requests: Optional[List[ExtendedRunRequest]] = None
277
+ samples: Optional[List[SimpleSample]] = None
215
278
 
216
279
 
217
280
  class BatchRunResponse(BaseModel):
@@ -220,20 +283,20 @@ class BatchRunResponse(BaseModel):
220
283
 
221
284
  class RunId(BaseModel):
222
285
  run_id: str
223
- state: Optional[State]
286
+ state: Optional[State] = None
224
287
 
225
288
 
226
289
  class WorkbenchApiError(BaseModel):
227
- timestamp: Optional[str]
228
- msg: Optional[str]
229
- error_code: Optional[int]
230
- trace_id: Optional[str]
290
+ timestamp: Optional[str] = None
291
+ msg: Optional[str] = None
292
+ error_code: Optional[int] = None
293
+ trace_id: Optional[str] = None
231
294
 
232
295
 
233
296
  class ActionResult(BaseModel):
234
297
  outcome: Outcome
235
- data: Optional[Any]
236
- exception: Optional[WorkbenchApiError]
298
+ data: Optional[Any] = None
299
+ exception: Optional[WorkbenchApiError] = None
237
300
 
238
301
 
239
302
  class BatchActionResult(BaseModel):
@@ -255,25 +318,27 @@ class ExtendedRunListResponse(PaginatedResource):
255
318
 
256
319
 
257
320
  class ExtendedRunListOptions(BaseListOptions):
258
- expand: Optional[bool]
259
- until: Optional[str]
260
- since: Optional[str]
261
- search: Optional[str]
262
- sort: Optional[str]
263
- order: Optional[str] = Field(type=str, deprecated=True, default=None)
264
- direction: Optional[str]
265
- batch_id: Optional[str]
266
- state: Optional[List[State]]
267
- engine_id: Optional[str]
268
- submitted_by: Optional[str]
269
- workflow_name: Optional[str]
270
- workflow_version: Optional[str]
271
- workflow_url: Optional[str]
272
- workflow_type: Optional[str]
273
- workflow_type_version: Optional[str]
274
- tag: Optional[List[str]]
275
- sample_ids: Optional[List[str]]
276
- storage_account_id: Optional[str]
321
+ expand: Optional[bool] = None
322
+ until: Optional[str] = None
323
+ since: Optional[str] = None
324
+ search: Optional[str] = None
325
+ sort: Optional[str] = None
326
+ order: Optional[str] = Field(deprecated=True, default=None, json_schema_extra={'type': 'string'})
327
+ direction: Optional[str] = None
328
+ batch_id: Optional[str] = None
329
+ state: Optional[List[State]] = None
330
+ engine_id: Optional[str] = None
331
+ submitted_by: Optional[str] = None
332
+ workflow_name: Optional[str] = None
333
+ workflow_version: Optional[str] = None
334
+ workflow_url: Optional[str] = None
335
+ workflow_type: Optional[str] = None
336
+ workflow_type_version: Optional[str] = None
337
+ tag: Optional[List[str]] = None
338
+ sample_ids: Optional[List[str]] = None
339
+ storage_account_id: Optional[str] = None
340
+ show_hidden: Optional[bool] = False
341
+
277
342
 
278
343
 
279
344
  class TaskListOptions(BaseListOptions):
@@ -294,15 +359,15 @@ class ExecutionEngineProviderType(str, Enum):
294
359
  class ExecutionEngine(BaseModel):
295
360
  id: str
296
361
  name: str
297
- description: Optional[str]
362
+ description: Optional[str] = None
298
363
  provider: ExecutionEngineProviderType
299
- region: Optional[str]
300
- default: Optional[bool]
301
- created_at: Optional[datetime]
302
- updated_at: Optional[datetime]
303
- state: Optional[str]
364
+ region: Optional[str] = None
365
+ default: Optional[bool] = None
366
+ created_at: Optional[datetime] = None
367
+ updated_at: Optional[datetime] = None
368
+ state: Optional[str] = None
304
369
  health: Optional[str] = Field(default=None, deprecated=True)
305
- engine_adapter_configuration: Optional[Dict[str, JSONType]]
370
+ engine_adapter_configuration: Optional[Dict[str, JSONType]] = None
306
371
 
307
372
 
308
373
  class ExecutionEngineListResponse(PaginatedResource):
@@ -319,12 +384,12 @@ class ExecutionEngineListOptions(BaseListOptions):
319
384
  class EngineParamPreset(BaseModel):
320
385
  id: str
321
386
  name: str
322
- default: Optional[bool]
387
+ default: Optional[bool] = None
323
388
  preset_values: Dict[str, object]
324
389
  engine_id: str
325
- etag: Optional[str]
326
- created_at: Optional[datetime]
327
- updated_at: Optional[datetime]
390
+ etag: Optional[str] = None
391
+ created_at: Optional[datetime] = None
392
+ updated_at: Optional[datetime] = None
328
393
 
329
394
 
330
395
  class EngineParamPresetListResponse(PaginatedResource):
@@ -349,11 +414,11 @@ class CheckType(str, Enum):
349
414
  class Check(BaseModel):
350
415
  type: CheckType
351
416
  outcome: Outcome
352
- error: Optional[str]
417
+ error: Optional[str] = None
353
418
 
354
419
 
355
420
  class EngineHealthCheck(BaseModel):
356
- created_at: Optional[datetime]
421
+ created_at: Optional[datetime] = None
357
422
  outcome: str
358
423
  checks: List[Check]
359
424
 
@@ -366,6 +431,6 @@ class EngineHealthCheckListResponse(PaginatedResource):
366
431
 
367
432
 
368
433
  class EngineHealthCheckListOptions(BaseListOptions):
369
- outcome: Optional[str]
370
- check_type: Optional[str]
371
- sort: Optional[str]
434
+ outcome: Optional[str] = None
435
+ check_type: Optional[str] = None
436
+ sort: Optional[str] = None
@@ -4,19 +4,19 @@ from pydantic import BaseModel
4
4
 
5
5
 
6
6
  class BaseListOptions(BaseModel):
7
- page_token: Optional[str]
8
- page: Optional[int]
9
- page_size: Optional[int]
7
+ page_token: Optional[str] = None
8
+ page: Optional[int] = None
9
+ page_size: Optional[int] = None
10
10
 
11
11
 
12
12
  class Pagination(BaseModel):
13
- next_page_url: Optional[str]
14
- total_elements: Optional[int]
13
+ next_page_url: Optional[str] = None
14
+ total_elements: Optional[int] = None
15
15
 
16
16
 
17
17
  class PaginatedResource(BaseModel):
18
- pagination: Optional[Pagination]
19
- next_page_token: Optional[str]
18
+ pagination: Optional[Pagination] = None
19
+ next_page_token: Optional[str] = None
20
20
 
21
21
  def items(self) -> List[Any]:
22
22
  pass