databricks-sdk 0.61.0__tar.gz → 0.62.0__tar.gz
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-0.61.0 → databricks_sdk-0.62.0}/CHANGELOG.md +20 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/PKG-INFO +1 -1
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/config.py +15 -2
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/apps.py +4 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/dashboards.py +8 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/database.py +19 -1
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/jobs.py +77 -1
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/serving.py +80 -14
- databricks_sdk-0.62.0/databricks/sdk/version.py +1 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks_sdk.egg-info/PKG-INFO +1 -1
- databricks_sdk-0.61.0/databricks/sdk/version.py +0 -1
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/CONTRIBUTING.md +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/DCO +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/LICENSE +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/MANIFEST.in +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/Makefile +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/NOTICE +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/README.md +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/SECURITY.md +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/__init__.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/__init__.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/_base_client.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/_property.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/_widgets/__init__.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/_widgets/default_widgets_utils.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/_widgets/ipywidgets_utils.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/azure.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/casing.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/clock.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/core.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/credentials_provider.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/data_plane.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/dbutils.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/environments.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/errors/__init__.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/errors/base.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/errors/customizer.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/errors/deserializer.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/errors/details.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/errors/mapper.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/errors/overrides.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/errors/parser.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/errors/platform.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/errors/private_link.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/errors/sdk.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/logger/__init__.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/logger/round_trip_logger.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/mixins/__init__.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/mixins/compute.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/mixins/files.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/mixins/jobs.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/mixins/open_ai_client.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/mixins/workspace.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/oauth.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/oidc.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/oidc_token_supplier.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/py.typed +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/retries.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/runtime/__init__.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/runtime/dbutils_stub.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/__init__.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/_internal.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/agentbricks.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/billing.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/catalog.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/cleanrooms.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/compute.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/files.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/iam.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/marketplace.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/ml.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/oauth2.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/pipelines.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/provisioning.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/qualitymonitorv2.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/settings.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/sharing.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/sql.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/vectorsearch.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/service/workspace.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/useragent.py +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks_sdk.egg-info/SOURCES.txt +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks_sdk.egg-info/dependency_links.txt +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks_sdk.egg-info/requires.txt +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks_sdk.egg-info/top_level.txt +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/pyproject.toml +0 -0
- {databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/setup.cfg +0 -0
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# Version changelog
|
|
2
2
|
|
|
3
|
+
## Release v0.62.0
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* Fix `Config.oauth_token()` to avoid re-creating a new `CredentialsProvider` at each call. This fix indirectly makes `oauth_token()` benefit from the internal caching mechanism of some providers.
|
|
8
|
+
|
|
9
|
+
### API Changes
|
|
10
|
+
* Added `statement_id_signature` field for `databricks.sdk.service.dashboards.Result`.
|
|
11
|
+
* Added `effective_database_instance_name` and `effective_logical_database_name` fields for `databricks.sdk.service.database.SyncedDatabaseTable`.
|
|
12
|
+
* Added `table` field for `databricks.sdk.service.jobs.TriggerStateProto`.
|
|
13
|
+
* Added `email_notifications` field for `databricks.sdk.service.serving.CreatePtEndpointRequest`.
|
|
14
|
+
* Added `email_notifications` field for `databricks.sdk.service.serving.CreateServingEndpoint`.
|
|
15
|
+
* Added `email_notifications` field for `databricks.sdk.service.serving.ServingEndpointDetailed`.
|
|
16
|
+
* [Breaking] Changed `list()` method for [w.consumer_providers](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/marketplace/consumer_providers.html) workspace-level service . New request type is `databricks.sdk.service.marketplace.ListConsumerProvidersRequest` dataclass.
|
|
17
|
+
* [Breaking] Changed `create()` method for [a.private_access](https://databricks-sdk-py.readthedocs.io/en/latest/account/provisioning/private_access.html) account-level service with new required argument order.
|
|
18
|
+
* [Breaking] Changed `create()` method for [a.private_access](https://databricks-sdk-py.readthedocs.io/en/latest/account/provisioning/private_access.html) account-level service . New request type is `databricks.sdk.service.provisioning.CreatePrivateAccessSettingsRequest` dataclass.
|
|
19
|
+
* [Breaking] Changed `replace()` method for [a.private_access](https://databricks-sdk-py.readthedocs.io/en/latest/account/provisioning/private_access.html) account-level service . New request type is `databricks.sdk.service.provisioning.ReplacePrivateAccessSettingsRequest` dataclass.
|
|
20
|
+
* [Breaking] Removed `is_featured` field for `databricks.sdk.service.marketplace.ListProvidersRequest`.
|
|
21
|
+
|
|
22
|
+
|
|
3
23
|
## Release v0.61.0
|
|
4
24
|
|
|
5
25
|
### API Changes
|
|
@@ -13,7 +13,8 @@ import requests
|
|
|
13
13
|
from . import useragent
|
|
14
14
|
from ._base_client import _fix_host_if_needed
|
|
15
15
|
from .clock import Clock, RealClock
|
|
16
|
-
from .credentials_provider import CredentialsStrategy, DefaultCredentials
|
|
16
|
+
from .credentials_provider import (CredentialsStrategy, DefaultCredentials,
|
|
17
|
+
OAuthCredentialsProvider)
|
|
17
18
|
from .environments import (ALL_ENVS, AzureEnvironment, Cloud,
|
|
18
19
|
DatabricksEnvironment, get_environment_for_hostname)
|
|
19
20
|
from .oauth import (OidcEndpoints, Token, get_account_endpoints,
|
|
@@ -200,7 +201,19 @@ class Config:
|
|
|
200
201
|
raise ValueError(message) from e
|
|
201
202
|
|
|
202
203
|
def oauth_token(self) -> Token:
|
|
203
|
-
|
|
204
|
+
"""Returns the OAuth token from the current credential provider.
|
|
205
|
+
|
|
206
|
+
This method only works when using OAuth-based authentication methods.
|
|
207
|
+
If the current credential provider is an OAuthCredentialsProvider, it reuses
|
|
208
|
+
the existing provider. Otherwise, it raises a ValueError indicating that
|
|
209
|
+
OAuth tokens are not available for the current authentication method.
|
|
210
|
+
"""
|
|
211
|
+
if isinstance(self._header_factory, OAuthCredentialsProvider):
|
|
212
|
+
return self._header_factory.oauth_token()
|
|
213
|
+
raise ValueError(
|
|
214
|
+
f"OAuth tokens are not available for {self.auth_type} authentication. "
|
|
215
|
+
f"Use an OAuth-based authentication method to access OAuth tokens."
|
|
216
|
+
)
|
|
204
217
|
|
|
205
218
|
def wrap_debug_info(self, message: str) -> str:
|
|
206
219
|
debug_string = self.debug_string()
|
|
@@ -32,6 +32,8 @@ class App:
|
|
|
32
32
|
app_status: Optional[ApplicationStatus] = None
|
|
33
33
|
|
|
34
34
|
budget_policy_id: Optional[str] = None
|
|
35
|
+
"""TODO: Deprecate this field after serverless entitlements are released to all prod stages and the
|
|
36
|
+
new usage_policy_id is properly populated and used."""
|
|
35
37
|
|
|
36
38
|
compute_status: Optional[ComputeStatus] = None
|
|
37
39
|
|
|
@@ -49,6 +51,8 @@ class App:
|
|
|
49
51
|
"""The description of the app."""
|
|
50
52
|
|
|
51
53
|
effective_budget_policy_id: Optional[str] = None
|
|
54
|
+
"""TODO: Deprecate this field after serverless entitlements are released to all prod stages and the
|
|
55
|
+
new usage_policy_id is properly populated and used."""
|
|
52
56
|
|
|
53
57
|
effective_user_api_scopes: Optional[List[str]] = None
|
|
54
58
|
"""The effective api scopes granted to the user access token."""
|
|
@@ -1148,6 +1148,9 @@ class Result:
|
|
|
1148
1148
|
"""Statement Execution API statement id. Use [Get status, manifest, and result first
|
|
1149
1149
|
chunk](:method:statementexecution/getstatement) to get the full result data."""
|
|
1150
1150
|
|
|
1151
|
+
statement_id_signature: Optional[str] = None
|
|
1152
|
+
"""JWT corresponding to the statement contained in this result"""
|
|
1153
|
+
|
|
1151
1154
|
def as_dict(self) -> dict:
|
|
1152
1155
|
"""Serializes the Result into a dictionary suitable for use as a JSON request body."""
|
|
1153
1156
|
body = {}
|
|
@@ -1157,6 +1160,8 @@ class Result:
|
|
|
1157
1160
|
body["row_count"] = self.row_count
|
|
1158
1161
|
if self.statement_id is not None:
|
|
1159
1162
|
body["statement_id"] = self.statement_id
|
|
1163
|
+
if self.statement_id_signature is not None:
|
|
1164
|
+
body["statement_id_signature"] = self.statement_id_signature
|
|
1160
1165
|
return body
|
|
1161
1166
|
|
|
1162
1167
|
def as_shallow_dict(self) -> dict:
|
|
@@ -1168,6 +1173,8 @@ class Result:
|
|
|
1168
1173
|
body["row_count"] = self.row_count
|
|
1169
1174
|
if self.statement_id is not None:
|
|
1170
1175
|
body["statement_id"] = self.statement_id
|
|
1176
|
+
if self.statement_id_signature is not None:
|
|
1177
|
+
body["statement_id_signature"] = self.statement_id_signature
|
|
1171
1178
|
return body
|
|
1172
1179
|
|
|
1173
1180
|
@classmethod
|
|
@@ -1177,6 +1184,7 @@ class Result:
|
|
|
1177
1184
|
is_truncated=d.get("is_truncated", None),
|
|
1178
1185
|
row_count=d.get("row_count", None),
|
|
1179
1186
|
statement_id=d.get("statement_id", None),
|
|
1187
|
+
statement_id_signature=d.get("statement_id_signature", None),
|
|
1180
1188
|
)
|
|
1181
1189
|
|
|
1182
1190
|
|
|
@@ -790,7 +790,7 @@ class RequestedResource:
|
|
|
790
790
|
|
|
791
791
|
@dataclass
|
|
792
792
|
class SyncedDatabaseTable:
|
|
793
|
-
"""Next field marker:
|
|
793
|
+
"""Next field marker: 14"""
|
|
794
794
|
|
|
795
795
|
name: str
|
|
796
796
|
"""Full three-part (catalog, schema, table) name of the table."""
|
|
@@ -805,6 +805,14 @@ class SyncedDatabaseTable:
|
|
|
805
805
|
database instance name MUST match that of the registered catalog (or the request will be
|
|
806
806
|
rejected)."""
|
|
807
807
|
|
|
808
|
+
effective_database_instance_name: Optional[str] = None
|
|
809
|
+
"""The name of the database instance that this table is registered to. This field is always
|
|
810
|
+
returned, and for tables inside database catalogs is inferred database instance associated with
|
|
811
|
+
the catalog."""
|
|
812
|
+
|
|
813
|
+
effective_logical_database_name: Optional[str] = None
|
|
814
|
+
"""The name of the logical database that this table is registered to."""
|
|
815
|
+
|
|
808
816
|
logical_database_name: Optional[str] = None
|
|
809
817
|
"""Target Postgres database object (logical database) name for this table.
|
|
810
818
|
|
|
@@ -831,6 +839,10 @@ class SyncedDatabaseTable:
|
|
|
831
839
|
body["data_synchronization_status"] = self.data_synchronization_status.as_dict()
|
|
832
840
|
if self.database_instance_name is not None:
|
|
833
841
|
body["database_instance_name"] = self.database_instance_name
|
|
842
|
+
if self.effective_database_instance_name is not None:
|
|
843
|
+
body["effective_database_instance_name"] = self.effective_database_instance_name
|
|
844
|
+
if self.effective_logical_database_name is not None:
|
|
845
|
+
body["effective_logical_database_name"] = self.effective_logical_database_name
|
|
834
846
|
if self.logical_database_name is not None:
|
|
835
847
|
body["logical_database_name"] = self.logical_database_name
|
|
836
848
|
if self.name is not None:
|
|
@@ -848,6 +860,10 @@ class SyncedDatabaseTable:
|
|
|
848
860
|
body["data_synchronization_status"] = self.data_synchronization_status
|
|
849
861
|
if self.database_instance_name is not None:
|
|
850
862
|
body["database_instance_name"] = self.database_instance_name
|
|
863
|
+
if self.effective_database_instance_name is not None:
|
|
864
|
+
body["effective_database_instance_name"] = self.effective_database_instance_name
|
|
865
|
+
if self.effective_logical_database_name is not None:
|
|
866
|
+
body["effective_logical_database_name"] = self.effective_logical_database_name
|
|
851
867
|
if self.logical_database_name is not None:
|
|
852
868
|
body["logical_database_name"] = self.logical_database_name
|
|
853
869
|
if self.name is not None:
|
|
@@ -864,6 +880,8 @@ class SyncedDatabaseTable:
|
|
|
864
880
|
return cls(
|
|
865
881
|
data_synchronization_status=_from_dict(d, "data_synchronization_status", SyncedTableStatus),
|
|
866
882
|
database_instance_name=d.get("database_instance_name", None),
|
|
883
|
+
effective_database_instance_name=d.get("effective_database_instance_name", None),
|
|
884
|
+
effective_logical_database_name=d.get("effective_logical_database_name", None),
|
|
867
885
|
logical_database_name=d.get("logical_database_name", None),
|
|
868
886
|
name=d.get("name", None),
|
|
869
887
|
spec=_from_dict(d, "spec", SyncedTableSpec),
|
|
@@ -7223,6 +7223,73 @@ class SubscriptionSubscriber:
|
|
|
7223
7223
|
return cls(destination_id=d.get("destination_id", None), user_name=d.get("user_name", None))
|
|
7224
7224
|
|
|
7225
7225
|
|
|
7226
|
+
@dataclass
|
|
7227
|
+
class TableState:
|
|
7228
|
+
has_seen_updates: Optional[bool] = None
|
|
7229
|
+
"""Whether or not the table has seen updates since either the creation of the trigger or the last
|
|
7230
|
+
successful evaluation of the trigger"""
|
|
7231
|
+
|
|
7232
|
+
table_name: Optional[str] = None
|
|
7233
|
+
"""Full table name of the table to monitor, e.g. `mycatalog.myschema.mytable`"""
|
|
7234
|
+
|
|
7235
|
+
def as_dict(self) -> dict:
|
|
7236
|
+
"""Serializes the TableState into a dictionary suitable for use as a JSON request body."""
|
|
7237
|
+
body = {}
|
|
7238
|
+
if self.has_seen_updates is not None:
|
|
7239
|
+
body["has_seen_updates"] = self.has_seen_updates
|
|
7240
|
+
if self.table_name is not None:
|
|
7241
|
+
body["table_name"] = self.table_name
|
|
7242
|
+
return body
|
|
7243
|
+
|
|
7244
|
+
def as_shallow_dict(self) -> dict:
|
|
7245
|
+
"""Serializes the TableState into a shallow dictionary of its immediate attributes."""
|
|
7246
|
+
body = {}
|
|
7247
|
+
if self.has_seen_updates is not None:
|
|
7248
|
+
body["has_seen_updates"] = self.has_seen_updates
|
|
7249
|
+
if self.table_name is not None:
|
|
7250
|
+
body["table_name"] = self.table_name
|
|
7251
|
+
return body
|
|
7252
|
+
|
|
7253
|
+
@classmethod
|
|
7254
|
+
def from_dict(cls, d: Dict[str, Any]) -> TableState:
|
|
7255
|
+
"""Deserializes the TableState from a dictionary."""
|
|
7256
|
+
return cls(has_seen_updates=d.get("has_seen_updates", None), table_name=d.get("table_name", None))
|
|
7257
|
+
|
|
7258
|
+
|
|
7259
|
+
@dataclass
|
|
7260
|
+
class TableTriggerState:
|
|
7261
|
+
last_seen_table_states: Optional[List[TableState]] = None
|
|
7262
|
+
|
|
7263
|
+
using_scalable_monitoring: Optional[bool] = None
|
|
7264
|
+
"""Indicates whether the trigger is using scalable monitoring."""
|
|
7265
|
+
|
|
7266
|
+
def as_dict(self) -> dict:
|
|
7267
|
+
"""Serializes the TableTriggerState into a dictionary suitable for use as a JSON request body."""
|
|
7268
|
+
body = {}
|
|
7269
|
+
if self.last_seen_table_states:
|
|
7270
|
+
body["last_seen_table_states"] = [v.as_dict() for v in self.last_seen_table_states]
|
|
7271
|
+
if self.using_scalable_monitoring is not None:
|
|
7272
|
+
body["using_scalable_monitoring"] = self.using_scalable_monitoring
|
|
7273
|
+
return body
|
|
7274
|
+
|
|
7275
|
+
def as_shallow_dict(self) -> dict:
|
|
7276
|
+
"""Serializes the TableTriggerState into a shallow dictionary of its immediate attributes."""
|
|
7277
|
+
body = {}
|
|
7278
|
+
if self.last_seen_table_states:
|
|
7279
|
+
body["last_seen_table_states"] = self.last_seen_table_states
|
|
7280
|
+
if self.using_scalable_monitoring is not None:
|
|
7281
|
+
body["using_scalable_monitoring"] = self.using_scalable_monitoring
|
|
7282
|
+
return body
|
|
7283
|
+
|
|
7284
|
+
@classmethod
|
|
7285
|
+
def from_dict(cls, d: Dict[str, Any]) -> TableTriggerState:
|
|
7286
|
+
"""Deserializes the TableTriggerState from a dictionary."""
|
|
7287
|
+
return cls(
|
|
7288
|
+
last_seen_table_states=_repeated_dict(d, "last_seen_table_states", TableState),
|
|
7289
|
+
using_scalable_monitoring=d.get("using_scalable_monitoring", None),
|
|
7290
|
+
)
|
|
7291
|
+
|
|
7292
|
+
|
|
7226
7293
|
@dataclass
|
|
7227
7294
|
class TableUpdateTriggerConfiguration:
|
|
7228
7295
|
condition: Optional[Condition] = None
|
|
@@ -7993,11 +8060,15 @@ class TriggerSettings:
|
|
|
7993
8060
|
class TriggerStateProto:
|
|
7994
8061
|
file_arrival: Optional[FileArrivalTriggerState] = None
|
|
7995
8062
|
|
|
8063
|
+
table: Optional[TableTriggerState] = None
|
|
8064
|
+
|
|
7996
8065
|
def as_dict(self) -> dict:
|
|
7997
8066
|
"""Serializes the TriggerStateProto into a dictionary suitable for use as a JSON request body."""
|
|
7998
8067
|
body = {}
|
|
7999
8068
|
if self.file_arrival:
|
|
8000
8069
|
body["file_arrival"] = self.file_arrival.as_dict()
|
|
8070
|
+
if self.table:
|
|
8071
|
+
body["table"] = self.table.as_dict()
|
|
8001
8072
|
return body
|
|
8002
8073
|
|
|
8003
8074
|
def as_shallow_dict(self) -> dict:
|
|
@@ -8005,12 +8076,17 @@ class TriggerStateProto:
|
|
|
8005
8076
|
body = {}
|
|
8006
8077
|
if self.file_arrival:
|
|
8007
8078
|
body["file_arrival"] = self.file_arrival
|
|
8079
|
+
if self.table:
|
|
8080
|
+
body["table"] = self.table
|
|
8008
8081
|
return body
|
|
8009
8082
|
|
|
8010
8083
|
@classmethod
|
|
8011
8084
|
def from_dict(cls, d: Dict[str, Any]) -> TriggerStateProto:
|
|
8012
8085
|
"""Deserializes the TriggerStateProto from a dictionary."""
|
|
8013
|
-
return cls(
|
|
8086
|
+
return cls(
|
|
8087
|
+
file_arrival=_from_dict(d, "file_arrival", FileArrivalTriggerState),
|
|
8088
|
+
table=_from_dict(d, "table", TableTriggerState),
|
|
8089
|
+
)
|
|
8014
8090
|
|
|
8015
8091
|
|
|
8016
8092
|
class TriggerType(Enum):
|
|
@@ -990,10 +990,13 @@ class DatabricksModelServingConfig:
|
|
|
990
990
|
@dataclass
|
|
991
991
|
class DataframeSplitInput:
|
|
992
992
|
columns: Optional[List[Any]] = None
|
|
993
|
+
"""Columns array for the dataframe"""
|
|
993
994
|
|
|
994
995
|
data: Optional[List[Any]] = None
|
|
996
|
+
"""Data array for the dataframe"""
|
|
995
997
|
|
|
996
998
|
index: Optional[List[int]] = None
|
|
999
|
+
"""Index array for the dataframe"""
|
|
997
1000
|
|
|
998
1001
|
def as_dict(self) -> dict:
|
|
999
1002
|
"""Serializes the DataframeSplitInput into a dictionary suitable for use as a JSON request body."""
|
|
@@ -1041,9 +1044,46 @@ class DeleteResponse:
|
|
|
1041
1044
|
return cls()
|
|
1042
1045
|
|
|
1043
1046
|
|
|
1047
|
+
@dataclass
|
|
1048
|
+
class EmailNotifications:
|
|
1049
|
+
on_update_failure: Optional[List[str]] = None
|
|
1050
|
+
"""A list of email addresses to be notified when an endpoint fails to update its configuration or
|
|
1051
|
+
state."""
|
|
1052
|
+
|
|
1053
|
+
on_update_success: Optional[List[str]] = None
|
|
1054
|
+
"""A list of email addresses to be notified when an endpoint successfully updates its configuration
|
|
1055
|
+
or state."""
|
|
1056
|
+
|
|
1057
|
+
def as_dict(self) -> dict:
|
|
1058
|
+
"""Serializes the EmailNotifications into a dictionary suitable for use as a JSON request body."""
|
|
1059
|
+
body = {}
|
|
1060
|
+
if self.on_update_failure:
|
|
1061
|
+
body["on_update_failure"] = [v for v in self.on_update_failure]
|
|
1062
|
+
if self.on_update_success:
|
|
1063
|
+
body["on_update_success"] = [v for v in self.on_update_success]
|
|
1064
|
+
return body
|
|
1065
|
+
|
|
1066
|
+
def as_shallow_dict(self) -> dict:
|
|
1067
|
+
"""Serializes the EmailNotifications into a shallow dictionary of its immediate attributes."""
|
|
1068
|
+
body = {}
|
|
1069
|
+
if self.on_update_failure:
|
|
1070
|
+
body["on_update_failure"] = self.on_update_failure
|
|
1071
|
+
if self.on_update_success:
|
|
1072
|
+
body["on_update_success"] = self.on_update_success
|
|
1073
|
+
return body
|
|
1074
|
+
|
|
1075
|
+
@classmethod
|
|
1076
|
+
def from_dict(cls, d: Dict[str, Any]) -> EmailNotifications:
|
|
1077
|
+
"""Deserializes the EmailNotifications from a dictionary."""
|
|
1078
|
+
return cls(
|
|
1079
|
+
on_update_failure=d.get("on_update_failure", None), on_update_success=d.get("on_update_success", None)
|
|
1080
|
+
)
|
|
1081
|
+
|
|
1082
|
+
|
|
1044
1083
|
@dataclass
|
|
1045
1084
|
class EmbeddingsV1ResponseEmbeddingElement:
|
|
1046
1085
|
embedding: Optional[List[float]] = None
|
|
1086
|
+
"""The embedding vector"""
|
|
1047
1087
|
|
|
1048
1088
|
index: Optional[int] = None
|
|
1049
1089
|
"""The index of the embedding in the response."""
|
|
@@ -3262,11 +3302,11 @@ class ServedModelState:
|
|
|
3262
3302
|
|
|
3263
3303
|
class ServedModelStateDeployment(Enum):
|
|
3264
3304
|
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3305
|
+
DEPLOYMENT_ABORTED = "DEPLOYMENT_ABORTED"
|
|
3306
|
+
DEPLOYMENT_CREATING = "DEPLOYMENT_CREATING"
|
|
3307
|
+
DEPLOYMENT_FAILED = "DEPLOYMENT_FAILED"
|
|
3308
|
+
DEPLOYMENT_READY = "DEPLOYMENT_READY"
|
|
3309
|
+
DEPLOYMENT_RECOVERING = "DEPLOYMENT_RECOVERING"
|
|
3270
3310
|
|
|
3271
3311
|
|
|
3272
3312
|
@dataclass
|
|
@@ -3545,6 +3585,9 @@ class ServingEndpointDetailed:
|
|
|
3545
3585
|
description: Optional[str] = None
|
|
3546
3586
|
"""Description of the serving model"""
|
|
3547
3587
|
|
|
3588
|
+
email_notifications: Optional[EmailNotifications] = None
|
|
3589
|
+
"""Email notification settings."""
|
|
3590
|
+
|
|
3548
3591
|
endpoint_url: Optional[str] = None
|
|
3549
3592
|
"""Endpoint invocation url if route optimization is enabled for endpoint"""
|
|
3550
3593
|
|
|
@@ -3593,6 +3636,8 @@ class ServingEndpointDetailed:
|
|
|
3593
3636
|
body["data_plane_info"] = self.data_plane_info.as_dict()
|
|
3594
3637
|
if self.description is not None:
|
|
3595
3638
|
body["description"] = self.description
|
|
3639
|
+
if self.email_notifications:
|
|
3640
|
+
body["email_notifications"] = self.email_notifications.as_dict()
|
|
3596
3641
|
if self.endpoint_url is not None:
|
|
3597
3642
|
body["endpoint_url"] = self.endpoint_url
|
|
3598
3643
|
if self.id is not None:
|
|
@@ -3632,6 +3677,8 @@ class ServingEndpointDetailed:
|
|
|
3632
3677
|
body["data_plane_info"] = self.data_plane_info
|
|
3633
3678
|
if self.description is not None:
|
|
3634
3679
|
body["description"] = self.description
|
|
3680
|
+
if self.email_notifications:
|
|
3681
|
+
body["email_notifications"] = self.email_notifications
|
|
3635
3682
|
if self.endpoint_url is not None:
|
|
3636
3683
|
body["endpoint_url"] = self.endpoint_url
|
|
3637
3684
|
if self.id is not None:
|
|
@@ -3665,6 +3712,7 @@ class ServingEndpointDetailed:
|
|
|
3665
3712
|
creator=d.get("creator", None),
|
|
3666
3713
|
data_plane_info=_from_dict(d, "data_plane_info", ModelDataPlaneInfo),
|
|
3667
3714
|
description=d.get("description", None),
|
|
3715
|
+
email_notifications=_from_dict(d, "email_notifications", EmailNotifications),
|
|
3668
3716
|
endpoint_url=d.get("endpoint_url", None),
|
|
3669
3717
|
id=d.get("id", None),
|
|
3670
3718
|
last_updated_timestamp=d.get("last_updated_timestamp", None),
|
|
@@ -3978,6 +4026,7 @@ class ServingEndpointsAPI:
|
|
|
3978
4026
|
budget_policy_id: Optional[str] = None,
|
|
3979
4027
|
config: Optional[EndpointCoreConfigInput] = None,
|
|
3980
4028
|
description: Optional[str] = None,
|
|
4029
|
+
email_notifications: Optional[EmailNotifications] = None,
|
|
3981
4030
|
rate_limits: Optional[List[RateLimit]] = None,
|
|
3982
4031
|
route_optimized: Optional[bool] = None,
|
|
3983
4032
|
tags: Optional[List[EndpointTag]] = None,
|
|
@@ -3996,6 +4045,8 @@ class ServingEndpointsAPI:
|
|
|
3996
4045
|
:param config: :class:`EndpointCoreConfigInput` (optional)
|
|
3997
4046
|
The core config of the serving endpoint.
|
|
3998
4047
|
:param description: str (optional)
|
|
4048
|
+
:param email_notifications: :class:`EmailNotifications` (optional)
|
|
4049
|
+
Email notification settings.
|
|
3999
4050
|
:param rate_limits: List[:class:`RateLimit`] (optional)
|
|
4000
4051
|
Rate limits to be applied to the serving endpoint. NOTE: this field is deprecated, please use AI
|
|
4001
4052
|
Gateway to manage rate limits.
|
|
@@ -4017,6 +4068,8 @@ class ServingEndpointsAPI:
|
|
|
4017
4068
|
body["config"] = config.as_dict()
|
|
4018
4069
|
if description is not None:
|
|
4019
4070
|
body["description"] = description
|
|
4071
|
+
if email_notifications is not None:
|
|
4072
|
+
body["email_notifications"] = email_notifications.as_dict()
|
|
4020
4073
|
if name is not None:
|
|
4021
4074
|
body["name"] = name
|
|
4022
4075
|
if rate_limits is not None:
|
|
@@ -4045,6 +4098,7 @@ class ServingEndpointsAPI:
|
|
|
4045
4098
|
budget_policy_id: Optional[str] = None,
|
|
4046
4099
|
config: Optional[EndpointCoreConfigInput] = None,
|
|
4047
4100
|
description: Optional[str] = None,
|
|
4101
|
+
email_notifications: Optional[EmailNotifications] = None,
|
|
4048
4102
|
rate_limits: Optional[List[RateLimit]] = None,
|
|
4049
4103
|
route_optimized: Optional[bool] = None,
|
|
4050
4104
|
tags: Optional[List[EndpointTag]] = None,
|
|
@@ -4055,6 +4109,7 @@ class ServingEndpointsAPI:
|
|
|
4055
4109
|
budget_policy_id=budget_policy_id,
|
|
4056
4110
|
config=config,
|
|
4057
4111
|
description=description,
|
|
4112
|
+
email_notifications=email_notifications,
|
|
4058
4113
|
name=name,
|
|
4059
4114
|
rate_limits=rate_limits,
|
|
4060
4115
|
route_optimized=route_optimized,
|
|
@@ -4068,6 +4123,7 @@ class ServingEndpointsAPI:
|
|
|
4068
4123
|
*,
|
|
4069
4124
|
ai_gateway: Optional[AiGatewayConfig] = None,
|
|
4070
4125
|
budget_policy_id: Optional[str] = None,
|
|
4126
|
+
email_notifications: Optional[EmailNotifications] = None,
|
|
4071
4127
|
tags: Optional[List[EndpointTag]] = None,
|
|
4072
4128
|
) -> Wait[ServingEndpointDetailed]:
|
|
4073
4129
|
"""Create a new PT serving endpoint.
|
|
@@ -4081,6 +4137,8 @@ class ServingEndpointsAPI:
|
|
|
4081
4137
|
The AI Gateway configuration for the serving endpoint.
|
|
4082
4138
|
:param budget_policy_id: str (optional)
|
|
4083
4139
|
The budget policy associated with the endpoint.
|
|
4140
|
+
:param email_notifications: :class:`EmailNotifications` (optional)
|
|
4141
|
+
Email notification settings.
|
|
4084
4142
|
:param tags: List[:class:`EndpointTag`] (optional)
|
|
4085
4143
|
Tags to be attached to the serving endpoint and automatically propagated to billing logs.
|
|
4086
4144
|
|
|
@@ -4095,6 +4153,8 @@ class ServingEndpointsAPI:
|
|
|
4095
4153
|
body["budget_policy_id"] = budget_policy_id
|
|
4096
4154
|
if config is not None:
|
|
4097
4155
|
body["config"] = config.as_dict()
|
|
4156
|
+
if email_notifications is not None:
|
|
4157
|
+
body["email_notifications"] = email_notifications.as_dict()
|
|
4098
4158
|
if name is not None:
|
|
4099
4159
|
body["name"] = name
|
|
4100
4160
|
if tags is not None:
|
|
@@ -4118,11 +4178,17 @@ class ServingEndpointsAPI:
|
|
|
4118
4178
|
*,
|
|
4119
4179
|
ai_gateway: Optional[AiGatewayConfig] = None,
|
|
4120
4180
|
budget_policy_id: Optional[str] = None,
|
|
4181
|
+
email_notifications: Optional[EmailNotifications] = None,
|
|
4121
4182
|
tags: Optional[List[EndpointTag]] = None,
|
|
4122
4183
|
timeout=timedelta(minutes=20),
|
|
4123
4184
|
) -> ServingEndpointDetailed:
|
|
4124
4185
|
return self.create_provisioned_throughput_endpoint(
|
|
4125
|
-
ai_gateway=ai_gateway,
|
|
4186
|
+
ai_gateway=ai_gateway,
|
|
4187
|
+
budget_policy_id=budget_policy_id,
|
|
4188
|
+
config=config,
|
|
4189
|
+
email_notifications=email_notifications,
|
|
4190
|
+
name=name,
|
|
4191
|
+
tags=tags,
|
|
4126
4192
|
).result(timeout=timeout)
|
|
4127
4193
|
|
|
4128
4194
|
def delete(self, name: str):
|
|
@@ -4422,10 +4488,10 @@ class ServingEndpointsAPI:
|
|
|
4422
4488
|
stream: Optional[bool] = None,
|
|
4423
4489
|
temperature: Optional[float] = None,
|
|
4424
4490
|
) -> QueryEndpointResponse:
|
|
4425
|
-
"""Query a serving endpoint
|
|
4491
|
+
"""Query a serving endpoint
|
|
4426
4492
|
|
|
4427
4493
|
:param name: str
|
|
4428
|
-
The name of the serving endpoint. This field is required.
|
|
4494
|
+
The name of the serving endpoint. This field is required and is provided via the path parameter.
|
|
4429
4495
|
:param dataframe_records: List[Any] (optional)
|
|
4430
4496
|
Pandas Dataframe input in the records orientation.
|
|
4431
4497
|
:param dataframe_split: :class:`DataframeSplitInput` (optional)
|
|
@@ -4446,8 +4512,8 @@ class ServingEndpointsAPI:
|
|
|
4446
4512
|
The max tokens field used ONLY for __completions__ and __chat external & foundation model__ serving
|
|
4447
4513
|
endpoints. This is an integer and should only be used with other chat/completions query fields.
|
|
4448
4514
|
:param messages: List[:class:`ChatMessage`] (optional)
|
|
4449
|
-
The messages field used ONLY for __chat external & foundation model__ serving endpoints. This is
|
|
4450
|
-
|
|
4515
|
+
The messages field used ONLY for __chat external & foundation model__ serving endpoints. This is an
|
|
4516
|
+
array of ChatMessage objects and should only be used with other chat query fields.
|
|
4451
4517
|
:param n: int (optional)
|
|
4452
4518
|
The n (number of candidates) field used ONLY for __completions__ and __chat external & foundation
|
|
4453
4519
|
model__ serving endpoints. This is an integer between 1 and 5 with a default of 1 and should only be
|
|
@@ -4725,10 +4791,10 @@ class ServingEndpointsDataPlaneAPI:
|
|
|
4725
4791
|
stream: Optional[bool] = None,
|
|
4726
4792
|
temperature: Optional[float] = None,
|
|
4727
4793
|
) -> QueryEndpointResponse:
|
|
4728
|
-
"""Query a serving endpoint
|
|
4794
|
+
"""Query a serving endpoint
|
|
4729
4795
|
|
|
4730
4796
|
:param name: str
|
|
4731
|
-
The name of the serving endpoint. This field is required.
|
|
4797
|
+
The name of the serving endpoint. This field is required and is provided via the path parameter.
|
|
4732
4798
|
:param dataframe_records: List[Any] (optional)
|
|
4733
4799
|
Pandas Dataframe input in the records orientation.
|
|
4734
4800
|
:param dataframe_split: :class:`DataframeSplitInput` (optional)
|
|
@@ -4749,8 +4815,8 @@ class ServingEndpointsDataPlaneAPI:
|
|
|
4749
4815
|
The max tokens field used ONLY for __completions__ and __chat external & foundation model__ serving
|
|
4750
4816
|
endpoints. This is an integer and should only be used with other chat/completions query fields.
|
|
4751
4817
|
:param messages: List[:class:`ChatMessage`] (optional)
|
|
4752
|
-
The messages field used ONLY for __chat external & foundation model__ serving endpoints. This is
|
|
4753
|
-
|
|
4818
|
+
The messages field used ONLY for __chat external & foundation model__ serving endpoints. This is an
|
|
4819
|
+
array of ChatMessage objects and should only be used with other chat query fields.
|
|
4754
4820
|
:param n: int (optional)
|
|
4755
4821
|
The n (number of candidates) field used ONLY for __completions__ and __chat external & foundation
|
|
4756
4822
|
model__ serving endpoints. This is an integer between 1 and 5 with a default of 1 and should only be
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.62.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.61.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks/sdk/_widgets/default_widgets_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_sdk-0.61.0 → databricks_sdk-0.62.0}/databricks_sdk.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|