databricks-sdk 0.58.0__py3-none-any.whl → 0.60.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 +18 -10
- databricks/sdk/credentials_provider.py +2 -2
- databricks/sdk/mixins/files.py +43 -15
- databricks/sdk/mixins/open_ai_client.py +28 -7
- databricks/sdk/oidc.py +6 -2
- databricks/sdk/service/{aibuilder.py → agentbricks.py} +5 -132
- databricks/sdk/service/apps.py +52 -46
- databricks/sdk/service/billing.py +9 -200
- databricks/sdk/service/catalog.py +5501 -7697
- databricks/sdk/service/cleanrooms.py +24 -54
- databricks/sdk/service/compute.py +456 -2515
- databricks/sdk/service/dashboards.py +1 -177
- databricks/sdk/service/database.py +34 -53
- databricks/sdk/service/files.py +2 -218
- databricks/sdk/service/iam.py +16 -295
- databricks/sdk/service/jobs.py +108 -1171
- databricks/sdk/service/marketplace.py +0 -573
- databricks/sdk/service/ml.py +76 -2445
- databricks/sdk/service/oauth2.py +122 -237
- databricks/sdk/service/pipelines.py +180 -752
- databricks/sdk/service/provisioning.py +0 -603
- databricks/sdk/service/serving.py +5 -577
- databricks/sdk/service/settings.py +192 -1560
- databricks/sdk/service/sharing.py +5 -470
- databricks/sdk/service/sql.py +117 -1704
- databricks/sdk/service/vectorsearch.py +0 -391
- databricks/sdk/service/workspace.py +250 -721
- databricks/sdk/version.py +1 -1
- {databricks_sdk-0.58.0.dist-info → databricks_sdk-0.60.0.dist-info}/METADATA +1 -1
- {databricks_sdk-0.58.0.dist-info → databricks_sdk-0.60.0.dist-info}/RECORD +34 -34
- {databricks_sdk-0.58.0.dist-info → databricks_sdk-0.60.0.dist-info}/WHEEL +0 -0
- {databricks_sdk-0.58.0.dist-info → databricks_sdk-0.60.0.dist-info}/licenses/LICENSE +0 -0
- {databricks_sdk-0.58.0.dist-info → databricks_sdk-0.60.0.dist-info}/licenses/NOTICE +0 -0
- {databricks_sdk-0.58.0.dist-info → databricks_sdk-0.60.0.dist-info}/top_level.txt +0 -0
|
@@ -413,49 +413,6 @@ class GenieConversationSummary:
|
|
|
413
413
|
)
|
|
414
414
|
|
|
415
415
|
|
|
416
|
-
@dataclass
|
|
417
|
-
class GenieCreateConversationMessageRequest:
|
|
418
|
-
content: str
|
|
419
|
-
"""User message content."""
|
|
420
|
-
|
|
421
|
-
conversation_id: Optional[str] = None
|
|
422
|
-
"""The ID associated with the conversation."""
|
|
423
|
-
|
|
424
|
-
space_id: Optional[str] = None
|
|
425
|
-
"""The ID associated with the Genie space where the conversation is started."""
|
|
426
|
-
|
|
427
|
-
def as_dict(self) -> dict:
|
|
428
|
-
"""Serializes the GenieCreateConversationMessageRequest into a dictionary suitable for use as a JSON request body."""
|
|
429
|
-
body = {}
|
|
430
|
-
if self.content is not None:
|
|
431
|
-
body["content"] = self.content
|
|
432
|
-
if self.conversation_id is not None:
|
|
433
|
-
body["conversation_id"] = self.conversation_id
|
|
434
|
-
if self.space_id is not None:
|
|
435
|
-
body["space_id"] = self.space_id
|
|
436
|
-
return body
|
|
437
|
-
|
|
438
|
-
def as_shallow_dict(self) -> dict:
|
|
439
|
-
"""Serializes the GenieCreateConversationMessageRequest into a shallow dictionary of its immediate attributes."""
|
|
440
|
-
body = {}
|
|
441
|
-
if self.content is not None:
|
|
442
|
-
body["content"] = self.content
|
|
443
|
-
if self.conversation_id is not None:
|
|
444
|
-
body["conversation_id"] = self.conversation_id
|
|
445
|
-
if self.space_id is not None:
|
|
446
|
-
body["space_id"] = self.space_id
|
|
447
|
-
return body
|
|
448
|
-
|
|
449
|
-
@classmethod
|
|
450
|
-
def from_dict(cls, d: Dict[str, Any]) -> GenieCreateConversationMessageRequest:
|
|
451
|
-
"""Deserializes the GenieCreateConversationMessageRequest from a dictionary."""
|
|
452
|
-
return cls(
|
|
453
|
-
content=d.get("content", None),
|
|
454
|
-
conversation_id=d.get("conversation_id", None),
|
|
455
|
-
space_id=d.get("space_id", None),
|
|
456
|
-
)
|
|
457
|
-
|
|
458
|
-
|
|
459
416
|
@dataclass
|
|
460
417
|
class GenieGetMessageQueryResultResponse:
|
|
461
418
|
statement_response: Optional[sql.StatementResponse] = None
|
|
@@ -810,38 +767,6 @@ class GenieSpace:
|
|
|
810
767
|
return cls(description=d.get("description", None), space_id=d.get("space_id", None), title=d.get("title", None))
|
|
811
768
|
|
|
812
769
|
|
|
813
|
-
@dataclass
|
|
814
|
-
class GenieStartConversationMessageRequest:
|
|
815
|
-
content: str
|
|
816
|
-
"""The text of the message that starts the conversation."""
|
|
817
|
-
|
|
818
|
-
space_id: Optional[str] = None
|
|
819
|
-
"""The ID associated with the Genie space where you want to start a conversation."""
|
|
820
|
-
|
|
821
|
-
def as_dict(self) -> dict:
|
|
822
|
-
"""Serializes the GenieStartConversationMessageRequest into a dictionary suitable for use as a JSON request body."""
|
|
823
|
-
body = {}
|
|
824
|
-
if self.content is not None:
|
|
825
|
-
body["content"] = self.content
|
|
826
|
-
if self.space_id is not None:
|
|
827
|
-
body["space_id"] = self.space_id
|
|
828
|
-
return body
|
|
829
|
-
|
|
830
|
-
def as_shallow_dict(self) -> dict:
|
|
831
|
-
"""Serializes the GenieStartConversationMessageRequest into a shallow dictionary of its immediate attributes."""
|
|
832
|
-
body = {}
|
|
833
|
-
if self.content is not None:
|
|
834
|
-
body["content"] = self.content
|
|
835
|
-
if self.space_id is not None:
|
|
836
|
-
body["space_id"] = self.space_id
|
|
837
|
-
return body
|
|
838
|
-
|
|
839
|
-
@classmethod
|
|
840
|
-
def from_dict(cls, d: Dict[str, Any]) -> GenieStartConversationMessageRequest:
|
|
841
|
-
"""Deserializes the GenieStartConversationMessageRequest from a dictionary."""
|
|
842
|
-
return cls(content=d.get("content", None), space_id=d.get("space_id", None))
|
|
843
|
-
|
|
844
|
-
|
|
845
770
|
@dataclass
|
|
846
771
|
class GenieStartConversationResponse:
|
|
847
772
|
message_id: str
|
|
@@ -1159,102 +1084,6 @@ class MessageStatus(Enum):
|
|
|
1159
1084
|
SUBMITTED = "SUBMITTED"
|
|
1160
1085
|
|
|
1161
1086
|
|
|
1162
|
-
@dataclass
|
|
1163
|
-
class MigrateDashboardRequest:
|
|
1164
|
-
source_dashboard_id: str
|
|
1165
|
-
"""UUID of the dashboard to be migrated."""
|
|
1166
|
-
|
|
1167
|
-
display_name: Optional[str] = None
|
|
1168
|
-
"""Display name for the new Lakeview dashboard."""
|
|
1169
|
-
|
|
1170
|
-
parent_path: Optional[str] = None
|
|
1171
|
-
"""The workspace path of the folder to contain the migrated Lakeview dashboard."""
|
|
1172
|
-
|
|
1173
|
-
update_parameter_syntax: Optional[bool] = None
|
|
1174
|
-
"""Flag to indicate if mustache parameter syntax ({{ param }}) should be auto-updated to named
|
|
1175
|
-
syntax (:param) when converting datasets in the dashboard."""
|
|
1176
|
-
|
|
1177
|
-
def as_dict(self) -> dict:
|
|
1178
|
-
"""Serializes the MigrateDashboardRequest into a dictionary suitable for use as a JSON request body."""
|
|
1179
|
-
body = {}
|
|
1180
|
-
if self.display_name is not None:
|
|
1181
|
-
body["display_name"] = self.display_name
|
|
1182
|
-
if self.parent_path is not None:
|
|
1183
|
-
body["parent_path"] = self.parent_path
|
|
1184
|
-
if self.source_dashboard_id is not None:
|
|
1185
|
-
body["source_dashboard_id"] = self.source_dashboard_id
|
|
1186
|
-
if self.update_parameter_syntax is not None:
|
|
1187
|
-
body["update_parameter_syntax"] = self.update_parameter_syntax
|
|
1188
|
-
return body
|
|
1189
|
-
|
|
1190
|
-
def as_shallow_dict(self) -> dict:
|
|
1191
|
-
"""Serializes the MigrateDashboardRequest into a shallow dictionary of its immediate attributes."""
|
|
1192
|
-
body = {}
|
|
1193
|
-
if self.display_name is not None:
|
|
1194
|
-
body["display_name"] = self.display_name
|
|
1195
|
-
if self.parent_path is not None:
|
|
1196
|
-
body["parent_path"] = self.parent_path
|
|
1197
|
-
if self.source_dashboard_id is not None:
|
|
1198
|
-
body["source_dashboard_id"] = self.source_dashboard_id
|
|
1199
|
-
if self.update_parameter_syntax is not None:
|
|
1200
|
-
body["update_parameter_syntax"] = self.update_parameter_syntax
|
|
1201
|
-
return body
|
|
1202
|
-
|
|
1203
|
-
@classmethod
|
|
1204
|
-
def from_dict(cls, d: Dict[str, Any]) -> MigrateDashboardRequest:
|
|
1205
|
-
"""Deserializes the MigrateDashboardRequest from a dictionary."""
|
|
1206
|
-
return cls(
|
|
1207
|
-
display_name=d.get("display_name", None),
|
|
1208
|
-
parent_path=d.get("parent_path", None),
|
|
1209
|
-
source_dashboard_id=d.get("source_dashboard_id", None),
|
|
1210
|
-
update_parameter_syntax=d.get("update_parameter_syntax", None),
|
|
1211
|
-
)
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
@dataclass
|
|
1215
|
-
class PublishRequest:
|
|
1216
|
-
dashboard_id: Optional[str] = None
|
|
1217
|
-
"""UUID identifying the dashboard to be published."""
|
|
1218
|
-
|
|
1219
|
-
embed_credentials: Optional[bool] = None
|
|
1220
|
-
"""Flag to indicate if the publisher's credentials should be embedded in the published dashboard.
|
|
1221
|
-
These embedded credentials will be used to execute the published dashboard's queries."""
|
|
1222
|
-
|
|
1223
|
-
warehouse_id: Optional[str] = None
|
|
1224
|
-
"""The ID of the warehouse that can be used to override the warehouse which was set in the draft."""
|
|
1225
|
-
|
|
1226
|
-
def as_dict(self) -> dict:
|
|
1227
|
-
"""Serializes the PublishRequest into a dictionary suitable for use as a JSON request body."""
|
|
1228
|
-
body = {}
|
|
1229
|
-
if self.dashboard_id is not None:
|
|
1230
|
-
body["dashboard_id"] = self.dashboard_id
|
|
1231
|
-
if self.embed_credentials is not None:
|
|
1232
|
-
body["embed_credentials"] = self.embed_credentials
|
|
1233
|
-
if self.warehouse_id is not None:
|
|
1234
|
-
body["warehouse_id"] = self.warehouse_id
|
|
1235
|
-
return body
|
|
1236
|
-
|
|
1237
|
-
def as_shallow_dict(self) -> dict:
|
|
1238
|
-
"""Serializes the PublishRequest into a shallow dictionary of its immediate attributes."""
|
|
1239
|
-
body = {}
|
|
1240
|
-
if self.dashboard_id is not None:
|
|
1241
|
-
body["dashboard_id"] = self.dashboard_id
|
|
1242
|
-
if self.embed_credentials is not None:
|
|
1243
|
-
body["embed_credentials"] = self.embed_credentials
|
|
1244
|
-
if self.warehouse_id is not None:
|
|
1245
|
-
body["warehouse_id"] = self.warehouse_id
|
|
1246
|
-
return body
|
|
1247
|
-
|
|
1248
|
-
@classmethod
|
|
1249
|
-
def from_dict(cls, d: Dict[str, Any]) -> PublishRequest:
|
|
1250
|
-
"""Deserializes the PublishRequest from a dictionary."""
|
|
1251
|
-
return cls(
|
|
1252
|
-
dashboard_id=d.get("dashboard_id", None),
|
|
1253
|
-
embed_credentials=d.get("embed_credentials", None),
|
|
1254
|
-
warehouse_id=d.get("warehouse_id", None),
|
|
1255
|
-
)
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
1087
|
@dataclass
|
|
1259
1088
|
class PublishedDashboard:
|
|
1260
1089
|
display_name: Optional[str] = None
|
|
@@ -2549,12 +2378,7 @@ class LakeviewEmbeddedAPI:
|
|
|
2549
2378
|
def get_published_dashboard_token_info(
|
|
2550
2379
|
self, dashboard_id: str, *, external_value: Optional[str] = None, external_viewer_id: Optional[str] = None
|
|
2551
2380
|
) -> GetPublishedDashboardTokenInfoResponse:
|
|
2552
|
-
"""Get a required authorization details and scopes of a published dashboard to mint an OAuth token.
|
|
2553
|
-
`authorization_details` can be enriched to apply additional restriction.
|
|
2554
|
-
|
|
2555
|
-
Example: Adding the following `authorization_details` object to downscope the viewer permission to
|
|
2556
|
-
specific table ``` { type: "unity_catalog_privileges", privileges: ["SELECT"], object_type: "TABLE",
|
|
2557
|
-
object_full_path: "main.default.testdata" } ```
|
|
2381
|
+
"""Get a required authorization details and scopes of a published dashboard to mint an OAuth token.
|
|
2558
2382
|
|
|
2559
2383
|
:param dashboard_id: str
|
|
2560
2384
|
UUID identifying the published dashboard.
|
|
@@ -586,51 +586,6 @@ class DeltaTableSyncInfo:
|
|
|
586
586
|
)
|
|
587
587
|
|
|
588
588
|
|
|
589
|
-
@dataclass
|
|
590
|
-
class GenerateDatabaseCredentialRequest:
|
|
591
|
-
"""Generates a credential that can be used to access database instances"""
|
|
592
|
-
|
|
593
|
-
claims: Optional[List[RequestedClaims]] = None
|
|
594
|
-
"""The returned token will be scoped to the union of instance_names and instances containing the
|
|
595
|
-
specified UC tables, so instance_names is allowed to be empty."""
|
|
596
|
-
|
|
597
|
-
instance_names: Optional[List[str]] = None
|
|
598
|
-
"""Instances to which the token will be scoped."""
|
|
599
|
-
|
|
600
|
-
request_id: Optional[str] = None
|
|
601
|
-
|
|
602
|
-
def as_dict(self) -> dict:
|
|
603
|
-
"""Serializes the GenerateDatabaseCredentialRequest into a dictionary suitable for use as a JSON request body."""
|
|
604
|
-
body = {}
|
|
605
|
-
if self.claims:
|
|
606
|
-
body["claims"] = [v.as_dict() for v in self.claims]
|
|
607
|
-
if self.instance_names:
|
|
608
|
-
body["instance_names"] = [v for v in self.instance_names]
|
|
609
|
-
if self.request_id is not None:
|
|
610
|
-
body["request_id"] = self.request_id
|
|
611
|
-
return body
|
|
612
|
-
|
|
613
|
-
def as_shallow_dict(self) -> dict:
|
|
614
|
-
"""Serializes the GenerateDatabaseCredentialRequest into a shallow dictionary of its immediate attributes."""
|
|
615
|
-
body = {}
|
|
616
|
-
if self.claims:
|
|
617
|
-
body["claims"] = self.claims
|
|
618
|
-
if self.instance_names:
|
|
619
|
-
body["instance_names"] = self.instance_names
|
|
620
|
-
if self.request_id is not None:
|
|
621
|
-
body["request_id"] = self.request_id
|
|
622
|
-
return body
|
|
623
|
-
|
|
624
|
-
@classmethod
|
|
625
|
-
def from_dict(cls, d: Dict[str, Any]) -> GenerateDatabaseCredentialRequest:
|
|
626
|
-
"""Deserializes the GenerateDatabaseCredentialRequest from a dictionary."""
|
|
627
|
-
return cls(
|
|
628
|
-
claims=_repeated_dict(d, "claims", RequestedClaims),
|
|
629
|
-
instance_names=d.get("instance_names", None),
|
|
630
|
-
request_id=d.get("request_id", None),
|
|
631
|
-
)
|
|
632
|
-
|
|
633
|
-
|
|
634
589
|
@dataclass
|
|
635
590
|
class ListDatabaseInstanceRolesResponse:
|
|
636
591
|
database_instance_roles: Optional[List[DatabaseInstanceRole]] = None
|
|
@@ -707,11 +662,15 @@ class NewPipelineSpec:
|
|
|
707
662
|
fields of pipeline are still inferred by table def internally"""
|
|
708
663
|
|
|
709
664
|
storage_catalog: Optional[str] = None
|
|
710
|
-
"""
|
|
665
|
+
"""This field needs to be specified if the destination catalog is a managed postgres catalog.
|
|
666
|
+
|
|
667
|
+
UC catalog for the pipeline to store intermediate files (checkpoints, event logs etc). This
|
|
711
668
|
needs to be a standard catalog where the user has permissions to create Delta tables."""
|
|
712
669
|
|
|
713
670
|
storage_schema: Optional[str] = None
|
|
714
|
-
"""
|
|
671
|
+
"""This field needs to be specified if the destination catalog is a managed postgres catalog.
|
|
672
|
+
|
|
673
|
+
UC schema for the pipeline to store intermediate files (checkpoints, event logs etc). This needs
|
|
715
674
|
to be in the standard catalog where the user has permissions to create Delta tables."""
|
|
716
675
|
|
|
717
676
|
def as_dict(self) -> dict:
|
|
@@ -748,6 +707,13 @@ class ProvisioningInfoState(Enum):
|
|
|
748
707
|
UPDATING = "UPDATING"
|
|
749
708
|
|
|
750
709
|
|
|
710
|
+
class ProvisioningPhase(Enum):
|
|
711
|
+
|
|
712
|
+
PROVISIONING_PHASE_INDEX_SCAN = "PROVISIONING_PHASE_INDEX_SCAN"
|
|
713
|
+
PROVISIONING_PHASE_INDEX_SORT = "PROVISIONING_PHASE_INDEX_SORT"
|
|
714
|
+
PROVISIONING_PHASE_MAIN = "PROVISIONING_PHASE_MAIN"
|
|
715
|
+
|
|
716
|
+
|
|
751
717
|
@dataclass
|
|
752
718
|
class RequestedClaims:
|
|
753
719
|
permission_set: Optional[RequestedClaimsPermissionSet] = None
|
|
@@ -1001,6 +967,9 @@ class SyncedTablePipelineProgress:
|
|
|
1001
967
|
"""The source table Delta version that was last processed by the pipeline. The pipeline may not
|
|
1002
968
|
have completely processed this version yet."""
|
|
1003
969
|
|
|
970
|
+
provisioning_phase: Optional[ProvisioningPhase] = None
|
|
971
|
+
"""The current phase of the data synchronization pipeline."""
|
|
972
|
+
|
|
1004
973
|
sync_progress_completion: Optional[float] = None
|
|
1005
974
|
"""The completion ratio of this update. This is a number between 0 and 1."""
|
|
1006
975
|
|
|
@@ -1017,6 +986,8 @@ class SyncedTablePipelineProgress:
|
|
|
1017
986
|
body["estimated_completion_time_seconds"] = self.estimated_completion_time_seconds
|
|
1018
987
|
if self.latest_version_currently_processing is not None:
|
|
1019
988
|
body["latest_version_currently_processing"] = self.latest_version_currently_processing
|
|
989
|
+
if self.provisioning_phase is not None:
|
|
990
|
+
body["provisioning_phase"] = self.provisioning_phase.value
|
|
1020
991
|
if self.sync_progress_completion is not None:
|
|
1021
992
|
body["sync_progress_completion"] = self.sync_progress_completion
|
|
1022
993
|
if self.synced_row_count is not None:
|
|
@@ -1032,6 +1003,8 @@ class SyncedTablePipelineProgress:
|
|
|
1032
1003
|
body["estimated_completion_time_seconds"] = self.estimated_completion_time_seconds
|
|
1033
1004
|
if self.latest_version_currently_processing is not None:
|
|
1034
1005
|
body["latest_version_currently_processing"] = self.latest_version_currently_processing
|
|
1006
|
+
if self.provisioning_phase is not None:
|
|
1007
|
+
body["provisioning_phase"] = self.provisioning_phase
|
|
1035
1008
|
if self.sync_progress_completion is not None:
|
|
1036
1009
|
body["sync_progress_completion"] = self.sync_progress_completion
|
|
1037
1010
|
if self.synced_row_count is not None:
|
|
@@ -1046,6 +1019,7 @@ class SyncedTablePipelineProgress:
|
|
|
1046
1019
|
return cls(
|
|
1047
1020
|
estimated_completion_time_seconds=d.get("estimated_completion_time_seconds", None),
|
|
1048
1021
|
latest_version_currently_processing=d.get("latest_version_currently_processing", None),
|
|
1022
|
+
provisioning_phase=_enum(d, "provisioning_phase", ProvisioningPhase),
|
|
1049
1023
|
sync_progress_completion=d.get("sync_progress_completion", None),
|
|
1050
1024
|
synced_row_count=d.get("synced_row_count", None),
|
|
1051
1025
|
total_row_count=d.get("total_row_count", None),
|
|
@@ -1144,13 +1118,20 @@ class SyncedTableSpec:
|
|
|
1144
1118
|
do not already exist."""
|
|
1145
1119
|
|
|
1146
1120
|
existing_pipeline_id: Optional[str] = None
|
|
1147
|
-
"""
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1121
|
+
"""At most one of existing_pipeline_id and new_pipeline_spec should be defined.
|
|
1122
|
+
|
|
1123
|
+
If existing_pipeline_id is defined, the synced table will be bin packed into the existing
|
|
1124
|
+
pipeline referenced. This avoids creating a new pipeline and allows sharing existing compute. In
|
|
1125
|
+
this case, the scheduling_policy of this synced table must match the scheduling policy of the
|
|
1126
|
+
existing pipeline."""
|
|
1151
1127
|
|
|
1152
1128
|
new_pipeline_spec: Optional[NewPipelineSpec] = None
|
|
1153
|
-
"""
|
|
1129
|
+
"""At most one of existing_pipeline_id and new_pipeline_spec should be defined.
|
|
1130
|
+
|
|
1131
|
+
If new_pipeline_spec is defined, a new pipeline is created for this synced table. The location
|
|
1132
|
+
pointed to is used to store intermediate files (checkpoints, event logs etc). The caller must
|
|
1133
|
+
have write permissions to create Delta tables in the specified catalog and schema. Again, note
|
|
1134
|
+
this requires write permissions, whereas the source table only requires read permissions."""
|
|
1154
1135
|
|
|
1155
1136
|
primary_key_columns: Optional[List[str]] = None
|
|
1156
1137
|
"""Primary Key columns to be used for data insert/update in the destination."""
|
|
@@ -1769,7 +1750,7 @@ class DatabaseAPI:
|
|
|
1769
1750
|
The name of the instance. This is the unique identifier for the instance.
|
|
1770
1751
|
:param database_instance: :class:`DatabaseInstance`
|
|
1771
1752
|
:param update_mask: str
|
|
1772
|
-
The list of fields to update.
|
|
1753
|
+
The list of fields to update. This field is not yet supported, and is ignored by the server.
|
|
1773
1754
|
|
|
1774
1755
|
:returns: :class:`DatabaseInstance`
|
|
1775
1756
|
"""
|
databricks/sdk/service/files.py
CHANGED
|
@@ -14,38 +14,6 @@ _LOG = logging.getLogger("databricks.sdk")
|
|
|
14
14
|
# all definitions in this file are in alphabetical order
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
@dataclass
|
|
18
|
-
class AddBlock:
|
|
19
|
-
handle: int
|
|
20
|
-
"""The handle on an open stream."""
|
|
21
|
-
|
|
22
|
-
data: str
|
|
23
|
-
"""The base64-encoded data to append to the stream. This has a limit of 1 MB."""
|
|
24
|
-
|
|
25
|
-
def as_dict(self) -> dict:
|
|
26
|
-
"""Serializes the AddBlock into a dictionary suitable for use as a JSON request body."""
|
|
27
|
-
body = {}
|
|
28
|
-
if self.data is not None:
|
|
29
|
-
body["data"] = self.data
|
|
30
|
-
if self.handle is not None:
|
|
31
|
-
body["handle"] = self.handle
|
|
32
|
-
return body
|
|
33
|
-
|
|
34
|
-
def as_shallow_dict(self) -> dict:
|
|
35
|
-
"""Serializes the AddBlock into a shallow dictionary of its immediate attributes."""
|
|
36
|
-
body = {}
|
|
37
|
-
if self.data is not None:
|
|
38
|
-
body["data"] = self.data
|
|
39
|
-
if self.handle is not None:
|
|
40
|
-
body["handle"] = self.handle
|
|
41
|
-
return body
|
|
42
|
-
|
|
43
|
-
@classmethod
|
|
44
|
-
def from_dict(cls, d: Dict[str, Any]) -> AddBlock:
|
|
45
|
-
"""Deserializes the AddBlock from a dictionary."""
|
|
46
|
-
return cls(data=d.get("data", None), handle=d.get("handle", None))
|
|
47
|
-
|
|
48
|
-
|
|
49
17
|
@dataclass
|
|
50
18
|
class AddBlockResponse:
|
|
51
19
|
def as_dict(self) -> dict:
|
|
@@ -64,31 +32,6 @@ class AddBlockResponse:
|
|
|
64
32
|
return cls()
|
|
65
33
|
|
|
66
34
|
|
|
67
|
-
@dataclass
|
|
68
|
-
class Close:
|
|
69
|
-
handle: int
|
|
70
|
-
"""The handle on an open stream."""
|
|
71
|
-
|
|
72
|
-
def as_dict(self) -> dict:
|
|
73
|
-
"""Serializes the Close into a dictionary suitable for use as a JSON request body."""
|
|
74
|
-
body = {}
|
|
75
|
-
if self.handle is not None:
|
|
76
|
-
body["handle"] = self.handle
|
|
77
|
-
return body
|
|
78
|
-
|
|
79
|
-
def as_shallow_dict(self) -> dict:
|
|
80
|
-
"""Serializes the Close into a shallow dictionary of its immediate attributes."""
|
|
81
|
-
body = {}
|
|
82
|
-
if self.handle is not None:
|
|
83
|
-
body["handle"] = self.handle
|
|
84
|
-
return body
|
|
85
|
-
|
|
86
|
-
@classmethod
|
|
87
|
-
def from_dict(cls, d: Dict[str, Any]) -> Close:
|
|
88
|
-
"""Deserializes the Close from a dictionary."""
|
|
89
|
-
return cls(handle=d.get("handle", None))
|
|
90
|
-
|
|
91
|
-
|
|
92
35
|
@dataclass
|
|
93
36
|
class CloseResponse:
|
|
94
37
|
def as_dict(self) -> dict:
|
|
@@ -107,38 +50,6 @@ class CloseResponse:
|
|
|
107
50
|
return cls()
|
|
108
51
|
|
|
109
52
|
|
|
110
|
-
@dataclass
|
|
111
|
-
class Create:
|
|
112
|
-
path: str
|
|
113
|
-
"""The path of the new file. The path should be the absolute DBFS path."""
|
|
114
|
-
|
|
115
|
-
overwrite: Optional[bool] = None
|
|
116
|
-
"""The flag that specifies whether to overwrite existing file/files."""
|
|
117
|
-
|
|
118
|
-
def as_dict(self) -> dict:
|
|
119
|
-
"""Serializes the Create into a dictionary suitable for use as a JSON request body."""
|
|
120
|
-
body = {}
|
|
121
|
-
if self.overwrite is not None:
|
|
122
|
-
body["overwrite"] = self.overwrite
|
|
123
|
-
if self.path is not None:
|
|
124
|
-
body["path"] = self.path
|
|
125
|
-
return body
|
|
126
|
-
|
|
127
|
-
def as_shallow_dict(self) -> dict:
|
|
128
|
-
"""Serializes the Create into a shallow dictionary of its immediate attributes."""
|
|
129
|
-
body = {}
|
|
130
|
-
if self.overwrite is not None:
|
|
131
|
-
body["overwrite"] = self.overwrite
|
|
132
|
-
if self.path is not None:
|
|
133
|
-
body["path"] = self.path
|
|
134
|
-
return body
|
|
135
|
-
|
|
136
|
-
@classmethod
|
|
137
|
-
def from_dict(cls, d: Dict[str, Any]) -> Create:
|
|
138
|
-
"""Deserializes the Create from a dictionary."""
|
|
139
|
-
return cls(overwrite=d.get("overwrite", None), path=d.get("path", None))
|
|
140
|
-
|
|
141
|
-
|
|
142
53
|
@dataclass
|
|
143
54
|
class CreateDirectoryResponse:
|
|
144
55
|
def as_dict(self) -> dict:
|
|
@@ -183,39 +94,6 @@ class CreateResponse:
|
|
|
183
94
|
return cls(handle=d.get("handle", None))
|
|
184
95
|
|
|
185
96
|
|
|
186
|
-
@dataclass
|
|
187
|
-
class Delete:
|
|
188
|
-
path: str
|
|
189
|
-
"""The path of the file or directory to delete. The path should be the absolute DBFS path."""
|
|
190
|
-
|
|
191
|
-
recursive: Optional[bool] = None
|
|
192
|
-
"""Whether or not to recursively delete the directory's contents. Deleting empty directories can be
|
|
193
|
-
done without providing the recursive flag."""
|
|
194
|
-
|
|
195
|
-
def as_dict(self) -> dict:
|
|
196
|
-
"""Serializes the Delete into a dictionary suitable for use as a JSON request body."""
|
|
197
|
-
body = {}
|
|
198
|
-
if self.path is not None:
|
|
199
|
-
body["path"] = self.path
|
|
200
|
-
if self.recursive is not None:
|
|
201
|
-
body["recursive"] = self.recursive
|
|
202
|
-
return body
|
|
203
|
-
|
|
204
|
-
def as_shallow_dict(self) -> dict:
|
|
205
|
-
"""Serializes the Delete into a shallow dictionary of its immediate attributes."""
|
|
206
|
-
body = {}
|
|
207
|
-
if self.path is not None:
|
|
208
|
-
body["path"] = self.path
|
|
209
|
-
if self.recursive is not None:
|
|
210
|
-
body["recursive"] = self.recursive
|
|
211
|
-
return body
|
|
212
|
-
|
|
213
|
-
@classmethod
|
|
214
|
-
def from_dict(cls, d: Dict[str, Any]) -> Delete:
|
|
215
|
-
"""Deserializes the Delete from a dictionary."""
|
|
216
|
-
return cls(path=d.get("path", None), recursive=d.get("recursive", None))
|
|
217
|
-
|
|
218
|
-
|
|
219
97
|
@dataclass
|
|
220
98
|
class DeleteDirectoryResponse:
|
|
221
99
|
def as_dict(self) -> dict:
|
|
@@ -530,31 +408,6 @@ class ListStatusResponse:
|
|
|
530
408
|
return cls(files=_repeated_dict(d, "files", FileInfo))
|
|
531
409
|
|
|
532
410
|
|
|
533
|
-
@dataclass
|
|
534
|
-
class MkDirs:
|
|
535
|
-
path: str
|
|
536
|
-
"""The path of the new directory. The path should be the absolute DBFS path."""
|
|
537
|
-
|
|
538
|
-
def as_dict(self) -> dict:
|
|
539
|
-
"""Serializes the MkDirs into a dictionary suitable for use as a JSON request body."""
|
|
540
|
-
body = {}
|
|
541
|
-
if self.path is not None:
|
|
542
|
-
body["path"] = self.path
|
|
543
|
-
return body
|
|
544
|
-
|
|
545
|
-
def as_shallow_dict(self) -> dict:
|
|
546
|
-
"""Serializes the MkDirs into a shallow dictionary of its immediate attributes."""
|
|
547
|
-
body = {}
|
|
548
|
-
if self.path is not None:
|
|
549
|
-
body["path"] = self.path
|
|
550
|
-
return body
|
|
551
|
-
|
|
552
|
-
@classmethod
|
|
553
|
-
def from_dict(cls, d: Dict[str, Any]) -> MkDirs:
|
|
554
|
-
"""Deserializes the MkDirs from a dictionary."""
|
|
555
|
-
return cls(path=d.get("path", None))
|
|
556
|
-
|
|
557
|
-
|
|
558
411
|
@dataclass
|
|
559
412
|
class MkDirsResponse:
|
|
560
413
|
def as_dict(self) -> dict:
|
|
@@ -573,38 +426,6 @@ class MkDirsResponse:
|
|
|
573
426
|
return cls()
|
|
574
427
|
|
|
575
428
|
|
|
576
|
-
@dataclass
|
|
577
|
-
class Move:
|
|
578
|
-
source_path: str
|
|
579
|
-
"""The source path of the file or directory. The path should be the absolute DBFS path."""
|
|
580
|
-
|
|
581
|
-
destination_path: str
|
|
582
|
-
"""The destination path of the file or directory. The path should be the absolute DBFS path."""
|
|
583
|
-
|
|
584
|
-
def as_dict(self) -> dict:
|
|
585
|
-
"""Serializes the Move into a dictionary suitable for use as a JSON request body."""
|
|
586
|
-
body = {}
|
|
587
|
-
if self.destination_path is not None:
|
|
588
|
-
body["destination_path"] = self.destination_path
|
|
589
|
-
if self.source_path is not None:
|
|
590
|
-
body["source_path"] = self.source_path
|
|
591
|
-
return body
|
|
592
|
-
|
|
593
|
-
def as_shallow_dict(self) -> dict:
|
|
594
|
-
"""Serializes the Move into a shallow dictionary of its immediate attributes."""
|
|
595
|
-
body = {}
|
|
596
|
-
if self.destination_path is not None:
|
|
597
|
-
body["destination_path"] = self.destination_path
|
|
598
|
-
if self.source_path is not None:
|
|
599
|
-
body["source_path"] = self.source_path
|
|
600
|
-
return body
|
|
601
|
-
|
|
602
|
-
@classmethod
|
|
603
|
-
def from_dict(cls, d: Dict[str, Any]) -> Move:
|
|
604
|
-
"""Deserializes the Move from a dictionary."""
|
|
605
|
-
return cls(destination_path=d.get("destination_path", None), source_path=d.get("source_path", None))
|
|
606
|
-
|
|
607
|
-
|
|
608
429
|
@dataclass
|
|
609
430
|
class MoveResponse:
|
|
610
431
|
def as_dict(self) -> dict:
|
|
@@ -623,45 +444,6 @@ class MoveResponse:
|
|
|
623
444
|
return cls()
|
|
624
445
|
|
|
625
446
|
|
|
626
|
-
@dataclass
|
|
627
|
-
class Put:
|
|
628
|
-
path: str
|
|
629
|
-
"""The path of the new file. The path should be the absolute DBFS path."""
|
|
630
|
-
|
|
631
|
-
contents: Optional[str] = None
|
|
632
|
-
"""This parameter might be absent, and instead a posted file will be used."""
|
|
633
|
-
|
|
634
|
-
overwrite: Optional[bool] = None
|
|
635
|
-
"""The flag that specifies whether to overwrite existing file/files."""
|
|
636
|
-
|
|
637
|
-
def as_dict(self) -> dict:
|
|
638
|
-
"""Serializes the Put into a dictionary suitable for use as a JSON request body."""
|
|
639
|
-
body = {}
|
|
640
|
-
if self.contents is not None:
|
|
641
|
-
body["contents"] = self.contents
|
|
642
|
-
if self.overwrite is not None:
|
|
643
|
-
body["overwrite"] = self.overwrite
|
|
644
|
-
if self.path is not None:
|
|
645
|
-
body["path"] = self.path
|
|
646
|
-
return body
|
|
647
|
-
|
|
648
|
-
def as_shallow_dict(self) -> dict:
|
|
649
|
-
"""Serializes the Put into a shallow dictionary of its immediate attributes."""
|
|
650
|
-
body = {}
|
|
651
|
-
if self.contents is not None:
|
|
652
|
-
body["contents"] = self.contents
|
|
653
|
-
if self.overwrite is not None:
|
|
654
|
-
body["overwrite"] = self.overwrite
|
|
655
|
-
if self.path is not None:
|
|
656
|
-
body["path"] = self.path
|
|
657
|
-
return body
|
|
658
|
-
|
|
659
|
-
@classmethod
|
|
660
|
-
def from_dict(cls, d: Dict[str, Any]) -> Put:
|
|
661
|
-
"""Deserializes the Put from a dictionary."""
|
|
662
|
-
return cls(contents=d.get("contents", None), overwrite=d.get("overwrite", None), path=d.get("path", None))
|
|
663
|
-
|
|
664
|
-
|
|
665
447
|
@dataclass
|
|
666
448
|
class PutResponse:
|
|
667
449
|
def as_dict(self) -> dict:
|
|
@@ -1097,6 +879,7 @@ class FilesAPI:
|
|
|
1097
879
|
headers = {
|
|
1098
880
|
"Accept": "application/octet-stream",
|
|
1099
881
|
}
|
|
882
|
+
|
|
1100
883
|
response_headers = [
|
|
1101
884
|
"content-length",
|
|
1102
885
|
"content-type",
|
|
@@ -1142,6 +925,7 @@ class FilesAPI:
|
|
|
1142
925
|
"""
|
|
1143
926
|
|
|
1144
927
|
headers = {}
|
|
928
|
+
|
|
1145
929
|
response_headers = [
|
|
1146
930
|
"content-length",
|
|
1147
931
|
"content-type",
|