databricks-sdk 0.49.0__py3-none-any.whl → 0.51.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 +20 -8
- databricks/sdk/config.py +2 -3
- databricks/sdk/credentials_provider.py +61 -15
- databricks/sdk/oidc_token_supplier.py +28 -0
- databricks/sdk/service/apps.py +8 -10
- databricks/sdk/service/billing.py +12 -3
- databricks/sdk/service/catalog.py +73 -4
- databricks/sdk/service/cleanrooms.py +9 -14
- databricks/sdk/service/compute.py +151 -7
- databricks/sdk/service/dashboards.py +253 -42
- databricks/sdk/service/jobs.py +602 -83
- databricks/sdk/service/ml.py +408 -72
- databricks/sdk/service/oauth2.py +8 -13
- databricks/sdk/service/pipelines.py +0 -32
- databricks/sdk/service/serving.py +26 -26
- databricks/sdk/service/settings.py +670 -113
- databricks/sdk/service/sql.py +881 -6
- databricks/sdk/service/vectorsearch.py +355 -159
- databricks/sdk/version.py +1 -1
- {databricks_sdk-0.49.0.dist-info → databricks_sdk-0.51.0.dist-info}/METADATA +11 -11
- {databricks_sdk-0.49.0.dist-info → databricks_sdk-0.51.0.dist-info}/RECORD +25 -24
- {databricks_sdk-0.49.0.dist-info → databricks_sdk-0.51.0.dist-info}/WHEEL +1 -1
- {databricks_sdk-0.49.0.dist-info → databricks_sdk-0.51.0.dist-info}/licenses/LICENSE +0 -0
- {databricks_sdk-0.49.0.dist-info → databricks_sdk-0.51.0.dist-info}/licenses/NOTICE +0 -0
- {databricks_sdk-0.49.0.dist-info → databricks_sdk-0.51.0.dist-info}/top_level.txt +0 -0
|
@@ -635,6 +635,7 @@ class ComplianceStandard(Enum):
|
|
|
635
635
|
IRAP_PROTECTED = "IRAP_PROTECTED"
|
|
636
636
|
ISMAP = "ISMAP"
|
|
637
637
|
ITAR_EAR = "ITAR_EAR"
|
|
638
|
+
K_FSI = "K_FSI"
|
|
638
639
|
NONE = "NONE"
|
|
639
640
|
PCI_DSS = "PCI_DSS"
|
|
640
641
|
|
|
@@ -768,18 +769,20 @@ class CreateIpAccessListResponse:
|
|
|
768
769
|
|
|
769
770
|
|
|
770
771
|
@dataclass
|
|
771
|
-
class
|
|
772
|
+
class CreateNetworkConnectivityConfiguration:
|
|
773
|
+
"""Properties of the new network connectivity configuration."""
|
|
774
|
+
|
|
772
775
|
name: str
|
|
773
776
|
"""The name of the network connectivity configuration. The name can contain alphanumeric
|
|
774
777
|
characters, hyphens, and underscores. The length must be between 3 and 30 characters. The name
|
|
775
|
-
must match the regular expression
|
|
778
|
+
must match the regular expression ^[0-9a-zA-Z-_]{3,30}$"""
|
|
776
779
|
|
|
777
780
|
region: str
|
|
778
781
|
"""The region for the network connectivity configuration. Only workspaces in the same region can be
|
|
779
782
|
attached to the network connectivity configuration."""
|
|
780
783
|
|
|
781
784
|
def as_dict(self) -> dict:
|
|
782
|
-
"""Serializes the
|
|
785
|
+
"""Serializes the CreateNetworkConnectivityConfiguration into a dictionary suitable for use as a JSON request body."""
|
|
783
786
|
body = {}
|
|
784
787
|
if self.name is not None:
|
|
785
788
|
body["name"] = self.name
|
|
@@ -788,7 +791,7 @@ class CreateNetworkConnectivityConfigRequest:
|
|
|
788
791
|
return body
|
|
789
792
|
|
|
790
793
|
def as_shallow_dict(self) -> dict:
|
|
791
|
-
"""Serializes the
|
|
794
|
+
"""Serializes the CreateNetworkConnectivityConfiguration into a shallow dictionary of its immediate attributes."""
|
|
792
795
|
body = {}
|
|
793
796
|
if self.name is not None:
|
|
794
797
|
body["name"] = self.name
|
|
@@ -797,8 +800,8 @@ class CreateNetworkConnectivityConfigRequest:
|
|
|
797
800
|
return body
|
|
798
801
|
|
|
799
802
|
@classmethod
|
|
800
|
-
def from_dict(cls, d: Dict[str, Any]) ->
|
|
801
|
-
"""Deserializes the
|
|
803
|
+
def from_dict(cls, d: Dict[str, Any]) -> CreateNetworkConnectivityConfiguration:
|
|
804
|
+
"""Deserializes the CreateNetworkConnectivityConfiguration from a dictionary."""
|
|
802
805
|
return cls(name=d.get("name", None), region=d.get("region", None))
|
|
803
806
|
|
|
804
807
|
|
|
@@ -913,59 +916,58 @@ class CreateOboTokenResponse:
|
|
|
913
916
|
|
|
914
917
|
|
|
915
918
|
@dataclass
|
|
916
|
-
class
|
|
919
|
+
class CreatePrivateEndpointRule:
|
|
920
|
+
"""Properties of the new private endpoint rule. Note that you must approve the endpoint in Azure
|
|
921
|
+
portal after initialization."""
|
|
922
|
+
|
|
917
923
|
resource_id: str
|
|
918
924
|
"""The Azure resource ID of the target resource."""
|
|
919
925
|
|
|
920
|
-
|
|
921
|
-
"""
|
|
922
|
-
|
|
926
|
+
domain_names: Optional[List[str]] = None
|
|
927
|
+
"""Only used by private endpoints to customer-managed resources.
|
|
928
|
+
|
|
929
|
+
Domain names of target private link service. When updating this field, the full list of target
|
|
930
|
+
domain_names must be specified."""
|
|
923
931
|
|
|
924
|
-
|
|
925
|
-
"""
|
|
932
|
+
group_id: Optional[str] = None
|
|
933
|
+
"""Only used by private endpoints to Azure first-party services. Enum: blob | dfs | sqlServer |
|
|
934
|
+
mysqlServer
|
|
935
|
+
|
|
936
|
+
The sub-resource type (group ID) of the target resource. Note that to connect to workspace root
|
|
937
|
+
storage (root DBFS), you need two endpoints, one for blob and one for dfs."""
|
|
926
938
|
|
|
927
939
|
def as_dict(self) -> dict:
|
|
928
|
-
"""Serializes the
|
|
940
|
+
"""Serializes the CreatePrivateEndpointRule into a dictionary suitable for use as a JSON request body."""
|
|
929
941
|
body = {}
|
|
942
|
+
if self.domain_names:
|
|
943
|
+
body["domain_names"] = [v for v in self.domain_names]
|
|
930
944
|
if self.group_id is not None:
|
|
931
|
-
body["group_id"] = self.group_id
|
|
932
|
-
if self.network_connectivity_config_id is not None:
|
|
933
|
-
body["network_connectivity_config_id"] = self.network_connectivity_config_id
|
|
945
|
+
body["group_id"] = self.group_id
|
|
934
946
|
if self.resource_id is not None:
|
|
935
947
|
body["resource_id"] = self.resource_id
|
|
936
948
|
return body
|
|
937
949
|
|
|
938
950
|
def as_shallow_dict(self) -> dict:
|
|
939
|
-
"""Serializes the
|
|
951
|
+
"""Serializes the CreatePrivateEndpointRule into a shallow dictionary of its immediate attributes."""
|
|
940
952
|
body = {}
|
|
953
|
+
if self.domain_names:
|
|
954
|
+
body["domain_names"] = self.domain_names
|
|
941
955
|
if self.group_id is not None:
|
|
942
956
|
body["group_id"] = self.group_id
|
|
943
|
-
if self.network_connectivity_config_id is not None:
|
|
944
|
-
body["network_connectivity_config_id"] = self.network_connectivity_config_id
|
|
945
957
|
if self.resource_id is not None:
|
|
946
958
|
body["resource_id"] = self.resource_id
|
|
947
959
|
return body
|
|
948
960
|
|
|
949
961
|
@classmethod
|
|
950
|
-
def from_dict(cls, d: Dict[str, Any]) ->
|
|
951
|
-
"""Deserializes the
|
|
962
|
+
def from_dict(cls, d: Dict[str, Any]) -> CreatePrivateEndpointRule:
|
|
963
|
+
"""Deserializes the CreatePrivateEndpointRule from a dictionary."""
|
|
952
964
|
return cls(
|
|
953
|
-
|
|
954
|
-
|
|
965
|
+
domain_names=d.get("domain_names", None),
|
|
966
|
+
group_id=d.get("group_id", None),
|
|
955
967
|
resource_id=d.get("resource_id", None),
|
|
956
968
|
)
|
|
957
969
|
|
|
958
970
|
|
|
959
|
-
class CreatePrivateEndpointRuleRequestGroupId(Enum):
|
|
960
|
-
"""The sub-resource type (group ID) of the target resource. Note that to connect to workspace root
|
|
961
|
-
storage (root DBFS), you need two endpoints, one for `blob` and one for `dfs`."""
|
|
962
|
-
|
|
963
|
-
BLOB = "blob"
|
|
964
|
-
DFS = "dfs"
|
|
965
|
-
MYSQL_SERVER = "mysqlServer"
|
|
966
|
-
SQL_SERVER = "sqlServer"
|
|
967
|
-
|
|
968
|
-
|
|
969
971
|
@dataclass
|
|
970
972
|
class CreateTokenRequest:
|
|
971
973
|
comment: Optional[str] = None
|
|
@@ -1961,6 +1963,14 @@ class EgressNetworkPolicyInternetAccessPolicyStorageDestinationStorageDestinatio
|
|
|
1961
1963
|
GOOGLE_CLOUD_STORAGE = "GOOGLE_CLOUD_STORAGE"
|
|
1962
1964
|
|
|
1963
1965
|
|
|
1966
|
+
class EgressResourceType(Enum):
|
|
1967
|
+
"""The target resources that are supported by Network Connectivity Config. Note: some egress types
|
|
1968
|
+
can support general types that are not defined in EgressResourceType. E.g.: Azure private
|
|
1969
|
+
endpoint supports private link enabled Azure services."""
|
|
1970
|
+
|
|
1971
|
+
AZURE_BLOB_STORAGE = "AZURE_BLOB_STORAGE"
|
|
1972
|
+
|
|
1973
|
+
|
|
1964
1974
|
@dataclass
|
|
1965
1975
|
class EmailConfig:
|
|
1966
1976
|
addresses: Optional[List[str]] = None
|
|
@@ -2004,6 +2014,108 @@ class Empty:
|
|
|
2004
2014
|
return cls()
|
|
2005
2015
|
|
|
2006
2016
|
|
|
2017
|
+
@dataclass
|
|
2018
|
+
class EnableExportNotebook:
|
|
2019
|
+
boolean_val: Optional[BooleanMessage] = None
|
|
2020
|
+
|
|
2021
|
+
setting_name: Optional[str] = None
|
|
2022
|
+
"""Name of the corresponding setting. This field is populated in the response, but it will not be
|
|
2023
|
+
respected even if it's set in the request body. The setting name in the path parameter will be
|
|
2024
|
+
respected instead. Setting name is required to be 'default' if the setting only has one instance
|
|
2025
|
+
per workspace."""
|
|
2026
|
+
|
|
2027
|
+
def as_dict(self) -> dict:
|
|
2028
|
+
"""Serializes the EnableExportNotebook into a dictionary suitable for use as a JSON request body."""
|
|
2029
|
+
body = {}
|
|
2030
|
+
if self.boolean_val:
|
|
2031
|
+
body["boolean_val"] = self.boolean_val.as_dict()
|
|
2032
|
+
if self.setting_name is not None:
|
|
2033
|
+
body["setting_name"] = self.setting_name
|
|
2034
|
+
return body
|
|
2035
|
+
|
|
2036
|
+
def as_shallow_dict(self) -> dict:
|
|
2037
|
+
"""Serializes the EnableExportNotebook into a shallow dictionary of its immediate attributes."""
|
|
2038
|
+
body = {}
|
|
2039
|
+
if self.boolean_val:
|
|
2040
|
+
body["boolean_val"] = self.boolean_val
|
|
2041
|
+
if self.setting_name is not None:
|
|
2042
|
+
body["setting_name"] = self.setting_name
|
|
2043
|
+
return body
|
|
2044
|
+
|
|
2045
|
+
@classmethod
|
|
2046
|
+
def from_dict(cls, d: Dict[str, Any]) -> EnableExportNotebook:
|
|
2047
|
+
"""Deserializes the EnableExportNotebook from a dictionary."""
|
|
2048
|
+
return cls(boolean_val=_from_dict(d, "boolean_val", BooleanMessage), setting_name=d.get("setting_name", None))
|
|
2049
|
+
|
|
2050
|
+
|
|
2051
|
+
@dataclass
|
|
2052
|
+
class EnableNotebookTableClipboard:
|
|
2053
|
+
boolean_val: Optional[BooleanMessage] = None
|
|
2054
|
+
|
|
2055
|
+
setting_name: Optional[str] = None
|
|
2056
|
+
"""Name of the corresponding setting. This field is populated in the response, but it will not be
|
|
2057
|
+
respected even if it's set in the request body. The setting name in the path parameter will be
|
|
2058
|
+
respected instead. Setting name is required to be 'default' if the setting only has one instance
|
|
2059
|
+
per workspace."""
|
|
2060
|
+
|
|
2061
|
+
def as_dict(self) -> dict:
|
|
2062
|
+
"""Serializes the EnableNotebookTableClipboard into a dictionary suitable for use as a JSON request body."""
|
|
2063
|
+
body = {}
|
|
2064
|
+
if self.boolean_val:
|
|
2065
|
+
body["boolean_val"] = self.boolean_val.as_dict()
|
|
2066
|
+
if self.setting_name is not None:
|
|
2067
|
+
body["setting_name"] = self.setting_name
|
|
2068
|
+
return body
|
|
2069
|
+
|
|
2070
|
+
def as_shallow_dict(self) -> dict:
|
|
2071
|
+
"""Serializes the EnableNotebookTableClipboard into a shallow dictionary of its immediate attributes."""
|
|
2072
|
+
body = {}
|
|
2073
|
+
if self.boolean_val:
|
|
2074
|
+
body["boolean_val"] = self.boolean_val
|
|
2075
|
+
if self.setting_name is not None:
|
|
2076
|
+
body["setting_name"] = self.setting_name
|
|
2077
|
+
return body
|
|
2078
|
+
|
|
2079
|
+
@classmethod
|
|
2080
|
+
def from_dict(cls, d: Dict[str, Any]) -> EnableNotebookTableClipboard:
|
|
2081
|
+
"""Deserializes the EnableNotebookTableClipboard from a dictionary."""
|
|
2082
|
+
return cls(boolean_val=_from_dict(d, "boolean_val", BooleanMessage), setting_name=d.get("setting_name", None))
|
|
2083
|
+
|
|
2084
|
+
|
|
2085
|
+
@dataclass
|
|
2086
|
+
class EnableResultsDownloading:
|
|
2087
|
+
boolean_val: Optional[BooleanMessage] = None
|
|
2088
|
+
|
|
2089
|
+
setting_name: Optional[str] = None
|
|
2090
|
+
"""Name of the corresponding setting. This field is populated in the response, but it will not be
|
|
2091
|
+
respected even if it's set in the request body. The setting name in the path parameter will be
|
|
2092
|
+
respected instead. Setting name is required to be 'default' if the setting only has one instance
|
|
2093
|
+
per workspace."""
|
|
2094
|
+
|
|
2095
|
+
def as_dict(self) -> dict:
|
|
2096
|
+
"""Serializes the EnableResultsDownloading into a dictionary suitable for use as a JSON request body."""
|
|
2097
|
+
body = {}
|
|
2098
|
+
if self.boolean_val:
|
|
2099
|
+
body["boolean_val"] = self.boolean_val.as_dict()
|
|
2100
|
+
if self.setting_name is not None:
|
|
2101
|
+
body["setting_name"] = self.setting_name
|
|
2102
|
+
return body
|
|
2103
|
+
|
|
2104
|
+
def as_shallow_dict(self) -> dict:
|
|
2105
|
+
"""Serializes the EnableResultsDownloading into a shallow dictionary of its immediate attributes."""
|
|
2106
|
+
body = {}
|
|
2107
|
+
if self.boolean_val:
|
|
2108
|
+
body["boolean_val"] = self.boolean_val
|
|
2109
|
+
if self.setting_name is not None:
|
|
2110
|
+
body["setting_name"] = self.setting_name
|
|
2111
|
+
return body
|
|
2112
|
+
|
|
2113
|
+
@classmethod
|
|
2114
|
+
def from_dict(cls, d: Dict[str, Any]) -> EnableResultsDownloading:
|
|
2115
|
+
"""Deserializes the EnableResultsDownloading from a dictionary."""
|
|
2116
|
+
return cls(boolean_val=_from_dict(d, "boolean_val", BooleanMessage), setting_name=d.get("setting_name", None))
|
|
2117
|
+
|
|
2118
|
+
|
|
2007
2119
|
@dataclass
|
|
2008
2120
|
class EnhancedSecurityMonitoring:
|
|
2009
2121
|
"""SHIELD feature: ESM"""
|
|
@@ -2619,6 +2731,8 @@ class ListIpAccessListResponse:
|
|
|
2619
2731
|
|
|
2620
2732
|
@dataclass
|
|
2621
2733
|
class ListNccAzurePrivateEndpointRulesResponse:
|
|
2734
|
+
"""The private endpoint rule list was successfully retrieved."""
|
|
2735
|
+
|
|
2622
2736
|
items: Optional[List[NccAzurePrivateEndpointRule]] = None
|
|
2623
2737
|
|
|
2624
2738
|
next_page_token: Optional[str] = None
|
|
@@ -2654,6 +2768,8 @@ class ListNccAzurePrivateEndpointRulesResponse:
|
|
|
2654
2768
|
|
|
2655
2769
|
@dataclass
|
|
2656
2770
|
class ListNetworkConnectivityConfigurationsResponse:
|
|
2771
|
+
"""The network connectivity configuration list was successfully retrieved."""
|
|
2772
|
+
|
|
2657
2773
|
items: Optional[List[NetworkConnectivityConfiguration]] = None
|
|
2658
2774
|
|
|
2659
2775
|
next_page_token: Optional[str] = None
|
|
@@ -2889,17 +3005,19 @@ class NccAwsStableIpRule:
|
|
|
2889
3005
|
|
|
2890
3006
|
@dataclass
|
|
2891
3007
|
class NccAzurePrivateEndpointRule:
|
|
3008
|
+
"""Properties of the new private endpoint rule. Note that you must approve the endpoint in Azure
|
|
3009
|
+
portal after initialization."""
|
|
3010
|
+
|
|
2892
3011
|
connection_state: Optional[NccAzurePrivateEndpointRuleConnectionState] = None
|
|
2893
3012
|
"""The current status of this private endpoint. The private endpoint rules are effective only if
|
|
2894
|
-
the connection state is
|
|
2895
|
-
resources in the Azure portal before they take effect.
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
be deleted for clean-up."""
|
|
3013
|
+
the connection state is ESTABLISHED. Remember that you must approve new endpoints on your
|
|
3014
|
+
resources in the Azure portal before they take effect. The possible values are: - INIT:
|
|
3015
|
+
(deprecated) The endpoint has been created and pending approval. - PENDING: The endpoint has
|
|
3016
|
+
been created and pending approval. - ESTABLISHED: The endpoint has been approved and is ready to
|
|
3017
|
+
use in your serverless compute resources. - REJECTED: Connection was rejected by the private
|
|
3018
|
+
link resource owner. - DISCONNECTED: Connection was removed by the private link resource owner,
|
|
3019
|
+
the private endpoint becomes informative and should be deleted for clean-up. - EXPIRED: If the
|
|
3020
|
+
endpoint was created but not approved in 14 days, it will be EXPIRED."""
|
|
2903
3021
|
|
|
2904
3022
|
creation_time: Optional[int] = None
|
|
2905
3023
|
"""Time in epoch milliseconds when this object was created."""
|
|
@@ -2910,12 +3028,21 @@ class NccAzurePrivateEndpointRule:
|
|
|
2910
3028
|
deactivated_at: Optional[int] = None
|
|
2911
3029
|
"""Time in epoch milliseconds when this object was deactivated."""
|
|
2912
3030
|
|
|
3031
|
+
domain_names: Optional[List[str]] = None
|
|
3032
|
+
"""Only used by private endpoints to customer-managed resources.
|
|
3033
|
+
|
|
3034
|
+
Domain names of target private link service. When updating this field, the full list of target
|
|
3035
|
+
domain_names must be specified."""
|
|
3036
|
+
|
|
2913
3037
|
endpoint_name: Optional[str] = None
|
|
2914
3038
|
"""The name of the Azure private endpoint resource."""
|
|
2915
3039
|
|
|
2916
|
-
group_id: Optional[
|
|
2917
|
-
"""
|
|
2918
|
-
|
|
3040
|
+
group_id: Optional[str] = None
|
|
3041
|
+
"""Only used by private endpoints to Azure first-party services. Enum: blob | dfs | sqlServer |
|
|
3042
|
+
mysqlServer
|
|
3043
|
+
|
|
3044
|
+
The sub-resource type (group ID) of the target resource. Note that to connect to workspace root
|
|
3045
|
+
storage (root DBFS), you need two endpoints, one for blob and one for dfs."""
|
|
2919
3046
|
|
|
2920
3047
|
network_connectivity_config_id: Optional[str] = None
|
|
2921
3048
|
"""The ID of a network connectivity configuration, which is the parent resource of this private
|
|
@@ -2941,10 +3068,12 @@ class NccAzurePrivateEndpointRule:
|
|
|
2941
3068
|
body["deactivated"] = self.deactivated
|
|
2942
3069
|
if self.deactivated_at is not None:
|
|
2943
3070
|
body["deactivated_at"] = self.deactivated_at
|
|
3071
|
+
if self.domain_names:
|
|
3072
|
+
body["domain_names"] = [v for v in self.domain_names]
|
|
2944
3073
|
if self.endpoint_name is not None:
|
|
2945
3074
|
body["endpoint_name"] = self.endpoint_name
|
|
2946
3075
|
if self.group_id is not None:
|
|
2947
|
-
body["group_id"] = self.group_id
|
|
3076
|
+
body["group_id"] = self.group_id
|
|
2948
3077
|
if self.network_connectivity_config_id is not None:
|
|
2949
3078
|
body["network_connectivity_config_id"] = self.network_connectivity_config_id
|
|
2950
3079
|
if self.resource_id is not None:
|
|
@@ -2966,6 +3095,8 @@ class NccAzurePrivateEndpointRule:
|
|
|
2966
3095
|
body["deactivated"] = self.deactivated
|
|
2967
3096
|
if self.deactivated_at is not None:
|
|
2968
3097
|
body["deactivated_at"] = self.deactivated_at
|
|
3098
|
+
if self.domain_names:
|
|
3099
|
+
body["domain_names"] = self.domain_names
|
|
2969
3100
|
if self.endpoint_name is not None:
|
|
2970
3101
|
body["endpoint_name"] = self.endpoint_name
|
|
2971
3102
|
if self.group_id is not None:
|
|
@@ -2988,8 +3119,9 @@ class NccAzurePrivateEndpointRule:
|
|
|
2988
3119
|
creation_time=d.get("creation_time", None),
|
|
2989
3120
|
deactivated=d.get("deactivated", None),
|
|
2990
3121
|
deactivated_at=d.get("deactivated_at", None),
|
|
3122
|
+
domain_names=d.get("domain_names", None),
|
|
2991
3123
|
endpoint_name=d.get("endpoint_name", None),
|
|
2992
|
-
group_id=
|
|
3124
|
+
group_id=d.get("group_id", None),
|
|
2993
3125
|
network_connectivity_config_id=d.get("network_connectivity_config_id", None),
|
|
2994
3126
|
resource_id=d.get("resource_id", None),
|
|
2995
3127
|
rule_id=d.get("rule_id", None),
|
|
@@ -2998,34 +3130,15 @@ class NccAzurePrivateEndpointRule:
|
|
|
2998
3130
|
|
|
2999
3131
|
|
|
3000
3132
|
class NccAzurePrivateEndpointRuleConnectionState(Enum):
|
|
3001
|
-
"""The current status of this private endpoint. The private endpoint rules are effective only if
|
|
3002
|
-
the connection state is `ESTABLISHED`. Remember that you must approve new endpoints on your
|
|
3003
|
-
resources in the Azure portal before they take effect.
|
|
3004
|
-
|
|
3005
|
-
The possible values are: - INIT: (deprecated) The endpoint has been created and pending
|
|
3006
|
-
approval. - PENDING: The endpoint has been created and pending approval. - ESTABLISHED: The
|
|
3007
|
-
endpoint has been approved and is ready to use in your serverless compute resources. - REJECTED:
|
|
3008
|
-
Connection was rejected by the private link resource owner. - DISCONNECTED: Connection was
|
|
3009
|
-
removed by the private link resource owner, the private endpoint becomes informative and should
|
|
3010
|
-
be deleted for clean-up."""
|
|
3011
3133
|
|
|
3012
3134
|
DISCONNECTED = "DISCONNECTED"
|
|
3013
3135
|
ESTABLISHED = "ESTABLISHED"
|
|
3136
|
+
EXPIRED = "EXPIRED"
|
|
3014
3137
|
INIT = "INIT"
|
|
3015
3138
|
PENDING = "PENDING"
|
|
3016
3139
|
REJECTED = "REJECTED"
|
|
3017
3140
|
|
|
3018
3141
|
|
|
3019
|
-
class NccAzurePrivateEndpointRuleGroupId(Enum):
|
|
3020
|
-
"""The sub-resource type (group ID) of the target resource. Note that to connect to workspace root
|
|
3021
|
-
storage (root DBFS), you need two endpoints, one for `blob` and one for `dfs`."""
|
|
3022
|
-
|
|
3023
|
-
BLOB = "blob"
|
|
3024
|
-
DFS = "dfs"
|
|
3025
|
-
MYSQL_SERVER = "mysqlServer"
|
|
3026
|
-
SQL_SERVER = "sqlServer"
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
3142
|
@dataclass
|
|
3030
3143
|
class NccAzureServiceEndpointRule:
|
|
3031
3144
|
"""The stable Azure service endpoints. You can configure the firewall of your Azure resources to
|
|
@@ -3036,9 +3149,9 @@ class NccAzureServiceEndpointRule:
|
|
|
3036
3149
|
resources."""
|
|
3037
3150
|
|
|
3038
3151
|
target_region: Optional[str] = None
|
|
3039
|
-
"""The Azure region in which this service endpoint rule applies
|
|
3152
|
+
"""The Azure region in which this service endpoint rule applies.."""
|
|
3040
3153
|
|
|
3041
|
-
target_services: Optional[List[
|
|
3154
|
+
target_services: Optional[List[EgressResourceType]] = None
|
|
3042
3155
|
"""The Azure services to which this service endpoint rule applies to."""
|
|
3043
3156
|
|
|
3044
3157
|
def as_dict(self) -> dict:
|
|
@@ -3049,7 +3162,7 @@ class NccAzureServiceEndpointRule:
|
|
|
3049
3162
|
if self.target_region is not None:
|
|
3050
3163
|
body["target_region"] = self.target_region
|
|
3051
3164
|
if self.target_services:
|
|
3052
|
-
body["target_services"] = [v for v in self.target_services]
|
|
3165
|
+
body["target_services"] = [v.value for v in self.target_services]
|
|
3053
3166
|
return body
|
|
3054
3167
|
|
|
3055
3168
|
def as_shallow_dict(self) -> dict:
|
|
@@ -3069,15 +3182,12 @@ class NccAzureServiceEndpointRule:
|
|
|
3069
3182
|
return cls(
|
|
3070
3183
|
subnets=d.get("subnets", None),
|
|
3071
3184
|
target_region=d.get("target_region", None),
|
|
3072
|
-
target_services=d
|
|
3185
|
+
target_services=_repeated_enum(d, "target_services", EgressResourceType),
|
|
3073
3186
|
)
|
|
3074
3187
|
|
|
3075
3188
|
|
|
3076
3189
|
@dataclass
|
|
3077
3190
|
class NccEgressConfig:
|
|
3078
|
-
"""The network connectivity rules that apply to network traffic from your serverless compute
|
|
3079
|
-
resources."""
|
|
3080
|
-
|
|
3081
3191
|
default_rules: Optional[NccEgressDefaultRules] = None
|
|
3082
3192
|
"""The network connectivity rules that are applied by default without resource specific
|
|
3083
3193
|
configurations. You can find the stable network information of your serverless compute resources
|
|
@@ -3116,9 +3226,7 @@ class NccEgressConfig:
|
|
|
3116
3226
|
|
|
3117
3227
|
@dataclass
|
|
3118
3228
|
class NccEgressDefaultRules:
|
|
3119
|
-
"""
|
|
3120
|
-
configurations. You can find the stable network information of your serverless compute resources
|
|
3121
|
-
here."""
|
|
3229
|
+
"""Default rules don't have specific targets."""
|
|
3122
3230
|
|
|
3123
3231
|
aws_stable_ip_rule: Optional[NccAwsStableIpRule] = None
|
|
3124
3232
|
"""The stable AWS IP CIDR blocks. You can use these to configure the firewall of your resources to
|
|
@@ -3157,8 +3265,7 @@ class NccEgressDefaultRules:
|
|
|
3157
3265
|
|
|
3158
3266
|
@dataclass
|
|
3159
3267
|
class NccEgressTargetRules:
|
|
3160
|
-
"""
|
|
3161
|
-
default rules."""
|
|
3268
|
+
"""Target rule controls the egress rules that are dedicated to specific resources."""
|
|
3162
3269
|
|
|
3163
3270
|
azure_private_endpoint_rules: Optional[List[NccAzurePrivateEndpointRule]] = None
|
|
3164
3271
|
|
|
@@ -3186,6 +3293,8 @@ class NccEgressTargetRules:
|
|
|
3186
3293
|
|
|
3187
3294
|
@dataclass
|
|
3188
3295
|
class NetworkConnectivityConfiguration:
|
|
3296
|
+
"""Properties of the new network connectivity configuration."""
|
|
3297
|
+
|
|
3189
3298
|
account_id: Optional[str] = None
|
|
3190
3299
|
"""The Databricks account ID that hosts the credential."""
|
|
3191
3300
|
|
|
@@ -3199,7 +3308,7 @@ class NetworkConnectivityConfiguration:
|
|
|
3199
3308
|
name: Optional[str] = None
|
|
3200
3309
|
"""The name of the network connectivity configuration. The name can contain alphanumeric
|
|
3201
3310
|
characters, hyphens, and underscores. The length must be between 3 and 30 characters. The name
|
|
3202
|
-
must match the regular expression
|
|
3311
|
+
must match the regular expression ^[0-9a-zA-Z-_]{3,30}$"""
|
|
3203
3312
|
|
|
3204
3313
|
network_connectivity_config_id: Optional[str] = None
|
|
3205
3314
|
"""Databricks network connectivity configuration ID."""
|
|
@@ -4680,6 +4789,162 @@ class UpdateDisableLegacyFeaturesRequest:
|
|
|
4680
4789
|
)
|
|
4681
4790
|
|
|
4682
4791
|
|
|
4792
|
+
@dataclass
|
|
4793
|
+
class UpdateEnableExportNotebookRequest:
|
|
4794
|
+
"""Details required to update a setting."""
|
|
4795
|
+
|
|
4796
|
+
allow_missing: bool
|
|
4797
|
+
"""This should always be set to true for Settings API. Added for AIP compliance."""
|
|
4798
|
+
|
|
4799
|
+
setting: EnableExportNotebook
|
|
4800
|
+
|
|
4801
|
+
field_mask: str
|
|
4802
|
+
"""The field mask must be a single string, with multiple fields separated by commas (no spaces).
|
|
4803
|
+
The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields
|
|
4804
|
+
(e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed,
|
|
4805
|
+
as only the entire collection field can be specified. Field names must exactly match the
|
|
4806
|
+
resource field names.
|
|
4807
|
+
|
|
4808
|
+
A field mask of `*` indicates full replacement. It’s recommended to always explicitly list the
|
|
4809
|
+
fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the
|
|
4810
|
+
API changes in the future."""
|
|
4811
|
+
|
|
4812
|
+
def as_dict(self) -> dict:
|
|
4813
|
+
"""Serializes the UpdateEnableExportNotebookRequest into a dictionary suitable for use as a JSON request body."""
|
|
4814
|
+
body = {}
|
|
4815
|
+
if self.allow_missing is not None:
|
|
4816
|
+
body["allow_missing"] = self.allow_missing
|
|
4817
|
+
if self.field_mask is not None:
|
|
4818
|
+
body["field_mask"] = self.field_mask
|
|
4819
|
+
if self.setting:
|
|
4820
|
+
body["setting"] = self.setting.as_dict()
|
|
4821
|
+
return body
|
|
4822
|
+
|
|
4823
|
+
def as_shallow_dict(self) -> dict:
|
|
4824
|
+
"""Serializes the UpdateEnableExportNotebookRequest into a shallow dictionary of its immediate attributes."""
|
|
4825
|
+
body = {}
|
|
4826
|
+
if self.allow_missing is not None:
|
|
4827
|
+
body["allow_missing"] = self.allow_missing
|
|
4828
|
+
if self.field_mask is not None:
|
|
4829
|
+
body["field_mask"] = self.field_mask
|
|
4830
|
+
if self.setting:
|
|
4831
|
+
body["setting"] = self.setting
|
|
4832
|
+
return body
|
|
4833
|
+
|
|
4834
|
+
@classmethod
|
|
4835
|
+
def from_dict(cls, d: Dict[str, Any]) -> UpdateEnableExportNotebookRequest:
|
|
4836
|
+
"""Deserializes the UpdateEnableExportNotebookRequest from a dictionary."""
|
|
4837
|
+
return cls(
|
|
4838
|
+
allow_missing=d.get("allow_missing", None),
|
|
4839
|
+
field_mask=d.get("field_mask", None),
|
|
4840
|
+
setting=_from_dict(d, "setting", EnableExportNotebook),
|
|
4841
|
+
)
|
|
4842
|
+
|
|
4843
|
+
|
|
4844
|
+
@dataclass
|
|
4845
|
+
class UpdateEnableNotebookTableClipboardRequest:
|
|
4846
|
+
"""Details required to update a setting."""
|
|
4847
|
+
|
|
4848
|
+
allow_missing: bool
|
|
4849
|
+
"""This should always be set to true for Settings API. Added for AIP compliance."""
|
|
4850
|
+
|
|
4851
|
+
setting: EnableNotebookTableClipboard
|
|
4852
|
+
|
|
4853
|
+
field_mask: str
|
|
4854
|
+
"""The field mask must be a single string, with multiple fields separated by commas (no spaces).
|
|
4855
|
+
The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields
|
|
4856
|
+
(e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed,
|
|
4857
|
+
as only the entire collection field can be specified. Field names must exactly match the
|
|
4858
|
+
resource field names.
|
|
4859
|
+
|
|
4860
|
+
A field mask of `*` indicates full replacement. It’s recommended to always explicitly list the
|
|
4861
|
+
fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the
|
|
4862
|
+
API changes in the future."""
|
|
4863
|
+
|
|
4864
|
+
def as_dict(self) -> dict:
|
|
4865
|
+
"""Serializes the UpdateEnableNotebookTableClipboardRequest into a dictionary suitable for use as a JSON request body."""
|
|
4866
|
+
body = {}
|
|
4867
|
+
if self.allow_missing is not None:
|
|
4868
|
+
body["allow_missing"] = self.allow_missing
|
|
4869
|
+
if self.field_mask is not None:
|
|
4870
|
+
body["field_mask"] = self.field_mask
|
|
4871
|
+
if self.setting:
|
|
4872
|
+
body["setting"] = self.setting.as_dict()
|
|
4873
|
+
return body
|
|
4874
|
+
|
|
4875
|
+
def as_shallow_dict(self) -> dict:
|
|
4876
|
+
"""Serializes the UpdateEnableNotebookTableClipboardRequest into a shallow dictionary of its immediate attributes."""
|
|
4877
|
+
body = {}
|
|
4878
|
+
if self.allow_missing is not None:
|
|
4879
|
+
body["allow_missing"] = self.allow_missing
|
|
4880
|
+
if self.field_mask is not None:
|
|
4881
|
+
body["field_mask"] = self.field_mask
|
|
4882
|
+
if self.setting:
|
|
4883
|
+
body["setting"] = self.setting
|
|
4884
|
+
return body
|
|
4885
|
+
|
|
4886
|
+
@classmethod
|
|
4887
|
+
def from_dict(cls, d: Dict[str, Any]) -> UpdateEnableNotebookTableClipboardRequest:
|
|
4888
|
+
"""Deserializes the UpdateEnableNotebookTableClipboardRequest from a dictionary."""
|
|
4889
|
+
return cls(
|
|
4890
|
+
allow_missing=d.get("allow_missing", None),
|
|
4891
|
+
field_mask=d.get("field_mask", None),
|
|
4892
|
+
setting=_from_dict(d, "setting", EnableNotebookTableClipboard),
|
|
4893
|
+
)
|
|
4894
|
+
|
|
4895
|
+
|
|
4896
|
+
@dataclass
|
|
4897
|
+
class UpdateEnableResultsDownloadingRequest:
|
|
4898
|
+
"""Details required to update a setting."""
|
|
4899
|
+
|
|
4900
|
+
allow_missing: bool
|
|
4901
|
+
"""This should always be set to true for Settings API. Added for AIP compliance."""
|
|
4902
|
+
|
|
4903
|
+
setting: EnableResultsDownloading
|
|
4904
|
+
|
|
4905
|
+
field_mask: str
|
|
4906
|
+
"""The field mask must be a single string, with multiple fields separated by commas (no spaces).
|
|
4907
|
+
The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields
|
|
4908
|
+
(e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed,
|
|
4909
|
+
as only the entire collection field can be specified. Field names must exactly match the
|
|
4910
|
+
resource field names.
|
|
4911
|
+
|
|
4912
|
+
A field mask of `*` indicates full replacement. It’s recommended to always explicitly list the
|
|
4913
|
+
fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the
|
|
4914
|
+
API changes in the future."""
|
|
4915
|
+
|
|
4916
|
+
def as_dict(self) -> dict:
|
|
4917
|
+
"""Serializes the UpdateEnableResultsDownloadingRequest into a dictionary suitable for use as a JSON request body."""
|
|
4918
|
+
body = {}
|
|
4919
|
+
if self.allow_missing is not None:
|
|
4920
|
+
body["allow_missing"] = self.allow_missing
|
|
4921
|
+
if self.field_mask is not None:
|
|
4922
|
+
body["field_mask"] = self.field_mask
|
|
4923
|
+
if self.setting:
|
|
4924
|
+
body["setting"] = self.setting.as_dict()
|
|
4925
|
+
return body
|
|
4926
|
+
|
|
4927
|
+
def as_shallow_dict(self) -> dict:
|
|
4928
|
+
"""Serializes the UpdateEnableResultsDownloadingRequest into a shallow dictionary of its immediate attributes."""
|
|
4929
|
+
body = {}
|
|
4930
|
+
if self.allow_missing is not None:
|
|
4931
|
+
body["allow_missing"] = self.allow_missing
|
|
4932
|
+
if self.field_mask is not None:
|
|
4933
|
+
body["field_mask"] = self.field_mask
|
|
4934
|
+
if self.setting:
|
|
4935
|
+
body["setting"] = self.setting
|
|
4936
|
+
return body
|
|
4937
|
+
|
|
4938
|
+
@classmethod
|
|
4939
|
+
def from_dict(cls, d: Dict[str, Any]) -> UpdateEnableResultsDownloadingRequest:
|
|
4940
|
+
"""Deserializes the UpdateEnableResultsDownloadingRequest from a dictionary."""
|
|
4941
|
+
return cls(
|
|
4942
|
+
allow_missing=d.get("allow_missing", None),
|
|
4943
|
+
field_mask=d.get("field_mask", None),
|
|
4944
|
+
setting=_from_dict(d, "setting", EnableResultsDownloading),
|
|
4945
|
+
)
|
|
4946
|
+
|
|
4947
|
+
|
|
4683
4948
|
@dataclass
|
|
4684
4949
|
class UpdateEnhancedSecurityMonitoringSettingRequest:
|
|
4685
4950
|
"""Details required to update a setting."""
|
|
@@ -4940,6 +5205,37 @@ class UpdatePersonalComputeSettingRequest:
|
|
|
4940
5205
|
)
|
|
4941
5206
|
|
|
4942
5207
|
|
|
5208
|
+
@dataclass
|
|
5209
|
+
class UpdatePrivateEndpointRule:
|
|
5210
|
+
"""Properties of the new private endpoint rule. Note that you must approve the endpoint in Azure
|
|
5211
|
+
portal after initialization."""
|
|
5212
|
+
|
|
5213
|
+
domain_names: Optional[List[str]] = None
|
|
5214
|
+
"""Only used by private endpoints to customer-managed resources.
|
|
5215
|
+
|
|
5216
|
+
Domain names of target private link service. When updating this field, the full list of target
|
|
5217
|
+
domain_names must be specified."""
|
|
5218
|
+
|
|
5219
|
+
def as_dict(self) -> dict:
|
|
5220
|
+
"""Serializes the UpdatePrivateEndpointRule into a dictionary suitable for use as a JSON request body."""
|
|
5221
|
+
body = {}
|
|
5222
|
+
if self.domain_names:
|
|
5223
|
+
body["domain_names"] = [v for v in self.domain_names]
|
|
5224
|
+
return body
|
|
5225
|
+
|
|
5226
|
+
def as_shallow_dict(self) -> dict:
|
|
5227
|
+
"""Serializes the UpdatePrivateEndpointRule into a shallow dictionary of its immediate attributes."""
|
|
5228
|
+
body = {}
|
|
5229
|
+
if self.domain_names:
|
|
5230
|
+
body["domain_names"] = self.domain_names
|
|
5231
|
+
return body
|
|
5232
|
+
|
|
5233
|
+
@classmethod
|
|
5234
|
+
def from_dict(cls, d: Dict[str, Any]) -> UpdatePrivateEndpointRule:
|
|
5235
|
+
"""Deserializes the UpdatePrivateEndpointRule from a dictionary."""
|
|
5236
|
+
return cls(domain_names=d.get("domain_names", None))
|
|
5237
|
+
|
|
5238
|
+
|
|
4943
5239
|
@dataclass
|
|
4944
5240
|
class UpdateResponse:
|
|
4945
5241
|
def as_dict(self) -> dict:
|
|
@@ -5919,10 +6215,9 @@ class DefaultNamespaceAPI:
|
|
|
5919
6215
|
class DisableLegacyAccessAPI:
|
|
5920
6216
|
"""'Disabling legacy access' has the following impacts:
|
|
5921
6217
|
|
|
5922
|
-
1. Disables direct access to the
|
|
5923
|
-
|
|
5924
|
-
|
|
5925
|
-
Unity Catalog access on all path based access."""
|
|
6218
|
+
1. Disables direct access to Hive Metastores from the workspace. However, you can still access a Hive
|
|
6219
|
+
Metastore through Hive Metastore federation. 2. Disables fallback mode on external location access from
|
|
6220
|
+
the workspace. 3. Disables Databricks Runtime versions prior to 13.3LTS."""
|
|
5926
6221
|
|
|
5927
6222
|
def __init__(self, api_client):
|
|
5928
6223
|
self._api = api_client
|
|
@@ -6232,6 +6527,70 @@ class DisableLegacyFeaturesAPI:
|
|
|
6232
6527
|
return DisableLegacyFeatures.from_dict(res)
|
|
6233
6528
|
|
|
6234
6529
|
|
|
6530
|
+
class EnableExportNotebookAPI:
|
|
6531
|
+
"""Controls whether users can export notebooks and files from the Workspace UI. By default, this setting is
|
|
6532
|
+
enabled."""
|
|
6533
|
+
|
|
6534
|
+
def __init__(self, api_client):
|
|
6535
|
+
self._api = api_client
|
|
6536
|
+
|
|
6537
|
+
def get_enable_export_notebook(self) -> EnableExportNotebook:
|
|
6538
|
+
"""Get the Notebook and File exporting setting.
|
|
6539
|
+
|
|
6540
|
+
Gets the Notebook and File exporting setting.
|
|
6541
|
+
|
|
6542
|
+
:returns: :class:`EnableExportNotebook`
|
|
6543
|
+
"""
|
|
6544
|
+
|
|
6545
|
+
headers = {
|
|
6546
|
+
"Accept": "application/json",
|
|
6547
|
+
}
|
|
6548
|
+
|
|
6549
|
+
res = self._api.do("GET", "/api/2.0/settings/types/enable-export-notebook/names/default", headers=headers)
|
|
6550
|
+
return EnableExportNotebook.from_dict(res)
|
|
6551
|
+
|
|
6552
|
+
def patch_enable_export_notebook(
|
|
6553
|
+
self, allow_missing: bool, setting: EnableExportNotebook, field_mask: str
|
|
6554
|
+
) -> EnableExportNotebook:
|
|
6555
|
+
"""Update the Notebook and File exporting setting.
|
|
6556
|
+
|
|
6557
|
+
Updates the Notebook and File exporting setting. The model follows eventual consistency, which means
|
|
6558
|
+
the get after the update operation might receive stale values for some time.
|
|
6559
|
+
|
|
6560
|
+
:param allow_missing: bool
|
|
6561
|
+
This should always be set to true for Settings API. Added for AIP compliance.
|
|
6562
|
+
:param setting: :class:`EnableExportNotebook`
|
|
6563
|
+
:param field_mask: str
|
|
6564
|
+
The field mask must be a single string, with multiple fields separated by commas (no spaces). The
|
|
6565
|
+
field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g.,
|
|
6566
|
+
`author.given_name`). Specification of elements in sequence or map fields is not allowed, as only
|
|
6567
|
+
the entire collection field can be specified. Field names must exactly match the resource field
|
|
6568
|
+
names.
|
|
6569
|
+
|
|
6570
|
+
A field mask of `*` indicates full replacement. It’s recommended to always explicitly list the
|
|
6571
|
+
fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API
|
|
6572
|
+
changes in the future.
|
|
6573
|
+
|
|
6574
|
+
:returns: :class:`EnableExportNotebook`
|
|
6575
|
+
"""
|
|
6576
|
+
body = {}
|
|
6577
|
+
if allow_missing is not None:
|
|
6578
|
+
body["allow_missing"] = allow_missing
|
|
6579
|
+
if field_mask is not None:
|
|
6580
|
+
body["field_mask"] = field_mask
|
|
6581
|
+
if setting is not None:
|
|
6582
|
+
body["setting"] = setting.as_dict()
|
|
6583
|
+
headers = {
|
|
6584
|
+
"Accept": "application/json",
|
|
6585
|
+
"Content-Type": "application/json",
|
|
6586
|
+
}
|
|
6587
|
+
|
|
6588
|
+
res = self._api.do(
|
|
6589
|
+
"PATCH", "/api/2.0/settings/types/enable-export-notebook/names/default", body=body, headers=headers
|
|
6590
|
+
)
|
|
6591
|
+
return EnableExportNotebook.from_dict(res)
|
|
6592
|
+
|
|
6593
|
+
|
|
6235
6594
|
class EnableIpAccessListsAPI:
|
|
6236
6595
|
"""Controls the enforcement of IP access lists for accessing the account console. Allowing you to enable or
|
|
6237
6596
|
disable restricted access based on IP addresses."""
|
|
@@ -6341,6 +6700,135 @@ class EnableIpAccessListsAPI:
|
|
|
6341
6700
|
return AccountIpAccessEnable.from_dict(res)
|
|
6342
6701
|
|
|
6343
6702
|
|
|
6703
|
+
class EnableNotebookTableClipboardAPI:
|
|
6704
|
+
"""Controls whether users can copy tabular data to the clipboard via the UI. By default, this setting is
|
|
6705
|
+
enabled."""
|
|
6706
|
+
|
|
6707
|
+
def __init__(self, api_client):
|
|
6708
|
+
self._api = api_client
|
|
6709
|
+
|
|
6710
|
+
def get_enable_notebook_table_clipboard(self) -> EnableNotebookTableClipboard:
|
|
6711
|
+
"""Get the Results Table Clipboard features setting.
|
|
6712
|
+
|
|
6713
|
+
Gets the Results Table Clipboard features setting.
|
|
6714
|
+
|
|
6715
|
+
:returns: :class:`EnableNotebookTableClipboard`
|
|
6716
|
+
"""
|
|
6717
|
+
|
|
6718
|
+
headers = {
|
|
6719
|
+
"Accept": "application/json",
|
|
6720
|
+
}
|
|
6721
|
+
|
|
6722
|
+
res = self._api.do(
|
|
6723
|
+
"GET", "/api/2.0/settings/types/enable-notebook-table-clipboard/names/default", headers=headers
|
|
6724
|
+
)
|
|
6725
|
+
return EnableNotebookTableClipboard.from_dict(res)
|
|
6726
|
+
|
|
6727
|
+
def patch_enable_notebook_table_clipboard(
|
|
6728
|
+
self, allow_missing: bool, setting: EnableNotebookTableClipboard, field_mask: str
|
|
6729
|
+
) -> EnableNotebookTableClipboard:
|
|
6730
|
+
"""Update the Results Table Clipboard features setting.
|
|
6731
|
+
|
|
6732
|
+
Updates the Results Table Clipboard features setting. The model follows eventual consistency, which
|
|
6733
|
+
means the get after the update operation might receive stale values for some time.
|
|
6734
|
+
|
|
6735
|
+
:param allow_missing: bool
|
|
6736
|
+
This should always be set to true for Settings API. Added for AIP compliance.
|
|
6737
|
+
:param setting: :class:`EnableNotebookTableClipboard`
|
|
6738
|
+
:param field_mask: str
|
|
6739
|
+
The field mask must be a single string, with multiple fields separated by commas (no spaces). The
|
|
6740
|
+
field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g.,
|
|
6741
|
+
`author.given_name`). Specification of elements in sequence or map fields is not allowed, as only
|
|
6742
|
+
the entire collection field can be specified. Field names must exactly match the resource field
|
|
6743
|
+
names.
|
|
6744
|
+
|
|
6745
|
+
A field mask of `*` indicates full replacement. It’s recommended to always explicitly list the
|
|
6746
|
+
fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API
|
|
6747
|
+
changes in the future.
|
|
6748
|
+
|
|
6749
|
+
:returns: :class:`EnableNotebookTableClipboard`
|
|
6750
|
+
"""
|
|
6751
|
+
body = {}
|
|
6752
|
+
if allow_missing is not None:
|
|
6753
|
+
body["allow_missing"] = allow_missing
|
|
6754
|
+
if field_mask is not None:
|
|
6755
|
+
body["field_mask"] = field_mask
|
|
6756
|
+
if setting is not None:
|
|
6757
|
+
body["setting"] = setting.as_dict()
|
|
6758
|
+
headers = {
|
|
6759
|
+
"Accept": "application/json",
|
|
6760
|
+
"Content-Type": "application/json",
|
|
6761
|
+
}
|
|
6762
|
+
|
|
6763
|
+
res = self._api.do(
|
|
6764
|
+
"PATCH", "/api/2.0/settings/types/enable-notebook-table-clipboard/names/default", body=body, headers=headers
|
|
6765
|
+
)
|
|
6766
|
+
return EnableNotebookTableClipboard.from_dict(res)
|
|
6767
|
+
|
|
6768
|
+
|
|
6769
|
+
class EnableResultsDownloadingAPI:
|
|
6770
|
+
"""Controls whether users can download notebook results. By default, this setting is enabled."""
|
|
6771
|
+
|
|
6772
|
+
def __init__(self, api_client):
|
|
6773
|
+
self._api = api_client
|
|
6774
|
+
|
|
6775
|
+
def get_enable_results_downloading(self) -> EnableResultsDownloading:
|
|
6776
|
+
"""Get the Notebook results download setting.
|
|
6777
|
+
|
|
6778
|
+
Gets the Notebook results download setting.
|
|
6779
|
+
|
|
6780
|
+
:returns: :class:`EnableResultsDownloading`
|
|
6781
|
+
"""
|
|
6782
|
+
|
|
6783
|
+
headers = {
|
|
6784
|
+
"Accept": "application/json",
|
|
6785
|
+
}
|
|
6786
|
+
|
|
6787
|
+
res = self._api.do("GET", "/api/2.0/settings/types/enable-results-downloading/names/default", headers=headers)
|
|
6788
|
+
return EnableResultsDownloading.from_dict(res)
|
|
6789
|
+
|
|
6790
|
+
def patch_enable_results_downloading(
|
|
6791
|
+
self, allow_missing: bool, setting: EnableResultsDownloading, field_mask: str
|
|
6792
|
+
) -> EnableResultsDownloading:
|
|
6793
|
+
"""Update the Notebook results download setting.
|
|
6794
|
+
|
|
6795
|
+
Updates the Notebook results download setting. The model follows eventual consistency, which means the
|
|
6796
|
+
get after the update operation might receive stale values for some time.
|
|
6797
|
+
|
|
6798
|
+
:param allow_missing: bool
|
|
6799
|
+
This should always be set to true for Settings API. Added for AIP compliance.
|
|
6800
|
+
:param setting: :class:`EnableResultsDownloading`
|
|
6801
|
+
:param field_mask: str
|
|
6802
|
+
The field mask must be a single string, with multiple fields separated by commas (no spaces). The
|
|
6803
|
+
field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g.,
|
|
6804
|
+
`author.given_name`). Specification of elements in sequence or map fields is not allowed, as only
|
|
6805
|
+
the entire collection field can be specified. Field names must exactly match the resource field
|
|
6806
|
+
names.
|
|
6807
|
+
|
|
6808
|
+
A field mask of `*` indicates full replacement. It’s recommended to always explicitly list the
|
|
6809
|
+
fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API
|
|
6810
|
+
changes in the future.
|
|
6811
|
+
|
|
6812
|
+
:returns: :class:`EnableResultsDownloading`
|
|
6813
|
+
"""
|
|
6814
|
+
body = {}
|
|
6815
|
+
if allow_missing is not None:
|
|
6816
|
+
body["allow_missing"] = allow_missing
|
|
6817
|
+
if field_mask is not None:
|
|
6818
|
+
body["field_mask"] = field_mask
|
|
6819
|
+
if setting is not None:
|
|
6820
|
+
body["setting"] = setting.as_dict()
|
|
6821
|
+
headers = {
|
|
6822
|
+
"Accept": "application/json",
|
|
6823
|
+
"Content-Type": "application/json",
|
|
6824
|
+
}
|
|
6825
|
+
|
|
6826
|
+
res = self._api.do(
|
|
6827
|
+
"PATCH", "/api/2.0/settings/types/enable-results-downloading/names/default", body=body, headers=headers
|
|
6828
|
+
)
|
|
6829
|
+
return EnableResultsDownloading.from_dict(res)
|
|
6830
|
+
|
|
6831
|
+
|
|
6344
6832
|
class EnhancedSecurityMonitoringAPI:
|
|
6345
6833
|
"""Controls whether enhanced security monitoring is enabled for the current workspace. If the compliance
|
|
6346
6834
|
security profile is enabled, this is automatically enabled. By default, it is disabled. However, if the
|
|
@@ -6733,29 +7221,40 @@ class IpAccessListsAPI:
|
|
|
6733
7221
|
|
|
6734
7222
|
class NetworkConnectivityAPI:
|
|
6735
7223
|
"""These APIs provide configurations for the network connectivity of your workspaces for serverless compute
|
|
6736
|
-
resources.
|
|
7224
|
+
resources. This API provides stable subnets for your workspace so that you can configure your firewalls on
|
|
7225
|
+
your Azure Storage accounts to allow access from Databricks. You can also use the API to provision private
|
|
7226
|
+
endpoints for Databricks to privately connect serverless compute resources to your Azure resources using
|
|
7227
|
+
Azure Private Link. See [configure serverless secure connectivity].
|
|
7228
|
+
|
|
7229
|
+
[configure serverless secure connectivity]: https://learn.microsoft.com/azure/databricks/security/network/serverless-network-security
|
|
7230
|
+
"""
|
|
6737
7231
|
|
|
6738
7232
|
def __init__(self, api_client):
|
|
6739
7233
|
self._api = api_client
|
|
6740
7234
|
|
|
6741
|
-
def create_network_connectivity_configuration(
|
|
7235
|
+
def create_network_connectivity_configuration(
|
|
7236
|
+
self, network_connectivity_config: CreateNetworkConnectivityConfiguration
|
|
7237
|
+
) -> NetworkConnectivityConfiguration:
|
|
6742
7238
|
"""Create a network connectivity configuration.
|
|
6743
7239
|
|
|
6744
|
-
|
|
6745
|
-
|
|
6746
|
-
|
|
6747
|
-
|
|
6748
|
-
|
|
6749
|
-
|
|
6750
|
-
|
|
7240
|
+
Creates a network connectivity configuration (NCC), which provides stable Azure service subnets when
|
|
7241
|
+
accessing your Azure Storage accounts. You can also use a network connectivity configuration to create
|
|
7242
|
+
Databricks managed private endpoints so that Databricks serverless compute resources privately access
|
|
7243
|
+
your resources.
|
|
7244
|
+
|
|
7245
|
+
**IMPORTANT**: After you create the network connectivity configuration, you must assign one or more
|
|
7246
|
+
workspaces to the new network connectivity configuration. You can share one network connectivity
|
|
7247
|
+
configuration with multiple workspaces from the same Azure region within the same Databricks account.
|
|
7248
|
+
See [configure serverless secure connectivity].
|
|
7249
|
+
|
|
7250
|
+
[configure serverless secure connectivity]: https://learn.microsoft.com/azure/databricks/security/network/serverless-network-security
|
|
7251
|
+
|
|
7252
|
+
:param network_connectivity_config: :class:`CreateNetworkConnectivityConfiguration`
|
|
7253
|
+
Properties of the new network connectivity configuration.
|
|
6751
7254
|
|
|
6752
7255
|
:returns: :class:`NetworkConnectivityConfiguration`
|
|
6753
7256
|
"""
|
|
6754
|
-
body =
|
|
6755
|
-
if name is not None:
|
|
6756
|
-
body["name"] = name
|
|
6757
|
-
if region is not None:
|
|
6758
|
-
body["region"] = region
|
|
7257
|
+
body = network_connectivity_config.as_dict()
|
|
6759
7258
|
headers = {
|
|
6760
7259
|
"Accept": "application/json",
|
|
6761
7260
|
"Content-Type": "application/json",
|
|
@@ -6767,7 +7266,7 @@ class NetworkConnectivityAPI:
|
|
|
6767
7266
|
return NetworkConnectivityConfiguration.from_dict(res)
|
|
6768
7267
|
|
|
6769
7268
|
def create_private_endpoint_rule(
|
|
6770
|
-
self, network_connectivity_config_id: str,
|
|
7269
|
+
self, network_connectivity_config_id: str, private_endpoint_rule: CreatePrivateEndpointRule
|
|
6771
7270
|
) -> NccAzurePrivateEndpointRule:
|
|
6772
7271
|
"""Create a private endpoint rule.
|
|
6773
7272
|
|
|
@@ -6782,20 +7281,14 @@ class NetworkConnectivityAPI:
|
|
|
6782
7281
|
[serverless private link]: https://learn.microsoft.com/azure/databricks/security/network/serverless-network-security/serverless-private-link
|
|
6783
7282
|
|
|
6784
7283
|
:param network_connectivity_config_id: str
|
|
6785
|
-
Your Network
|
|
6786
|
-
:param
|
|
6787
|
-
|
|
6788
|
-
|
|
6789
|
-
The sub-resource type (group ID) of the target resource. Note that to connect to workspace root
|
|
6790
|
-
storage (root DBFS), you need two endpoints, one for `blob` and one for `dfs`.
|
|
7284
|
+
Your Network Connectivity Configuration ID.
|
|
7285
|
+
:param private_endpoint_rule: :class:`CreatePrivateEndpointRule`
|
|
7286
|
+
Properties of the new private endpoint rule. Note that you must approve the endpoint in Azure portal
|
|
7287
|
+
after initialization.
|
|
6791
7288
|
|
|
6792
7289
|
:returns: :class:`NccAzurePrivateEndpointRule`
|
|
6793
7290
|
"""
|
|
6794
|
-
body =
|
|
6795
|
-
if group_id is not None:
|
|
6796
|
-
body["group_id"] = group_id.value
|
|
6797
|
-
if resource_id is not None:
|
|
6798
|
-
body["resource_id"] = resource_id
|
|
7291
|
+
body = private_endpoint_rule.as_dict()
|
|
6799
7292
|
headers = {
|
|
6800
7293
|
"Accept": "application/json",
|
|
6801
7294
|
"Content-Type": "application/json",
|
|
@@ -6815,7 +7308,7 @@ class NetworkConnectivityAPI:
|
|
|
6815
7308
|
Deletes a network connectivity configuration.
|
|
6816
7309
|
|
|
6817
7310
|
:param network_connectivity_config_id: str
|
|
6818
|
-
Your Network
|
|
7311
|
+
Your Network Connectivity Configuration ID.
|
|
6819
7312
|
|
|
6820
7313
|
|
|
6821
7314
|
"""
|
|
@@ -6867,7 +7360,7 @@ class NetworkConnectivityAPI:
|
|
|
6867
7360
|
Gets a network connectivity configuration.
|
|
6868
7361
|
|
|
6869
7362
|
:param network_connectivity_config_id: str
|
|
6870
|
-
Your Network
|
|
7363
|
+
Your Network Connectivity Configuration ID.
|
|
6871
7364
|
|
|
6872
7365
|
:returns: :class:`NetworkConnectivityConfiguration`
|
|
6873
7366
|
"""
|
|
@@ -6886,7 +7379,7 @@ class NetworkConnectivityAPI:
|
|
|
6886
7379
|
def get_private_endpoint_rule(
|
|
6887
7380
|
self, network_connectivity_config_id: str, private_endpoint_rule_id: str
|
|
6888
7381
|
) -> NccAzurePrivateEndpointRule:
|
|
6889
|
-
"""
|
|
7382
|
+
"""Gets a private endpoint rule.
|
|
6890
7383
|
|
|
6891
7384
|
Gets the private endpoint rule.
|
|
6892
7385
|
|
|
@@ -6979,6 +7472,52 @@ class NetworkConnectivityAPI:
|
|
|
6979
7472
|
return
|
|
6980
7473
|
query["page_token"] = json["next_page_token"]
|
|
6981
7474
|
|
|
7475
|
+
def update_ncc_azure_private_endpoint_rule_public(
|
|
7476
|
+
self,
|
|
7477
|
+
network_connectivity_config_id: str,
|
|
7478
|
+
private_endpoint_rule_id: str,
|
|
7479
|
+
private_endpoint_rule: UpdatePrivateEndpointRule,
|
|
7480
|
+
update_mask: str,
|
|
7481
|
+
) -> NccAzurePrivateEndpointRule:
|
|
7482
|
+
"""Update a private endpoint rule.
|
|
7483
|
+
|
|
7484
|
+
Updates a private endpoint rule. Currently only a private endpoint rule to customer-managed resources
|
|
7485
|
+
is allowed to be updated.
|
|
7486
|
+
|
|
7487
|
+
:param network_connectivity_config_id: str
|
|
7488
|
+
Your Network Connectivity Configuration ID.
|
|
7489
|
+
:param private_endpoint_rule_id: str
|
|
7490
|
+
Your private endpoint rule ID.
|
|
7491
|
+
:param private_endpoint_rule: :class:`UpdatePrivateEndpointRule`
|
|
7492
|
+
Properties of the new private endpoint rule. Note that you must approve the endpoint in Azure portal
|
|
7493
|
+
after initialization.
|
|
7494
|
+
:param update_mask: str
|
|
7495
|
+
The field mask must be a single string, with multiple fields separated by commas (no spaces). The
|
|
7496
|
+
field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g.,
|
|
7497
|
+
`author.given_name`). Specification of elements in sequence or map fields is not allowed, as only
|
|
7498
|
+
the entire collection field can be specified. Field names must exactly match the resource field
|
|
7499
|
+
names.
|
|
7500
|
+
|
|
7501
|
+
:returns: :class:`NccAzurePrivateEndpointRule`
|
|
7502
|
+
"""
|
|
7503
|
+
body = private_endpoint_rule.as_dict()
|
|
7504
|
+
query = {}
|
|
7505
|
+
if update_mask is not None:
|
|
7506
|
+
query["update_mask"] = update_mask
|
|
7507
|
+
headers = {
|
|
7508
|
+
"Accept": "application/json",
|
|
7509
|
+
"Content-Type": "application/json",
|
|
7510
|
+
}
|
|
7511
|
+
|
|
7512
|
+
res = self._api.do(
|
|
7513
|
+
"PATCH",
|
|
7514
|
+
f"/api/2.0/accounts/{self._api.account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-endpoint-rules/{private_endpoint_rule_id}",
|
|
7515
|
+
query=query,
|
|
7516
|
+
body=body,
|
|
7517
|
+
headers=headers,
|
|
7518
|
+
)
|
|
7519
|
+
return NccAzurePrivateEndpointRule.from_dict(res)
|
|
7520
|
+
|
|
6982
7521
|
|
|
6983
7522
|
class NotificationDestinationsAPI:
|
|
6984
7523
|
"""The notification destinations API lets you programmatically manage a workspace's notification
|
|
@@ -7351,6 +7890,9 @@ class SettingsAPI:
|
|
|
7351
7890
|
self._default_namespace = DefaultNamespaceAPI(self._api)
|
|
7352
7891
|
self._disable_legacy_access = DisableLegacyAccessAPI(self._api)
|
|
7353
7892
|
self._disable_legacy_dbfs = DisableLegacyDbfsAPI(self._api)
|
|
7893
|
+
self._enable_export_notebook = EnableExportNotebookAPI(self._api)
|
|
7894
|
+
self._enable_notebook_table_clipboard = EnableNotebookTableClipboardAPI(self._api)
|
|
7895
|
+
self._enable_results_downloading = EnableResultsDownloadingAPI(self._api)
|
|
7354
7896
|
self._enhanced_security_monitoring = EnhancedSecurityMonitoringAPI(self._api)
|
|
7355
7897
|
self._restrict_workspace_admins = RestrictWorkspaceAdminsAPI(self._api)
|
|
7356
7898
|
|
|
@@ -7389,6 +7931,21 @@ class SettingsAPI:
|
|
|
7389
7931
|
"""When this setting is on, access to DBFS root and DBFS mounts is disallowed (as well as creation of new mounts)."""
|
|
7390
7932
|
return self._disable_legacy_dbfs
|
|
7391
7933
|
|
|
7934
|
+
@property
|
|
7935
|
+
def enable_export_notebook(self) -> EnableExportNotebookAPI:
|
|
7936
|
+
"""Controls whether users can export notebooks and files from the Workspace UI."""
|
|
7937
|
+
return self._enable_export_notebook
|
|
7938
|
+
|
|
7939
|
+
@property
|
|
7940
|
+
def enable_notebook_table_clipboard(self) -> EnableNotebookTableClipboardAPI:
|
|
7941
|
+
"""Controls whether users can copy tabular data to the clipboard via the UI."""
|
|
7942
|
+
return self._enable_notebook_table_clipboard
|
|
7943
|
+
|
|
7944
|
+
@property
|
|
7945
|
+
def enable_results_downloading(self) -> EnableResultsDownloadingAPI:
|
|
7946
|
+
"""Controls whether users can download notebook results."""
|
|
7947
|
+
return self._enable_results_downloading
|
|
7948
|
+
|
|
7392
7949
|
@property
|
|
7393
7950
|
def enhanced_security_monitoring(self) -> EnhancedSecurityMonitoringAPI:
|
|
7394
7951
|
"""Controls whether enhanced security monitoring is enabled for the current workspace."""
|