databricks-sdk 0.19.1__py3-none-any.whl → 0.21.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 +28 -6
- databricks/sdk/_widgets/__init__.py +2 -2
- databricks/sdk/config.py +3 -2
- databricks/sdk/core.py +4 -2
- databricks/sdk/mixins/workspace.py +2 -1
- databricks/sdk/oauth.py +1 -1
- databricks/sdk/runtime/__init__.py +85 -11
- databricks/sdk/runtime/dbutils_stub.py +1 -1
- databricks/sdk/service/_internal.py +1 -1
- databricks/sdk/service/billing.py +64 -1
- databricks/sdk/service/catalog.py +796 -84
- databricks/sdk/service/compute.py +391 -13
- databricks/sdk/service/dashboards.py +15 -0
- databricks/sdk/service/files.py +289 -15
- databricks/sdk/service/iam.py +214 -0
- databricks/sdk/service/jobs.py +242 -143
- databricks/sdk/service/ml.py +407 -0
- databricks/sdk/service/oauth2.py +83 -0
- databricks/sdk/service/pipelines.py +78 -8
- databricks/sdk/service/provisioning.py +108 -36
- databricks/sdk/service/serving.py +101 -35
- databricks/sdk/service/settings.py +1316 -186
- databricks/sdk/service/sharing.py +94 -18
- databricks/sdk/service/sql.py +230 -13
- databricks/sdk/service/vectorsearch.py +105 -60
- databricks/sdk/service/workspace.py +175 -1
- databricks/sdk/version.py +1 -1
- {databricks_sdk-0.19.1.dist-info → databricks_sdk-0.21.0.dist-info}/METADATA +3 -1
- databricks_sdk-0.21.0.dist-info/RECORD +53 -0
- databricks/sdk/runtime/stub.py +0 -48
- databricks_sdk-0.19.1.dist-info/RECORD +0 -54
- {databricks_sdk-0.19.1.dist-info → databricks_sdk-0.21.0.dist-info}/LICENSE +0 -0
- {databricks_sdk-0.19.1.dist-info → databricks_sdk-0.21.0.dist-info}/NOTICE +0 -0
- {databricks_sdk-0.19.1.dist-info → databricks_sdk-0.21.0.dist-info}/WHEEL +0 -0
- {databricks_sdk-0.19.1.dist-info → databricks_sdk-0.21.0.dist-info}/top_level.txt +0 -0
|
@@ -597,6 +597,20 @@ class CustomerManagedKey:
|
|
|
597
597
|
use_cases=_repeated_enum(d, 'use_cases', KeyUseCase))
|
|
598
598
|
|
|
599
599
|
|
|
600
|
+
@dataclass
|
|
601
|
+
class DeleteResponse:
|
|
602
|
+
|
|
603
|
+
def as_dict(self) -> dict:
|
|
604
|
+
"""Serializes the DeleteResponse into a dictionary suitable for use as a JSON request body."""
|
|
605
|
+
body = {}
|
|
606
|
+
return body
|
|
607
|
+
|
|
608
|
+
@classmethod
|
|
609
|
+
def from_dict(cls, d: Dict[str, any]) -> DeleteResponse:
|
|
610
|
+
"""Deserializes the DeleteResponse from a dictionary."""
|
|
611
|
+
return cls()
|
|
612
|
+
|
|
613
|
+
|
|
600
614
|
class EndpointUseCase(Enum):
|
|
601
615
|
"""This enumeration represents the type of Databricks VPC [endpoint service] that was used when
|
|
602
616
|
creating this VPC endpoint.
|
|
@@ -1062,6 +1076,20 @@ class PrivateAccessSettings:
|
|
|
1062
1076
|
region=d.get('region', None))
|
|
1063
1077
|
|
|
1064
1078
|
|
|
1079
|
+
@dataclass
|
|
1080
|
+
class ReplaceResponse:
|
|
1081
|
+
|
|
1082
|
+
def as_dict(self) -> dict:
|
|
1083
|
+
"""Serializes the ReplaceResponse into a dictionary suitable for use as a JSON request body."""
|
|
1084
|
+
body = {}
|
|
1085
|
+
return body
|
|
1086
|
+
|
|
1087
|
+
@classmethod
|
|
1088
|
+
def from_dict(cls, d: Dict[str, any]) -> ReplaceResponse:
|
|
1089
|
+
"""Deserializes the ReplaceResponse from a dictionary."""
|
|
1090
|
+
return cls()
|
|
1091
|
+
|
|
1092
|
+
|
|
1065
1093
|
@dataclass
|
|
1066
1094
|
class RootBucketInfo:
|
|
1067
1095
|
"""Root S3 bucket information."""
|
|
@@ -1142,6 +1170,20 @@ class StsRole:
|
|
|
1142
1170
|
return cls(external_id=d.get('external_id', None), role_arn=d.get('role_arn', None))
|
|
1143
1171
|
|
|
1144
1172
|
|
|
1173
|
+
@dataclass
|
|
1174
|
+
class UpdateResponse:
|
|
1175
|
+
|
|
1176
|
+
def as_dict(self) -> dict:
|
|
1177
|
+
"""Serializes the UpdateResponse into a dictionary suitable for use as a JSON request body."""
|
|
1178
|
+
body = {}
|
|
1179
|
+
return body
|
|
1180
|
+
|
|
1181
|
+
@classmethod
|
|
1182
|
+
def from_dict(cls, d: Dict[str, any]) -> UpdateResponse:
|
|
1183
|
+
"""Deserializes the UpdateResponse from a dictionary."""
|
|
1184
|
+
return cls()
|
|
1185
|
+
|
|
1186
|
+
|
|
1145
1187
|
@dataclass
|
|
1146
1188
|
class UpdateWorkspaceRequest:
|
|
1147
1189
|
aws_region: Optional[str] = None
|
|
@@ -1162,8 +1204,6 @@ class UpdateWorkspaceRequest:
|
|
|
1162
1204
|
is available only for updating failed workspaces."""
|
|
1163
1205
|
|
|
1164
1206
|
network_connectivity_config_id: Optional[str] = None
|
|
1165
|
-
"""The ID of the network connectivity configuration object, which is the parent resource of this
|
|
1166
|
-
private endpoint rule object."""
|
|
1167
1207
|
|
|
1168
1208
|
network_id: Optional[str] = None
|
|
1169
1209
|
"""The ID of the workspace's network configuration object. Used only if you already use a
|
|
@@ -1581,6 +1621,7 @@ class CredentialsAPI:
|
|
|
1581
1621
|
if aws_credentials is not None: body['aws_credentials'] = aws_credentials.as_dict()
|
|
1582
1622
|
if credentials_name is not None: body['credentials_name'] = credentials_name
|
|
1583
1623
|
headers = {'Accept': 'application/json', 'Content-Type': 'application/json', }
|
|
1624
|
+
|
|
1584
1625
|
res = self._api.do('POST',
|
|
1585
1626
|
f'/api/2.0/accounts/{self._api.account_id}/credentials',
|
|
1586
1627
|
body=body,
|
|
@@ -1600,6 +1641,7 @@ class CredentialsAPI:
|
|
|
1600
1641
|
"""
|
|
1601
1642
|
|
|
1602
1643
|
headers = {'Accept': 'application/json', }
|
|
1644
|
+
|
|
1603
1645
|
self._api.do('DELETE',
|
|
1604
1646
|
f'/api/2.0/accounts/{self._api.account_id}/credentials/{credentials_id}',
|
|
1605
1647
|
headers=headers)
|
|
@@ -1616,6 +1658,7 @@ class CredentialsAPI:
|
|
|
1616
1658
|
"""
|
|
1617
1659
|
|
|
1618
1660
|
headers = {'Accept': 'application/json', }
|
|
1661
|
+
|
|
1619
1662
|
res = self._api.do('GET',
|
|
1620
1663
|
f'/api/2.0/accounts/{self._api.account_id}/credentials/{credentials_id}',
|
|
1621
1664
|
headers=headers)
|
|
@@ -1630,6 +1673,7 @@ class CredentialsAPI:
|
|
|
1630
1673
|
"""
|
|
1631
1674
|
|
|
1632
1675
|
headers = {'Accept': 'application/json', }
|
|
1676
|
+
|
|
1633
1677
|
res = self._api.do('GET', f'/api/2.0/accounts/{self._api.account_id}/credentials', headers=headers)
|
|
1634
1678
|
return [Credential.from_dict(v) for v in res]
|
|
1635
1679
|
|
|
@@ -1685,6 +1729,7 @@ class EncryptionKeysAPI:
|
|
|
1685
1729
|
if gcp_key_info is not None: body['gcp_key_info'] = gcp_key_info.as_dict()
|
|
1686
1730
|
if use_cases is not None: body['use_cases'] = [v.value for v in use_cases]
|
|
1687
1731
|
headers = {'Accept': 'application/json', 'Content-Type': 'application/json', }
|
|
1732
|
+
|
|
1688
1733
|
res = self._api.do('POST',
|
|
1689
1734
|
f'/api/2.0/accounts/{self._api.account_id}/customer-managed-keys',
|
|
1690
1735
|
body=body,
|
|
@@ -1704,6 +1749,7 @@ class EncryptionKeysAPI:
|
|
|
1704
1749
|
"""
|
|
1705
1750
|
|
|
1706
1751
|
headers = {'Accept': 'application/json', }
|
|
1752
|
+
|
|
1707
1753
|
self._api.do(
|
|
1708
1754
|
'DELETE',
|
|
1709
1755
|
f'/api/2.0/accounts/{self._api.account_id}/customer-managed-keys/{customer_managed_key_id}',
|
|
@@ -1732,6 +1778,7 @@ class EncryptionKeysAPI:
|
|
|
1732
1778
|
"""
|
|
1733
1779
|
|
|
1734
1780
|
headers = {'Accept': 'application/json', }
|
|
1781
|
+
|
|
1735
1782
|
res = self._api.do(
|
|
1736
1783
|
'GET',
|
|
1737
1784
|
f'/api/2.0/accounts/{self._api.account_id}/customer-managed-keys/{customer_managed_key_id}',
|
|
@@ -1756,6 +1803,7 @@ class EncryptionKeysAPI:
|
|
|
1756
1803
|
"""
|
|
1757
1804
|
|
|
1758
1805
|
headers = {'Accept': 'application/json', }
|
|
1806
|
+
|
|
1759
1807
|
res = self._api.do('GET',
|
|
1760
1808
|
f'/api/2.0/accounts/{self._api.account_id}/customer-managed-keys',
|
|
1761
1809
|
headers=headers)
|
|
@@ -1812,6 +1860,7 @@ class NetworksAPI:
|
|
|
1812
1860
|
if vpc_endpoints is not None: body['vpc_endpoints'] = vpc_endpoints.as_dict()
|
|
1813
1861
|
if vpc_id is not None: body['vpc_id'] = vpc_id
|
|
1814
1862
|
headers = {'Accept': 'application/json', 'Content-Type': 'application/json', }
|
|
1863
|
+
|
|
1815
1864
|
res = self._api.do('POST',
|
|
1816
1865
|
f'/api/2.0/accounts/{self._api.account_id}/networks',
|
|
1817
1866
|
body=body,
|
|
@@ -1833,6 +1882,7 @@ class NetworksAPI:
|
|
|
1833
1882
|
"""
|
|
1834
1883
|
|
|
1835
1884
|
headers = {'Accept': 'application/json', }
|
|
1885
|
+
|
|
1836
1886
|
self._api.do('DELETE',
|
|
1837
1887
|
f'/api/2.0/accounts/{self._api.account_id}/networks/{network_id}',
|
|
1838
1888
|
headers=headers)
|
|
@@ -1849,6 +1899,7 @@ class NetworksAPI:
|
|
|
1849
1899
|
"""
|
|
1850
1900
|
|
|
1851
1901
|
headers = {'Accept': 'application/json', }
|
|
1902
|
+
|
|
1852
1903
|
res = self._api.do('GET',
|
|
1853
1904
|
f'/api/2.0/accounts/{self._api.account_id}/networks/{network_id}',
|
|
1854
1905
|
headers=headers)
|
|
@@ -1865,6 +1916,7 @@ class NetworksAPI:
|
|
|
1865
1916
|
"""
|
|
1866
1917
|
|
|
1867
1918
|
headers = {'Accept': 'application/json', }
|
|
1919
|
+
|
|
1868
1920
|
res = self._api.do('GET', f'/api/2.0/accounts/{self._api.account_id}/networks', headers=headers)
|
|
1869
1921
|
return [Network.from_dict(v) for v in res]
|
|
1870
1922
|
|
|
@@ -1936,6 +1988,7 @@ class PrivateAccessAPI:
|
|
|
1936
1988
|
if public_access_enabled is not None: body['public_access_enabled'] = public_access_enabled
|
|
1937
1989
|
if region is not None: body['region'] = region
|
|
1938
1990
|
headers = {'Accept': 'application/json', 'Content-Type': 'application/json', }
|
|
1991
|
+
|
|
1939
1992
|
res = self._api.do('POST',
|
|
1940
1993
|
f'/api/2.0/accounts/{self._api.account_id}/private-access-settings',
|
|
1941
1994
|
body=body,
|
|
@@ -1960,6 +2013,7 @@ class PrivateAccessAPI:
|
|
|
1960
2013
|
"""
|
|
1961
2014
|
|
|
1962
2015
|
headers = {'Accept': 'application/json', }
|
|
2016
|
+
|
|
1963
2017
|
self._api.do(
|
|
1964
2018
|
'DELETE',
|
|
1965
2019
|
f'/api/2.0/accounts/{self._api.account_id}/private-access-settings/{private_access_settings_id}',
|
|
@@ -1983,6 +2037,7 @@ class PrivateAccessAPI:
|
|
|
1983
2037
|
"""
|
|
1984
2038
|
|
|
1985
2039
|
headers = {'Accept': 'application/json', }
|
|
2040
|
+
|
|
1986
2041
|
res = self._api.do(
|
|
1987
2042
|
'GET',
|
|
1988
2043
|
f'/api/2.0/accounts/{self._api.account_id}/private-access-settings/{private_access_settings_id}',
|
|
@@ -1998,6 +2053,7 @@ class PrivateAccessAPI:
|
|
|
1998
2053
|
"""
|
|
1999
2054
|
|
|
2000
2055
|
headers = {'Accept': 'application/json', }
|
|
2056
|
+
|
|
2001
2057
|
res = self._api.do('GET',
|
|
2002
2058
|
f'/api/2.0/accounts/{self._api.account_id}/private-access-settings',
|
|
2003
2059
|
headers=headers)
|
|
@@ -2072,6 +2128,7 @@ class PrivateAccessAPI:
|
|
|
2072
2128
|
if public_access_enabled is not None: body['public_access_enabled'] = public_access_enabled
|
|
2073
2129
|
if region is not None: body['region'] = region
|
|
2074
2130
|
headers = {'Accept': 'application/json', 'Content-Type': 'application/json', }
|
|
2131
|
+
|
|
2075
2132
|
self._api.do(
|
|
2076
2133
|
'PUT',
|
|
2077
2134
|
f'/api/2.0/accounts/{self._api.account_id}/private-access-settings/{private_access_settings_id}',
|
|
@@ -2114,6 +2171,7 @@ class StorageAPI:
|
|
|
2114
2171
|
if storage_configuration_name is not None:
|
|
2115
2172
|
body['storage_configuration_name'] = storage_configuration_name
|
|
2116
2173
|
headers = {'Accept': 'application/json', 'Content-Type': 'application/json', }
|
|
2174
|
+
|
|
2117
2175
|
res = self._api.do('POST',
|
|
2118
2176
|
f'/api/2.0/accounts/{self._api.account_id}/storage-configurations',
|
|
2119
2177
|
body=body,
|
|
@@ -2133,6 +2191,7 @@ class StorageAPI:
|
|
|
2133
2191
|
"""
|
|
2134
2192
|
|
|
2135
2193
|
headers = {'Accept': 'application/json', }
|
|
2194
|
+
|
|
2136
2195
|
self._api.do(
|
|
2137
2196
|
'DELETE',
|
|
2138
2197
|
f'/api/2.0/accounts/{self._api.account_id}/storage-configurations/{storage_configuration_id}',
|
|
@@ -2150,6 +2209,7 @@ class StorageAPI:
|
|
|
2150
2209
|
"""
|
|
2151
2210
|
|
|
2152
2211
|
headers = {'Accept': 'application/json', }
|
|
2212
|
+
|
|
2153
2213
|
res = self._api.do(
|
|
2154
2214
|
'GET',
|
|
2155
2215
|
f'/api/2.0/accounts/{self._api.account_id}/storage-configurations/{storage_configuration_id}',
|
|
@@ -2165,6 +2225,7 @@ class StorageAPI:
|
|
|
2165
2225
|
"""
|
|
2166
2226
|
|
|
2167
2227
|
headers = {'Accept': 'application/json', }
|
|
2228
|
+
|
|
2168
2229
|
res = self._api.do('GET',
|
|
2169
2230
|
f'/api/2.0/accounts/{self._api.account_id}/storage-configurations',
|
|
2170
2231
|
headers=headers)
|
|
@@ -2215,6 +2276,7 @@ class VpcEndpointsAPI:
|
|
|
2215
2276
|
if region is not None: body['region'] = region
|
|
2216
2277
|
if vpc_endpoint_name is not None: body['vpc_endpoint_name'] = vpc_endpoint_name
|
|
2217
2278
|
headers = {'Accept': 'application/json', 'Content-Type': 'application/json', }
|
|
2279
|
+
|
|
2218
2280
|
res = self._api.do('POST',
|
|
2219
2281
|
f'/api/2.0/accounts/{self._api.account_id}/vpc-endpoints',
|
|
2220
2282
|
body=body,
|
|
@@ -2240,6 +2302,7 @@ class VpcEndpointsAPI:
|
|
|
2240
2302
|
"""
|
|
2241
2303
|
|
|
2242
2304
|
headers = {'Accept': 'application/json', }
|
|
2305
|
+
|
|
2243
2306
|
self._api.do('DELETE',
|
|
2244
2307
|
f'/api/2.0/accounts/{self._api.account_id}/vpc-endpoints/{vpc_endpoint_id}',
|
|
2245
2308
|
headers=headers)
|
|
@@ -2260,6 +2323,7 @@ class VpcEndpointsAPI:
|
|
|
2260
2323
|
"""
|
|
2261
2324
|
|
|
2262
2325
|
headers = {'Accept': 'application/json', }
|
|
2326
|
+
|
|
2263
2327
|
res = self._api.do('GET',
|
|
2264
2328
|
f'/api/2.0/accounts/{self._api.account_id}/vpc-endpoints/{vpc_endpoint_id}',
|
|
2265
2329
|
headers=headers)
|
|
@@ -2278,6 +2342,7 @@ class VpcEndpointsAPI:
|
|
|
2278
2342
|
"""
|
|
2279
2343
|
|
|
2280
2344
|
headers = {'Accept': 'application/json', }
|
|
2345
|
+
|
|
2281
2346
|
res = self._api.do('GET', f'/api/2.0/accounts/{self._api.account_id}/vpc-endpoints', headers=headers)
|
|
2282
2347
|
return [VpcEndpoint.from_dict(v) for v in res]
|
|
2283
2348
|
|
|
@@ -2466,6 +2531,7 @@ class WorkspacesAPI:
|
|
|
2466
2531
|
body['storage_customer_managed_key_id'] = storage_customer_managed_key_id
|
|
2467
2532
|
if workspace_name is not None: body['workspace_name'] = workspace_name
|
|
2468
2533
|
headers = {'Accept': 'application/json', 'Content-Type': 'application/json', }
|
|
2534
|
+
|
|
2469
2535
|
op_response = self._api.do('POST',
|
|
2470
2536
|
f'/api/2.0/accounts/{self._api.account_id}/workspaces',
|
|
2471
2537
|
body=body,
|
|
@@ -2528,6 +2594,7 @@ class WorkspacesAPI:
|
|
|
2528
2594
|
"""
|
|
2529
2595
|
|
|
2530
2596
|
headers = {'Accept': 'application/json', }
|
|
2597
|
+
|
|
2531
2598
|
self._api.do('DELETE',
|
|
2532
2599
|
f'/api/2.0/accounts/{self._api.account_id}/workspaces/{workspace_id}',
|
|
2533
2600
|
headers=headers)
|
|
@@ -2555,6 +2622,7 @@ class WorkspacesAPI:
|
|
|
2555
2622
|
"""
|
|
2556
2623
|
|
|
2557
2624
|
headers = {'Accept': 'application/json', }
|
|
2625
|
+
|
|
2558
2626
|
res = self._api.do('GET',
|
|
2559
2627
|
f'/api/2.0/accounts/{self._api.account_id}/workspaces/{workspace_id}',
|
|
2560
2628
|
headers=headers)
|
|
@@ -2572,6 +2640,7 @@ class WorkspacesAPI:
|
|
|
2572
2640
|
"""
|
|
2573
2641
|
|
|
2574
2642
|
headers = {'Accept': 'application/json', }
|
|
2643
|
+
|
|
2575
2644
|
res = self._api.do('GET', f'/api/2.0/accounts/{self._api.account_id}/workspaces', headers=headers)
|
|
2576
2645
|
return [Workspace.from_dict(v) for v in res]
|
|
2577
2646
|
|
|
@@ -2608,7 +2677,10 @@ class WorkspacesAPI:
|
|
|
2608
2677
|
the private access settings ID to upgrade a workspace to add support for front-end, back-end, or both
|
|
2609
2678
|
types of connectivity. You cannot remove (downgrade) any existing front-end or back-end PrivateLink
|
|
2610
2679
|
support on a workspace. - Custom tags. Given you provide an empty custom tags, the update would not be
|
|
2611
|
-
applied.
|
|
2680
|
+
applied. - Network connectivity configuration ID to add serverless stable IP support. You can add or
|
|
2681
|
+
update the network connectivity configuration ID to ensure the workspace uses the same set of stable
|
|
2682
|
+
IP CIDR blocks to access your resources. You cannot remove a network connectivity configuration from
|
|
2683
|
+
the workspace once attached, you can only switch to another one.
|
|
2612
2684
|
|
|
2613
2685
|
After calling the `PATCH` operation to update the workspace configuration, make repeated `GET`
|
|
2614
2686
|
requests with the workspace ID and check the workspace status. The workspace is successful if the
|
|
@@ -2619,28 +2691,29 @@ class WorkspacesAPI:
|
|
|
2619
2691
|
|
|
2620
2692
|
### Update a running workspace You can update a Databricks workspace configuration for running
|
|
2621
2693
|
workspaces for some fields, but not all fields. For a running workspace, this request supports
|
|
2622
|
-
updating the following fields only: - Credential configuration ID
|
|
2623
|
-
|
|
2624
|
-
-
|
|
2625
|
-
running workspace
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
services data that existed before adding the key remains not encrypted with the DEK until it is
|
|
2636
|
-
modified. If the workspace already has customer-managed keys for managed services, this request
|
|
2637
|
-
rotates (changes) the CMK keys and the DEK is re-encrypted with the DMK and the new CMK. - Key
|
|
2694
|
+
updating the following fields only: - Credential configuration ID - Network configuration ID. Used
|
|
2695
|
+
only if you already use a customer-managed VPC. You cannot convert a running workspace from a
|
|
2696
|
+
Databricks-managed VPC to a customer-managed VPC. You can use a network configuration update in this
|
|
2697
|
+
API for a failed or running workspace to add support for PrivateLink, although you also need to add a
|
|
2698
|
+
private access settings object. - Key configuration ID for managed services (control plane storage,
|
|
2699
|
+
such as notebook source and Databricks SQL queries). Databricks does not directly encrypt the data
|
|
2700
|
+
with the customer-managed key (CMK). Databricks uses both the CMK and the Databricks managed key (DMK)
|
|
2701
|
+
that is unique to your workspace to encrypt the Data Encryption Key (DEK). Databricks uses the DEK to
|
|
2702
|
+
encrypt your workspace's managed services persisted data. If the workspace does not already have a CMK
|
|
2703
|
+
for managed services, adding this ID enables managed services encryption for new or updated data.
|
|
2704
|
+
Existing managed services data that existed before adding the key remains not encrypted with the DEK
|
|
2705
|
+
until it is modified. If the workspace already has customer-managed keys for managed services, this
|
|
2706
|
+
request rotates (changes) the CMK keys and the DEK is re-encrypted with the DMK and the new CMK. - Key
|
|
2638
2707
|
configuration ID for workspace storage (root S3 bucket and, optionally, EBS volumes). You can set this
|
|
2639
2708
|
only if the workspace does not already have a customer-managed key configuration for workspace
|
|
2640
2709
|
storage. - Private access settings ID to add PrivateLink support. You can add or update the private
|
|
2641
2710
|
access settings ID to upgrade a workspace to add support for front-end, back-end, or both types of
|
|
2642
2711
|
connectivity. You cannot remove (downgrade) any existing front-end or back-end PrivateLink support on
|
|
2643
|
-
a workspace. - Custom tags. Given you provide an empty custom tags, the update would not be applied.
|
|
2712
|
+
a workspace. - Custom tags. Given you provide an empty custom tags, the update would not be applied. -
|
|
2713
|
+
Network connectivity configuration ID to add serverless stable IP support. You can add or update the
|
|
2714
|
+
network connectivity configuration ID to ensure the workspace uses the same set of stable IP CIDR
|
|
2715
|
+
blocks to access your resources. You cannot remove a network connectivity configuration from the
|
|
2716
|
+
workspace once attached, you can only switch to another one.
|
|
2644
2717
|
|
|
2645
2718
|
**Important**: To update a running workspace, your workspace must have no running compute resources
|
|
2646
2719
|
that run in your workspace's VPC in the Classic data plane. For example, stop all all-purpose
|
|
@@ -2655,15 +2728,13 @@ class WorkspacesAPI:
|
|
|
2655
2728
|
[Account Console]. However, you cannot use or create clusters for another 20 minutes after that status
|
|
2656
2729
|
change. This results in a total of up to 40 minutes in which you cannot create clusters. If you create
|
|
2657
2730
|
or use clusters before this time interval elapses, clusters do not launch successfully, fail, or could
|
|
2658
|
-
cause other unexpected behavior.
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
create or use clusters before this time interval elapses, clusters do not launch successfully, fail,
|
|
2666
|
-
or could cause other unexpected behavior.
|
|
2731
|
+
cause other unexpected behavior. * For workspaces with a customer-managed VPC, the workspace status
|
|
2732
|
+
stays at status `RUNNING` and the VPC change happens immediately. A change to the storage
|
|
2733
|
+
customer-managed key configuration ID might take a few minutes to update, so continue to check the
|
|
2734
|
+
workspace until you observe that it has been updated. If the update fails, the workspace might revert
|
|
2735
|
+
silently to its original configuration. After the workspace has been updated, you cannot use or create
|
|
2736
|
+
clusters for another 20 minutes. If you create or use clusters before this time interval elapses,
|
|
2737
|
+
clusters do not launch successfully, fail, or could cause other unexpected behavior.
|
|
2667
2738
|
|
|
2668
2739
|
If you update the _storage_ customer-managed key configurations, it takes 20 minutes for the changes
|
|
2669
2740
|
to fully take effect. During the 20 minute wait, it is important that you stop all REST API calls to
|
|
@@ -2696,8 +2767,6 @@ class WorkspacesAPI:
|
|
|
2696
2767
|
The ID of the workspace's managed services encryption key configuration object. This parameter is
|
|
2697
2768
|
available only for updating failed workspaces.
|
|
2698
2769
|
:param network_connectivity_config_id: str (optional)
|
|
2699
|
-
The ID of the network connectivity configuration object, which is the parent resource of this
|
|
2700
|
-
private endpoint rule object.
|
|
2701
2770
|
:param network_id: str (optional)
|
|
2702
2771
|
The ID of the workspace's network configuration object. Used only if you already use a
|
|
2703
2772
|
customer-managed VPC. For failed workspaces only, you can switch from a Databricks-managed VPC to a
|
|
@@ -2726,11 +2795,14 @@ class WorkspacesAPI:
|
|
|
2726
2795
|
if storage_customer_managed_key_id is not None:
|
|
2727
2796
|
body['storage_customer_managed_key_id'] = storage_customer_managed_key_id
|
|
2728
2797
|
headers = {'Accept': 'application/json', 'Content-Type': 'application/json', }
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2798
|
+
|
|
2799
|
+
op_response = self._api.do('PATCH',
|
|
2800
|
+
f'/api/2.0/accounts/{self._api.account_id}/workspaces/{workspace_id}',
|
|
2801
|
+
body=body,
|
|
2802
|
+
headers=headers)
|
|
2803
|
+
return Wait(self.wait_get_workspace_running,
|
|
2804
|
+
response=UpdateResponse.from_dict(op_response),
|
|
2805
|
+
workspace_id=workspace_id)
|
|
2734
2806
|
|
|
2735
2807
|
def update_and_wait(
|
|
2736
2808
|
self,
|