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.

@@ -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 CreateNetworkConnectivityConfigRequest:
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 `^[0-9a-zA-Z-_]{3,30}$`."""
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 CreateNetworkConnectivityConfigRequest into a dictionary suitable for use as a JSON request body."""
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 CreateNetworkConnectivityConfigRequest into a shallow dictionary of its immediate attributes."""
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]) -> CreateNetworkConnectivityConfigRequest:
801
- """Deserializes the CreateNetworkConnectivityConfigRequest from a dictionary."""
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 CreatePrivateEndpointRuleRequest:
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
- group_id: CreatePrivateEndpointRuleRequestGroupId
921
- """The sub-resource type (group ID) of the target resource. Note that to connect to workspace root
922
- storage (root DBFS), you need two endpoints, one for `blob` and one for `dfs`."""
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
- network_connectivity_config_id: Optional[str] = None
925
- """Your Network Connectvity Configuration ID."""
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 CreatePrivateEndpointRuleRequest into a dictionary suitable for use as a JSON request body."""
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.value
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 CreatePrivateEndpointRuleRequest into a shallow dictionary of its immediate attributes."""
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]) -> CreatePrivateEndpointRuleRequest:
951
- """Deserializes the CreatePrivateEndpointRuleRequest from a dictionary."""
962
+ def from_dict(cls, d: Dict[str, Any]) -> CreatePrivateEndpointRule:
963
+ """Deserializes the CreatePrivateEndpointRule from a dictionary."""
952
964
  return cls(
953
- group_id=_enum(d, "group_id", CreatePrivateEndpointRuleRequestGroupId),
954
- network_connectivity_config_id=d.get("network_connectivity_config_id", None),
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 `ESTABLISHED`. Remember that you must approve new endpoints on your
2895
- resources in the Azure portal before they take effect.
2896
-
2897
- The possible values are: - INIT: (deprecated) The endpoint has been created and pending
2898
- approval. - PENDING: The endpoint has been created and pending approval. - ESTABLISHED: The
2899
- endpoint has been approved and is ready to use in your serverless compute resources. - REJECTED:
2900
- Connection was rejected by the private link resource owner. - DISCONNECTED: Connection was
2901
- removed by the private link resource owner, the private endpoint becomes informative and should
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[NccAzurePrivateEndpointRuleGroupId] = None
2917
- """The sub-resource type (group ID) of the target resource. Note that to connect to workspace root
2918
- storage (root DBFS), you need two endpoints, one for `blob` and one for `dfs`."""
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.value
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=_enum(d, "group_id", NccAzurePrivateEndpointRuleGroupId),
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[str]] = None
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.get("target_services", None),
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
- """The network connectivity rules that are applied by default without resource specific
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
- """The network connectivity rules that configured for each destinations. These rules override
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 `^[0-9a-zA-Z-_]{3,30}$`."""
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 Hive Metastore. However, you can still access Hive Metastore through HMS
5923
- Federation. 2. Disables Fallback Mode (docs link) on any External Location access from the workspace. 3.
5924
- Alters DBFS path access to use External Location permissions in place of legacy credentials. 4. Enforces
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(self, name: str, region: str) -> NetworkConnectivityConfiguration:
7235
+ def create_network_connectivity_configuration(
7236
+ self, network_connectivity_config: CreateNetworkConnectivityConfiguration
7237
+ ) -> NetworkConnectivityConfiguration:
6742
7238
  """Create a network connectivity configuration.
6743
7239
 
6744
- :param name: str
6745
- The name of the network connectivity configuration. The name can contain alphanumeric characters,
6746
- hyphens, and underscores. The length must be between 3 and 30 characters. The name must match the
6747
- regular expression `^[0-9a-zA-Z-_]{3,30}$`.
6748
- :param region: str
6749
- The region for the network connectivity configuration. Only workspaces in the same region can be
6750
- attached to the network connectivity configuration.
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, resource_id: str, group_id: CreatePrivateEndpointRuleRequestGroupId
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 Connectvity Configuration ID.
6786
- :param resource_id: str
6787
- The Azure resource ID of the target resource.
6788
- :param group_id: :class:`CreatePrivateEndpointRuleRequestGroupId`
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 Connectvity Configuration ID.
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 Connectvity Configuration ID.
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
- """Get a private endpoint rule.
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."""