databricks-sdk 0.36.0__py3-none-any.whl → 0.37.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 +19 -27
- databricks/sdk/service/apps.py +46 -188
- databricks/sdk/service/catalog.py +788 -45
- databricks/sdk/service/compute.py +23 -20
- databricks/sdk/service/dashboards.py +26 -276
- databricks/sdk/service/iam.py +4 -2
- databricks/sdk/service/jobs.py +76 -68
- databricks/sdk/service/marketplace.py +1 -0
- databricks/sdk/service/ml.py +4 -3
- databricks/sdk/service/oauth2.py +28 -8
- databricks/sdk/service/pipelines.py +14 -7
- databricks/sdk/service/provisioning.py +53 -0
- databricks/sdk/service/serving.py +2 -2
- databricks/sdk/service/settings.py +319 -1
- databricks/sdk/service/sharing.py +0 -618
- databricks/sdk/service/sql.py +7 -7
- databricks/sdk/service/workspace.py +5 -3
- databricks/sdk/version.py +1 -1
- {databricks_sdk-0.36.0.dist-info → databricks_sdk-0.37.0.dist-info}/METADATA +1 -1
- {databricks_sdk-0.36.0.dist-info → databricks_sdk-0.37.0.dist-info}/RECORD +24 -24
- {databricks_sdk-0.36.0.dist-info → databricks_sdk-0.37.0.dist-info}/WHEEL +1 -1
- {databricks_sdk-0.36.0.dist-info → databricks_sdk-0.37.0.dist-info}/LICENSE +0 -0
- {databricks_sdk-0.36.0.dist-info → databricks_sdk-0.37.0.dist-info}/NOTICE +0 -0
- {databricks_sdk-0.36.0.dist-info → databricks_sdk-0.37.0.dist-info}/top_level.txt +0 -0
|
@@ -412,6 +412,9 @@ class CreateWorkspaceRequest:
|
|
|
412
412
|
gke_config: Optional[GkeConfig] = None
|
|
413
413
|
"""The configurations for the GKE cluster of a Databricks workspace."""
|
|
414
414
|
|
|
415
|
+
is_no_public_ip_enabled: Optional[bool] = None
|
|
416
|
+
"""Whether no public IP is enabled for the workspace."""
|
|
417
|
+
|
|
415
418
|
location: Optional[str] = None
|
|
416
419
|
"""The Google Cloud region of the workspace data plane in your Google account. For example,
|
|
417
420
|
`us-east4`."""
|
|
@@ -460,6 +463,8 @@ class CreateWorkspaceRequest:
|
|
|
460
463
|
if self.gcp_managed_network_config:
|
|
461
464
|
body['gcp_managed_network_config'] = self.gcp_managed_network_config.as_dict()
|
|
462
465
|
if self.gke_config: body['gke_config'] = self.gke_config.as_dict()
|
|
466
|
+
if self.is_no_public_ip_enabled is not None:
|
|
467
|
+
body['is_no_public_ip_enabled'] = self.is_no_public_ip_enabled
|
|
463
468
|
if self.location is not None: body['location'] = self.location
|
|
464
469
|
if self.managed_services_customer_managed_key_id is not None:
|
|
465
470
|
body['managed_services_customer_managed_key_id'] = self.managed_services_customer_managed_key_id
|
|
@@ -486,6 +491,7 @@ class CreateWorkspaceRequest:
|
|
|
486
491
|
gcp_managed_network_config=_from_dict(d, 'gcp_managed_network_config',
|
|
487
492
|
GcpManagedNetworkConfig),
|
|
488
493
|
gke_config=_from_dict(d, 'gke_config', GkeConfig),
|
|
494
|
+
is_no_public_ip_enabled=d.get('is_no_public_ip_enabled', None),
|
|
489
495
|
location=d.get('location', None),
|
|
490
496
|
managed_services_customer_managed_key_id=d.get('managed_services_customer_managed_key_id',
|
|
491
497
|
None),
|
|
@@ -632,6 +638,35 @@ class ErrorType(Enum):
|
|
|
632
638
|
VPC = 'vpc'
|
|
633
639
|
|
|
634
640
|
|
|
641
|
+
@dataclass
|
|
642
|
+
class ExternalCustomerInfo:
|
|
643
|
+
authoritative_user_email: Optional[str] = None
|
|
644
|
+
"""Email of the authoritative user."""
|
|
645
|
+
|
|
646
|
+
authoritative_user_full_name: Optional[str] = None
|
|
647
|
+
"""The authoritative user full name."""
|
|
648
|
+
|
|
649
|
+
customer_name: Optional[str] = None
|
|
650
|
+
"""The legal entity name for the external workspace"""
|
|
651
|
+
|
|
652
|
+
def as_dict(self) -> dict:
|
|
653
|
+
"""Serializes the ExternalCustomerInfo into a dictionary suitable for use as a JSON request body."""
|
|
654
|
+
body = {}
|
|
655
|
+
if self.authoritative_user_email is not None:
|
|
656
|
+
body['authoritative_user_email'] = self.authoritative_user_email
|
|
657
|
+
if self.authoritative_user_full_name is not None:
|
|
658
|
+
body['authoritative_user_full_name'] = self.authoritative_user_full_name
|
|
659
|
+
if self.customer_name is not None: body['customer_name'] = self.customer_name
|
|
660
|
+
return body
|
|
661
|
+
|
|
662
|
+
@classmethod
|
|
663
|
+
def from_dict(cls, d: Dict[str, any]) -> ExternalCustomerInfo:
|
|
664
|
+
"""Deserializes the ExternalCustomerInfo from a dictionary."""
|
|
665
|
+
return cls(authoritative_user_email=d.get('authoritative_user_email', None),
|
|
666
|
+
authoritative_user_full_name=d.get('authoritative_user_full_name', None),
|
|
667
|
+
customer_name=d.get('customer_name', None))
|
|
668
|
+
|
|
669
|
+
|
|
635
670
|
@dataclass
|
|
636
671
|
class GcpKeyInfo:
|
|
637
672
|
kms_key_id: str
|
|
@@ -1443,6 +1478,10 @@ class Workspace:
|
|
|
1443
1478
|
|
|
1444
1479
|
This value must be unique across all non-deleted deployments across all AWS regions."""
|
|
1445
1480
|
|
|
1481
|
+
external_customer_info: Optional[ExternalCustomerInfo] = None
|
|
1482
|
+
"""If this workspace is for a external customer, then external_customer_info is populated. If this
|
|
1483
|
+
workspace is not for a external customer, then external_customer_info is empty."""
|
|
1484
|
+
|
|
1446
1485
|
gcp_managed_network_config: Optional[GcpManagedNetworkConfig] = None
|
|
1447
1486
|
"""The network settings for the workspace. The configurations are only for Databricks-managed VPCs.
|
|
1448
1487
|
It is ignored if you specify a customer-managed VPC in the `network_id` field.", All the IP
|
|
@@ -1466,6 +1505,9 @@ class Workspace:
|
|
|
1466
1505
|
gke_config: Optional[GkeConfig] = None
|
|
1467
1506
|
"""The configurations for the GKE cluster of a Databricks workspace."""
|
|
1468
1507
|
|
|
1508
|
+
is_no_public_ip_enabled: Optional[bool] = None
|
|
1509
|
+
"""Whether no public IP is enabled for the workspace."""
|
|
1510
|
+
|
|
1469
1511
|
location: Optional[str] = None
|
|
1470
1512
|
"""The Google Cloud region of the workspace data plane in your Google account (for example,
|
|
1471
1513
|
`us-east4`)."""
|
|
@@ -1524,9 +1566,12 @@ class Workspace:
|
|
|
1524
1566
|
if self.credentials_id is not None: body['credentials_id'] = self.credentials_id
|
|
1525
1567
|
if self.custom_tags: body['custom_tags'] = self.custom_tags
|
|
1526
1568
|
if self.deployment_name is not None: body['deployment_name'] = self.deployment_name
|
|
1569
|
+
if self.external_customer_info: body['external_customer_info'] = self.external_customer_info.as_dict()
|
|
1527
1570
|
if self.gcp_managed_network_config:
|
|
1528
1571
|
body['gcp_managed_network_config'] = self.gcp_managed_network_config.as_dict()
|
|
1529
1572
|
if self.gke_config: body['gke_config'] = self.gke_config.as_dict()
|
|
1573
|
+
if self.is_no_public_ip_enabled is not None:
|
|
1574
|
+
body['is_no_public_ip_enabled'] = self.is_no_public_ip_enabled
|
|
1530
1575
|
if self.location is not None: body['location'] = self.location
|
|
1531
1576
|
if self.managed_services_customer_managed_key_id is not None:
|
|
1532
1577
|
body['managed_services_customer_managed_key_id'] = self.managed_services_customer_managed_key_id
|
|
@@ -1557,9 +1602,11 @@ class Workspace:
|
|
|
1557
1602
|
credentials_id=d.get('credentials_id', None),
|
|
1558
1603
|
custom_tags=d.get('custom_tags', None),
|
|
1559
1604
|
deployment_name=d.get('deployment_name', None),
|
|
1605
|
+
external_customer_info=_from_dict(d, 'external_customer_info', ExternalCustomerInfo),
|
|
1560
1606
|
gcp_managed_network_config=_from_dict(d, 'gcp_managed_network_config',
|
|
1561
1607
|
GcpManagedNetworkConfig),
|
|
1562
1608
|
gke_config=_from_dict(d, 'gke_config', GkeConfig),
|
|
1609
|
+
is_no_public_ip_enabled=d.get('is_no_public_ip_enabled', None),
|
|
1563
1610
|
location=d.get('location', None),
|
|
1564
1611
|
managed_services_customer_managed_key_id=d.get('managed_services_customer_managed_key_id',
|
|
1565
1612
|
None),
|
|
@@ -2399,6 +2446,7 @@ class WorkspacesAPI:
|
|
|
2399
2446
|
deployment_name: Optional[str] = None,
|
|
2400
2447
|
gcp_managed_network_config: Optional[GcpManagedNetworkConfig] = None,
|
|
2401
2448
|
gke_config: Optional[GkeConfig] = None,
|
|
2449
|
+
is_no_public_ip_enabled: Optional[bool] = None,
|
|
2402
2450
|
location: Optional[str] = None,
|
|
2403
2451
|
managed_services_customer_managed_key_id: Optional[str] = None,
|
|
2404
2452
|
network_id: Optional[str] = None,
|
|
@@ -2477,6 +2525,8 @@ class WorkspacesAPI:
|
|
|
2477
2525
|
[calculate subnet sizes for a new workspace]: https://docs.gcp.databricks.com/administration-guide/cloud-configurations/gcp/network-sizing.html
|
|
2478
2526
|
:param gke_config: :class:`GkeConfig` (optional)
|
|
2479
2527
|
The configurations for the GKE cluster of a Databricks workspace.
|
|
2528
|
+
:param is_no_public_ip_enabled: bool (optional)
|
|
2529
|
+
Whether no public IP is enabled for the workspace.
|
|
2480
2530
|
:param location: str (optional)
|
|
2481
2531
|
The Google Cloud region of the workspace data plane in your Google account. For example, `us-east4`.
|
|
2482
2532
|
:param managed_services_customer_managed_key_id: str (optional)
|
|
@@ -2519,6 +2569,7 @@ class WorkspacesAPI:
|
|
|
2519
2569
|
if gcp_managed_network_config is not None:
|
|
2520
2570
|
body['gcp_managed_network_config'] = gcp_managed_network_config.as_dict()
|
|
2521
2571
|
if gke_config is not None: body['gke_config'] = gke_config.as_dict()
|
|
2572
|
+
if is_no_public_ip_enabled is not None: body['is_no_public_ip_enabled'] = is_no_public_ip_enabled
|
|
2522
2573
|
if location is not None: body['location'] = location
|
|
2523
2574
|
if managed_services_customer_managed_key_id is not None:
|
|
2524
2575
|
body['managed_services_customer_managed_key_id'] = managed_services_customer_managed_key_id
|
|
@@ -2552,6 +2603,7 @@ class WorkspacesAPI:
|
|
|
2552
2603
|
deployment_name: Optional[str] = None,
|
|
2553
2604
|
gcp_managed_network_config: Optional[GcpManagedNetworkConfig] = None,
|
|
2554
2605
|
gke_config: Optional[GkeConfig] = None,
|
|
2606
|
+
is_no_public_ip_enabled: Optional[bool] = None,
|
|
2555
2607
|
location: Optional[str] = None,
|
|
2556
2608
|
managed_services_customer_managed_key_id: Optional[str] = None,
|
|
2557
2609
|
network_id: Optional[str] = None,
|
|
@@ -2568,6 +2620,7 @@ class WorkspacesAPI:
|
|
|
2568
2620
|
deployment_name=deployment_name,
|
|
2569
2621
|
gcp_managed_network_config=gcp_managed_network_config,
|
|
2570
2622
|
gke_config=gke_config,
|
|
2623
|
+
is_no_public_ip_enabled=is_no_public_ip_enabled,
|
|
2571
2624
|
location=location,
|
|
2572
2625
|
managed_services_customer_managed_key_id=managed_services_customer_managed_key_id,
|
|
2573
2626
|
network_id=network_id,
|
|
@@ -2994,8 +2994,8 @@ class ServingEndpointsAPI:
|
|
|
2994
2994
|
) -> ServingEndpointPermissions:
|
|
2995
2995
|
"""Set serving endpoint permissions.
|
|
2996
2996
|
|
|
2997
|
-
Sets permissions on
|
|
2998
|
-
object.
|
|
2997
|
+
Sets permissions on an object, replacing existing permissions if they exist. Deletes all direct
|
|
2998
|
+
permissions if none are specified. Objects can inherit permissions from their root object.
|
|
2999
2999
|
|
|
3000
3000
|
:param serving_endpoint_id: str
|
|
3001
3001
|
The serving endpoint for which to get or manage permissions.
|
|
@@ -14,6 +14,122 @@ _LOG = logging.getLogger('databricks.sdk')
|
|
|
14
14
|
# all definitions in this file are in alphabetical order
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
@dataclass
|
|
18
|
+
class AibiDashboardEmbeddingAccessPolicy:
|
|
19
|
+
access_policy_type: AibiDashboardEmbeddingAccessPolicyAccessPolicyType
|
|
20
|
+
|
|
21
|
+
def as_dict(self) -> dict:
|
|
22
|
+
"""Serializes the AibiDashboardEmbeddingAccessPolicy into a dictionary suitable for use as a JSON request body."""
|
|
23
|
+
body = {}
|
|
24
|
+
if self.access_policy_type is not None: body['access_policy_type'] = self.access_policy_type.value
|
|
25
|
+
return body
|
|
26
|
+
|
|
27
|
+
@classmethod
|
|
28
|
+
def from_dict(cls, d: Dict[str, any]) -> AibiDashboardEmbeddingAccessPolicy:
|
|
29
|
+
"""Deserializes the AibiDashboardEmbeddingAccessPolicy from a dictionary."""
|
|
30
|
+
return cls(access_policy_type=_enum(d, 'access_policy_type',
|
|
31
|
+
AibiDashboardEmbeddingAccessPolicyAccessPolicyType))
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class AibiDashboardEmbeddingAccessPolicyAccessPolicyType(Enum):
|
|
35
|
+
|
|
36
|
+
ALLOW_ALL_DOMAINS = 'ALLOW_ALL_DOMAINS'
|
|
37
|
+
ALLOW_APPROVED_DOMAINS = 'ALLOW_APPROVED_DOMAINS'
|
|
38
|
+
DENY_ALL_DOMAINS = 'DENY_ALL_DOMAINS'
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@dataclass
|
|
42
|
+
class AibiDashboardEmbeddingAccessPolicySetting:
|
|
43
|
+
aibi_dashboard_embedding_access_policy: AibiDashboardEmbeddingAccessPolicy
|
|
44
|
+
|
|
45
|
+
etag: Optional[str] = None
|
|
46
|
+
"""etag used for versioning. The response is at least as fresh as the eTag provided. This is used
|
|
47
|
+
for optimistic concurrency control as a way to help prevent simultaneous writes of a setting
|
|
48
|
+
overwriting each other. It is strongly suggested that systems make use of the etag in the read
|
|
49
|
+
-> update pattern to perform setting updates in order to avoid race conditions. That is, get an
|
|
50
|
+
etag from a GET request, and pass it with the PATCH request to identify the setting version you
|
|
51
|
+
are updating."""
|
|
52
|
+
|
|
53
|
+
setting_name: Optional[str] = None
|
|
54
|
+
"""Name of the corresponding setting. This field is populated in the response, but it will not be
|
|
55
|
+
respected even if it's set in the request body. The setting name in the path parameter will be
|
|
56
|
+
respected instead. Setting name is required to be 'default' if the setting only has one instance
|
|
57
|
+
per workspace."""
|
|
58
|
+
|
|
59
|
+
def as_dict(self) -> dict:
|
|
60
|
+
"""Serializes the AibiDashboardEmbeddingAccessPolicySetting into a dictionary suitable for use as a JSON request body."""
|
|
61
|
+
body = {}
|
|
62
|
+
if self.aibi_dashboard_embedding_access_policy:
|
|
63
|
+
body[
|
|
64
|
+
'aibi_dashboard_embedding_access_policy'] = self.aibi_dashboard_embedding_access_policy.as_dict(
|
|
65
|
+
)
|
|
66
|
+
if self.etag is not None: body['etag'] = self.etag
|
|
67
|
+
if self.setting_name is not None: body['setting_name'] = self.setting_name
|
|
68
|
+
return body
|
|
69
|
+
|
|
70
|
+
@classmethod
|
|
71
|
+
def from_dict(cls, d: Dict[str, any]) -> AibiDashboardEmbeddingAccessPolicySetting:
|
|
72
|
+
"""Deserializes the AibiDashboardEmbeddingAccessPolicySetting from a dictionary."""
|
|
73
|
+
return cls(aibi_dashboard_embedding_access_policy=_from_dict(
|
|
74
|
+
d, 'aibi_dashboard_embedding_access_policy', AibiDashboardEmbeddingAccessPolicy),
|
|
75
|
+
etag=d.get('etag', None),
|
|
76
|
+
setting_name=d.get('setting_name', None))
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
@dataclass
|
|
80
|
+
class AibiDashboardEmbeddingApprovedDomains:
|
|
81
|
+
approved_domains: Optional[List[str]] = None
|
|
82
|
+
|
|
83
|
+
def as_dict(self) -> dict:
|
|
84
|
+
"""Serializes the AibiDashboardEmbeddingApprovedDomains into a dictionary suitable for use as a JSON request body."""
|
|
85
|
+
body = {}
|
|
86
|
+
if self.approved_domains: body['approved_domains'] = [v for v in self.approved_domains]
|
|
87
|
+
return body
|
|
88
|
+
|
|
89
|
+
@classmethod
|
|
90
|
+
def from_dict(cls, d: Dict[str, any]) -> AibiDashboardEmbeddingApprovedDomains:
|
|
91
|
+
"""Deserializes the AibiDashboardEmbeddingApprovedDomains from a dictionary."""
|
|
92
|
+
return cls(approved_domains=d.get('approved_domains', None))
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
@dataclass
|
|
96
|
+
class AibiDashboardEmbeddingApprovedDomainsSetting:
|
|
97
|
+
aibi_dashboard_embedding_approved_domains: AibiDashboardEmbeddingApprovedDomains
|
|
98
|
+
|
|
99
|
+
etag: Optional[str] = None
|
|
100
|
+
"""etag used for versioning. The response is at least as fresh as the eTag provided. This is used
|
|
101
|
+
for optimistic concurrency control as a way to help prevent simultaneous writes of a setting
|
|
102
|
+
overwriting each other. It is strongly suggested that systems make use of the etag in the read
|
|
103
|
+
-> update pattern to perform setting updates in order to avoid race conditions. That is, get an
|
|
104
|
+
etag from a GET request, and pass it with the PATCH request to identify the setting version you
|
|
105
|
+
are updating."""
|
|
106
|
+
|
|
107
|
+
setting_name: Optional[str] = None
|
|
108
|
+
"""Name of the corresponding setting. This field is populated in the response, but it will not be
|
|
109
|
+
respected even if it's set in the request body. The setting name in the path parameter will be
|
|
110
|
+
respected instead. Setting name is required to be 'default' if the setting only has one instance
|
|
111
|
+
per workspace."""
|
|
112
|
+
|
|
113
|
+
def as_dict(self) -> dict:
|
|
114
|
+
"""Serializes the AibiDashboardEmbeddingApprovedDomainsSetting into a dictionary suitable for use as a JSON request body."""
|
|
115
|
+
body = {}
|
|
116
|
+
if self.aibi_dashboard_embedding_approved_domains:
|
|
117
|
+
body[
|
|
118
|
+
'aibi_dashboard_embedding_approved_domains'] = self.aibi_dashboard_embedding_approved_domains.as_dict(
|
|
119
|
+
)
|
|
120
|
+
if self.etag is not None: body['etag'] = self.etag
|
|
121
|
+
if self.setting_name is not None: body['setting_name'] = self.setting_name
|
|
122
|
+
return body
|
|
123
|
+
|
|
124
|
+
@classmethod
|
|
125
|
+
def from_dict(cls, d: Dict[str, any]) -> AibiDashboardEmbeddingApprovedDomainsSetting:
|
|
126
|
+
"""Deserializes the AibiDashboardEmbeddingApprovedDomainsSetting from a dictionary."""
|
|
127
|
+
return cls(aibi_dashboard_embedding_approved_domains=_from_dict(
|
|
128
|
+
d, 'aibi_dashboard_embedding_approved_domains', AibiDashboardEmbeddingApprovedDomains),
|
|
129
|
+
etag=d.get('etag', None),
|
|
130
|
+
setting_name=d.get('setting_name', None))
|
|
131
|
+
|
|
132
|
+
|
|
17
133
|
@dataclass
|
|
18
134
|
class AutomaticClusterUpdateSetting:
|
|
19
135
|
automatic_cluster_update_workspace: ClusterAutoRestartMessage
|
|
@@ -2299,6 +2415,9 @@ class TokenInfo:
|
|
|
2299
2415
|
expiry_time: Optional[int] = None
|
|
2300
2416
|
"""Timestamp when the token expires."""
|
|
2301
2417
|
|
|
2418
|
+
last_used_day: Optional[int] = None
|
|
2419
|
+
"""Approximate timestamp for the day the token was last used. Accurate up to 1 day."""
|
|
2420
|
+
|
|
2302
2421
|
owner_id: Optional[int] = None
|
|
2303
2422
|
"""User ID of the user that owns the token."""
|
|
2304
2423
|
|
|
@@ -2316,6 +2435,7 @@ class TokenInfo:
|
|
|
2316
2435
|
if self.created_by_username is not None: body['created_by_username'] = self.created_by_username
|
|
2317
2436
|
if self.creation_time is not None: body['creation_time'] = self.creation_time
|
|
2318
2437
|
if self.expiry_time is not None: body['expiry_time'] = self.expiry_time
|
|
2438
|
+
if self.last_used_day is not None: body['last_used_day'] = self.last_used_day
|
|
2319
2439
|
if self.owner_id is not None: body['owner_id'] = self.owner_id
|
|
2320
2440
|
if self.token_id is not None: body['token_id'] = self.token_id
|
|
2321
2441
|
if self.workspace_id is not None: body['workspace_id'] = self.workspace_id
|
|
@@ -2329,6 +2449,7 @@ class TokenInfo:
|
|
|
2329
2449
|
created_by_username=d.get('created_by_username', None),
|
|
2330
2450
|
creation_time=d.get('creation_time', None),
|
|
2331
2451
|
expiry_time=d.get('expiry_time', None),
|
|
2452
|
+
last_used_day=d.get('last_used_day', None),
|
|
2332
2453
|
owner_id=d.get('owner_id', None),
|
|
2333
2454
|
token_id=d.get('token_id', None),
|
|
2334
2455
|
workspace_id=d.get('workspace_id', None))
|
|
@@ -2435,6 +2556,66 @@ class TokenType(Enum):
|
|
|
2435
2556
|
AZURE_ACTIVE_DIRECTORY_TOKEN = 'AZURE_ACTIVE_DIRECTORY_TOKEN'
|
|
2436
2557
|
|
|
2437
2558
|
|
|
2559
|
+
@dataclass
|
|
2560
|
+
class UpdateAibiDashboardEmbeddingAccessPolicySettingRequest:
|
|
2561
|
+
"""Details required to update a setting."""
|
|
2562
|
+
|
|
2563
|
+
allow_missing: bool
|
|
2564
|
+
"""This should always be set to true for Settings API. Added for AIP compliance."""
|
|
2565
|
+
|
|
2566
|
+
setting: AibiDashboardEmbeddingAccessPolicySetting
|
|
2567
|
+
|
|
2568
|
+
field_mask: str
|
|
2569
|
+
"""Field mask is required to be passed into the PATCH request. Field mask specifies which fields of
|
|
2570
|
+
the setting payload will be updated. The field mask needs to be supplied as single string. To
|
|
2571
|
+
specify multiple fields in the field mask, use comma as the separator (no space)."""
|
|
2572
|
+
|
|
2573
|
+
def as_dict(self) -> dict:
|
|
2574
|
+
"""Serializes the UpdateAibiDashboardEmbeddingAccessPolicySettingRequest into a dictionary suitable for use as a JSON request body."""
|
|
2575
|
+
body = {}
|
|
2576
|
+
if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
|
|
2577
|
+
if self.field_mask is not None: body['field_mask'] = self.field_mask
|
|
2578
|
+
if self.setting: body['setting'] = self.setting.as_dict()
|
|
2579
|
+
return body
|
|
2580
|
+
|
|
2581
|
+
@classmethod
|
|
2582
|
+
def from_dict(cls, d: Dict[str, any]) -> UpdateAibiDashboardEmbeddingAccessPolicySettingRequest:
|
|
2583
|
+
"""Deserializes the UpdateAibiDashboardEmbeddingAccessPolicySettingRequest from a dictionary."""
|
|
2584
|
+
return cls(allow_missing=d.get('allow_missing', None),
|
|
2585
|
+
field_mask=d.get('field_mask', None),
|
|
2586
|
+
setting=_from_dict(d, 'setting', AibiDashboardEmbeddingAccessPolicySetting))
|
|
2587
|
+
|
|
2588
|
+
|
|
2589
|
+
@dataclass
|
|
2590
|
+
class UpdateAibiDashboardEmbeddingApprovedDomainsSettingRequest:
|
|
2591
|
+
"""Details required to update a setting."""
|
|
2592
|
+
|
|
2593
|
+
allow_missing: bool
|
|
2594
|
+
"""This should always be set to true for Settings API. Added for AIP compliance."""
|
|
2595
|
+
|
|
2596
|
+
setting: AibiDashboardEmbeddingApprovedDomainsSetting
|
|
2597
|
+
|
|
2598
|
+
field_mask: str
|
|
2599
|
+
"""Field mask is required to be passed into the PATCH request. Field mask specifies which fields of
|
|
2600
|
+
the setting payload will be updated. The field mask needs to be supplied as single string. To
|
|
2601
|
+
specify multiple fields in the field mask, use comma as the separator (no space)."""
|
|
2602
|
+
|
|
2603
|
+
def as_dict(self) -> dict:
|
|
2604
|
+
"""Serializes the UpdateAibiDashboardEmbeddingApprovedDomainsSettingRequest into a dictionary suitable for use as a JSON request body."""
|
|
2605
|
+
body = {}
|
|
2606
|
+
if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
|
|
2607
|
+
if self.field_mask is not None: body['field_mask'] = self.field_mask
|
|
2608
|
+
if self.setting: body['setting'] = self.setting.as_dict()
|
|
2609
|
+
return body
|
|
2610
|
+
|
|
2611
|
+
@classmethod
|
|
2612
|
+
def from_dict(cls, d: Dict[str, any]) -> UpdateAibiDashboardEmbeddingApprovedDomainsSettingRequest:
|
|
2613
|
+
"""Deserializes the UpdateAibiDashboardEmbeddingApprovedDomainsSettingRequest from a dictionary."""
|
|
2614
|
+
return cls(allow_missing=d.get('allow_missing', None),
|
|
2615
|
+
field_mask=d.get('field_mask', None),
|
|
2616
|
+
setting=_from_dict(d, 'setting', AibiDashboardEmbeddingApprovedDomainsSetting))
|
|
2617
|
+
|
|
2618
|
+
|
|
2438
2619
|
@dataclass
|
|
2439
2620
|
class UpdateAutomaticClusterUpdateSettingRequest:
|
|
2440
2621
|
"""Details required to update a setting."""
|
|
@@ -3103,6 +3284,130 @@ class AccountSettingsAPI:
|
|
|
3103
3284
|
return self._personal_compute
|
|
3104
3285
|
|
|
3105
3286
|
|
|
3287
|
+
class AibiDashboardEmbeddingAccessPolicyAPI:
|
|
3288
|
+
"""Controls whether AI/BI published dashboard embedding is enabled, conditionally enabled, or disabled at the
|
|
3289
|
+
workspace level. By default, this setting is conditionally enabled (ALLOW_APPROVED_DOMAINS)."""
|
|
3290
|
+
|
|
3291
|
+
def __init__(self, api_client):
|
|
3292
|
+
self._api = api_client
|
|
3293
|
+
|
|
3294
|
+
def get(self, *, etag: Optional[str] = None) -> AibiDashboardEmbeddingAccessPolicySetting:
|
|
3295
|
+
"""Retrieve the AI/BI dashboard embedding access policy.
|
|
3296
|
+
|
|
3297
|
+
Retrieves the AI/BI dashboard embedding access policy. The default setting is ALLOW_APPROVED_DOMAINS,
|
|
3298
|
+
permitting AI/BI dashboards to be embedded on approved domains.
|
|
3299
|
+
|
|
3300
|
+
:param etag: str (optional)
|
|
3301
|
+
etag used for versioning. The response is at least as fresh as the eTag provided. This is used for
|
|
3302
|
+
optimistic concurrency control as a way to help prevent simultaneous writes of a setting overwriting
|
|
3303
|
+
each other. It is strongly suggested that systems make use of the etag in the read -> delete pattern
|
|
3304
|
+
to perform setting deletions in order to avoid race conditions. That is, get an etag from a GET
|
|
3305
|
+
request, and pass it with the DELETE request to identify the rule set version you are deleting.
|
|
3306
|
+
|
|
3307
|
+
:returns: :class:`AibiDashboardEmbeddingAccessPolicySetting`
|
|
3308
|
+
"""
|
|
3309
|
+
|
|
3310
|
+
query = {}
|
|
3311
|
+
if etag is not None: query['etag'] = etag
|
|
3312
|
+
headers = {'Accept': 'application/json', }
|
|
3313
|
+
|
|
3314
|
+
res = self._api.do('GET',
|
|
3315
|
+
'/api/2.0/settings/types/aibi_dash_embed_ws_acc_policy/names/default',
|
|
3316
|
+
query=query,
|
|
3317
|
+
headers=headers)
|
|
3318
|
+
return AibiDashboardEmbeddingAccessPolicySetting.from_dict(res)
|
|
3319
|
+
|
|
3320
|
+
def update(self, allow_missing: bool, setting: AibiDashboardEmbeddingAccessPolicySetting,
|
|
3321
|
+
field_mask: str) -> AibiDashboardEmbeddingAccessPolicySetting:
|
|
3322
|
+
"""Update the AI/BI dashboard embedding access policy.
|
|
3323
|
+
|
|
3324
|
+
Updates the AI/BI dashboard embedding access policy at the workspace level.
|
|
3325
|
+
|
|
3326
|
+
:param allow_missing: bool
|
|
3327
|
+
This should always be set to true for Settings API. Added for AIP compliance.
|
|
3328
|
+
:param setting: :class:`AibiDashboardEmbeddingAccessPolicySetting`
|
|
3329
|
+
:param field_mask: str
|
|
3330
|
+
Field mask is required to be passed into the PATCH request. Field mask specifies which fields of the
|
|
3331
|
+
setting payload will be updated. The field mask needs to be supplied as single string. To specify
|
|
3332
|
+
multiple fields in the field mask, use comma as the separator (no space).
|
|
3333
|
+
|
|
3334
|
+
:returns: :class:`AibiDashboardEmbeddingAccessPolicySetting`
|
|
3335
|
+
"""
|
|
3336
|
+
body = {}
|
|
3337
|
+
if allow_missing is not None: body['allow_missing'] = allow_missing
|
|
3338
|
+
if field_mask is not None: body['field_mask'] = field_mask
|
|
3339
|
+
if setting is not None: body['setting'] = setting.as_dict()
|
|
3340
|
+
headers = {'Accept': 'application/json', 'Content-Type': 'application/json', }
|
|
3341
|
+
|
|
3342
|
+
res = self._api.do('PATCH',
|
|
3343
|
+
'/api/2.0/settings/types/aibi_dash_embed_ws_acc_policy/names/default',
|
|
3344
|
+
body=body,
|
|
3345
|
+
headers=headers)
|
|
3346
|
+
return AibiDashboardEmbeddingAccessPolicySetting.from_dict(res)
|
|
3347
|
+
|
|
3348
|
+
|
|
3349
|
+
class AibiDashboardEmbeddingApprovedDomainsAPI:
|
|
3350
|
+
"""Controls the list of domains approved to host the embedded AI/BI dashboards. The approved domains list
|
|
3351
|
+
can't be mutated when the current access policy is not set to ALLOW_APPROVED_DOMAINS."""
|
|
3352
|
+
|
|
3353
|
+
def __init__(self, api_client):
|
|
3354
|
+
self._api = api_client
|
|
3355
|
+
|
|
3356
|
+
def get(self, *, etag: Optional[str] = None) -> AibiDashboardEmbeddingApprovedDomainsSetting:
|
|
3357
|
+
"""Retrieve the list of domains approved to host embedded AI/BI dashboards.
|
|
3358
|
+
|
|
3359
|
+
Retrieves the list of domains approved to host embedded AI/BI dashboards.
|
|
3360
|
+
|
|
3361
|
+
:param etag: str (optional)
|
|
3362
|
+
etag used for versioning. The response is at least as fresh as the eTag provided. This is used for
|
|
3363
|
+
optimistic concurrency control as a way to help prevent simultaneous writes of a setting overwriting
|
|
3364
|
+
each other. It is strongly suggested that systems make use of the etag in the read -> delete pattern
|
|
3365
|
+
to perform setting deletions in order to avoid race conditions. That is, get an etag from a GET
|
|
3366
|
+
request, and pass it with the DELETE request to identify the rule set version you are deleting.
|
|
3367
|
+
|
|
3368
|
+
:returns: :class:`AibiDashboardEmbeddingApprovedDomainsSetting`
|
|
3369
|
+
"""
|
|
3370
|
+
|
|
3371
|
+
query = {}
|
|
3372
|
+
if etag is not None: query['etag'] = etag
|
|
3373
|
+
headers = {'Accept': 'application/json', }
|
|
3374
|
+
|
|
3375
|
+
res = self._api.do('GET',
|
|
3376
|
+
'/api/2.0/settings/types/aibi_dash_embed_ws_apprvd_domains/names/default',
|
|
3377
|
+
query=query,
|
|
3378
|
+
headers=headers)
|
|
3379
|
+
return AibiDashboardEmbeddingApprovedDomainsSetting.from_dict(res)
|
|
3380
|
+
|
|
3381
|
+
def update(self, allow_missing: bool, setting: AibiDashboardEmbeddingApprovedDomainsSetting,
|
|
3382
|
+
field_mask: str) -> AibiDashboardEmbeddingApprovedDomainsSetting:
|
|
3383
|
+
"""Update the list of domains approved to host embedded AI/BI dashboards.
|
|
3384
|
+
|
|
3385
|
+
Updates the list of domains approved to host embedded AI/BI dashboards. This update will fail if the
|
|
3386
|
+
current workspace access policy is not ALLOW_APPROVED_DOMAINS.
|
|
3387
|
+
|
|
3388
|
+
:param allow_missing: bool
|
|
3389
|
+
This should always be set to true for Settings API. Added for AIP compliance.
|
|
3390
|
+
:param setting: :class:`AibiDashboardEmbeddingApprovedDomainsSetting`
|
|
3391
|
+
:param field_mask: str
|
|
3392
|
+
Field mask is required to be passed into the PATCH request. Field mask specifies which fields of the
|
|
3393
|
+
setting payload will be updated. The field mask needs to be supplied as single string. To specify
|
|
3394
|
+
multiple fields in the field mask, use comma as the separator (no space).
|
|
3395
|
+
|
|
3396
|
+
:returns: :class:`AibiDashboardEmbeddingApprovedDomainsSetting`
|
|
3397
|
+
"""
|
|
3398
|
+
body = {}
|
|
3399
|
+
if allow_missing is not None: body['allow_missing'] = allow_missing
|
|
3400
|
+
if field_mask is not None: body['field_mask'] = field_mask
|
|
3401
|
+
if setting is not None: body['setting'] = setting.as_dict()
|
|
3402
|
+
headers = {'Accept': 'application/json', 'Content-Type': 'application/json', }
|
|
3403
|
+
|
|
3404
|
+
res = self._api.do('PATCH',
|
|
3405
|
+
'/api/2.0/settings/types/aibi_dash_embed_ws_apprvd_domains/names/default',
|
|
3406
|
+
body=body,
|
|
3407
|
+
headers=headers)
|
|
3408
|
+
return AibiDashboardEmbeddingApprovedDomainsSetting.from_dict(res)
|
|
3409
|
+
|
|
3410
|
+
|
|
3106
3411
|
class AutomaticClusterUpdateAPI:
|
|
3107
3412
|
"""Controls whether automatic cluster update is enabled for the current workspace. By default, it is turned
|
|
3108
3413
|
off."""
|
|
@@ -4580,6 +4885,8 @@ class SettingsAPI:
|
|
|
4580
4885
|
def __init__(self, api_client):
|
|
4581
4886
|
self._api = api_client
|
|
4582
4887
|
|
|
4888
|
+
self._aibi_dashboard_embedding_access_policy = AibiDashboardEmbeddingAccessPolicyAPI(self._api)
|
|
4889
|
+
self._aibi_dashboard_embedding_approved_domains = AibiDashboardEmbeddingApprovedDomainsAPI(self._api)
|
|
4583
4890
|
self._automatic_cluster_update = AutomaticClusterUpdateAPI(self._api)
|
|
4584
4891
|
self._compliance_security_profile = ComplianceSecurityProfileAPI(self._api)
|
|
4585
4892
|
self._default_namespace = DefaultNamespaceAPI(self._api)
|
|
@@ -4588,6 +4895,16 @@ class SettingsAPI:
|
|
|
4588
4895
|
self._enhanced_security_monitoring = EnhancedSecurityMonitoringAPI(self._api)
|
|
4589
4896
|
self._restrict_workspace_admins = RestrictWorkspaceAdminsAPI(self._api)
|
|
4590
4897
|
|
|
4898
|
+
@property
|
|
4899
|
+
def aibi_dashboard_embedding_access_policy(self) -> AibiDashboardEmbeddingAccessPolicyAPI:
|
|
4900
|
+
"""Controls whether AI/BI published dashboard embedding is enabled, conditionally enabled, or disabled at the workspace level."""
|
|
4901
|
+
return self._aibi_dashboard_embedding_access_policy
|
|
4902
|
+
|
|
4903
|
+
@property
|
|
4904
|
+
def aibi_dashboard_embedding_approved_domains(self) -> AibiDashboardEmbeddingApprovedDomainsAPI:
|
|
4905
|
+
"""Controls the list of domains approved to host the embedded AI/BI dashboards."""
|
|
4906
|
+
return self._aibi_dashboard_embedding_approved_domains
|
|
4907
|
+
|
|
4591
4908
|
@property
|
|
4592
4909
|
def automatic_cluster_update(self) -> AutomaticClusterUpdateAPI:
|
|
4593
4910
|
"""Controls whether automatic cluster update is enabled for the current workspace."""
|
|
@@ -4751,7 +5068,8 @@ class TokenManagementAPI:
|
|
|
4751
5068
|
access_control_list: Optional[List[TokenAccessControlRequest]] = None) -> TokenPermissions:
|
|
4752
5069
|
"""Set token permissions.
|
|
4753
5070
|
|
|
4754
|
-
Sets permissions on
|
|
5071
|
+
Sets permissions on an object, replacing existing permissions if they exist. Deletes all direct
|
|
5072
|
+
permissions if none are specified. Objects can inherit permissions from their root object.
|
|
4755
5073
|
|
|
4756
5074
|
:param access_control_list: List[:class:`TokenAccessControlRequest`] (optional)
|
|
4757
5075
|
|