databricks-sdk 0.37.0__py3-none-any.whl → 0.39.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 databricks-sdk might be problematic. Click here for more details.
- databricks/sdk/__init__.py +24 -2
- databricks/sdk/_base_client.py +61 -14
- databricks/sdk/config.py +10 -9
- databricks/sdk/credentials_provider.py +6 -5
- databricks/sdk/mixins/jobs.py +49 -0
- databricks/sdk/mixins/open_ai_client.py +2 -2
- databricks/sdk/service/apps.py +185 -4
- databricks/sdk/service/billing.py +248 -1
- databricks/sdk/service/catalog.py +1943 -46
- databricks/sdk/service/cleanrooms.py +1281 -0
- databricks/sdk/service/compute.py +1486 -8
- databricks/sdk/service/dashboards.py +336 -11
- databricks/sdk/service/files.py +162 -2
- databricks/sdk/service/iam.py +353 -2
- databricks/sdk/service/jobs.py +1281 -16
- databricks/sdk/service/marketplace.py +688 -0
- databricks/sdk/service/ml.py +1038 -2
- databricks/sdk/service/oauth2.py +176 -0
- databricks/sdk/service/pipelines.py +602 -15
- databricks/sdk/service/provisioning.py +402 -0
- databricks/sdk/service/serving.py +615 -0
- databricks/sdk/service/settings.py +1190 -3
- databricks/sdk/service/sharing.py +328 -2
- databricks/sdk/service/sql.py +1186 -2
- databricks/sdk/service/vectorsearch.py +290 -0
- databricks/sdk/service/workspace.py +453 -1
- databricks/sdk/version.py +1 -1
- {databricks_sdk-0.37.0.dist-info → databricks_sdk-0.39.0.dist-info}/METADATA +26 -26
- {databricks_sdk-0.37.0.dist-info → databricks_sdk-0.39.0.dist-info}/RECORD +33 -31
- {databricks_sdk-0.37.0.dist-info → databricks_sdk-0.39.0.dist-info}/WHEEL +1 -1
- {databricks_sdk-0.37.0.dist-info → databricks_sdk-0.39.0.dist-info}/LICENSE +0 -0
- {databricks_sdk-0.37.0.dist-info → databricks_sdk-0.39.0.dist-info}/NOTICE +0 -0
- {databricks_sdk-0.37.0.dist-info → databricks_sdk-0.39.0.dist-info}/top_level.txt +0 -0
|
@@ -61,7 +61,7 @@ class CreatePipeline:
|
|
|
61
61
|
"""Filters on which Pipeline packages to include in the deployed graph."""
|
|
62
62
|
|
|
63
63
|
gateway_definition: Optional[IngestionGatewayPipelineDefinition] = None
|
|
64
|
-
"""The definition of a gateway pipeline to support
|
|
64
|
+
"""The definition of a gateway pipeline to support change data capture."""
|
|
65
65
|
|
|
66
66
|
id: Optional[str] = None
|
|
67
67
|
"""Unique identifier for this pipeline."""
|
|
@@ -82,6 +82,9 @@ class CreatePipeline:
|
|
|
82
82
|
photon: Optional[bool] = None
|
|
83
83
|
"""Whether Photon is enabled for this pipeline."""
|
|
84
84
|
|
|
85
|
+
restart_window: Optional[RestartWindow] = None
|
|
86
|
+
"""Restart window of this pipeline."""
|
|
87
|
+
|
|
85
88
|
schema: Optional[str] = None
|
|
86
89
|
"""The default schema (database) where tables are read from or published to. The presence of this
|
|
87
90
|
field implies that the pipeline is in direct publishing mode."""
|
|
@@ -122,6 +125,7 @@ class CreatePipeline:
|
|
|
122
125
|
if self.name is not None: body['name'] = self.name
|
|
123
126
|
if self.notifications: body['notifications'] = [v.as_dict() for v in self.notifications]
|
|
124
127
|
if self.photon is not None: body['photon'] = self.photon
|
|
128
|
+
if self.restart_window: body['restart_window'] = self.restart_window.as_dict()
|
|
125
129
|
if self.schema is not None: body['schema'] = self.schema
|
|
126
130
|
if self.serverless is not None: body['serverless'] = self.serverless
|
|
127
131
|
if self.storage is not None: body['storage'] = self.storage
|
|
@@ -129,6 +133,36 @@ class CreatePipeline:
|
|
|
129
133
|
if self.trigger: body['trigger'] = self.trigger.as_dict()
|
|
130
134
|
return body
|
|
131
135
|
|
|
136
|
+
def as_shallow_dict(self) -> dict:
|
|
137
|
+
"""Serializes the CreatePipeline into a shallow dictionary of its immediate attributes."""
|
|
138
|
+
body = {}
|
|
139
|
+
if self.allow_duplicate_names is not None: body['allow_duplicate_names'] = self.allow_duplicate_names
|
|
140
|
+
if self.budget_policy_id is not None: body['budget_policy_id'] = self.budget_policy_id
|
|
141
|
+
if self.catalog is not None: body['catalog'] = self.catalog
|
|
142
|
+
if self.channel is not None: body['channel'] = self.channel
|
|
143
|
+
if self.clusters: body['clusters'] = self.clusters
|
|
144
|
+
if self.configuration: body['configuration'] = self.configuration
|
|
145
|
+
if self.continuous is not None: body['continuous'] = self.continuous
|
|
146
|
+
if self.deployment: body['deployment'] = self.deployment
|
|
147
|
+
if self.development is not None: body['development'] = self.development
|
|
148
|
+
if self.dry_run is not None: body['dry_run'] = self.dry_run
|
|
149
|
+
if self.edition is not None: body['edition'] = self.edition
|
|
150
|
+
if self.filters: body['filters'] = self.filters
|
|
151
|
+
if self.gateway_definition: body['gateway_definition'] = self.gateway_definition
|
|
152
|
+
if self.id is not None: body['id'] = self.id
|
|
153
|
+
if self.ingestion_definition: body['ingestion_definition'] = self.ingestion_definition
|
|
154
|
+
if self.libraries: body['libraries'] = self.libraries
|
|
155
|
+
if self.name is not None: body['name'] = self.name
|
|
156
|
+
if self.notifications: body['notifications'] = self.notifications
|
|
157
|
+
if self.photon is not None: body['photon'] = self.photon
|
|
158
|
+
if self.restart_window: body['restart_window'] = self.restart_window
|
|
159
|
+
if self.schema is not None: body['schema'] = self.schema
|
|
160
|
+
if self.serverless is not None: body['serverless'] = self.serverless
|
|
161
|
+
if self.storage is not None: body['storage'] = self.storage
|
|
162
|
+
if self.target is not None: body['target'] = self.target
|
|
163
|
+
if self.trigger: body['trigger'] = self.trigger
|
|
164
|
+
return body
|
|
165
|
+
|
|
132
166
|
@classmethod
|
|
133
167
|
def from_dict(cls, d: Dict[str, any]) -> CreatePipeline:
|
|
134
168
|
"""Deserializes the CreatePipeline from a dictionary."""
|
|
@@ -151,6 +185,7 @@ class CreatePipeline:
|
|
|
151
185
|
name=d.get('name', None),
|
|
152
186
|
notifications=_repeated_dict(d, 'notifications', Notifications),
|
|
153
187
|
photon=d.get('photon', None),
|
|
188
|
+
restart_window=_from_dict(d, 'restart_window', RestartWindow),
|
|
154
189
|
schema=d.get('schema', None),
|
|
155
190
|
serverless=d.get('serverless', None),
|
|
156
191
|
storage=d.get('storage', None),
|
|
@@ -173,6 +208,13 @@ class CreatePipelineResponse:
|
|
|
173
208
|
if self.pipeline_id is not None: body['pipeline_id'] = self.pipeline_id
|
|
174
209
|
return body
|
|
175
210
|
|
|
211
|
+
def as_shallow_dict(self) -> dict:
|
|
212
|
+
"""Serializes the CreatePipelineResponse into a shallow dictionary of its immediate attributes."""
|
|
213
|
+
body = {}
|
|
214
|
+
if self.effective_settings: body['effective_settings'] = self.effective_settings
|
|
215
|
+
if self.pipeline_id is not None: body['pipeline_id'] = self.pipeline_id
|
|
216
|
+
return body
|
|
217
|
+
|
|
176
218
|
@classmethod
|
|
177
219
|
def from_dict(cls, d: Dict[str, any]) -> CreatePipelineResponse:
|
|
178
220
|
"""Deserializes the CreatePipelineResponse from a dictionary."""
|
|
@@ -193,6 +235,13 @@ class CronTrigger:
|
|
|
193
235
|
if self.timezone_id is not None: body['timezone_id'] = self.timezone_id
|
|
194
236
|
return body
|
|
195
237
|
|
|
238
|
+
def as_shallow_dict(self) -> dict:
|
|
239
|
+
"""Serializes the CronTrigger into a shallow dictionary of its immediate attributes."""
|
|
240
|
+
body = {}
|
|
241
|
+
if self.quartz_cron_schedule is not None: body['quartz_cron_schedule'] = self.quartz_cron_schedule
|
|
242
|
+
if self.timezone_id is not None: body['timezone_id'] = self.timezone_id
|
|
243
|
+
return body
|
|
244
|
+
|
|
196
245
|
@classmethod
|
|
197
246
|
def from_dict(cls, d: Dict[str, any]) -> CronTrigger:
|
|
198
247
|
"""Deserializes the CronTrigger from a dictionary."""
|
|
@@ -215,6 +264,13 @@ class DataPlaneId:
|
|
|
215
264
|
if self.seq_no is not None: body['seq_no'] = self.seq_no
|
|
216
265
|
return body
|
|
217
266
|
|
|
267
|
+
def as_shallow_dict(self) -> dict:
|
|
268
|
+
"""Serializes the DataPlaneId into a shallow dictionary of its immediate attributes."""
|
|
269
|
+
body = {}
|
|
270
|
+
if self.instance is not None: body['instance'] = self.instance
|
|
271
|
+
if self.seq_no is not None: body['seq_no'] = self.seq_no
|
|
272
|
+
return body
|
|
273
|
+
|
|
218
274
|
@classmethod
|
|
219
275
|
def from_dict(cls, d: Dict[str, any]) -> DataPlaneId:
|
|
220
276
|
"""Deserializes the DataPlaneId from a dictionary."""
|
|
@@ -229,6 +285,11 @@ class DeletePipelineResponse:
|
|
|
229
285
|
body = {}
|
|
230
286
|
return body
|
|
231
287
|
|
|
288
|
+
def as_shallow_dict(self) -> dict:
|
|
289
|
+
"""Serializes the DeletePipelineResponse into a shallow dictionary of its immediate attributes."""
|
|
290
|
+
body = {}
|
|
291
|
+
return body
|
|
292
|
+
|
|
232
293
|
@classmethod
|
|
233
294
|
def from_dict(cls, d: Dict[str, any]) -> DeletePipelineResponse:
|
|
234
295
|
"""Deserializes the DeletePipelineResponse from a dictionary."""
|
|
@@ -285,7 +346,7 @@ class EditPipeline:
|
|
|
285
346
|
"""Filters on which Pipeline packages to include in the deployed graph."""
|
|
286
347
|
|
|
287
348
|
gateway_definition: Optional[IngestionGatewayPipelineDefinition] = None
|
|
288
|
-
"""The definition of a gateway pipeline to support
|
|
349
|
+
"""The definition of a gateway pipeline to support change data capture."""
|
|
289
350
|
|
|
290
351
|
id: Optional[str] = None
|
|
291
352
|
"""Unique identifier for this pipeline."""
|
|
@@ -309,6 +370,9 @@ class EditPipeline:
|
|
|
309
370
|
pipeline_id: Optional[str] = None
|
|
310
371
|
"""Unique identifier for this pipeline."""
|
|
311
372
|
|
|
373
|
+
restart_window: Optional[RestartWindow] = None
|
|
374
|
+
"""Restart window of this pipeline."""
|
|
375
|
+
|
|
312
376
|
schema: Optional[str] = None
|
|
313
377
|
"""The default schema (database) where tables are read from or published to. The presence of this
|
|
314
378
|
field implies that the pipeline is in direct publishing mode."""
|
|
@@ -351,6 +415,7 @@ class EditPipeline:
|
|
|
351
415
|
if self.notifications: body['notifications'] = [v.as_dict() for v in self.notifications]
|
|
352
416
|
if self.photon is not None: body['photon'] = self.photon
|
|
353
417
|
if self.pipeline_id is not None: body['pipeline_id'] = self.pipeline_id
|
|
418
|
+
if self.restart_window: body['restart_window'] = self.restart_window.as_dict()
|
|
354
419
|
if self.schema is not None: body['schema'] = self.schema
|
|
355
420
|
if self.serverless is not None: body['serverless'] = self.serverless
|
|
356
421
|
if self.storage is not None: body['storage'] = self.storage
|
|
@@ -358,6 +423,38 @@ class EditPipeline:
|
|
|
358
423
|
if self.trigger: body['trigger'] = self.trigger.as_dict()
|
|
359
424
|
return body
|
|
360
425
|
|
|
426
|
+
def as_shallow_dict(self) -> dict:
|
|
427
|
+
"""Serializes the EditPipeline into a shallow dictionary of its immediate attributes."""
|
|
428
|
+
body = {}
|
|
429
|
+
if self.allow_duplicate_names is not None: body['allow_duplicate_names'] = self.allow_duplicate_names
|
|
430
|
+
if self.budget_policy_id is not None: body['budget_policy_id'] = self.budget_policy_id
|
|
431
|
+
if self.catalog is not None: body['catalog'] = self.catalog
|
|
432
|
+
if self.channel is not None: body['channel'] = self.channel
|
|
433
|
+
if self.clusters: body['clusters'] = self.clusters
|
|
434
|
+
if self.configuration: body['configuration'] = self.configuration
|
|
435
|
+
if self.continuous is not None: body['continuous'] = self.continuous
|
|
436
|
+
if self.deployment: body['deployment'] = self.deployment
|
|
437
|
+
if self.development is not None: body['development'] = self.development
|
|
438
|
+
if self.edition is not None: body['edition'] = self.edition
|
|
439
|
+
if self.expected_last_modified is not None:
|
|
440
|
+
body['expected_last_modified'] = self.expected_last_modified
|
|
441
|
+
if self.filters: body['filters'] = self.filters
|
|
442
|
+
if self.gateway_definition: body['gateway_definition'] = self.gateway_definition
|
|
443
|
+
if self.id is not None: body['id'] = self.id
|
|
444
|
+
if self.ingestion_definition: body['ingestion_definition'] = self.ingestion_definition
|
|
445
|
+
if self.libraries: body['libraries'] = self.libraries
|
|
446
|
+
if self.name is not None: body['name'] = self.name
|
|
447
|
+
if self.notifications: body['notifications'] = self.notifications
|
|
448
|
+
if self.photon is not None: body['photon'] = self.photon
|
|
449
|
+
if self.pipeline_id is not None: body['pipeline_id'] = self.pipeline_id
|
|
450
|
+
if self.restart_window: body['restart_window'] = self.restart_window
|
|
451
|
+
if self.schema is not None: body['schema'] = self.schema
|
|
452
|
+
if self.serverless is not None: body['serverless'] = self.serverless
|
|
453
|
+
if self.storage is not None: body['storage'] = self.storage
|
|
454
|
+
if self.target is not None: body['target'] = self.target
|
|
455
|
+
if self.trigger: body['trigger'] = self.trigger
|
|
456
|
+
return body
|
|
457
|
+
|
|
361
458
|
@classmethod
|
|
362
459
|
def from_dict(cls, d: Dict[str, any]) -> EditPipeline:
|
|
363
460
|
"""Deserializes the EditPipeline from a dictionary."""
|
|
@@ -381,6 +478,7 @@ class EditPipeline:
|
|
|
381
478
|
notifications=_repeated_dict(d, 'notifications', Notifications),
|
|
382
479
|
photon=d.get('photon', None),
|
|
383
480
|
pipeline_id=d.get('pipeline_id', None),
|
|
481
|
+
restart_window=_from_dict(d, 'restart_window', RestartWindow),
|
|
384
482
|
schema=d.get('schema', None),
|
|
385
483
|
serverless=d.get('serverless', None),
|
|
386
484
|
storage=d.get('storage', None),
|
|
@@ -396,6 +494,11 @@ class EditPipelineResponse:
|
|
|
396
494
|
body = {}
|
|
397
495
|
return body
|
|
398
496
|
|
|
497
|
+
def as_shallow_dict(self) -> dict:
|
|
498
|
+
"""Serializes the EditPipelineResponse into a shallow dictionary of its immediate attributes."""
|
|
499
|
+
body = {}
|
|
500
|
+
return body
|
|
501
|
+
|
|
399
502
|
@classmethod
|
|
400
503
|
def from_dict(cls, d: Dict[str, any]) -> EditPipelineResponse:
|
|
401
504
|
"""Deserializes the EditPipelineResponse from a dictionary."""
|
|
@@ -417,6 +520,13 @@ class ErrorDetail:
|
|
|
417
520
|
if self.fatal is not None: body['fatal'] = self.fatal
|
|
418
521
|
return body
|
|
419
522
|
|
|
523
|
+
def as_shallow_dict(self) -> dict:
|
|
524
|
+
"""Serializes the ErrorDetail into a shallow dictionary of its immediate attributes."""
|
|
525
|
+
body = {}
|
|
526
|
+
if self.exceptions: body['exceptions'] = self.exceptions
|
|
527
|
+
if self.fatal is not None: body['fatal'] = self.fatal
|
|
528
|
+
return body
|
|
529
|
+
|
|
420
530
|
@classmethod
|
|
421
531
|
def from_dict(cls, d: Dict[str, any]) -> ErrorDetail:
|
|
422
532
|
"""Deserializes the ErrorDetail from a dictionary."""
|
|
@@ -444,6 +554,12 @@ class FileLibrary:
|
|
|
444
554
|
if self.path is not None: body['path'] = self.path
|
|
445
555
|
return body
|
|
446
556
|
|
|
557
|
+
def as_shallow_dict(self) -> dict:
|
|
558
|
+
"""Serializes the FileLibrary into a shallow dictionary of its immediate attributes."""
|
|
559
|
+
body = {}
|
|
560
|
+
if self.path is not None: body['path'] = self.path
|
|
561
|
+
return body
|
|
562
|
+
|
|
447
563
|
@classmethod
|
|
448
564
|
def from_dict(cls, d: Dict[str, any]) -> FileLibrary:
|
|
449
565
|
"""Deserializes the FileLibrary from a dictionary."""
|
|
@@ -465,6 +581,13 @@ class Filters:
|
|
|
465
581
|
if self.include: body['include'] = [v for v in self.include]
|
|
466
582
|
return body
|
|
467
583
|
|
|
584
|
+
def as_shallow_dict(self) -> dict:
|
|
585
|
+
"""Serializes the Filters into a shallow dictionary of its immediate attributes."""
|
|
586
|
+
body = {}
|
|
587
|
+
if self.exclude: body['exclude'] = self.exclude
|
|
588
|
+
if self.include: body['include'] = self.include
|
|
589
|
+
return body
|
|
590
|
+
|
|
468
591
|
@classmethod
|
|
469
592
|
def from_dict(cls, d: Dict[str, any]) -> Filters:
|
|
470
593
|
"""Deserializes the Filters from a dictionary."""
|
|
@@ -482,6 +605,12 @@ class GetPipelinePermissionLevelsResponse:
|
|
|
482
605
|
if self.permission_levels: body['permission_levels'] = [v.as_dict() for v in self.permission_levels]
|
|
483
606
|
return body
|
|
484
607
|
|
|
608
|
+
def as_shallow_dict(self) -> dict:
|
|
609
|
+
"""Serializes the GetPipelinePermissionLevelsResponse into a shallow dictionary of its immediate attributes."""
|
|
610
|
+
body = {}
|
|
611
|
+
if self.permission_levels: body['permission_levels'] = self.permission_levels
|
|
612
|
+
return body
|
|
613
|
+
|
|
485
614
|
@classmethod
|
|
486
615
|
def from_dict(cls, d: Dict[str, any]) -> GetPipelinePermissionLevelsResponse:
|
|
487
616
|
"""Deserializes the GetPipelinePermissionLevelsResponse from a dictionary."""
|
|
@@ -544,6 +673,24 @@ class GetPipelineResponse:
|
|
|
544
673
|
if self.state is not None: body['state'] = self.state.value
|
|
545
674
|
return body
|
|
546
675
|
|
|
676
|
+
def as_shallow_dict(self) -> dict:
|
|
677
|
+
"""Serializes the GetPipelineResponse into a shallow dictionary of its immediate attributes."""
|
|
678
|
+
body = {}
|
|
679
|
+
if self.cause is not None: body['cause'] = self.cause
|
|
680
|
+
if self.cluster_id is not None: body['cluster_id'] = self.cluster_id
|
|
681
|
+
if self.creator_user_name is not None: body['creator_user_name'] = self.creator_user_name
|
|
682
|
+
if self.effective_budget_policy_id is not None:
|
|
683
|
+
body['effective_budget_policy_id'] = self.effective_budget_policy_id
|
|
684
|
+
if self.health is not None: body['health'] = self.health
|
|
685
|
+
if self.last_modified is not None: body['last_modified'] = self.last_modified
|
|
686
|
+
if self.latest_updates: body['latest_updates'] = self.latest_updates
|
|
687
|
+
if self.name is not None: body['name'] = self.name
|
|
688
|
+
if self.pipeline_id is not None: body['pipeline_id'] = self.pipeline_id
|
|
689
|
+
if self.run_as_user_name is not None: body['run_as_user_name'] = self.run_as_user_name
|
|
690
|
+
if self.spec: body['spec'] = self.spec
|
|
691
|
+
if self.state is not None: body['state'] = self.state
|
|
692
|
+
return body
|
|
693
|
+
|
|
547
694
|
@classmethod
|
|
548
695
|
def from_dict(cls, d: Dict[str, any]) -> GetPipelineResponse:
|
|
549
696
|
"""Deserializes the GetPipelineResponse from a dictionary."""
|
|
@@ -579,6 +726,12 @@ class GetUpdateResponse:
|
|
|
579
726
|
if self.update: body['update'] = self.update.as_dict()
|
|
580
727
|
return body
|
|
581
728
|
|
|
729
|
+
def as_shallow_dict(self) -> dict:
|
|
730
|
+
"""Serializes the GetUpdateResponse into a shallow dictionary of its immediate attributes."""
|
|
731
|
+
body = {}
|
|
732
|
+
if self.update: body['update'] = self.update
|
|
733
|
+
return body
|
|
734
|
+
|
|
582
735
|
@classmethod
|
|
583
736
|
def from_dict(cls, d: Dict[str, any]) -> GetUpdateResponse:
|
|
584
737
|
"""Deserializes the GetUpdateResponse from a dictionary."""
|
|
@@ -588,13 +741,13 @@ class GetUpdateResponse:
|
|
|
588
741
|
@dataclass
|
|
589
742
|
class IngestionConfig:
|
|
590
743
|
report: Optional[ReportSpec] = None
|
|
591
|
-
"""Select
|
|
744
|
+
"""Select a specific source report."""
|
|
592
745
|
|
|
593
746
|
schema: Optional[SchemaSpec] = None
|
|
594
|
-
"""Select tables from a specific source schema."""
|
|
747
|
+
"""Select all tables from a specific source schema."""
|
|
595
748
|
|
|
596
749
|
table: Optional[TableSpec] = None
|
|
597
|
-
"""Select
|
|
750
|
+
"""Select a specific source table."""
|
|
598
751
|
|
|
599
752
|
def as_dict(self) -> dict:
|
|
600
753
|
"""Serializes the IngestionConfig into a dictionary suitable for use as a JSON request body."""
|
|
@@ -604,6 +757,14 @@ class IngestionConfig:
|
|
|
604
757
|
if self.table: body['table'] = self.table.as_dict()
|
|
605
758
|
return body
|
|
606
759
|
|
|
760
|
+
def as_shallow_dict(self) -> dict:
|
|
761
|
+
"""Serializes the IngestionConfig into a shallow dictionary of its immediate attributes."""
|
|
762
|
+
body = {}
|
|
763
|
+
if self.report: body['report'] = self.report
|
|
764
|
+
if self.schema: body['schema'] = self.schema
|
|
765
|
+
if self.table: body['table'] = self.table
|
|
766
|
+
return body
|
|
767
|
+
|
|
607
768
|
@classmethod
|
|
608
769
|
def from_dict(cls, d: Dict[str, any]) -> IngestionConfig:
|
|
609
770
|
"""Deserializes the IngestionConfig from a dictionary."""
|
|
@@ -615,11 +776,11 @@ class IngestionConfig:
|
|
|
615
776
|
@dataclass
|
|
616
777
|
class IngestionGatewayPipelineDefinition:
|
|
617
778
|
connection_id: Optional[str] = None
|
|
618
|
-
"""[Deprecated, use connection_name instead] Immutable. The Unity Catalog connection this
|
|
619
|
-
pipeline uses to communicate with the source."""
|
|
779
|
+
"""[Deprecated, use connection_name instead] Immutable. The Unity Catalog connection that this
|
|
780
|
+
gateway pipeline uses to communicate with the source."""
|
|
620
781
|
|
|
621
782
|
connection_name: Optional[str] = None
|
|
622
|
-
"""Immutable. The Unity Catalog connection this gateway pipeline uses to communicate with the
|
|
783
|
+
"""Immutable. The Unity Catalog connection that this gateway pipeline uses to communicate with the
|
|
623
784
|
source."""
|
|
624
785
|
|
|
625
786
|
gateway_storage_catalog: Optional[str] = None
|
|
@@ -645,6 +806,18 @@ class IngestionGatewayPipelineDefinition:
|
|
|
645
806
|
body['gateway_storage_schema'] = self.gateway_storage_schema
|
|
646
807
|
return body
|
|
647
808
|
|
|
809
|
+
def as_shallow_dict(self) -> dict:
|
|
810
|
+
"""Serializes the IngestionGatewayPipelineDefinition into a shallow dictionary of its immediate attributes."""
|
|
811
|
+
body = {}
|
|
812
|
+
if self.connection_id is not None: body['connection_id'] = self.connection_id
|
|
813
|
+
if self.connection_name is not None: body['connection_name'] = self.connection_name
|
|
814
|
+
if self.gateway_storage_catalog is not None:
|
|
815
|
+
body['gateway_storage_catalog'] = self.gateway_storage_catalog
|
|
816
|
+
if self.gateway_storage_name is not None: body['gateway_storage_name'] = self.gateway_storage_name
|
|
817
|
+
if self.gateway_storage_schema is not None:
|
|
818
|
+
body['gateway_storage_schema'] = self.gateway_storage_schema
|
|
819
|
+
return body
|
|
820
|
+
|
|
648
821
|
@classmethod
|
|
649
822
|
def from_dict(cls, d: Dict[str, any]) -> IngestionGatewayPipelineDefinition:
|
|
650
823
|
"""Deserializes the IngestionGatewayPipelineDefinition from a dictionary."""
|
|
@@ -658,12 +831,12 @@ class IngestionGatewayPipelineDefinition:
|
|
|
658
831
|
@dataclass
|
|
659
832
|
class IngestionPipelineDefinition:
|
|
660
833
|
connection_name: Optional[str] = None
|
|
661
|
-
"""Immutable. The Unity Catalog connection this ingestion pipeline uses to communicate with
|
|
662
|
-
source.
|
|
834
|
+
"""Immutable. The Unity Catalog connection that this ingestion pipeline uses to communicate with
|
|
835
|
+
the source. This is used with connectors for applications like Salesforce, Workday, and so on."""
|
|
663
836
|
|
|
664
837
|
ingestion_gateway_id: Optional[str] = None
|
|
665
|
-
"""Immutable. Identifier for the
|
|
666
|
-
with the source.
|
|
838
|
+
"""Immutable. Identifier for the gateway that is used by this ingestion pipeline to communicate
|
|
839
|
+
with the source database. This is used with connectors to databases like SQL Server."""
|
|
667
840
|
|
|
668
841
|
objects: Optional[List[IngestionConfig]] = None
|
|
669
842
|
"""Required. Settings specifying tables to replicate and the destination for the replicated tables."""
|
|
@@ -681,6 +854,15 @@ class IngestionPipelineDefinition:
|
|
|
681
854
|
if self.table_configuration: body['table_configuration'] = self.table_configuration.as_dict()
|
|
682
855
|
return body
|
|
683
856
|
|
|
857
|
+
def as_shallow_dict(self) -> dict:
|
|
858
|
+
"""Serializes the IngestionPipelineDefinition into a shallow dictionary of its immediate attributes."""
|
|
859
|
+
body = {}
|
|
860
|
+
if self.connection_name is not None: body['connection_name'] = self.connection_name
|
|
861
|
+
if self.ingestion_gateway_id is not None: body['ingestion_gateway_id'] = self.ingestion_gateway_id
|
|
862
|
+
if self.objects: body['objects'] = self.objects
|
|
863
|
+
if self.table_configuration: body['table_configuration'] = self.table_configuration
|
|
864
|
+
return body
|
|
865
|
+
|
|
684
866
|
@classmethod
|
|
685
867
|
def from_dict(cls, d: Dict[str, any]) -> IngestionPipelineDefinition:
|
|
686
868
|
"""Deserializes the IngestionPipelineDefinition from a dictionary."""
|
|
@@ -709,6 +891,14 @@ class ListPipelineEventsResponse:
|
|
|
709
891
|
if self.prev_page_token is not None: body['prev_page_token'] = self.prev_page_token
|
|
710
892
|
return body
|
|
711
893
|
|
|
894
|
+
def as_shallow_dict(self) -> dict:
|
|
895
|
+
"""Serializes the ListPipelineEventsResponse into a shallow dictionary of its immediate attributes."""
|
|
896
|
+
body = {}
|
|
897
|
+
if self.events: body['events'] = self.events
|
|
898
|
+
if self.next_page_token is not None: body['next_page_token'] = self.next_page_token
|
|
899
|
+
if self.prev_page_token is not None: body['prev_page_token'] = self.prev_page_token
|
|
900
|
+
return body
|
|
901
|
+
|
|
712
902
|
@classmethod
|
|
713
903
|
def from_dict(cls, d: Dict[str, any]) -> ListPipelineEventsResponse:
|
|
714
904
|
"""Deserializes the ListPipelineEventsResponse from a dictionary."""
|
|
@@ -732,6 +922,13 @@ class ListPipelinesResponse:
|
|
|
732
922
|
if self.statuses: body['statuses'] = [v.as_dict() for v in self.statuses]
|
|
733
923
|
return body
|
|
734
924
|
|
|
925
|
+
def as_shallow_dict(self) -> dict:
|
|
926
|
+
"""Serializes the ListPipelinesResponse into a shallow dictionary of its immediate attributes."""
|
|
927
|
+
body = {}
|
|
928
|
+
if self.next_page_token is not None: body['next_page_token'] = self.next_page_token
|
|
929
|
+
if self.statuses: body['statuses'] = self.statuses
|
|
930
|
+
return body
|
|
931
|
+
|
|
735
932
|
@classmethod
|
|
736
933
|
def from_dict(cls, d: Dict[str, any]) -> ListPipelinesResponse:
|
|
737
934
|
"""Deserializes the ListPipelinesResponse from a dictionary."""
|
|
@@ -758,6 +955,14 @@ class ListUpdatesResponse:
|
|
|
758
955
|
if self.updates: body['updates'] = [v.as_dict() for v in self.updates]
|
|
759
956
|
return body
|
|
760
957
|
|
|
958
|
+
def as_shallow_dict(self) -> dict:
|
|
959
|
+
"""Serializes the ListUpdatesResponse into a shallow dictionary of its immediate attributes."""
|
|
960
|
+
body = {}
|
|
961
|
+
if self.next_page_token is not None: body['next_page_token'] = self.next_page_token
|
|
962
|
+
if self.prev_page_token is not None: body['prev_page_token'] = self.prev_page_token
|
|
963
|
+
if self.updates: body['updates'] = self.updates
|
|
964
|
+
return body
|
|
965
|
+
|
|
761
966
|
@classmethod
|
|
762
967
|
def from_dict(cls, d: Dict[str, any]) -> ListUpdatesResponse:
|
|
763
968
|
"""Deserializes the ListUpdatesResponse from a dictionary."""
|
|
@@ -774,6 +979,11 @@ class ManualTrigger:
|
|
|
774
979
|
body = {}
|
|
775
980
|
return body
|
|
776
981
|
|
|
982
|
+
def as_shallow_dict(self) -> dict:
|
|
983
|
+
"""Serializes the ManualTrigger into a shallow dictionary of its immediate attributes."""
|
|
984
|
+
body = {}
|
|
985
|
+
return body
|
|
986
|
+
|
|
777
987
|
@classmethod
|
|
778
988
|
def from_dict(cls, d: Dict[str, any]) -> ManualTrigger:
|
|
779
989
|
"""Deserializes the ManualTrigger from a dictionary."""
|
|
@@ -799,6 +1009,12 @@ class NotebookLibrary:
|
|
|
799
1009
|
if self.path is not None: body['path'] = self.path
|
|
800
1010
|
return body
|
|
801
1011
|
|
|
1012
|
+
def as_shallow_dict(self) -> dict:
|
|
1013
|
+
"""Serializes the NotebookLibrary into a shallow dictionary of its immediate attributes."""
|
|
1014
|
+
body = {}
|
|
1015
|
+
if self.path is not None: body['path'] = self.path
|
|
1016
|
+
return body
|
|
1017
|
+
|
|
802
1018
|
@classmethod
|
|
803
1019
|
def from_dict(cls, d: Dict[str, any]) -> NotebookLibrary:
|
|
804
1020
|
"""Deserializes the NotebookLibrary from a dictionary."""
|
|
@@ -825,6 +1041,13 @@ class Notifications:
|
|
|
825
1041
|
if self.email_recipients: body['email_recipients'] = [v for v in self.email_recipients]
|
|
826
1042
|
return body
|
|
827
1043
|
|
|
1044
|
+
def as_shallow_dict(self) -> dict:
|
|
1045
|
+
"""Serializes the Notifications into a shallow dictionary of its immediate attributes."""
|
|
1046
|
+
body = {}
|
|
1047
|
+
if self.alerts: body['alerts'] = self.alerts
|
|
1048
|
+
if self.email_recipients: body['email_recipients'] = self.email_recipients
|
|
1049
|
+
return body
|
|
1050
|
+
|
|
828
1051
|
@classmethod
|
|
829
1052
|
def from_dict(cls, d: Dict[str, any]) -> Notifications:
|
|
830
1053
|
"""Deserializes the Notifications from a dictionary."""
|
|
@@ -907,6 +1130,28 @@ class Origin:
|
|
|
907
1130
|
if self.update_id is not None: body['update_id'] = self.update_id
|
|
908
1131
|
return body
|
|
909
1132
|
|
|
1133
|
+
def as_shallow_dict(self) -> dict:
|
|
1134
|
+
"""Serializes the Origin into a shallow dictionary of its immediate attributes."""
|
|
1135
|
+
body = {}
|
|
1136
|
+
if self.batch_id is not None: body['batch_id'] = self.batch_id
|
|
1137
|
+
if self.cloud is not None: body['cloud'] = self.cloud
|
|
1138
|
+
if self.cluster_id is not None: body['cluster_id'] = self.cluster_id
|
|
1139
|
+
if self.dataset_name is not None: body['dataset_name'] = self.dataset_name
|
|
1140
|
+
if self.flow_id is not None: body['flow_id'] = self.flow_id
|
|
1141
|
+
if self.flow_name is not None: body['flow_name'] = self.flow_name
|
|
1142
|
+
if self.host is not None: body['host'] = self.host
|
|
1143
|
+
if self.maintenance_id is not None: body['maintenance_id'] = self.maintenance_id
|
|
1144
|
+
if self.materialization_name is not None: body['materialization_name'] = self.materialization_name
|
|
1145
|
+
if self.org_id is not None: body['org_id'] = self.org_id
|
|
1146
|
+
if self.pipeline_id is not None: body['pipeline_id'] = self.pipeline_id
|
|
1147
|
+
if self.pipeline_name is not None: body['pipeline_name'] = self.pipeline_name
|
|
1148
|
+
if self.region is not None: body['region'] = self.region
|
|
1149
|
+
if self.request_id is not None: body['request_id'] = self.request_id
|
|
1150
|
+
if self.table_id is not None: body['table_id'] = self.table_id
|
|
1151
|
+
if self.uc_resource_id is not None: body['uc_resource_id'] = self.uc_resource_id
|
|
1152
|
+
if self.update_id is not None: body['update_id'] = self.update_id
|
|
1153
|
+
return body
|
|
1154
|
+
|
|
910
1155
|
@classmethod
|
|
911
1156
|
def from_dict(cls, d: Dict[str, any]) -> Origin:
|
|
912
1157
|
"""Deserializes the Origin from a dictionary."""
|
|
@@ -953,6 +1198,16 @@ class PipelineAccessControlRequest:
|
|
|
953
1198
|
if self.user_name is not None: body['user_name'] = self.user_name
|
|
954
1199
|
return body
|
|
955
1200
|
|
|
1201
|
+
def as_shallow_dict(self) -> dict:
|
|
1202
|
+
"""Serializes the PipelineAccessControlRequest into a shallow dictionary of its immediate attributes."""
|
|
1203
|
+
body = {}
|
|
1204
|
+
if self.group_name is not None: body['group_name'] = self.group_name
|
|
1205
|
+
if self.permission_level is not None: body['permission_level'] = self.permission_level
|
|
1206
|
+
if self.service_principal_name is not None:
|
|
1207
|
+
body['service_principal_name'] = self.service_principal_name
|
|
1208
|
+
if self.user_name is not None: body['user_name'] = self.user_name
|
|
1209
|
+
return body
|
|
1210
|
+
|
|
956
1211
|
@classmethod
|
|
957
1212
|
def from_dict(cls, d: Dict[str, any]) -> PipelineAccessControlRequest:
|
|
958
1213
|
"""Deserializes the PipelineAccessControlRequest from a dictionary."""
|
|
@@ -990,6 +1245,17 @@ class PipelineAccessControlResponse:
|
|
|
990
1245
|
if self.user_name is not None: body['user_name'] = self.user_name
|
|
991
1246
|
return body
|
|
992
1247
|
|
|
1248
|
+
def as_shallow_dict(self) -> dict:
|
|
1249
|
+
"""Serializes the PipelineAccessControlResponse into a shallow dictionary of its immediate attributes."""
|
|
1250
|
+
body = {}
|
|
1251
|
+
if self.all_permissions: body['all_permissions'] = self.all_permissions
|
|
1252
|
+
if self.display_name is not None: body['display_name'] = self.display_name
|
|
1253
|
+
if self.group_name is not None: body['group_name'] = self.group_name
|
|
1254
|
+
if self.service_principal_name is not None:
|
|
1255
|
+
body['service_principal_name'] = self.service_principal_name
|
|
1256
|
+
if self.user_name is not None: body['user_name'] = self.user_name
|
|
1257
|
+
return body
|
|
1258
|
+
|
|
993
1259
|
@classmethod
|
|
994
1260
|
def from_dict(cls, d: Dict[str, any]) -> PipelineAccessControlResponse:
|
|
995
1261
|
"""Deserializes the PipelineAccessControlResponse from a dictionary."""
|
|
@@ -1129,6 +1395,33 @@ class PipelineCluster:
|
|
|
1129
1395
|
if self.ssh_public_keys: body['ssh_public_keys'] = [v for v in self.ssh_public_keys]
|
|
1130
1396
|
return body
|
|
1131
1397
|
|
|
1398
|
+
def as_shallow_dict(self) -> dict:
|
|
1399
|
+
"""Serializes the PipelineCluster into a shallow dictionary of its immediate attributes."""
|
|
1400
|
+
body = {}
|
|
1401
|
+
if self.apply_policy_default_values is not None:
|
|
1402
|
+
body['apply_policy_default_values'] = self.apply_policy_default_values
|
|
1403
|
+
if self.autoscale: body['autoscale'] = self.autoscale
|
|
1404
|
+
if self.aws_attributes: body['aws_attributes'] = self.aws_attributes
|
|
1405
|
+
if self.azure_attributes: body['azure_attributes'] = self.azure_attributes
|
|
1406
|
+
if self.cluster_log_conf: body['cluster_log_conf'] = self.cluster_log_conf
|
|
1407
|
+
if self.custom_tags: body['custom_tags'] = self.custom_tags
|
|
1408
|
+
if self.driver_instance_pool_id is not None:
|
|
1409
|
+
body['driver_instance_pool_id'] = self.driver_instance_pool_id
|
|
1410
|
+
if self.driver_node_type_id is not None: body['driver_node_type_id'] = self.driver_node_type_id
|
|
1411
|
+
if self.enable_local_disk_encryption is not None:
|
|
1412
|
+
body['enable_local_disk_encryption'] = self.enable_local_disk_encryption
|
|
1413
|
+
if self.gcp_attributes: body['gcp_attributes'] = self.gcp_attributes
|
|
1414
|
+
if self.init_scripts: body['init_scripts'] = self.init_scripts
|
|
1415
|
+
if self.instance_pool_id is not None: body['instance_pool_id'] = self.instance_pool_id
|
|
1416
|
+
if self.label is not None: body['label'] = self.label
|
|
1417
|
+
if self.node_type_id is not None: body['node_type_id'] = self.node_type_id
|
|
1418
|
+
if self.num_workers is not None: body['num_workers'] = self.num_workers
|
|
1419
|
+
if self.policy_id is not None: body['policy_id'] = self.policy_id
|
|
1420
|
+
if self.spark_conf: body['spark_conf'] = self.spark_conf
|
|
1421
|
+
if self.spark_env_vars: body['spark_env_vars'] = self.spark_env_vars
|
|
1422
|
+
if self.ssh_public_keys: body['ssh_public_keys'] = self.ssh_public_keys
|
|
1423
|
+
return body
|
|
1424
|
+
|
|
1132
1425
|
@classmethod
|
|
1133
1426
|
def from_dict(cls, d: Dict[str, any]) -> PipelineCluster:
|
|
1134
1427
|
"""Deserializes the PipelineCluster from a dictionary."""
|
|
@@ -1177,6 +1470,14 @@ class PipelineClusterAutoscale:
|
|
|
1177
1470
|
if self.mode is not None: body['mode'] = self.mode.value
|
|
1178
1471
|
return body
|
|
1179
1472
|
|
|
1473
|
+
def as_shallow_dict(self) -> dict:
|
|
1474
|
+
"""Serializes the PipelineClusterAutoscale into a shallow dictionary of its immediate attributes."""
|
|
1475
|
+
body = {}
|
|
1476
|
+
if self.max_workers is not None: body['max_workers'] = self.max_workers
|
|
1477
|
+
if self.min_workers is not None: body['min_workers'] = self.min_workers
|
|
1478
|
+
if self.mode is not None: body['mode'] = self.mode
|
|
1479
|
+
return body
|
|
1480
|
+
|
|
1180
1481
|
@classmethod
|
|
1181
1482
|
def from_dict(cls, d: Dict[str, any]) -> PipelineClusterAutoscale:
|
|
1182
1483
|
"""Deserializes the PipelineClusterAutoscale from a dictionary."""
|
|
@@ -1210,6 +1511,13 @@ class PipelineDeployment:
|
|
|
1210
1511
|
if self.metadata_file_path is not None: body['metadata_file_path'] = self.metadata_file_path
|
|
1211
1512
|
return body
|
|
1212
1513
|
|
|
1514
|
+
def as_shallow_dict(self) -> dict:
|
|
1515
|
+
"""Serializes the PipelineDeployment into a shallow dictionary of its immediate attributes."""
|
|
1516
|
+
body = {}
|
|
1517
|
+
if self.kind is not None: body['kind'] = self.kind
|
|
1518
|
+
if self.metadata_file_path is not None: body['metadata_file_path'] = self.metadata_file_path
|
|
1519
|
+
return body
|
|
1520
|
+
|
|
1213
1521
|
@classmethod
|
|
1214
1522
|
def from_dict(cls, d: Dict[str, any]) -> PipelineDeployment:
|
|
1215
1523
|
"""Deserializes the PipelineDeployment from a dictionary."""
|
|
@@ -1260,6 +1568,20 @@ class PipelineEvent:
|
|
|
1260
1568
|
if self.timestamp is not None: body['timestamp'] = self.timestamp
|
|
1261
1569
|
return body
|
|
1262
1570
|
|
|
1571
|
+
def as_shallow_dict(self) -> dict:
|
|
1572
|
+
"""Serializes the PipelineEvent into a shallow dictionary of its immediate attributes."""
|
|
1573
|
+
body = {}
|
|
1574
|
+
if self.error: body['error'] = self.error
|
|
1575
|
+
if self.event_type is not None: body['event_type'] = self.event_type
|
|
1576
|
+
if self.id is not None: body['id'] = self.id
|
|
1577
|
+
if self.level is not None: body['level'] = self.level
|
|
1578
|
+
if self.maturity_level is not None: body['maturity_level'] = self.maturity_level
|
|
1579
|
+
if self.message is not None: body['message'] = self.message
|
|
1580
|
+
if self.origin: body['origin'] = self.origin
|
|
1581
|
+
if self.sequence: body['sequence'] = self.sequence
|
|
1582
|
+
if self.timestamp is not None: body['timestamp'] = self.timestamp
|
|
1583
|
+
return body
|
|
1584
|
+
|
|
1263
1585
|
@classmethod
|
|
1264
1586
|
def from_dict(cls, d: Dict[str, any]) -> PipelineEvent:
|
|
1265
1587
|
"""Deserializes the PipelineEvent from a dictionary."""
|
|
@@ -1301,6 +1623,16 @@ class PipelineLibrary:
|
|
|
1301
1623
|
if self.whl is not None: body['whl'] = self.whl
|
|
1302
1624
|
return body
|
|
1303
1625
|
|
|
1626
|
+
def as_shallow_dict(self) -> dict:
|
|
1627
|
+
"""Serializes the PipelineLibrary into a shallow dictionary of its immediate attributes."""
|
|
1628
|
+
body = {}
|
|
1629
|
+
if self.file: body['file'] = self.file
|
|
1630
|
+
if self.jar is not None: body['jar'] = self.jar
|
|
1631
|
+
if self.maven: body['maven'] = self.maven
|
|
1632
|
+
if self.notebook: body['notebook'] = self.notebook
|
|
1633
|
+
if self.whl is not None: body['whl'] = self.whl
|
|
1634
|
+
return body
|
|
1635
|
+
|
|
1304
1636
|
@classmethod
|
|
1305
1637
|
def from_dict(cls, d: Dict[str, any]) -> PipelineLibrary:
|
|
1306
1638
|
"""Deserializes the PipelineLibrary from a dictionary."""
|
|
@@ -1328,6 +1660,14 @@ class PipelinePermission:
|
|
|
1328
1660
|
if self.permission_level is not None: body['permission_level'] = self.permission_level.value
|
|
1329
1661
|
return body
|
|
1330
1662
|
|
|
1663
|
+
def as_shallow_dict(self) -> dict:
|
|
1664
|
+
"""Serializes the PipelinePermission into a shallow dictionary of its immediate attributes."""
|
|
1665
|
+
body = {}
|
|
1666
|
+
if self.inherited is not None: body['inherited'] = self.inherited
|
|
1667
|
+
if self.inherited_from_object: body['inherited_from_object'] = self.inherited_from_object
|
|
1668
|
+
if self.permission_level is not None: body['permission_level'] = self.permission_level
|
|
1669
|
+
return body
|
|
1670
|
+
|
|
1331
1671
|
@classmethod
|
|
1332
1672
|
def from_dict(cls, d: Dict[str, any]) -> PipelinePermission:
|
|
1333
1673
|
"""Deserializes the PipelinePermission from a dictionary."""
|
|
@@ -1362,6 +1702,14 @@ class PipelinePermissions:
|
|
|
1362
1702
|
if self.object_type is not None: body['object_type'] = self.object_type
|
|
1363
1703
|
return body
|
|
1364
1704
|
|
|
1705
|
+
def as_shallow_dict(self) -> dict:
|
|
1706
|
+
"""Serializes the PipelinePermissions into a shallow dictionary of its immediate attributes."""
|
|
1707
|
+
body = {}
|
|
1708
|
+
if self.access_control_list: body['access_control_list'] = self.access_control_list
|
|
1709
|
+
if self.object_id is not None: body['object_id'] = self.object_id
|
|
1710
|
+
if self.object_type is not None: body['object_type'] = self.object_type
|
|
1711
|
+
return body
|
|
1712
|
+
|
|
1365
1713
|
@classmethod
|
|
1366
1714
|
def from_dict(cls, d: Dict[str, any]) -> PipelinePermissions:
|
|
1367
1715
|
"""Deserializes the PipelinePermissions from a dictionary."""
|
|
@@ -1385,6 +1733,13 @@ class PipelinePermissionsDescription:
|
|
|
1385
1733
|
if self.permission_level is not None: body['permission_level'] = self.permission_level.value
|
|
1386
1734
|
return body
|
|
1387
1735
|
|
|
1736
|
+
def as_shallow_dict(self) -> dict:
|
|
1737
|
+
"""Serializes the PipelinePermissionsDescription into a shallow dictionary of its immediate attributes."""
|
|
1738
|
+
body = {}
|
|
1739
|
+
if self.description is not None: body['description'] = self.description
|
|
1740
|
+
if self.permission_level is not None: body['permission_level'] = self.permission_level
|
|
1741
|
+
return body
|
|
1742
|
+
|
|
1388
1743
|
@classmethod
|
|
1389
1744
|
def from_dict(cls, d: Dict[str, any]) -> PipelinePermissionsDescription:
|
|
1390
1745
|
"""Deserializes the PipelinePermissionsDescription from a dictionary."""
|
|
@@ -1407,6 +1762,13 @@ class PipelinePermissionsRequest:
|
|
|
1407
1762
|
if self.pipeline_id is not None: body['pipeline_id'] = self.pipeline_id
|
|
1408
1763
|
return body
|
|
1409
1764
|
|
|
1765
|
+
def as_shallow_dict(self) -> dict:
|
|
1766
|
+
"""Serializes the PipelinePermissionsRequest into a shallow dictionary of its immediate attributes."""
|
|
1767
|
+
body = {}
|
|
1768
|
+
if self.access_control_list: body['access_control_list'] = self.access_control_list
|
|
1769
|
+
if self.pipeline_id is not None: body['pipeline_id'] = self.pipeline_id
|
|
1770
|
+
return body
|
|
1771
|
+
|
|
1410
1772
|
@classmethod
|
|
1411
1773
|
def from_dict(cls, d: Dict[str, any]) -> PipelinePermissionsRequest:
|
|
1412
1774
|
"""Deserializes the PipelinePermissionsRequest from a dictionary."""
|
|
@@ -1450,7 +1812,7 @@ class PipelineSpec:
|
|
|
1450
1812
|
"""Filters on which Pipeline packages to include in the deployed graph."""
|
|
1451
1813
|
|
|
1452
1814
|
gateway_definition: Optional[IngestionGatewayPipelineDefinition] = None
|
|
1453
|
-
"""The definition of a gateway pipeline to support
|
|
1815
|
+
"""The definition of a gateway pipeline to support change data capture."""
|
|
1454
1816
|
|
|
1455
1817
|
id: Optional[str] = None
|
|
1456
1818
|
"""Unique identifier for this pipeline."""
|
|
@@ -1471,6 +1833,9 @@ class PipelineSpec:
|
|
|
1471
1833
|
photon: Optional[bool] = None
|
|
1472
1834
|
"""Whether Photon is enabled for this pipeline."""
|
|
1473
1835
|
|
|
1836
|
+
restart_window: Optional[RestartWindow] = None
|
|
1837
|
+
"""Restart window of this pipeline."""
|
|
1838
|
+
|
|
1474
1839
|
schema: Optional[str] = None
|
|
1475
1840
|
"""The default schema (database) where tables are read from or published to. The presence of this
|
|
1476
1841
|
field implies that the pipeline is in direct publishing mode."""
|
|
@@ -1509,6 +1874,7 @@ class PipelineSpec:
|
|
|
1509
1874
|
if self.name is not None: body['name'] = self.name
|
|
1510
1875
|
if self.notifications: body['notifications'] = [v.as_dict() for v in self.notifications]
|
|
1511
1876
|
if self.photon is not None: body['photon'] = self.photon
|
|
1877
|
+
if self.restart_window: body['restart_window'] = self.restart_window.as_dict()
|
|
1512
1878
|
if self.schema is not None: body['schema'] = self.schema
|
|
1513
1879
|
if self.serverless is not None: body['serverless'] = self.serverless
|
|
1514
1880
|
if self.storage is not None: body['storage'] = self.storage
|
|
@@ -1516,6 +1882,34 @@ class PipelineSpec:
|
|
|
1516
1882
|
if self.trigger: body['trigger'] = self.trigger.as_dict()
|
|
1517
1883
|
return body
|
|
1518
1884
|
|
|
1885
|
+
def as_shallow_dict(self) -> dict:
|
|
1886
|
+
"""Serializes the PipelineSpec into a shallow dictionary of its immediate attributes."""
|
|
1887
|
+
body = {}
|
|
1888
|
+
if self.budget_policy_id is not None: body['budget_policy_id'] = self.budget_policy_id
|
|
1889
|
+
if self.catalog is not None: body['catalog'] = self.catalog
|
|
1890
|
+
if self.channel is not None: body['channel'] = self.channel
|
|
1891
|
+
if self.clusters: body['clusters'] = self.clusters
|
|
1892
|
+
if self.configuration: body['configuration'] = self.configuration
|
|
1893
|
+
if self.continuous is not None: body['continuous'] = self.continuous
|
|
1894
|
+
if self.deployment: body['deployment'] = self.deployment
|
|
1895
|
+
if self.development is not None: body['development'] = self.development
|
|
1896
|
+
if self.edition is not None: body['edition'] = self.edition
|
|
1897
|
+
if self.filters: body['filters'] = self.filters
|
|
1898
|
+
if self.gateway_definition: body['gateway_definition'] = self.gateway_definition
|
|
1899
|
+
if self.id is not None: body['id'] = self.id
|
|
1900
|
+
if self.ingestion_definition: body['ingestion_definition'] = self.ingestion_definition
|
|
1901
|
+
if self.libraries: body['libraries'] = self.libraries
|
|
1902
|
+
if self.name is not None: body['name'] = self.name
|
|
1903
|
+
if self.notifications: body['notifications'] = self.notifications
|
|
1904
|
+
if self.photon is not None: body['photon'] = self.photon
|
|
1905
|
+
if self.restart_window: body['restart_window'] = self.restart_window
|
|
1906
|
+
if self.schema is not None: body['schema'] = self.schema
|
|
1907
|
+
if self.serverless is not None: body['serverless'] = self.serverless
|
|
1908
|
+
if self.storage is not None: body['storage'] = self.storage
|
|
1909
|
+
if self.target is not None: body['target'] = self.target
|
|
1910
|
+
if self.trigger: body['trigger'] = self.trigger
|
|
1911
|
+
return body
|
|
1912
|
+
|
|
1519
1913
|
@classmethod
|
|
1520
1914
|
def from_dict(cls, d: Dict[str, any]) -> PipelineSpec:
|
|
1521
1915
|
"""Deserializes the PipelineSpec from a dictionary."""
|
|
@@ -1536,6 +1930,7 @@ class PipelineSpec:
|
|
|
1536
1930
|
name=d.get('name', None),
|
|
1537
1931
|
notifications=_repeated_dict(d, 'notifications', Notifications),
|
|
1538
1932
|
photon=d.get('photon', None),
|
|
1933
|
+
restart_window=_from_dict(d, 'restart_window', RestartWindow),
|
|
1539
1934
|
schema=d.get('schema', None),
|
|
1540
1935
|
serverless=d.get('serverless', None),
|
|
1541
1936
|
storage=d.get('storage', None),
|
|
@@ -1597,6 +1992,19 @@ class PipelineStateInfo:
|
|
|
1597
1992
|
if self.state is not None: body['state'] = self.state.value
|
|
1598
1993
|
return body
|
|
1599
1994
|
|
|
1995
|
+
def as_shallow_dict(self) -> dict:
|
|
1996
|
+
"""Serializes the PipelineStateInfo into a shallow dictionary of its immediate attributes."""
|
|
1997
|
+
body = {}
|
|
1998
|
+
if self.cluster_id is not None: body['cluster_id'] = self.cluster_id
|
|
1999
|
+
if self.creator_user_name is not None: body['creator_user_name'] = self.creator_user_name
|
|
2000
|
+
if self.health is not None: body['health'] = self.health
|
|
2001
|
+
if self.latest_updates: body['latest_updates'] = self.latest_updates
|
|
2002
|
+
if self.name is not None: body['name'] = self.name
|
|
2003
|
+
if self.pipeline_id is not None: body['pipeline_id'] = self.pipeline_id
|
|
2004
|
+
if self.run_as_user_name is not None: body['run_as_user_name'] = self.run_as_user_name
|
|
2005
|
+
if self.state is not None: body['state'] = self.state
|
|
2006
|
+
return body
|
|
2007
|
+
|
|
1600
2008
|
@classmethod
|
|
1601
2009
|
def from_dict(cls, d: Dict[str, any]) -> PipelineStateInfo:
|
|
1602
2010
|
"""Deserializes the PipelineStateInfo from a dictionary."""
|
|
@@ -1630,6 +2038,13 @@ class PipelineTrigger:
|
|
|
1630
2038
|
if self.manual: body['manual'] = self.manual.as_dict()
|
|
1631
2039
|
return body
|
|
1632
2040
|
|
|
2041
|
+
def as_shallow_dict(self) -> dict:
|
|
2042
|
+
"""Serializes the PipelineTrigger into a shallow dictionary of its immediate attributes."""
|
|
2043
|
+
body = {}
|
|
2044
|
+
if self.cron: body['cron'] = self.cron
|
|
2045
|
+
if self.manual: body['manual'] = self.manual
|
|
2046
|
+
return body
|
|
2047
|
+
|
|
1633
2048
|
@classmethod
|
|
1634
2049
|
def from_dict(cls, d: Dict[str, any]) -> PipelineTrigger:
|
|
1635
2050
|
"""Deserializes the PipelineTrigger from a dictionary."""
|
|
@@ -1664,6 +2079,16 @@ class ReportSpec:
|
|
|
1664
2079
|
if self.table_configuration: body['table_configuration'] = self.table_configuration.as_dict()
|
|
1665
2080
|
return body
|
|
1666
2081
|
|
|
2082
|
+
def as_shallow_dict(self) -> dict:
|
|
2083
|
+
"""Serializes the ReportSpec into a shallow dictionary of its immediate attributes."""
|
|
2084
|
+
body = {}
|
|
2085
|
+
if self.destination_catalog is not None: body['destination_catalog'] = self.destination_catalog
|
|
2086
|
+
if self.destination_schema is not None: body['destination_schema'] = self.destination_schema
|
|
2087
|
+
if self.destination_table is not None: body['destination_table'] = self.destination_table
|
|
2088
|
+
if self.source_url is not None: body['source_url'] = self.source_url
|
|
2089
|
+
if self.table_configuration: body['table_configuration'] = self.table_configuration
|
|
2090
|
+
return body
|
|
2091
|
+
|
|
1667
2092
|
@classmethod
|
|
1668
2093
|
def from_dict(cls, d: Dict[str, any]) -> ReportSpec:
|
|
1669
2094
|
"""Deserializes the ReportSpec from a dictionary."""
|
|
@@ -1674,6 +2099,58 @@ class ReportSpec:
|
|
|
1674
2099
|
table_configuration=_from_dict(d, 'table_configuration', TableSpecificConfig))
|
|
1675
2100
|
|
|
1676
2101
|
|
|
2102
|
+
@dataclass
|
|
2103
|
+
class RestartWindow:
|
|
2104
|
+
start_hour: int
|
|
2105
|
+
"""An integer between 0 and 23 denoting the start hour for the restart window in the 24-hour day.
|
|
2106
|
+
Continuous pipeline restart is triggered only within a five-hour window starting at this hour."""
|
|
2107
|
+
|
|
2108
|
+
days_of_week: Optional[RestartWindowDaysOfWeek] = None
|
|
2109
|
+
"""Days of week in which the restart is allowed to happen (within a five-hour window starting at
|
|
2110
|
+
start_hour). If not specified all days of the week will be used."""
|
|
2111
|
+
|
|
2112
|
+
time_zone_id: Optional[str] = None
|
|
2113
|
+
"""Time zone id of restart window. See
|
|
2114
|
+
https://docs.databricks.com/sql/language-manual/sql-ref-syntax-aux-conf-mgmt-set-timezone.html
|
|
2115
|
+
for details. If not specified, UTC will be used."""
|
|
2116
|
+
|
|
2117
|
+
def as_dict(self) -> dict:
|
|
2118
|
+
"""Serializes the RestartWindow into a dictionary suitable for use as a JSON request body."""
|
|
2119
|
+
body = {}
|
|
2120
|
+
if self.days_of_week is not None: body['days_of_week'] = self.days_of_week.value
|
|
2121
|
+
if self.start_hour is not None: body['start_hour'] = self.start_hour
|
|
2122
|
+
if self.time_zone_id is not None: body['time_zone_id'] = self.time_zone_id
|
|
2123
|
+
return body
|
|
2124
|
+
|
|
2125
|
+
def as_shallow_dict(self) -> dict:
|
|
2126
|
+
"""Serializes the RestartWindow into a shallow dictionary of its immediate attributes."""
|
|
2127
|
+
body = {}
|
|
2128
|
+
if self.days_of_week is not None: body['days_of_week'] = self.days_of_week
|
|
2129
|
+
if self.start_hour is not None: body['start_hour'] = self.start_hour
|
|
2130
|
+
if self.time_zone_id is not None: body['time_zone_id'] = self.time_zone_id
|
|
2131
|
+
return body
|
|
2132
|
+
|
|
2133
|
+
@classmethod
|
|
2134
|
+
def from_dict(cls, d: Dict[str, any]) -> RestartWindow:
|
|
2135
|
+
"""Deserializes the RestartWindow from a dictionary."""
|
|
2136
|
+
return cls(days_of_week=_enum(d, 'days_of_week', RestartWindowDaysOfWeek),
|
|
2137
|
+
start_hour=d.get('start_hour', None),
|
|
2138
|
+
time_zone_id=d.get('time_zone_id', None))
|
|
2139
|
+
|
|
2140
|
+
|
|
2141
|
+
class RestartWindowDaysOfWeek(Enum):
|
|
2142
|
+
"""Days of week in which the restart is allowed to happen (within a five-hour window starting at
|
|
2143
|
+
start_hour). If not specified all days of the week will be used."""
|
|
2144
|
+
|
|
2145
|
+
FRIDAY = 'FRIDAY'
|
|
2146
|
+
MONDAY = 'MONDAY'
|
|
2147
|
+
SATURDAY = 'SATURDAY'
|
|
2148
|
+
SUNDAY = 'SUNDAY'
|
|
2149
|
+
THURSDAY = 'THURSDAY'
|
|
2150
|
+
TUESDAY = 'TUESDAY'
|
|
2151
|
+
WEDNESDAY = 'WEDNESDAY'
|
|
2152
|
+
|
|
2153
|
+
|
|
1677
2154
|
@dataclass
|
|
1678
2155
|
class SchemaSpec:
|
|
1679
2156
|
destination_catalog: Optional[str] = None
|
|
@@ -1705,6 +2182,16 @@ class SchemaSpec:
|
|
|
1705
2182
|
if self.table_configuration: body['table_configuration'] = self.table_configuration.as_dict()
|
|
1706
2183
|
return body
|
|
1707
2184
|
|
|
2185
|
+
def as_shallow_dict(self) -> dict:
|
|
2186
|
+
"""Serializes the SchemaSpec into a shallow dictionary of its immediate attributes."""
|
|
2187
|
+
body = {}
|
|
2188
|
+
if self.destination_catalog is not None: body['destination_catalog'] = self.destination_catalog
|
|
2189
|
+
if self.destination_schema is not None: body['destination_schema'] = self.destination_schema
|
|
2190
|
+
if self.source_catalog is not None: body['source_catalog'] = self.source_catalog
|
|
2191
|
+
if self.source_schema is not None: body['source_schema'] = self.source_schema
|
|
2192
|
+
if self.table_configuration: body['table_configuration'] = self.table_configuration
|
|
2193
|
+
return body
|
|
2194
|
+
|
|
1708
2195
|
@classmethod
|
|
1709
2196
|
def from_dict(cls, d: Dict[str, any]) -> SchemaSpec:
|
|
1710
2197
|
"""Deserializes the SchemaSpec from a dictionary."""
|
|
@@ -1730,6 +2217,13 @@ class Sequencing:
|
|
|
1730
2217
|
if self.data_plane_id: body['data_plane_id'] = self.data_plane_id.as_dict()
|
|
1731
2218
|
return body
|
|
1732
2219
|
|
|
2220
|
+
def as_shallow_dict(self) -> dict:
|
|
2221
|
+
"""Serializes the Sequencing into a shallow dictionary of its immediate attributes."""
|
|
2222
|
+
body = {}
|
|
2223
|
+
if self.control_plane_seq_no is not None: body['control_plane_seq_no'] = self.control_plane_seq_no
|
|
2224
|
+
if self.data_plane_id: body['data_plane_id'] = self.data_plane_id
|
|
2225
|
+
return body
|
|
2226
|
+
|
|
1733
2227
|
@classmethod
|
|
1734
2228
|
def from_dict(cls, d: Dict[str, any]) -> Sequencing:
|
|
1735
2229
|
"""Deserializes the Sequencing from a dictionary."""
|
|
@@ -1756,6 +2250,14 @@ class SerializedException:
|
|
|
1756
2250
|
if self.stack: body['stack'] = [v.as_dict() for v in self.stack]
|
|
1757
2251
|
return body
|
|
1758
2252
|
|
|
2253
|
+
def as_shallow_dict(self) -> dict:
|
|
2254
|
+
"""Serializes the SerializedException into a shallow dictionary of its immediate attributes."""
|
|
2255
|
+
body = {}
|
|
2256
|
+
if self.class_name is not None: body['class_name'] = self.class_name
|
|
2257
|
+
if self.message is not None: body['message'] = self.message
|
|
2258
|
+
if self.stack: body['stack'] = self.stack
|
|
2259
|
+
return body
|
|
2260
|
+
|
|
1759
2261
|
@classmethod
|
|
1760
2262
|
def from_dict(cls, d: Dict[str, any]) -> SerializedException:
|
|
1761
2263
|
"""Deserializes the SerializedException from a dictionary."""
|
|
@@ -1787,6 +2289,15 @@ class StackFrame:
|
|
|
1787
2289
|
if self.method_name is not None: body['method_name'] = self.method_name
|
|
1788
2290
|
return body
|
|
1789
2291
|
|
|
2292
|
+
def as_shallow_dict(self) -> dict:
|
|
2293
|
+
"""Serializes the StackFrame into a shallow dictionary of its immediate attributes."""
|
|
2294
|
+
body = {}
|
|
2295
|
+
if self.declaring_class is not None: body['declaring_class'] = self.declaring_class
|
|
2296
|
+
if self.file_name is not None: body['file_name'] = self.file_name
|
|
2297
|
+
if self.line_number is not None: body['line_number'] = self.line_number
|
|
2298
|
+
if self.method_name is not None: body['method_name'] = self.method_name
|
|
2299
|
+
return body
|
|
2300
|
+
|
|
1790
2301
|
@classmethod
|
|
1791
2302
|
def from_dict(cls, d: Dict[str, any]) -> StackFrame:
|
|
1792
2303
|
"""Deserializes the StackFrame from a dictionary."""
|
|
@@ -1831,6 +2342,17 @@ class StartUpdate:
|
|
|
1831
2342
|
if self.validate_only is not None: body['validate_only'] = self.validate_only
|
|
1832
2343
|
return body
|
|
1833
2344
|
|
|
2345
|
+
def as_shallow_dict(self) -> dict:
|
|
2346
|
+
"""Serializes the StartUpdate into a shallow dictionary of its immediate attributes."""
|
|
2347
|
+
body = {}
|
|
2348
|
+
if self.cause is not None: body['cause'] = self.cause
|
|
2349
|
+
if self.full_refresh is not None: body['full_refresh'] = self.full_refresh
|
|
2350
|
+
if self.full_refresh_selection: body['full_refresh_selection'] = self.full_refresh_selection
|
|
2351
|
+
if self.pipeline_id is not None: body['pipeline_id'] = self.pipeline_id
|
|
2352
|
+
if self.refresh_selection: body['refresh_selection'] = self.refresh_selection
|
|
2353
|
+
if self.validate_only is not None: body['validate_only'] = self.validate_only
|
|
2354
|
+
return body
|
|
2355
|
+
|
|
1834
2356
|
@classmethod
|
|
1835
2357
|
def from_dict(cls, d: Dict[str, any]) -> StartUpdate:
|
|
1836
2358
|
"""Deserializes the StartUpdate from a dictionary."""
|
|
@@ -1862,6 +2384,12 @@ class StartUpdateResponse:
|
|
|
1862
2384
|
if self.update_id is not None: body['update_id'] = self.update_id
|
|
1863
2385
|
return body
|
|
1864
2386
|
|
|
2387
|
+
def as_shallow_dict(self) -> dict:
|
|
2388
|
+
"""Serializes the StartUpdateResponse into a shallow dictionary of its immediate attributes."""
|
|
2389
|
+
body = {}
|
|
2390
|
+
if self.update_id is not None: body['update_id'] = self.update_id
|
|
2391
|
+
return body
|
|
2392
|
+
|
|
1865
2393
|
@classmethod
|
|
1866
2394
|
def from_dict(cls, d: Dict[str, any]) -> StartUpdateResponse:
|
|
1867
2395
|
"""Deserializes the StartUpdateResponse from a dictionary."""
|
|
@@ -1876,6 +2404,11 @@ class StopPipelineResponse:
|
|
|
1876
2404
|
body = {}
|
|
1877
2405
|
return body
|
|
1878
2406
|
|
|
2407
|
+
def as_shallow_dict(self) -> dict:
|
|
2408
|
+
"""Serializes the StopPipelineResponse into a shallow dictionary of its immediate attributes."""
|
|
2409
|
+
body = {}
|
|
2410
|
+
return body
|
|
2411
|
+
|
|
1879
2412
|
@classmethod
|
|
1880
2413
|
def from_dict(cls, d: Dict[str, any]) -> StopPipelineResponse:
|
|
1881
2414
|
"""Deserializes the StopPipelineResponse from a dictionary."""
|
|
@@ -1919,6 +2452,18 @@ class TableSpec:
|
|
|
1919
2452
|
if self.table_configuration: body['table_configuration'] = self.table_configuration.as_dict()
|
|
1920
2453
|
return body
|
|
1921
2454
|
|
|
2455
|
+
def as_shallow_dict(self) -> dict:
|
|
2456
|
+
"""Serializes the TableSpec into a shallow dictionary of its immediate attributes."""
|
|
2457
|
+
body = {}
|
|
2458
|
+
if self.destination_catalog is not None: body['destination_catalog'] = self.destination_catalog
|
|
2459
|
+
if self.destination_schema is not None: body['destination_schema'] = self.destination_schema
|
|
2460
|
+
if self.destination_table is not None: body['destination_table'] = self.destination_table
|
|
2461
|
+
if self.source_catalog is not None: body['source_catalog'] = self.source_catalog
|
|
2462
|
+
if self.source_schema is not None: body['source_schema'] = self.source_schema
|
|
2463
|
+
if self.source_table is not None: body['source_table'] = self.source_table
|
|
2464
|
+
if self.table_configuration: body['table_configuration'] = self.table_configuration
|
|
2465
|
+
return body
|
|
2466
|
+
|
|
1922
2467
|
@classmethod
|
|
1923
2468
|
def from_dict(cls, d: Dict[str, any]) -> TableSpec:
|
|
1924
2469
|
"""Deserializes the TableSpec from a dictionary."""
|
|
@@ -1957,6 +2502,16 @@ class TableSpecificConfig:
|
|
|
1957
2502
|
if self.sequence_by: body['sequence_by'] = [v for v in self.sequence_by]
|
|
1958
2503
|
return body
|
|
1959
2504
|
|
|
2505
|
+
def as_shallow_dict(self) -> dict:
|
|
2506
|
+
"""Serializes the TableSpecificConfig into a shallow dictionary of its immediate attributes."""
|
|
2507
|
+
body = {}
|
|
2508
|
+
if self.primary_keys: body['primary_keys'] = self.primary_keys
|
|
2509
|
+
if self.salesforce_include_formula_fields is not None:
|
|
2510
|
+
body['salesforce_include_formula_fields'] = self.salesforce_include_formula_fields
|
|
2511
|
+
if self.scd_type is not None: body['scd_type'] = self.scd_type
|
|
2512
|
+
if self.sequence_by: body['sequence_by'] = self.sequence_by
|
|
2513
|
+
return body
|
|
2514
|
+
|
|
1960
2515
|
@classmethod
|
|
1961
2516
|
def from_dict(cls, d: Dict[str, any]) -> TableSpecificConfig:
|
|
1962
2517
|
"""Deserializes the TableSpecificConfig from a dictionary."""
|
|
@@ -2031,6 +2586,22 @@ class UpdateInfo:
|
|
|
2031
2586
|
if self.validate_only is not None: body['validate_only'] = self.validate_only
|
|
2032
2587
|
return body
|
|
2033
2588
|
|
|
2589
|
+
def as_shallow_dict(self) -> dict:
|
|
2590
|
+
"""Serializes the UpdateInfo into a shallow dictionary of its immediate attributes."""
|
|
2591
|
+
body = {}
|
|
2592
|
+
if self.cause is not None: body['cause'] = self.cause
|
|
2593
|
+
if self.cluster_id is not None: body['cluster_id'] = self.cluster_id
|
|
2594
|
+
if self.config: body['config'] = self.config
|
|
2595
|
+
if self.creation_time is not None: body['creation_time'] = self.creation_time
|
|
2596
|
+
if self.full_refresh is not None: body['full_refresh'] = self.full_refresh
|
|
2597
|
+
if self.full_refresh_selection: body['full_refresh_selection'] = self.full_refresh_selection
|
|
2598
|
+
if self.pipeline_id is not None: body['pipeline_id'] = self.pipeline_id
|
|
2599
|
+
if self.refresh_selection: body['refresh_selection'] = self.refresh_selection
|
|
2600
|
+
if self.state is not None: body['state'] = self.state
|
|
2601
|
+
if self.update_id is not None: body['update_id'] = self.update_id
|
|
2602
|
+
if self.validate_only is not None: body['validate_only'] = self.validate_only
|
|
2603
|
+
return body
|
|
2604
|
+
|
|
2034
2605
|
@classmethod
|
|
2035
2606
|
def from_dict(cls, d: Dict[str, any]) -> UpdateInfo:
|
|
2036
2607
|
"""Deserializes the UpdateInfo from a dictionary."""
|
|
@@ -2090,6 +2661,14 @@ class UpdateStateInfo:
|
|
|
2090
2661
|
if self.update_id is not None: body['update_id'] = self.update_id
|
|
2091
2662
|
return body
|
|
2092
2663
|
|
|
2664
|
+
def as_shallow_dict(self) -> dict:
|
|
2665
|
+
"""Serializes the UpdateStateInfo into a shallow dictionary of its immediate attributes."""
|
|
2666
|
+
body = {}
|
|
2667
|
+
if self.creation_time is not None: body['creation_time'] = self.creation_time
|
|
2668
|
+
if self.state is not None: body['state'] = self.state
|
|
2669
|
+
if self.update_id is not None: body['update_id'] = self.update_id
|
|
2670
|
+
return body
|
|
2671
|
+
|
|
2093
2672
|
@classmethod
|
|
2094
2673
|
def from_dict(cls, d: Dict[str, any]) -> UpdateStateInfo:
|
|
2095
2674
|
"""Deserializes the UpdateStateInfo from a dictionary."""
|
|
@@ -2211,6 +2790,7 @@ class PipelinesAPI:
|
|
|
2211
2790
|
name: Optional[str] = None,
|
|
2212
2791
|
notifications: Optional[List[Notifications]] = None,
|
|
2213
2792
|
photon: Optional[bool] = None,
|
|
2793
|
+
restart_window: Optional[RestartWindow] = None,
|
|
2214
2794
|
schema: Optional[str] = None,
|
|
2215
2795
|
serverless: Optional[bool] = None,
|
|
2216
2796
|
storage: Optional[str] = None,
|
|
@@ -2247,7 +2827,7 @@ class PipelinesAPI:
|
|
|
2247
2827
|
:param filters: :class:`Filters` (optional)
|
|
2248
2828
|
Filters on which Pipeline packages to include in the deployed graph.
|
|
2249
2829
|
:param gateway_definition: :class:`IngestionGatewayPipelineDefinition` (optional)
|
|
2250
|
-
The definition of a gateway pipeline to support
|
|
2830
|
+
The definition of a gateway pipeline to support change data capture.
|
|
2251
2831
|
:param id: str (optional)
|
|
2252
2832
|
Unique identifier for this pipeline.
|
|
2253
2833
|
:param ingestion_definition: :class:`IngestionPipelineDefinition` (optional)
|
|
@@ -2261,6 +2841,8 @@ class PipelinesAPI:
|
|
|
2261
2841
|
List of notification settings for this pipeline.
|
|
2262
2842
|
:param photon: bool (optional)
|
|
2263
2843
|
Whether Photon is enabled for this pipeline.
|
|
2844
|
+
:param restart_window: :class:`RestartWindow` (optional)
|
|
2845
|
+
Restart window of this pipeline.
|
|
2264
2846
|
:param schema: str (optional)
|
|
2265
2847
|
The default schema (database) where tables are read from or published to. The presence of this field
|
|
2266
2848
|
implies that the pipeline is in direct publishing mode.
|
|
@@ -2296,6 +2878,7 @@ class PipelinesAPI:
|
|
|
2296
2878
|
if name is not None: body['name'] = name
|
|
2297
2879
|
if notifications is not None: body['notifications'] = [v.as_dict() for v in notifications]
|
|
2298
2880
|
if photon is not None: body['photon'] = photon
|
|
2881
|
+
if restart_window is not None: body['restart_window'] = restart_window.as_dict()
|
|
2299
2882
|
if schema is not None: body['schema'] = schema
|
|
2300
2883
|
if serverless is not None: body['serverless'] = serverless
|
|
2301
2884
|
if storage is not None: body['storage'] = storage
|
|
@@ -2629,6 +3212,7 @@ class PipelinesAPI:
|
|
|
2629
3212
|
name: Optional[str] = None,
|
|
2630
3213
|
notifications: Optional[List[Notifications]] = None,
|
|
2631
3214
|
photon: Optional[bool] = None,
|
|
3215
|
+
restart_window: Optional[RestartWindow] = None,
|
|
2632
3216
|
schema: Optional[str] = None,
|
|
2633
3217
|
serverless: Optional[bool] = None,
|
|
2634
3218
|
storage: Optional[str] = None,
|
|
@@ -2668,7 +3252,7 @@ class PipelinesAPI:
|
|
|
2668
3252
|
:param filters: :class:`Filters` (optional)
|
|
2669
3253
|
Filters on which Pipeline packages to include in the deployed graph.
|
|
2670
3254
|
:param gateway_definition: :class:`IngestionGatewayPipelineDefinition` (optional)
|
|
2671
|
-
The definition of a gateway pipeline to support
|
|
3255
|
+
The definition of a gateway pipeline to support change data capture.
|
|
2672
3256
|
:param id: str (optional)
|
|
2673
3257
|
Unique identifier for this pipeline.
|
|
2674
3258
|
:param ingestion_definition: :class:`IngestionPipelineDefinition` (optional)
|
|
@@ -2682,6 +3266,8 @@ class PipelinesAPI:
|
|
|
2682
3266
|
List of notification settings for this pipeline.
|
|
2683
3267
|
:param photon: bool (optional)
|
|
2684
3268
|
Whether Photon is enabled for this pipeline.
|
|
3269
|
+
:param restart_window: :class:`RestartWindow` (optional)
|
|
3270
|
+
Restart window of this pipeline.
|
|
2685
3271
|
:param schema: str (optional)
|
|
2686
3272
|
The default schema (database) where tables are read from or published to. The presence of this field
|
|
2687
3273
|
implies that the pipeline is in direct publishing mode.
|
|
@@ -2717,6 +3303,7 @@ class PipelinesAPI:
|
|
|
2717
3303
|
if name is not None: body['name'] = name
|
|
2718
3304
|
if notifications is not None: body['notifications'] = [v.as_dict() for v in notifications]
|
|
2719
3305
|
if photon is not None: body['photon'] = photon
|
|
3306
|
+
if restart_window is not None: body['restart_window'] = restart_window.as_dict()
|
|
2720
3307
|
if schema is not None: body['schema'] = schema
|
|
2721
3308
|
if serverless is not None: body['serverless'] = serverless
|
|
2722
3309
|
if storage is not None: body['storage'] = storage
|