databricks-sdk 0.55.0__py3-none-any.whl → 0.56.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.

@@ -963,31 +963,45 @@ class CreatePrivateEndpointRule:
963
963
  """Properties of the new private endpoint rule. Note that you must approve the endpoint in Azure
964
964
  portal after initialization."""
965
965
 
966
- resource_id: str
967
- """The Azure resource ID of the target resource."""
968
-
969
966
  domain_names: Optional[List[str]] = None
970
- """Only used by private endpoints to customer-managed resources.
967
+ """Only used by private endpoints to customer-managed private endpoint services.
971
968
 
972
969
  Domain names of target private link service. When updating this field, the full list of target
973
970
  domain_names must be specified."""
974
971
 
972
+ endpoint_service: Optional[str] = None
973
+ """The full target AWS endpoint service name that connects to the destination resources of the
974
+ private endpoint."""
975
+
975
976
  group_id: Optional[str] = None
976
- """Only used by private endpoints to Azure first-party services. Enum: blob | dfs | sqlServer |
977
- mysqlServer
977
+ """Not used by customer-managed private endpoint services.
978
978
 
979
979
  The sub-resource type (group ID) of the target resource. Note that to connect to workspace root
980
980
  storage (root DBFS), you need two endpoints, one for blob and one for dfs."""
981
981
 
982
+ resource_id: Optional[str] = None
983
+ """The Azure resource ID of the target resource."""
984
+
985
+ resource_names: Optional[List[str]] = None
986
+ """Only used by private endpoints towards AWS S3 service.
987
+
988
+ The globally unique S3 bucket names that will be accessed via the VPC endpoint. The bucket names
989
+ must be in the same region as the NCC/endpoint service. When updating this field, we perform
990
+ full update on this field. Please ensure a full list of desired resource_names is provided."""
991
+
982
992
  def as_dict(self) -> dict:
983
993
  """Serializes the CreatePrivateEndpointRule into a dictionary suitable for use as a JSON request body."""
984
994
  body = {}
985
995
  if self.domain_names:
986
996
  body["domain_names"] = [v for v in self.domain_names]
997
+ if self.endpoint_service is not None:
998
+ body["endpoint_service"] = self.endpoint_service
987
999
  if self.group_id is not None:
988
1000
  body["group_id"] = self.group_id
989
1001
  if self.resource_id is not None:
990
1002
  body["resource_id"] = self.resource_id
1003
+ if self.resource_names:
1004
+ body["resource_names"] = [v for v in self.resource_names]
991
1005
  return body
992
1006
 
993
1007
  def as_shallow_dict(self) -> dict:
@@ -995,10 +1009,14 @@ class CreatePrivateEndpointRule:
995
1009
  body = {}
996
1010
  if self.domain_names:
997
1011
  body["domain_names"] = self.domain_names
1012
+ if self.endpoint_service is not None:
1013
+ body["endpoint_service"] = self.endpoint_service
998
1014
  if self.group_id is not None:
999
1015
  body["group_id"] = self.group_id
1000
1016
  if self.resource_id is not None:
1001
1017
  body["resource_id"] = self.resource_id
1018
+ if self.resource_names:
1019
+ body["resource_names"] = self.resource_names
1002
1020
  return body
1003
1021
 
1004
1022
  @classmethod
@@ -1006,8 +1024,10 @@ class CreatePrivateEndpointRule:
1006
1024
  """Deserializes the CreatePrivateEndpointRule from a dictionary."""
1007
1025
  return cls(
1008
1026
  domain_names=d.get("domain_names", None),
1027
+ endpoint_service=d.get("endpoint_service", None),
1009
1028
  group_id=d.get("group_id", None),
1010
1029
  resource_id=d.get("resource_id", None),
1030
+ resource_names=d.get("resource_names", None),
1011
1031
  )
1012
1032
 
1013
1033
 
@@ -1166,6 +1186,219 @@ class CspEnablementAccountSetting:
1166
1186
  )
1167
1187
 
1168
1188
 
1189
+ @dataclass
1190
+ class CustomerFacingNetworkConnectivityConfigAwsPrivateEndpointRule:
1191
+ """Properties of the new private endpoint rule. Note that for private endpoints towards a VPC
1192
+ endpoint service behind a customer-managed NLB, you must approve the endpoint in AWS console
1193
+ after initialization."""
1194
+
1195
+ account_id: Optional[str] = None
1196
+ """Databricks account ID. You can find your account ID from the Accounts Console."""
1197
+
1198
+ connection_state: Optional[
1199
+ CustomerFacingNetworkConnectivityConfigAwsPrivateEndpointRulePrivateLinkConnectionState
1200
+ ] = None
1201
+ """The current status of this private endpoint. The private endpoint rules are effective only if
1202
+ the connection state is ESTABLISHED. Remember that you must approve new endpoints on your
1203
+ resources in the AWS console before they take effect. The possible values are: - PENDING: The
1204
+ endpoint has been created and pending approval. - ESTABLISHED: The endpoint has been approved
1205
+ and is ready to use in your serverless compute resources. - REJECTED: Connection was rejected by
1206
+ the private link resource owner. - DISCONNECTED: Connection was removed by the private link
1207
+ resource owner, the private endpoint becomes informative and should be deleted for clean-up. -
1208
+ EXPIRED: If the endpoint is created but not approved in 14 days, it is EXPIRED."""
1209
+
1210
+ creation_time: Optional[int] = None
1211
+ """Time in epoch milliseconds when this object was created."""
1212
+
1213
+ deactivated: Optional[bool] = None
1214
+ """Whether this private endpoint is deactivated."""
1215
+
1216
+ deactivated_at: Optional[int] = None
1217
+ """Time in epoch milliseconds when this object was deactivated."""
1218
+
1219
+ domain_names: Optional[List[str]] = None
1220
+ """Only used by private endpoints towards a VPC endpoint service for customer-managed VPC endpoint
1221
+ service.
1222
+
1223
+ The target AWS resource FQDNs accessible via the VPC endpoint service. When updating this field,
1224
+ we perform full update on this field. Please ensure a full list of desired domain_names is
1225
+ provided."""
1226
+
1227
+ enabled: Optional[bool] = None
1228
+ """Only used by private endpoints towards an AWS S3 service.
1229
+
1230
+ Update this field to activate/deactivate this private endpoint to allow egress access from
1231
+ serverless compute resources."""
1232
+
1233
+ endpoint_service: Optional[str] = None
1234
+ """The full target AWS endpoint service name that connects to the destination resources of the
1235
+ private endpoint."""
1236
+
1237
+ network_connectivity_config_id: Optional[str] = None
1238
+ """The ID of a network connectivity configuration, which is the parent resource of this private
1239
+ endpoint rule object."""
1240
+
1241
+ resource_names: Optional[List[str]] = None
1242
+ """Only used by private endpoints towards AWS S3 service.
1243
+
1244
+ The globally unique S3 bucket names that will be accessed via the VPC endpoint. The bucket names
1245
+ must be in the same region as the NCC/endpoint service. When updating this field, we perform
1246
+ full update on this field. Please ensure a full list of desired resource_names is provided."""
1247
+
1248
+ rule_id: Optional[str] = None
1249
+ """The ID of a private endpoint rule."""
1250
+
1251
+ updated_time: Optional[int] = None
1252
+ """Time in epoch milliseconds when this object was updated."""
1253
+
1254
+ vpc_endpoint_id: Optional[str] = None
1255
+ """The AWS VPC endpoint ID. You can use this ID to identify VPC endpoint created by Databricks."""
1256
+
1257
+ def as_dict(self) -> dict:
1258
+ """Serializes the CustomerFacingNetworkConnectivityConfigAwsPrivateEndpointRule into a dictionary suitable for use as a JSON request body."""
1259
+ body = {}
1260
+ if self.account_id is not None:
1261
+ body["account_id"] = self.account_id
1262
+ if self.connection_state is not None:
1263
+ body["connection_state"] = self.connection_state.value
1264
+ if self.creation_time is not None:
1265
+ body["creation_time"] = self.creation_time
1266
+ if self.deactivated is not None:
1267
+ body["deactivated"] = self.deactivated
1268
+ if self.deactivated_at is not None:
1269
+ body["deactivated_at"] = self.deactivated_at
1270
+ if self.domain_names:
1271
+ body["domain_names"] = [v for v in self.domain_names]
1272
+ if self.enabled is not None:
1273
+ body["enabled"] = self.enabled
1274
+ if self.endpoint_service is not None:
1275
+ body["endpoint_service"] = self.endpoint_service
1276
+ if self.network_connectivity_config_id is not None:
1277
+ body["network_connectivity_config_id"] = self.network_connectivity_config_id
1278
+ if self.resource_names:
1279
+ body["resource_names"] = [v for v in self.resource_names]
1280
+ if self.rule_id is not None:
1281
+ body["rule_id"] = self.rule_id
1282
+ if self.updated_time is not None:
1283
+ body["updated_time"] = self.updated_time
1284
+ if self.vpc_endpoint_id is not None:
1285
+ body["vpc_endpoint_id"] = self.vpc_endpoint_id
1286
+ return body
1287
+
1288
+ def as_shallow_dict(self) -> dict:
1289
+ """Serializes the CustomerFacingNetworkConnectivityConfigAwsPrivateEndpointRule into a shallow dictionary of its immediate attributes."""
1290
+ body = {}
1291
+ if self.account_id is not None:
1292
+ body["account_id"] = self.account_id
1293
+ if self.connection_state is not None:
1294
+ body["connection_state"] = self.connection_state
1295
+ if self.creation_time is not None:
1296
+ body["creation_time"] = self.creation_time
1297
+ if self.deactivated is not None:
1298
+ body["deactivated"] = self.deactivated
1299
+ if self.deactivated_at is not None:
1300
+ body["deactivated_at"] = self.deactivated_at
1301
+ if self.domain_names:
1302
+ body["domain_names"] = self.domain_names
1303
+ if self.enabled is not None:
1304
+ body["enabled"] = self.enabled
1305
+ if self.endpoint_service is not None:
1306
+ body["endpoint_service"] = self.endpoint_service
1307
+ if self.network_connectivity_config_id is not None:
1308
+ body["network_connectivity_config_id"] = self.network_connectivity_config_id
1309
+ if self.resource_names:
1310
+ body["resource_names"] = self.resource_names
1311
+ if self.rule_id is not None:
1312
+ body["rule_id"] = self.rule_id
1313
+ if self.updated_time is not None:
1314
+ body["updated_time"] = self.updated_time
1315
+ if self.vpc_endpoint_id is not None:
1316
+ body["vpc_endpoint_id"] = self.vpc_endpoint_id
1317
+ return body
1318
+
1319
+ @classmethod
1320
+ def from_dict(cls, d: Dict[str, Any]) -> CustomerFacingNetworkConnectivityConfigAwsPrivateEndpointRule:
1321
+ """Deserializes the CustomerFacingNetworkConnectivityConfigAwsPrivateEndpointRule from a dictionary."""
1322
+ return cls(
1323
+ account_id=d.get("account_id", None),
1324
+ connection_state=_enum(
1325
+ d,
1326
+ "connection_state",
1327
+ CustomerFacingNetworkConnectivityConfigAwsPrivateEndpointRulePrivateLinkConnectionState,
1328
+ ),
1329
+ creation_time=d.get("creation_time", None),
1330
+ deactivated=d.get("deactivated", None),
1331
+ deactivated_at=d.get("deactivated_at", None),
1332
+ domain_names=d.get("domain_names", None),
1333
+ enabled=d.get("enabled", None),
1334
+ endpoint_service=d.get("endpoint_service", None),
1335
+ network_connectivity_config_id=d.get("network_connectivity_config_id", None),
1336
+ resource_names=d.get("resource_names", None),
1337
+ rule_id=d.get("rule_id", None),
1338
+ updated_time=d.get("updated_time", None),
1339
+ vpc_endpoint_id=d.get("vpc_endpoint_id", None),
1340
+ )
1341
+
1342
+
1343
+ class CustomerFacingNetworkConnectivityConfigAwsPrivateEndpointRulePrivateLinkConnectionState(Enum):
1344
+
1345
+ DISCONNECTED = "DISCONNECTED"
1346
+ ESTABLISHED = "ESTABLISHED"
1347
+ EXPIRED = "EXPIRED"
1348
+ PENDING = "PENDING"
1349
+ REJECTED = "REJECTED"
1350
+
1351
+
1352
+ @dataclass
1353
+ class DashboardEmailSubscriptions:
1354
+ boolean_val: BooleanMessage
1355
+
1356
+ etag: Optional[str] = None
1357
+ """etag used for versioning. The response is at least as fresh as the eTag provided. This is used
1358
+ for optimistic concurrency control as a way to help prevent simultaneous writes of a setting
1359
+ overwriting each other. It is strongly suggested that systems make use of the etag in the read
1360
+ -> update pattern to perform setting updates in order to avoid race conditions. That is, get an
1361
+ etag from a GET request, and pass it with the PATCH request to identify the setting version you
1362
+ are updating."""
1363
+
1364
+ setting_name: Optional[str] = None
1365
+ """Name of the corresponding setting. This field is populated in the response, but it will not be
1366
+ respected even if it's set in the request body. The setting name in the path parameter will be
1367
+ respected instead. Setting name is required to be 'default' if the setting only has one instance
1368
+ per workspace."""
1369
+
1370
+ def as_dict(self) -> dict:
1371
+ """Serializes the DashboardEmailSubscriptions into a dictionary suitable for use as a JSON request body."""
1372
+ body = {}
1373
+ if self.boolean_val:
1374
+ body["boolean_val"] = self.boolean_val.as_dict()
1375
+ if self.etag is not None:
1376
+ body["etag"] = self.etag
1377
+ if self.setting_name is not None:
1378
+ body["setting_name"] = self.setting_name
1379
+ return body
1380
+
1381
+ def as_shallow_dict(self) -> dict:
1382
+ """Serializes the DashboardEmailSubscriptions into a shallow dictionary of its immediate attributes."""
1383
+ body = {}
1384
+ if self.boolean_val:
1385
+ body["boolean_val"] = self.boolean_val
1386
+ if self.etag is not None:
1387
+ body["etag"] = self.etag
1388
+ if self.setting_name is not None:
1389
+ body["setting_name"] = self.setting_name
1390
+ return body
1391
+
1392
+ @classmethod
1393
+ def from_dict(cls, d: Dict[str, Any]) -> DashboardEmailSubscriptions:
1394
+ """Deserializes the DashboardEmailSubscriptions from a dictionary."""
1395
+ return cls(
1396
+ boolean_val=_from_dict(d, "boolean_val", BooleanMessage),
1397
+ etag=d.get("etag", None),
1398
+ setting_name=d.get("setting_name", None),
1399
+ )
1400
+
1401
+
1169
1402
  @dataclass
1170
1403
  class DefaultNamespaceSetting:
1171
1404
  """This represents the setting configuration for the default namespace in the Databricks workspace.
@@ -1320,6 +1553,38 @@ class DeleteAibiDashboardEmbeddingApprovedDomainsSettingResponse:
1320
1553
  return cls(etag=d.get("etag", None))
1321
1554
 
1322
1555
 
1556
+ @dataclass
1557
+ class DeleteDashboardEmailSubscriptionsResponse:
1558
+ """The etag is returned."""
1559
+
1560
+ etag: str
1561
+ """etag used for versioning. The response is at least as fresh as the eTag provided. This is used
1562
+ for optimistic concurrency control as a way to help prevent simultaneous writes of a setting
1563
+ overwriting each other. It is strongly suggested that systems make use of the etag in the read
1564
+ -> delete pattern to perform setting deletions in order to avoid race conditions. That is, get
1565
+ an etag from a GET request, and pass it with the DELETE request to identify the rule set version
1566
+ you are deleting."""
1567
+
1568
+ def as_dict(self) -> dict:
1569
+ """Serializes the DeleteDashboardEmailSubscriptionsResponse into a dictionary suitable for use as a JSON request body."""
1570
+ body = {}
1571
+ if self.etag is not None:
1572
+ body["etag"] = self.etag
1573
+ return body
1574
+
1575
+ def as_shallow_dict(self) -> dict:
1576
+ """Serializes the DeleteDashboardEmailSubscriptionsResponse into a shallow dictionary of its immediate attributes."""
1577
+ body = {}
1578
+ if self.etag is not None:
1579
+ body["etag"] = self.etag
1580
+ return body
1581
+
1582
+ @classmethod
1583
+ def from_dict(cls, d: Dict[str, Any]) -> DeleteDashboardEmailSubscriptionsResponse:
1584
+ """Deserializes the DeleteDashboardEmailSubscriptionsResponse from a dictionary."""
1585
+ return cls(etag=d.get("etag", None))
1586
+
1587
+
1323
1588
  @dataclass
1324
1589
  class DeleteDefaultNamespaceSettingResponse:
1325
1590
  """The etag is returned."""
@@ -1598,6 +1863,38 @@ class DeleteRestrictWorkspaceAdminsSettingResponse:
1598
1863
  return cls(etag=d.get("etag", None))
1599
1864
 
1600
1865
 
1866
+ @dataclass
1867
+ class DeleteSqlResultsDownloadResponse:
1868
+ """The etag is returned."""
1869
+
1870
+ etag: str
1871
+ """etag used for versioning. The response is at least as fresh as the eTag provided. This is used
1872
+ for optimistic concurrency control as a way to help prevent simultaneous writes of a setting
1873
+ overwriting each other. It is strongly suggested that systems make use of the etag in the read
1874
+ -> delete pattern to perform setting deletions in order to avoid race conditions. That is, get
1875
+ an etag from a GET request, and pass it with the DELETE request to identify the rule set version
1876
+ you are deleting."""
1877
+
1878
+ def as_dict(self) -> dict:
1879
+ """Serializes the DeleteSqlResultsDownloadResponse into a dictionary suitable for use as a JSON request body."""
1880
+ body = {}
1881
+ if self.etag is not None:
1882
+ body["etag"] = self.etag
1883
+ return body
1884
+
1885
+ def as_shallow_dict(self) -> dict:
1886
+ """Serializes the DeleteSqlResultsDownloadResponse into a shallow dictionary of its immediate attributes."""
1887
+ body = {}
1888
+ if self.etag is not None:
1889
+ body["etag"] = self.etag
1890
+ return body
1891
+
1892
+ @classmethod
1893
+ def from_dict(cls, d: Dict[str, Any]) -> DeleteSqlResultsDownloadResponse:
1894
+ """Deserializes the DeleteSqlResultsDownloadResponse from a dictionary."""
1895
+ return cls(etag=d.get("etag", None))
1896
+
1897
+
1601
1898
  class DestinationType(Enum):
1602
1899
 
1603
1900
  EMAIL = "EMAIL"
@@ -3073,43 +3370,6 @@ class ListIpAccessListResponse:
3073
3370
  return cls(ip_access_lists=_repeated_dict(d, "ip_access_lists", IpAccessListInfo))
3074
3371
 
3075
3372
 
3076
- @dataclass
3077
- class ListNccAzurePrivateEndpointRulesResponse:
3078
- """The private endpoint rule list was successfully retrieved."""
3079
-
3080
- items: Optional[List[NccAzurePrivateEndpointRule]] = None
3081
-
3082
- next_page_token: Optional[str] = None
3083
- """A token that can be used to get the next page of results. If null, there are no more results to
3084
- show."""
3085
-
3086
- def as_dict(self) -> dict:
3087
- """Serializes the ListNccAzurePrivateEndpointRulesResponse into a dictionary suitable for use as a JSON request body."""
3088
- body = {}
3089
- if self.items:
3090
- body["items"] = [v.as_dict() for v in self.items]
3091
- if self.next_page_token is not None:
3092
- body["next_page_token"] = self.next_page_token
3093
- return body
3094
-
3095
- def as_shallow_dict(self) -> dict:
3096
- """Serializes the ListNccAzurePrivateEndpointRulesResponse into a shallow dictionary of its immediate attributes."""
3097
- body = {}
3098
- if self.items:
3099
- body["items"] = self.items
3100
- if self.next_page_token is not None:
3101
- body["next_page_token"] = self.next_page_token
3102
- return body
3103
-
3104
- @classmethod
3105
- def from_dict(cls, d: Dict[str, Any]) -> ListNccAzurePrivateEndpointRulesResponse:
3106
- """Deserializes the ListNccAzurePrivateEndpointRulesResponse from a dictionary."""
3107
- return cls(
3108
- items=_repeated_dict(d, "items", NccAzurePrivateEndpointRule),
3109
- next_page_token=d.get("next_page_token", None),
3110
- )
3111
-
3112
-
3113
3373
  @dataclass
3114
3374
  class ListNetworkConnectivityConfigurationsResponse:
3115
3375
  """The network connectivity configuration list was successfully retrieved."""
@@ -3259,6 +3519,42 @@ class ListNotificationDestinationsResult:
3259
3519
  )
3260
3520
 
3261
3521
 
3522
+ @dataclass
3523
+ class ListPrivateEndpointRulesResponse:
3524
+ """The private endpoint rule list was successfully retrieved."""
3525
+
3526
+ items: Optional[List[NccPrivateEndpointRule]] = None
3527
+
3528
+ next_page_token: Optional[str] = None
3529
+ """A token that can be used to get the next page of results. If null, there are no more results to
3530
+ show."""
3531
+
3532
+ def as_dict(self) -> dict:
3533
+ """Serializes the ListPrivateEndpointRulesResponse into a dictionary suitable for use as a JSON request body."""
3534
+ body = {}
3535
+ if self.items:
3536
+ body["items"] = [v.as_dict() for v in self.items]
3537
+ if self.next_page_token is not None:
3538
+ body["next_page_token"] = self.next_page_token
3539
+ return body
3540
+
3541
+ def as_shallow_dict(self) -> dict:
3542
+ """Serializes the ListPrivateEndpointRulesResponse into a shallow dictionary of its immediate attributes."""
3543
+ body = {}
3544
+ if self.items:
3545
+ body["items"] = self.items
3546
+ if self.next_page_token is not None:
3547
+ body["next_page_token"] = self.next_page_token
3548
+ return body
3549
+
3550
+ @classmethod
3551
+ def from_dict(cls, d: Dict[str, Any]) -> ListPrivateEndpointRulesResponse:
3552
+ """Deserializes the ListPrivateEndpointRulesResponse from a dictionary."""
3553
+ return cls(
3554
+ items=_repeated_dict(d, "items", NccPrivateEndpointRule), next_page_token=d.get("next_page_token", None)
3555
+ )
3556
+
3557
+
3262
3558
  @dataclass
3263
3559
  class ListPublicTokensResponse:
3264
3560
  token_infos: Optional[List[PublicTokenInfo]] = None
@@ -3558,7 +3854,7 @@ class NccAzurePrivateEndpointRule:
3558
3854
  """Time in epoch milliseconds when this object was deactivated."""
3559
3855
 
3560
3856
  domain_names: Optional[List[str]] = None
3561
- """Only used by private endpoints to customer-managed resources.
3857
+ """Not used by customer-managed private endpoint services.
3562
3858
 
3563
3859
  Domain names of target private link service. When updating this field, the full list of target
3564
3860
  domain_names must be specified."""
@@ -3567,8 +3863,7 @@ class NccAzurePrivateEndpointRule:
3567
3863
  """The name of the Azure private endpoint resource."""
3568
3864
 
3569
3865
  group_id: Optional[str] = None
3570
- """Only used by private endpoints to Azure first-party services. Enum: blob | dfs | sqlServer |
3571
- mysqlServer
3866
+ """Only used by private endpoints to Azure first-party services.
3572
3867
 
3573
3868
  The sub-resource type (group ID) of the target resource. Note that to connect to workspace root
3574
3869
  storage (root DBFS), you need two endpoints, one for blob and one for dfs."""
@@ -3796,11 +4091,16 @@ class NccEgressDefaultRules:
3796
4091
  class NccEgressTargetRules:
3797
4092
  """Target rule controls the egress rules that are dedicated to specific resources."""
3798
4093
 
4094
+ aws_private_endpoint_rules: Optional[List[CustomerFacingNetworkConnectivityConfigAwsPrivateEndpointRule]] = None
4095
+ """AWS private endpoint rule controls the AWS private endpoint based egress rules."""
4096
+
3799
4097
  azure_private_endpoint_rules: Optional[List[NccAzurePrivateEndpointRule]] = None
3800
4098
 
3801
4099
  def as_dict(self) -> dict:
3802
4100
  """Serializes the NccEgressTargetRules into a dictionary suitable for use as a JSON request body."""
3803
4101
  body = {}
4102
+ if self.aws_private_endpoint_rules:
4103
+ body["aws_private_endpoint_rules"] = [v.as_dict() for v in self.aws_private_endpoint_rules]
3804
4104
  if self.azure_private_endpoint_rules:
3805
4105
  body["azure_private_endpoint_rules"] = [v.as_dict() for v in self.azure_private_endpoint_rules]
3806
4106
  return body
@@ -3808,6 +4108,8 @@ class NccEgressTargetRules:
3808
4108
  def as_shallow_dict(self) -> dict:
3809
4109
  """Serializes the NccEgressTargetRules into a shallow dictionary of its immediate attributes."""
3810
4110
  body = {}
4111
+ if self.aws_private_endpoint_rules:
4112
+ body["aws_private_endpoint_rules"] = self.aws_private_endpoint_rules
3811
4113
  if self.azure_private_endpoint_rules:
3812
4114
  body["azure_private_endpoint_rules"] = self.azure_private_endpoint_rules
3813
4115
  return body
@@ -3816,16 +4118,200 @@ class NccEgressTargetRules:
3816
4118
  def from_dict(cls, d: Dict[str, Any]) -> NccEgressTargetRules:
3817
4119
  """Deserializes the NccEgressTargetRules from a dictionary."""
3818
4120
  return cls(
3819
- azure_private_endpoint_rules=_repeated_dict(d, "azure_private_endpoint_rules", NccAzurePrivateEndpointRule)
4121
+ aws_private_endpoint_rules=_repeated_dict(
4122
+ d, "aws_private_endpoint_rules", CustomerFacingNetworkConnectivityConfigAwsPrivateEndpointRule
4123
+ ),
4124
+ azure_private_endpoint_rules=_repeated_dict(d, "azure_private_endpoint_rules", NccAzurePrivateEndpointRule),
3820
4125
  )
3821
4126
 
3822
4127
 
4128
+ @dataclass
4129
+ class NccPrivateEndpointRule:
4130
+ """Properties of the new private endpoint rule. Note that you must approve the endpoint in Azure
4131
+ portal after initialization."""
4132
+
4133
+ account_id: Optional[str] = None
4134
+ """Databricks account ID. You can find your account ID from the Accounts Console."""
4135
+
4136
+ connection_state: Optional[NccPrivateEndpointRulePrivateLinkConnectionState] = None
4137
+ """The current status of this private endpoint. The private endpoint rules are effective only if
4138
+ the connection state is ESTABLISHED. Remember that you must approve new endpoints on your
4139
+ resources in the Cloud console before they take effect. The possible values are: - PENDING: The
4140
+ endpoint has been created and pending approval. - ESTABLISHED: The endpoint has been approved
4141
+ and is ready to use in your serverless compute resources. - REJECTED: Connection was rejected by
4142
+ the private link resource owner. - DISCONNECTED: Connection was removed by the private link
4143
+ resource owner, the private endpoint becomes informative and should be deleted for clean-up. -
4144
+ EXPIRED: If the endpoint was created but not approved in 14 days, it will be EXPIRED."""
4145
+
4146
+ creation_time: Optional[int] = None
4147
+ """Time in epoch milliseconds when this object was created."""
4148
+
4149
+ deactivated: Optional[bool] = None
4150
+ """Whether this private endpoint is deactivated."""
4151
+
4152
+ deactivated_at: Optional[int] = None
4153
+ """Time in epoch milliseconds when this object was deactivated."""
4154
+
4155
+ domain_names: Optional[List[str]] = None
4156
+ """Only used by private endpoints to customer-managed private endpoint services.
4157
+
4158
+ Domain names of target private link service. When updating this field, the full list of target
4159
+ domain_names must be specified."""
4160
+
4161
+ enabled: Optional[bool] = None
4162
+ """Only used by private endpoints towards an AWS S3 service.
4163
+
4164
+ Update this field to activate/deactivate this private endpoint to allow egress access from
4165
+ serverless compute resources."""
4166
+
4167
+ endpoint_name: Optional[str] = None
4168
+ """The name of the Azure private endpoint resource."""
4169
+
4170
+ endpoint_service: Optional[str] = None
4171
+ """The full target AWS endpoint service name that connects to the destination resources of the
4172
+ private endpoint."""
4173
+
4174
+ group_id: Optional[str] = None
4175
+ """Not used by customer-managed private endpoint services.
4176
+
4177
+ The sub-resource type (group ID) of the target resource. Note that to connect to workspace root
4178
+ storage (root DBFS), you need two endpoints, one for blob and one for dfs."""
4179
+
4180
+ network_connectivity_config_id: Optional[str] = None
4181
+ """The ID of a network connectivity configuration, which is the parent resource of this private
4182
+ endpoint rule object."""
4183
+
4184
+ resource_id: Optional[str] = None
4185
+ """The Azure resource ID of the target resource."""
4186
+
4187
+ resource_names: Optional[List[str]] = None
4188
+ """Only used by private endpoints towards AWS S3 service.
4189
+
4190
+ The globally unique S3 bucket names that will be accessed via the VPC endpoint. The bucket names
4191
+ must be in the same region as the NCC/endpoint service. When updating this field, we perform
4192
+ full update on this field. Please ensure a full list of desired resource_names is provided."""
4193
+
4194
+ rule_id: Optional[str] = None
4195
+ """The ID of a private endpoint rule."""
4196
+
4197
+ updated_time: Optional[int] = None
4198
+ """Time in epoch milliseconds when this object was updated."""
4199
+
4200
+ vpc_endpoint_id: Optional[str] = None
4201
+ """The AWS VPC endpoint ID. You can use this ID to identify the VPC endpoint created by Databricks."""
4202
+
4203
+ def as_dict(self) -> dict:
4204
+ """Serializes the NccPrivateEndpointRule into a dictionary suitable for use as a JSON request body."""
4205
+ body = {}
4206
+ if self.account_id is not None:
4207
+ body["account_id"] = self.account_id
4208
+ if self.connection_state is not None:
4209
+ body["connection_state"] = self.connection_state.value
4210
+ if self.creation_time is not None:
4211
+ body["creation_time"] = self.creation_time
4212
+ if self.deactivated is not None:
4213
+ body["deactivated"] = self.deactivated
4214
+ if self.deactivated_at is not None:
4215
+ body["deactivated_at"] = self.deactivated_at
4216
+ if self.domain_names:
4217
+ body["domain_names"] = [v for v in self.domain_names]
4218
+ if self.enabled is not None:
4219
+ body["enabled"] = self.enabled
4220
+ if self.endpoint_name is not None:
4221
+ body["endpoint_name"] = self.endpoint_name
4222
+ if self.endpoint_service is not None:
4223
+ body["endpoint_service"] = self.endpoint_service
4224
+ if self.group_id is not None:
4225
+ body["group_id"] = self.group_id
4226
+ if self.network_connectivity_config_id is not None:
4227
+ body["network_connectivity_config_id"] = self.network_connectivity_config_id
4228
+ if self.resource_id is not None:
4229
+ body["resource_id"] = self.resource_id
4230
+ if self.resource_names:
4231
+ body["resource_names"] = [v for v in self.resource_names]
4232
+ if self.rule_id is not None:
4233
+ body["rule_id"] = self.rule_id
4234
+ if self.updated_time is not None:
4235
+ body["updated_time"] = self.updated_time
4236
+ if self.vpc_endpoint_id is not None:
4237
+ body["vpc_endpoint_id"] = self.vpc_endpoint_id
4238
+ return body
4239
+
4240
+ def as_shallow_dict(self) -> dict:
4241
+ """Serializes the NccPrivateEndpointRule into a shallow dictionary of its immediate attributes."""
4242
+ body = {}
4243
+ if self.account_id is not None:
4244
+ body["account_id"] = self.account_id
4245
+ if self.connection_state is not None:
4246
+ body["connection_state"] = self.connection_state
4247
+ if self.creation_time is not None:
4248
+ body["creation_time"] = self.creation_time
4249
+ if self.deactivated is not None:
4250
+ body["deactivated"] = self.deactivated
4251
+ if self.deactivated_at is not None:
4252
+ body["deactivated_at"] = self.deactivated_at
4253
+ if self.domain_names:
4254
+ body["domain_names"] = self.domain_names
4255
+ if self.enabled is not None:
4256
+ body["enabled"] = self.enabled
4257
+ if self.endpoint_name is not None:
4258
+ body["endpoint_name"] = self.endpoint_name
4259
+ if self.endpoint_service is not None:
4260
+ body["endpoint_service"] = self.endpoint_service
4261
+ if self.group_id is not None:
4262
+ body["group_id"] = self.group_id
4263
+ if self.network_connectivity_config_id is not None:
4264
+ body["network_connectivity_config_id"] = self.network_connectivity_config_id
4265
+ if self.resource_id is not None:
4266
+ body["resource_id"] = self.resource_id
4267
+ if self.resource_names:
4268
+ body["resource_names"] = self.resource_names
4269
+ if self.rule_id is not None:
4270
+ body["rule_id"] = self.rule_id
4271
+ if self.updated_time is not None:
4272
+ body["updated_time"] = self.updated_time
4273
+ if self.vpc_endpoint_id is not None:
4274
+ body["vpc_endpoint_id"] = self.vpc_endpoint_id
4275
+ return body
4276
+
4277
+ @classmethod
4278
+ def from_dict(cls, d: Dict[str, Any]) -> NccPrivateEndpointRule:
4279
+ """Deserializes the NccPrivateEndpointRule from a dictionary."""
4280
+ return cls(
4281
+ account_id=d.get("account_id", None),
4282
+ connection_state=_enum(d, "connection_state", NccPrivateEndpointRulePrivateLinkConnectionState),
4283
+ creation_time=d.get("creation_time", None),
4284
+ deactivated=d.get("deactivated", None),
4285
+ deactivated_at=d.get("deactivated_at", None),
4286
+ domain_names=d.get("domain_names", None),
4287
+ enabled=d.get("enabled", None),
4288
+ endpoint_name=d.get("endpoint_name", None),
4289
+ endpoint_service=d.get("endpoint_service", None),
4290
+ group_id=d.get("group_id", None),
4291
+ network_connectivity_config_id=d.get("network_connectivity_config_id", None),
4292
+ resource_id=d.get("resource_id", None),
4293
+ resource_names=d.get("resource_names", None),
4294
+ rule_id=d.get("rule_id", None),
4295
+ updated_time=d.get("updated_time", None),
4296
+ vpc_endpoint_id=d.get("vpc_endpoint_id", None),
4297
+ )
4298
+
4299
+
4300
+ class NccPrivateEndpointRulePrivateLinkConnectionState(Enum):
4301
+
4302
+ DISCONNECTED = "DISCONNECTED"
4303
+ ESTABLISHED = "ESTABLISHED"
4304
+ EXPIRED = "EXPIRED"
4305
+ PENDING = "PENDING"
4306
+ REJECTED = "REJECTED"
4307
+
4308
+
3823
4309
  @dataclass
3824
4310
  class NetworkConnectivityConfiguration:
3825
4311
  """Properties of the new network connectivity configuration."""
3826
4312
 
3827
4313
  account_id: Optional[str] = None
3828
- """The Databricks account ID that hosts the credential."""
4314
+ """Your Databricks account ID. You can find your account ID in your Databricks accounts console."""
3829
4315
 
3830
4316
  creation_time: Optional[int] = None
3831
4317
  """Time in epoch milliseconds when this object was created."""
@@ -4440,6 +4926,56 @@ class SlackConfig:
4440
4926
  return cls(url=d.get("url", None), url_set=d.get("url_set", None))
4441
4927
 
4442
4928
 
4929
+ @dataclass
4930
+ class SqlResultsDownload:
4931
+ boolean_val: BooleanMessage
4932
+
4933
+ etag: Optional[str] = None
4934
+ """etag used for versioning. The response is at least as fresh as the eTag provided. This is used
4935
+ for optimistic concurrency control as a way to help prevent simultaneous writes of a setting
4936
+ overwriting each other. It is strongly suggested that systems make use of the etag in the read
4937
+ -> update pattern to perform setting updates in order to avoid race conditions. That is, get an
4938
+ etag from a GET request, and pass it with the PATCH request to identify the setting version you
4939
+ are updating."""
4940
+
4941
+ setting_name: Optional[str] = None
4942
+ """Name of the corresponding setting. This field is populated in the response, but it will not be
4943
+ respected even if it's set in the request body. The setting name in the path parameter will be
4944
+ respected instead. Setting name is required to be 'default' if the setting only has one instance
4945
+ per workspace."""
4946
+
4947
+ def as_dict(self) -> dict:
4948
+ """Serializes the SqlResultsDownload into a dictionary suitable for use as a JSON request body."""
4949
+ body = {}
4950
+ if self.boolean_val:
4951
+ body["boolean_val"] = self.boolean_val.as_dict()
4952
+ if self.etag is not None:
4953
+ body["etag"] = self.etag
4954
+ if self.setting_name is not None:
4955
+ body["setting_name"] = self.setting_name
4956
+ return body
4957
+
4958
+ def as_shallow_dict(self) -> dict:
4959
+ """Serializes the SqlResultsDownload into a shallow dictionary of its immediate attributes."""
4960
+ body = {}
4961
+ if self.boolean_val:
4962
+ body["boolean_val"] = self.boolean_val
4963
+ if self.etag is not None:
4964
+ body["etag"] = self.etag
4965
+ if self.setting_name is not None:
4966
+ body["setting_name"] = self.setting_name
4967
+ return body
4968
+
4969
+ @classmethod
4970
+ def from_dict(cls, d: Dict[str, Any]) -> SqlResultsDownload:
4971
+ """Deserializes the SqlResultsDownload from a dictionary."""
4972
+ return cls(
4973
+ boolean_val=_from_dict(d, "boolean_val", BooleanMessage),
4974
+ etag=d.get("etag", None),
4975
+ setting_name=d.get("setting_name", None),
4976
+ )
4977
+
4978
+
4443
4979
  @dataclass
4444
4980
  class StringMessage:
4445
4981
  value: Optional[str] = None
@@ -4985,7 +5521,59 @@ class UpdateAutomaticClusterUpdateSettingRequest:
4985
5521
  allow_missing: bool
4986
5522
  """This should always be set to true for Settings API. Added for AIP compliance."""
4987
5523
 
4988
- setting: AutomaticClusterUpdateSetting
5524
+ setting: AutomaticClusterUpdateSetting
5525
+
5526
+ field_mask: str
5527
+ """The field mask must be a single string, with multiple fields separated by commas (no spaces).
5528
+ The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields
5529
+ (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed,
5530
+ as only the entire collection field can be specified. Field names must exactly match the
5531
+ resource field names.
5532
+
5533
+ A field mask of `*` indicates full replacement. It’s recommended to always explicitly list the
5534
+ fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the
5535
+ API changes in the future."""
5536
+
5537
+ def as_dict(self) -> dict:
5538
+ """Serializes the UpdateAutomaticClusterUpdateSettingRequest into a dictionary suitable for use as a JSON request body."""
5539
+ body = {}
5540
+ if self.allow_missing is not None:
5541
+ body["allow_missing"] = self.allow_missing
5542
+ if self.field_mask is not None:
5543
+ body["field_mask"] = self.field_mask
5544
+ if self.setting:
5545
+ body["setting"] = self.setting.as_dict()
5546
+ return body
5547
+
5548
+ def as_shallow_dict(self) -> dict:
5549
+ """Serializes the UpdateAutomaticClusterUpdateSettingRequest into a shallow dictionary of its immediate attributes."""
5550
+ body = {}
5551
+ if self.allow_missing is not None:
5552
+ body["allow_missing"] = self.allow_missing
5553
+ if self.field_mask is not None:
5554
+ body["field_mask"] = self.field_mask
5555
+ if self.setting:
5556
+ body["setting"] = self.setting
5557
+ return body
5558
+
5559
+ @classmethod
5560
+ def from_dict(cls, d: Dict[str, Any]) -> UpdateAutomaticClusterUpdateSettingRequest:
5561
+ """Deserializes the UpdateAutomaticClusterUpdateSettingRequest from a dictionary."""
5562
+ return cls(
5563
+ allow_missing=d.get("allow_missing", None),
5564
+ field_mask=d.get("field_mask", None),
5565
+ setting=_from_dict(d, "setting", AutomaticClusterUpdateSetting),
5566
+ )
5567
+
5568
+
5569
+ @dataclass
5570
+ class UpdateComplianceSecurityProfileSettingRequest:
5571
+ """Details required to update a setting."""
5572
+
5573
+ allow_missing: bool
5574
+ """This should always be set to true for Settings API. Added for AIP compliance."""
5575
+
5576
+ setting: ComplianceSecurityProfileSetting
4989
5577
 
4990
5578
  field_mask: str
4991
5579
  """The field mask must be a single string, with multiple fields separated by commas (no spaces).
@@ -4999,7 +5587,7 @@ class UpdateAutomaticClusterUpdateSettingRequest:
4999
5587
  API changes in the future."""
5000
5588
 
5001
5589
  def as_dict(self) -> dict:
5002
- """Serializes the UpdateAutomaticClusterUpdateSettingRequest into a dictionary suitable for use as a JSON request body."""
5590
+ """Serializes the UpdateComplianceSecurityProfileSettingRequest into a dictionary suitable for use as a JSON request body."""
5003
5591
  body = {}
5004
5592
  if self.allow_missing is not None:
5005
5593
  body["allow_missing"] = self.allow_missing
@@ -5010,7 +5598,7 @@ class UpdateAutomaticClusterUpdateSettingRequest:
5010
5598
  return body
5011
5599
 
5012
5600
  def as_shallow_dict(self) -> dict:
5013
- """Serializes the UpdateAutomaticClusterUpdateSettingRequest into a shallow dictionary of its immediate attributes."""
5601
+ """Serializes the UpdateComplianceSecurityProfileSettingRequest into a shallow dictionary of its immediate attributes."""
5014
5602
  body = {}
5015
5603
  if self.allow_missing is not None:
5016
5604
  body["allow_missing"] = self.allow_missing
@@ -5021,23 +5609,23 @@ class UpdateAutomaticClusterUpdateSettingRequest:
5021
5609
  return body
5022
5610
 
5023
5611
  @classmethod
5024
- def from_dict(cls, d: Dict[str, Any]) -> UpdateAutomaticClusterUpdateSettingRequest:
5025
- """Deserializes the UpdateAutomaticClusterUpdateSettingRequest from a dictionary."""
5612
+ def from_dict(cls, d: Dict[str, Any]) -> UpdateComplianceSecurityProfileSettingRequest:
5613
+ """Deserializes the UpdateComplianceSecurityProfileSettingRequest from a dictionary."""
5026
5614
  return cls(
5027
5615
  allow_missing=d.get("allow_missing", None),
5028
5616
  field_mask=d.get("field_mask", None),
5029
- setting=_from_dict(d, "setting", AutomaticClusterUpdateSetting),
5617
+ setting=_from_dict(d, "setting", ComplianceSecurityProfileSetting),
5030
5618
  )
5031
5619
 
5032
5620
 
5033
5621
  @dataclass
5034
- class UpdateComplianceSecurityProfileSettingRequest:
5622
+ class UpdateCspEnablementAccountSettingRequest:
5035
5623
  """Details required to update a setting."""
5036
5624
 
5037
5625
  allow_missing: bool
5038
5626
  """This should always be set to true for Settings API. Added for AIP compliance."""
5039
5627
 
5040
- setting: ComplianceSecurityProfileSetting
5628
+ setting: CspEnablementAccountSetting
5041
5629
 
5042
5630
  field_mask: str
5043
5631
  """The field mask must be a single string, with multiple fields separated by commas (no spaces).
@@ -5051,7 +5639,7 @@ class UpdateComplianceSecurityProfileSettingRequest:
5051
5639
  API changes in the future."""
5052
5640
 
5053
5641
  def as_dict(self) -> dict:
5054
- """Serializes the UpdateComplianceSecurityProfileSettingRequest into a dictionary suitable for use as a JSON request body."""
5642
+ """Serializes the UpdateCspEnablementAccountSettingRequest into a dictionary suitable for use as a JSON request body."""
5055
5643
  body = {}
5056
5644
  if self.allow_missing is not None:
5057
5645
  body["allow_missing"] = self.allow_missing
@@ -5062,7 +5650,7 @@ class UpdateComplianceSecurityProfileSettingRequest:
5062
5650
  return body
5063
5651
 
5064
5652
  def as_shallow_dict(self) -> dict:
5065
- """Serializes the UpdateComplianceSecurityProfileSettingRequest into a shallow dictionary of its immediate attributes."""
5653
+ """Serializes the UpdateCspEnablementAccountSettingRequest into a shallow dictionary of its immediate attributes."""
5066
5654
  body = {}
5067
5655
  if self.allow_missing is not None:
5068
5656
  body["allow_missing"] = self.allow_missing
@@ -5073,23 +5661,23 @@ class UpdateComplianceSecurityProfileSettingRequest:
5073
5661
  return body
5074
5662
 
5075
5663
  @classmethod
5076
- def from_dict(cls, d: Dict[str, Any]) -> UpdateComplianceSecurityProfileSettingRequest:
5077
- """Deserializes the UpdateComplianceSecurityProfileSettingRequest from a dictionary."""
5664
+ def from_dict(cls, d: Dict[str, Any]) -> UpdateCspEnablementAccountSettingRequest:
5665
+ """Deserializes the UpdateCspEnablementAccountSettingRequest from a dictionary."""
5078
5666
  return cls(
5079
5667
  allow_missing=d.get("allow_missing", None),
5080
5668
  field_mask=d.get("field_mask", None),
5081
- setting=_from_dict(d, "setting", ComplianceSecurityProfileSetting),
5669
+ setting=_from_dict(d, "setting", CspEnablementAccountSetting),
5082
5670
  )
5083
5671
 
5084
5672
 
5085
5673
  @dataclass
5086
- class UpdateCspEnablementAccountSettingRequest:
5674
+ class UpdateDashboardEmailSubscriptionsRequest:
5087
5675
  """Details required to update a setting."""
5088
5676
 
5089
5677
  allow_missing: bool
5090
5678
  """This should always be set to true for Settings API. Added for AIP compliance."""
5091
5679
 
5092
- setting: CspEnablementAccountSetting
5680
+ setting: DashboardEmailSubscriptions
5093
5681
 
5094
5682
  field_mask: str
5095
5683
  """The field mask must be a single string, with multiple fields separated by commas (no spaces).
@@ -5103,7 +5691,7 @@ class UpdateCspEnablementAccountSettingRequest:
5103
5691
  API changes in the future."""
5104
5692
 
5105
5693
  def as_dict(self) -> dict:
5106
- """Serializes the UpdateCspEnablementAccountSettingRequest into a dictionary suitable for use as a JSON request body."""
5694
+ """Serializes the UpdateDashboardEmailSubscriptionsRequest into a dictionary suitable for use as a JSON request body."""
5107
5695
  body = {}
5108
5696
  if self.allow_missing is not None:
5109
5697
  body["allow_missing"] = self.allow_missing
@@ -5114,7 +5702,7 @@ class UpdateCspEnablementAccountSettingRequest:
5114
5702
  return body
5115
5703
 
5116
5704
  def as_shallow_dict(self) -> dict:
5117
- """Serializes the UpdateCspEnablementAccountSettingRequest into a shallow dictionary of its immediate attributes."""
5705
+ """Serializes the UpdateDashboardEmailSubscriptionsRequest into a shallow dictionary of its immediate attributes."""
5118
5706
  body = {}
5119
5707
  if self.allow_missing is not None:
5120
5708
  body["allow_missing"] = self.allow_missing
@@ -5125,12 +5713,12 @@ class UpdateCspEnablementAccountSettingRequest:
5125
5713
  return body
5126
5714
 
5127
5715
  @classmethod
5128
- def from_dict(cls, d: Dict[str, Any]) -> UpdateCspEnablementAccountSettingRequest:
5129
- """Deserializes the UpdateCspEnablementAccountSettingRequest from a dictionary."""
5716
+ def from_dict(cls, d: Dict[str, Any]) -> UpdateDashboardEmailSubscriptionsRequest:
5717
+ """Deserializes the UpdateDashboardEmailSubscriptionsRequest from a dictionary."""
5130
5718
  return cls(
5131
5719
  allow_missing=d.get("allow_missing", None),
5132
5720
  field_mask=d.get("field_mask", None),
5133
- setting=_from_dict(d, "setting", CspEnablementAccountSetting),
5721
+ setting=_from_dict(d, "setting", DashboardEmailSubscriptions),
5134
5722
  )
5135
5723
 
5136
5724
 
@@ -5927,16 +6515,33 @@ class UpdatePrivateEndpointRule:
5927
6515
  portal after initialization."""
5928
6516
 
5929
6517
  domain_names: Optional[List[str]] = None
5930
- """Only used by private endpoints to customer-managed resources.
6518
+ """Only used by private endpoints to customer-managed private endpoint services.
5931
6519
 
5932
6520
  Domain names of target private link service. When updating this field, the full list of target
5933
6521
  domain_names must be specified."""
5934
6522
 
6523
+ enabled: Optional[bool] = None
6524
+ """Only used by private endpoints towards an AWS S3 service.
6525
+
6526
+ Update this field to activate/deactivate this private endpoint to allow egress access from
6527
+ serverless compute resources."""
6528
+
6529
+ resource_names: Optional[List[str]] = None
6530
+ """Only used by private endpoints towards AWS S3 service.
6531
+
6532
+ The globally unique S3 bucket names that will be accessed via the VPC endpoint. The bucket names
6533
+ must be in the same region as the NCC/endpoint service. When updating this field, we perform
6534
+ full update on this field. Please ensure a full list of desired resource_names is provided."""
6535
+
5935
6536
  def as_dict(self) -> dict:
5936
6537
  """Serializes the UpdatePrivateEndpointRule into a dictionary suitable for use as a JSON request body."""
5937
6538
  body = {}
5938
6539
  if self.domain_names:
5939
6540
  body["domain_names"] = [v for v in self.domain_names]
6541
+ if self.enabled is not None:
6542
+ body["enabled"] = self.enabled
6543
+ if self.resource_names:
6544
+ body["resource_names"] = [v for v in self.resource_names]
5940
6545
  return body
5941
6546
 
5942
6547
  def as_shallow_dict(self) -> dict:
@@ -5944,12 +6549,20 @@ class UpdatePrivateEndpointRule:
5944
6549
  body = {}
5945
6550
  if self.domain_names:
5946
6551
  body["domain_names"] = self.domain_names
6552
+ if self.enabled is not None:
6553
+ body["enabled"] = self.enabled
6554
+ if self.resource_names:
6555
+ body["resource_names"] = self.resource_names
5947
6556
  return body
5948
6557
 
5949
6558
  @classmethod
5950
6559
  def from_dict(cls, d: Dict[str, Any]) -> UpdatePrivateEndpointRule:
5951
6560
  """Deserializes the UpdatePrivateEndpointRule from a dictionary."""
5952
- return cls(domain_names=d.get("domain_names", None))
6561
+ return cls(
6562
+ domain_names=d.get("domain_names", None),
6563
+ enabled=d.get("enabled", None),
6564
+ resource_names=d.get("resource_names", None),
6565
+ )
5953
6566
 
5954
6567
 
5955
6568
  @dataclass
@@ -6022,6 +6635,58 @@ class UpdateRestrictWorkspaceAdminsSettingRequest:
6022
6635
  )
6023
6636
 
6024
6637
 
6638
+ @dataclass
6639
+ class UpdateSqlResultsDownloadRequest:
6640
+ """Details required to update a setting."""
6641
+
6642
+ allow_missing: bool
6643
+ """This should always be set to true for Settings API. Added for AIP compliance."""
6644
+
6645
+ setting: SqlResultsDownload
6646
+
6647
+ field_mask: str
6648
+ """The field mask must be a single string, with multiple fields separated by commas (no spaces).
6649
+ The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields
6650
+ (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed,
6651
+ as only the entire collection field can be specified. Field names must exactly match the
6652
+ resource field names.
6653
+
6654
+ A field mask of `*` indicates full replacement. It’s recommended to always explicitly list the
6655
+ fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the
6656
+ API changes in the future."""
6657
+
6658
+ def as_dict(self) -> dict:
6659
+ """Serializes the UpdateSqlResultsDownloadRequest into a dictionary suitable for use as a JSON request body."""
6660
+ body = {}
6661
+ if self.allow_missing is not None:
6662
+ body["allow_missing"] = self.allow_missing
6663
+ if self.field_mask is not None:
6664
+ body["field_mask"] = self.field_mask
6665
+ if self.setting:
6666
+ body["setting"] = self.setting.as_dict()
6667
+ return body
6668
+
6669
+ def as_shallow_dict(self) -> dict:
6670
+ """Serializes the UpdateSqlResultsDownloadRequest into a shallow dictionary of its immediate attributes."""
6671
+ body = {}
6672
+ if self.allow_missing is not None:
6673
+ body["allow_missing"] = self.allow_missing
6674
+ if self.field_mask is not None:
6675
+ body["field_mask"] = self.field_mask
6676
+ if self.setting:
6677
+ body["setting"] = self.setting
6678
+ return body
6679
+
6680
+ @classmethod
6681
+ def from_dict(cls, d: Dict[str, Any]) -> UpdateSqlResultsDownloadRequest:
6682
+ """Deserializes the UpdateSqlResultsDownloadRequest from a dictionary."""
6683
+ return cls(
6684
+ allow_missing=d.get("allow_missing", None),
6685
+ field_mask=d.get("field_mask", None),
6686
+ setting=_from_dict(d, "setting", SqlResultsDownload),
6687
+ )
6688
+
6689
+
6025
6690
  WorkspaceConf = Dict[str, str]
6026
6691
 
6027
6692
 
@@ -6851,6 +7516,112 @@ class CspEnablementAccountAPI:
6851
7516
  return CspEnablementAccountSetting.from_dict(res)
6852
7517
 
6853
7518
 
7519
+ class DashboardEmailSubscriptionsAPI:
7520
+ """Controls whether schedules or workload tasks for refreshing AI/BI Dashboards in the workspace can send
7521
+ subscription emails containing PDFs and/or images of the dashboard. By default, this setting is enabled
7522
+ (set to `true`)"""
7523
+
7524
+ def __init__(self, api_client):
7525
+ self._api = api_client
7526
+
7527
+ def delete(self, *, etag: Optional[str] = None) -> DeleteDashboardEmailSubscriptionsResponse:
7528
+ """Delete the Dashboard Email Subscriptions setting.
7529
+
7530
+ Reverts the Dashboard Email Subscriptions setting to its default value.
7531
+
7532
+ :param etag: str (optional)
7533
+ etag used for versioning. The response is at least as fresh as the eTag provided. This is used for
7534
+ optimistic concurrency control as a way to help prevent simultaneous writes of a setting overwriting
7535
+ each other. It is strongly suggested that systems make use of the etag in the read -> delete pattern
7536
+ to perform setting deletions in order to avoid race conditions. That is, get an etag from a GET
7537
+ request, and pass it with the DELETE request to identify the rule set version you are deleting.
7538
+
7539
+ :returns: :class:`DeleteDashboardEmailSubscriptionsResponse`
7540
+ """
7541
+
7542
+ query = {}
7543
+ if etag is not None:
7544
+ query["etag"] = etag
7545
+ headers = {
7546
+ "Accept": "application/json",
7547
+ }
7548
+
7549
+ res = self._api.do(
7550
+ "DELETE",
7551
+ "/api/2.0/settings/types/dashboard_email_subscriptions/names/default",
7552
+ query=query,
7553
+ headers=headers,
7554
+ )
7555
+ return DeleteDashboardEmailSubscriptionsResponse.from_dict(res)
7556
+
7557
+ def get(self, *, etag: Optional[str] = None) -> DashboardEmailSubscriptions:
7558
+ """Get the Dashboard Email Subscriptions setting.
7559
+
7560
+ Gets the Dashboard Email Subscriptions setting.
7561
+
7562
+ :param etag: str (optional)
7563
+ etag used for versioning. The response is at least as fresh as the eTag provided. This is used for
7564
+ optimistic concurrency control as a way to help prevent simultaneous writes of a setting overwriting
7565
+ each other. It is strongly suggested that systems make use of the etag in the read -> delete pattern
7566
+ to perform setting deletions in order to avoid race conditions. That is, get an etag from a GET
7567
+ request, and pass it with the DELETE request to identify the rule set version you are deleting.
7568
+
7569
+ :returns: :class:`DashboardEmailSubscriptions`
7570
+ """
7571
+
7572
+ query = {}
7573
+ if etag is not None:
7574
+ query["etag"] = etag
7575
+ headers = {
7576
+ "Accept": "application/json",
7577
+ }
7578
+
7579
+ res = self._api.do(
7580
+ "GET", "/api/2.0/settings/types/dashboard_email_subscriptions/names/default", query=query, headers=headers
7581
+ )
7582
+ return DashboardEmailSubscriptions.from_dict(res)
7583
+
7584
+ def update(
7585
+ self, allow_missing: bool, setting: DashboardEmailSubscriptions, field_mask: str
7586
+ ) -> DashboardEmailSubscriptions:
7587
+ """Update the Dashboard Email Subscriptions setting.
7588
+
7589
+ Updates the Dashboard Email Subscriptions setting.
7590
+
7591
+ :param allow_missing: bool
7592
+ This should always be set to true for Settings API. Added for AIP compliance.
7593
+ :param setting: :class:`DashboardEmailSubscriptions`
7594
+ :param field_mask: str
7595
+ The field mask must be a single string, with multiple fields separated by commas (no spaces). The
7596
+ field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g.,
7597
+ `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only
7598
+ the entire collection field can be specified. Field names must exactly match the resource field
7599
+ names.
7600
+
7601
+ A field mask of `*` indicates full replacement. It’s recommended to always explicitly list the
7602
+ fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API
7603
+ changes in the future.
7604
+
7605
+ :returns: :class:`DashboardEmailSubscriptions`
7606
+ """
7607
+ body = {}
7608
+ if allow_missing is not None:
7609
+ body["allow_missing"] = allow_missing
7610
+ if field_mask is not None:
7611
+ body["field_mask"] = field_mask
7612
+ if setting is not None:
7613
+ body["setting"] = setting.as_dict()
7614
+ headers = {
7615
+ "Accept": "application/json",
7616
+ "Content-Type": "application/json",
7617
+ }
7618
+
7619
+ res = self._api.do(
7620
+ "PATCH", "/api/2.0/settings/types/dashboard_email_subscriptions/names/default", body=body, headers=headers
7621
+ )
7622
+ return DashboardEmailSubscriptions.from_dict(res)
7623
+
7624
+
6854
7625
  class DefaultNamespaceAPI:
6855
7626
  """The default namespace setting API allows users to configure the default namespace for a Databricks
6856
7627
  workspace.
@@ -8297,7 +9068,7 @@ class NetworkConnectivityAPI:
8297
9068
 
8298
9069
  def create_private_endpoint_rule(
8299
9070
  self, network_connectivity_config_id: str, private_endpoint_rule: CreatePrivateEndpointRule
8300
- ) -> NccAzurePrivateEndpointRule:
9071
+ ) -> NccPrivateEndpointRule:
8301
9072
  """Create a private endpoint rule.
8302
9073
 
8303
9074
  Create a private endpoint rule for the specified network connectivity config object. Once the object
@@ -8316,7 +9087,7 @@ class NetworkConnectivityAPI:
8316
9087
  Properties of the new private endpoint rule. Note that you must approve the endpoint in Azure portal
8317
9088
  after initialization.
8318
9089
 
8319
- :returns: :class:`NccAzurePrivateEndpointRule`
9090
+ :returns: :class:`NccPrivateEndpointRule`
8320
9091
  """
8321
9092
  body = private_endpoint_rule.as_dict()
8322
9093
  headers = {
@@ -8330,7 +9101,7 @@ class NetworkConnectivityAPI:
8330
9101
  body=body,
8331
9102
  headers=headers,
8332
9103
  )
8333
- return NccAzurePrivateEndpointRule.from_dict(res)
9104
+ return NccPrivateEndpointRule.from_dict(res)
8334
9105
 
8335
9106
  def delete_network_connectivity_configuration(self, network_connectivity_config_id: str):
8336
9107
  """Delete a network connectivity configuration.
@@ -8355,7 +9126,7 @@ class NetworkConnectivityAPI:
8355
9126
 
8356
9127
  def delete_private_endpoint_rule(
8357
9128
  self, network_connectivity_config_id: str, private_endpoint_rule_id: str
8358
- ) -> NccAzurePrivateEndpointRule:
9129
+ ) -> NccPrivateEndpointRule:
8359
9130
  """Delete a private endpoint rule.
8360
9131
 
8361
9132
  Initiates deleting a private endpoint rule. If the connection state is PENDING or EXPIRED, the private
@@ -8368,7 +9139,7 @@ class NetworkConnectivityAPI:
8368
9139
  :param private_endpoint_rule_id: str
8369
9140
  Your private endpoint rule ID.
8370
9141
 
8371
- :returns: :class:`NccAzurePrivateEndpointRule`
9142
+ :returns: :class:`NccPrivateEndpointRule`
8372
9143
  """
8373
9144
 
8374
9145
  headers = {
@@ -8380,7 +9151,7 @@ class NetworkConnectivityAPI:
8380
9151
  f"/api/2.0/accounts/{self._api.account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-endpoint-rules/{private_endpoint_rule_id}",
8381
9152
  headers=headers,
8382
9153
  )
8383
- return NccAzurePrivateEndpointRule.from_dict(res)
9154
+ return NccPrivateEndpointRule.from_dict(res)
8384
9155
 
8385
9156
  def get_network_connectivity_configuration(
8386
9157
  self, network_connectivity_config_id: str
@@ -8408,7 +9179,7 @@ class NetworkConnectivityAPI:
8408
9179
 
8409
9180
  def get_private_endpoint_rule(
8410
9181
  self, network_connectivity_config_id: str, private_endpoint_rule_id: str
8411
- ) -> NccAzurePrivateEndpointRule:
9182
+ ) -> NccPrivateEndpointRule:
8412
9183
  """Gets a private endpoint rule.
8413
9184
 
8414
9185
  Gets the private endpoint rule.
@@ -8418,7 +9189,7 @@ class NetworkConnectivityAPI:
8418
9189
  :param private_endpoint_rule_id: str
8419
9190
  Your private endpoint rule ID.
8420
9191
 
8421
- :returns: :class:`NccAzurePrivateEndpointRule`
9192
+ :returns: :class:`NccPrivateEndpointRule`
8422
9193
  """
8423
9194
 
8424
9195
  headers = {
@@ -8430,7 +9201,7 @@ class NetworkConnectivityAPI:
8430
9201
  f"/api/2.0/accounts/{self._api.account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-endpoint-rules/{private_endpoint_rule_id}",
8431
9202
  headers=headers,
8432
9203
  )
8433
- return NccAzurePrivateEndpointRule.from_dict(res)
9204
+ return NccPrivateEndpointRule.from_dict(res)
8434
9205
 
8435
9206
  def list_network_connectivity_configurations(
8436
9207
  self, *, page_token: Optional[str] = None
@@ -8468,7 +9239,7 @@ class NetworkConnectivityAPI:
8468
9239
 
8469
9240
  def list_private_endpoint_rules(
8470
9241
  self, network_connectivity_config_id: str, *, page_token: Optional[str] = None
8471
- ) -> Iterator[NccAzurePrivateEndpointRule]:
9242
+ ) -> Iterator[NccPrivateEndpointRule]:
8472
9243
  """List private endpoint rules.
8473
9244
 
8474
9245
  Gets an array of private endpoint rules.
@@ -8478,7 +9249,7 @@ class NetworkConnectivityAPI:
8478
9249
  :param page_token: str (optional)
8479
9250
  Pagination token to go to next page based on previous query.
8480
9251
 
8481
- :returns: Iterator over :class:`NccAzurePrivateEndpointRule`
9252
+ :returns: Iterator over :class:`NccPrivateEndpointRule`
8482
9253
  """
8483
9254
 
8484
9255
  query = {}
@@ -8497,25 +9268,26 @@ class NetworkConnectivityAPI:
8497
9268
  )
8498
9269
  if "items" in json:
8499
9270
  for v in json["items"]:
8500
- yield NccAzurePrivateEndpointRule.from_dict(v)
9271
+ yield NccPrivateEndpointRule.from_dict(v)
8501
9272
  if "next_page_token" not in json or not json["next_page_token"]:
8502
9273
  return
8503
9274
  query["page_token"] = json["next_page_token"]
8504
9275
 
8505
- def update_ncc_azure_private_endpoint_rule_public(
9276
+ def update_private_endpoint_rule(
8506
9277
  self,
8507
9278
  network_connectivity_config_id: str,
8508
9279
  private_endpoint_rule_id: str,
8509
9280
  private_endpoint_rule: UpdatePrivateEndpointRule,
8510
9281
  update_mask: str,
8511
- ) -> NccAzurePrivateEndpointRule:
9282
+ ) -> NccPrivateEndpointRule:
8512
9283
  """Update a private endpoint rule.
8513
9284
 
8514
9285
  Updates a private endpoint rule. Currently only a private endpoint rule to customer-managed resources
8515
9286
  is allowed to be updated.
8516
9287
 
8517
9288
  :param network_connectivity_config_id: str
8518
- Your Network Connectivity Configuration ID.
9289
+ The ID of a network connectivity configuration, which is the parent resource of this private
9290
+ endpoint rule object.
8519
9291
  :param private_endpoint_rule_id: str
8520
9292
  Your private endpoint rule ID.
8521
9293
  :param private_endpoint_rule: :class:`UpdatePrivateEndpointRule`
@@ -8528,7 +9300,7 @@ class NetworkConnectivityAPI:
8528
9300
  the entire collection field can be specified. Field names must exactly match the resource field
8529
9301
  names.
8530
9302
 
8531
- :returns: :class:`NccAzurePrivateEndpointRule`
9303
+ :returns: :class:`NccPrivateEndpointRule`
8532
9304
  """
8533
9305
  body = private_endpoint_rule.as_dict()
8534
9306
  query = {}
@@ -8546,7 +9318,7 @@ class NetworkConnectivityAPI:
8546
9318
  body=body,
8547
9319
  headers=headers,
8548
9320
  )
8549
- return NccAzurePrivateEndpointRule.from_dict(res)
9321
+ return NccPrivateEndpointRule.from_dict(res)
8550
9322
 
8551
9323
 
8552
9324
  class NetworkPoliciesAPI:
@@ -9045,6 +9817,7 @@ class SettingsAPI:
9045
9817
  self._aibi_dashboard_embedding_approved_domains = AibiDashboardEmbeddingApprovedDomainsAPI(self._api)
9046
9818
  self._automatic_cluster_update = AutomaticClusterUpdateAPI(self._api)
9047
9819
  self._compliance_security_profile = ComplianceSecurityProfileAPI(self._api)
9820
+ self._dashboard_email_subscriptions = DashboardEmailSubscriptionsAPI(self._api)
9048
9821
  self._default_namespace = DefaultNamespaceAPI(self._api)
9049
9822
  self._disable_legacy_access = DisableLegacyAccessAPI(self._api)
9050
9823
  self._disable_legacy_dbfs = DisableLegacyDbfsAPI(self._api)
@@ -9054,6 +9827,7 @@ class SettingsAPI:
9054
9827
  self._enhanced_security_monitoring = EnhancedSecurityMonitoringAPI(self._api)
9055
9828
  self._llm_proxy_partner_powered_workspace = LlmProxyPartnerPoweredWorkspaceAPI(self._api)
9056
9829
  self._restrict_workspace_admins = RestrictWorkspaceAdminsAPI(self._api)
9830
+ self._sql_results_download = SqlResultsDownloadAPI(self._api)
9057
9831
 
9058
9832
  @property
9059
9833
  def aibi_dashboard_embedding_access_policy(self) -> AibiDashboardEmbeddingAccessPolicyAPI:
@@ -9075,6 +9849,11 @@ class SettingsAPI:
9075
9849
  """Controls whether to enable the compliance security profile for the current workspace."""
9076
9850
  return self._compliance_security_profile
9077
9851
 
9852
+ @property
9853
+ def dashboard_email_subscriptions(self) -> DashboardEmailSubscriptionsAPI:
9854
+ """Controls whether schedules or workload tasks for refreshing AI/BI Dashboards in the workspace can send subscription emails containing PDFs and/or images of the dashboard."""
9855
+ return self._dashboard_email_subscriptions
9856
+
9078
9857
  @property
9079
9858
  def default_namespace(self) -> DefaultNamespaceAPI:
9080
9859
  """The default namespace setting API allows users to configure the default namespace for a Databricks workspace."""
@@ -9120,6 +9899,111 @@ class SettingsAPI:
9120
9899
  """The Restrict Workspace Admins setting lets you control the capabilities of workspace admins."""
9121
9900
  return self._restrict_workspace_admins
9122
9901
 
9902
+ @property
9903
+ def sql_results_download(self) -> SqlResultsDownloadAPI:
9904
+ """Controls whether users within the workspace are allowed to download results from the SQL Editor and AI/BI Dashboards UIs."""
9905
+ return self._sql_results_download
9906
+
9907
+
9908
+ class SqlResultsDownloadAPI:
9909
+ """Controls whether users within the workspace are allowed to download results from the SQL Editor and AI/BI
9910
+ Dashboards UIs. By default, this setting is enabled (set to `true`)"""
9911
+
9912
+ def __init__(self, api_client):
9913
+ self._api = api_client
9914
+
9915
+ def delete(self, *, etag: Optional[str] = None) -> DeleteSqlResultsDownloadResponse:
9916
+ """Delete the SQL Results Download setting.
9917
+
9918
+ Reverts the SQL Results Download setting to its default value.
9919
+
9920
+ :param etag: str (optional)
9921
+ etag used for versioning. The response is at least as fresh as the eTag provided. This is used for
9922
+ optimistic concurrency control as a way to help prevent simultaneous writes of a setting overwriting
9923
+ each other. It is strongly suggested that systems make use of the etag in the read -> delete pattern
9924
+ to perform setting deletions in order to avoid race conditions. That is, get an etag from a GET
9925
+ request, and pass it with the DELETE request to identify the rule set version you are deleting.
9926
+
9927
+ :returns: :class:`DeleteSqlResultsDownloadResponse`
9928
+ """
9929
+
9930
+ query = {}
9931
+ if etag is not None:
9932
+ query["etag"] = etag
9933
+ headers = {
9934
+ "Accept": "application/json",
9935
+ }
9936
+
9937
+ res = self._api.do(
9938
+ "DELETE", "/api/2.0/settings/types/sql_results_download/names/default", query=query, headers=headers
9939
+ )
9940
+ return DeleteSqlResultsDownloadResponse.from_dict(res)
9941
+
9942
+ def get(self, *, etag: Optional[str] = None) -> SqlResultsDownload:
9943
+ """Get the SQL Results Download setting.
9944
+
9945
+ Gets the SQL Results Download setting.
9946
+
9947
+ :param etag: str (optional)
9948
+ etag used for versioning. The response is at least as fresh as the eTag provided. This is used for
9949
+ optimistic concurrency control as a way to help prevent simultaneous writes of a setting overwriting
9950
+ each other. It is strongly suggested that systems make use of the etag in the read -> delete pattern
9951
+ to perform setting deletions in order to avoid race conditions. That is, get an etag from a GET
9952
+ request, and pass it with the DELETE request to identify the rule set version you are deleting.
9953
+
9954
+ :returns: :class:`SqlResultsDownload`
9955
+ """
9956
+
9957
+ query = {}
9958
+ if etag is not None:
9959
+ query["etag"] = etag
9960
+ headers = {
9961
+ "Accept": "application/json",
9962
+ }
9963
+
9964
+ res = self._api.do(
9965
+ "GET", "/api/2.0/settings/types/sql_results_download/names/default", query=query, headers=headers
9966
+ )
9967
+ return SqlResultsDownload.from_dict(res)
9968
+
9969
+ def update(self, allow_missing: bool, setting: SqlResultsDownload, field_mask: str) -> SqlResultsDownload:
9970
+ """Update the SQL Results Download setting.
9971
+
9972
+ Updates the SQL Results Download setting.
9973
+
9974
+ :param allow_missing: bool
9975
+ This should always be set to true for Settings API. Added for AIP compliance.
9976
+ :param setting: :class:`SqlResultsDownload`
9977
+ :param field_mask: str
9978
+ The field mask must be a single string, with multiple fields separated by commas (no spaces). The
9979
+ field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g.,
9980
+ `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only
9981
+ the entire collection field can be specified. Field names must exactly match the resource field
9982
+ names.
9983
+
9984
+ A field mask of `*` indicates full replacement. It’s recommended to always explicitly list the
9985
+ fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API
9986
+ changes in the future.
9987
+
9988
+ :returns: :class:`SqlResultsDownload`
9989
+ """
9990
+ body = {}
9991
+ if allow_missing is not None:
9992
+ body["allow_missing"] = allow_missing
9993
+ if field_mask is not None:
9994
+ body["field_mask"] = field_mask
9995
+ if setting is not None:
9996
+ body["setting"] = setting.as_dict()
9997
+ headers = {
9998
+ "Accept": "application/json",
9999
+ "Content-Type": "application/json",
10000
+ }
10001
+
10002
+ res = self._api.do(
10003
+ "PATCH", "/api/2.0/settings/types/sql_results_download/names/default", body=body, headers=headers
10004
+ )
10005
+ return SqlResultsDownload.from_dict(res)
10006
+
9123
10007
 
9124
10008
  class TokenManagementAPI:
9125
10009
  """Enables administrators to get all tokens and delete tokens for other users. Admins can either get every
@@ -9414,20 +10298,20 @@ class WorkspaceConfAPI:
9414
10298
 
9415
10299
 
9416
10300
  class WorkspaceNetworkConfigurationAPI:
9417
- """These APIs allow configuration of network settings for Databricks workspaces. Each workspace is always
9418
- associated with exactly one network policy that controls which network destinations can be accessed from
9419
- the Databricks environment. By default, workspaces are associated with the 'default-policy' network
9420
- policy. You cannot create or delete a workspace's network configuration, only update it to associate the
9421
- workspace with a different policy."""
10301
+ """These APIs allow configuration of network settings for Databricks workspaces by selecting which network
10302
+ policy to associate with the workspace. Each workspace is always associated with exactly one network
10303
+ policy that controls which network destinations can be accessed from the Databricks environment. By
10304
+ default, workspaces are associated with the 'default-policy' network policy. You cannot create or delete a
10305
+ workspace's network option, only update it to associate the workspace with a different policy"""
9422
10306
 
9423
10307
  def __init__(self, api_client):
9424
10308
  self._api = api_client
9425
10309
 
9426
10310
  def get_workspace_network_option_rpc(self, workspace_id: int) -> WorkspaceNetworkOption:
9427
- """Get workspace network configuration.
10311
+ """Get workspace network option.
9428
10312
 
9429
- Gets the network configuration for a workspace. Every workspace has exactly one network policy
9430
- binding, with 'default-policy' used if no explicit assignment exists.
10313
+ Gets the network option for a workspace. Every workspace has exactly one network policy binding, with
10314
+ 'default-policy' used if no explicit assignment exists.
9431
10315
 
9432
10316
  :param workspace_id: int
9433
10317
  The workspace ID.
@@ -9447,11 +10331,10 @@ class WorkspaceNetworkConfigurationAPI:
9447
10331
  def update_workspace_network_option_rpc(
9448
10332
  self, workspace_id: int, workspace_network_option: WorkspaceNetworkOption
9449
10333
  ) -> WorkspaceNetworkOption:
9450
- """Update workspace network configuration.
10334
+ """Update workspace network option.
9451
10335
 
9452
- Updates the network configuration for a workspace. This operation associates the workspace with the
9453
- specified network policy. To revert to the default policy, specify 'default-policy' as the
9454
- network_policy_id.
10336
+ Updates the network option for a workspace. This operation associates the workspace with the specified
10337
+ network policy. To revert to the default policy, specify 'default-policy' as the network_policy_id.
9455
10338
 
9456
10339
  :param workspace_id: int
9457
10340
  The workspace ID.