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

Files changed (36) hide show
  1. databricks/sdk/__init__.py +24 -24
  2. databricks/sdk/mixins/files.py +10 -10
  3. databricks/sdk/service/agentbricks.py +2 -0
  4. databricks/sdk/service/apps.py +10 -0
  5. databricks/sdk/service/billing.py +13 -3
  6. databricks/sdk/service/catalog.py +129 -46
  7. databricks/sdk/service/cleanrooms.py +11 -3
  8. databricks/sdk/service/compute.py +54 -0
  9. databricks/sdk/service/dashboards.py +10 -0
  10. databricks/sdk/service/database.py +12 -0
  11. databricks/sdk/service/dataquality.py +4 -0
  12. databricks/sdk/service/files.py +7 -72
  13. databricks/sdk/service/iam.py +26 -36
  14. databricks/sdk/service/iamv2.py +6 -0
  15. databricks/sdk/service/jobs.py +13 -116
  16. databricks/sdk/service/marketplace.py +18 -0
  17. databricks/sdk/service/ml.py +171 -17
  18. databricks/sdk/service/oauth2.py +10 -18
  19. databricks/sdk/service/pipelines.py +23 -0
  20. databricks/sdk/service/provisioning.py +9 -0
  21. databricks/sdk/service/qualitymonitorv2.py +2 -0
  22. databricks/sdk/service/serving.py +16 -21
  23. databricks/sdk/service/settings.py +43 -72
  24. databricks/sdk/service/settingsv2.py +2 -0
  25. databricks/sdk/service/sharing.py +23 -31
  26. databricks/sdk/service/sql.py +48 -24
  27. databricks/sdk/service/tags.py +2 -0
  28. databricks/sdk/service/vectorsearch.py +8 -0
  29. databricks/sdk/service/workspace.py +18 -91
  30. databricks/sdk/version.py +1 -1
  31. {databricks_sdk-0.70.0.dist-info → databricks_sdk-0.71.0.dist-info}/METADATA +1 -1
  32. {databricks_sdk-0.70.0.dist-info → databricks_sdk-0.71.0.dist-info}/RECORD +36 -36
  33. {databricks_sdk-0.70.0.dist-info → databricks_sdk-0.71.0.dist-info}/WHEEL +0 -0
  34. {databricks_sdk-0.70.0.dist-info → databricks_sdk-0.71.0.dist-info}/licenses/LICENSE +0 -0
  35. {databricks_sdk-0.70.0.dist-info → databricks_sdk-0.71.0.dist-info}/licenses/NOTICE +0 -0
  36. {databricks_sdk-0.70.0.dist-info → databricks_sdk-0.71.0.dist-info}/top_level.txt +0 -0
@@ -12,7 +12,7 @@ from typing import Any, Callable, Dict, Iterator, List, Optional
12
12
 
13
13
  from databricks.sdk.service import catalog, jobs, settings, sharing
14
14
  from databricks.sdk.service._internal import (Wait, _enum, _from_dict,
15
- _repeated_dict)
15
+ _repeated_dict, _repeated_enum)
16
16
 
17
17
  _LOG = logging.getLogger("databricks.sdk")
18
18
 
@@ -1080,7 +1080,7 @@ class ComplianceSecurityProfile:
1080
1080
  """Serializes the ComplianceSecurityProfile into a dictionary suitable for use as a JSON request body."""
1081
1081
  body = {}
1082
1082
  if self.compliance_standards:
1083
- body["compliance_standards"] = [v.as_dict() for v in self.compliance_standards]
1083
+ body["compliance_standards"] = [v.value for v in self.compliance_standards]
1084
1084
  if self.is_enabled is not None:
1085
1085
  body["is_enabled"] = self.is_enabled
1086
1086
  return body
@@ -1098,7 +1098,7 @@ class ComplianceSecurityProfile:
1098
1098
  def from_dict(cls, d: Dict[str, Any]) -> ComplianceSecurityProfile:
1099
1099
  """Deserializes the ComplianceSecurityProfile from a dictionary."""
1100
1100
  return cls(
1101
- compliance_standards=_repeated_dict(d, "compliance_standards", settings.ComplianceStandard),
1101
+ compliance_standards=_repeated_enum(d, "compliance_standards", settings.ComplianceStandard),
1102
1102
  is_enabled=d.get("is_enabled", None),
1103
1103
  )
1104
1104
 
@@ -1495,6 +1495,7 @@ class CleanRoomAssetsAPI:
1495
1495
 
1496
1496
  :returns: :class:`CleanRoomAsset`
1497
1497
  """
1498
+
1498
1499
  body = asset.as_dict()
1499
1500
  headers = {
1500
1501
  "Accept": "application/json",
@@ -1524,6 +1525,7 @@ class CleanRoomAssetsAPI:
1524
1525
 
1525
1526
  :returns: :class:`CreateCleanRoomAssetReviewResponse`
1526
1527
  """
1528
+
1527
1529
  body = {}
1528
1530
  if notebook_review is not None:
1529
1531
  body["notebook_review"] = notebook_review.as_dict()
@@ -1635,6 +1637,7 @@ class CleanRoomAssetsAPI:
1635
1637
 
1636
1638
  :returns: :class:`CleanRoomAsset`
1637
1639
  """
1640
+
1638
1641
  body = asset.as_dict()
1639
1642
  headers = {
1640
1643
  "Accept": "application/json",
@@ -1666,6 +1669,7 @@ class CleanRoomAutoApprovalRulesAPI:
1666
1669
 
1667
1670
  :returns: :class:`CleanRoomAutoApprovalRule`
1668
1671
  """
1672
+
1669
1673
  body = {}
1670
1674
  if auto_approval_rule is not None:
1671
1675
  body["auto_approval_rule"] = auto_approval_rule.as_dict()
@@ -1760,6 +1764,7 @@ class CleanRoomAutoApprovalRulesAPI:
1760
1764
 
1761
1765
  :returns: :class:`CleanRoomAutoApprovalRule`
1762
1766
  """
1767
+
1763
1768
  body = auto_approval_rule.as_dict()
1764
1769
  headers = {
1765
1770
  "Accept": "application/json",
@@ -1869,6 +1874,7 @@ class CleanRoomsAPI:
1869
1874
  Long-running operation waiter for :class:`CleanRoom`.
1870
1875
  See :method:wait_get_clean_room_active for more details.
1871
1876
  """
1877
+
1872
1878
  body = clean_room.as_dict()
1873
1879
  headers = {
1874
1880
  "Accept": "application/json",
@@ -1894,6 +1900,7 @@ class CleanRoomsAPI:
1894
1900
 
1895
1901
  :returns: :class:`CreateCleanRoomOutputCatalogResponse`
1896
1902
  """
1903
+
1897
1904
  body = output_catalog.as_dict()
1898
1905
  headers = {
1899
1906
  "Accept": "application/json",
@@ -1979,6 +1986,7 @@ class CleanRoomsAPI:
1979
1986
 
1980
1987
  :returns: :class:`CleanRoom`
1981
1988
  """
1989
+
1982
1990
  body = {}
1983
1991
  if clean_room is not None:
1984
1992
  body["clean_room"] = clean_room.as_dict()
@@ -3377,6 +3377,8 @@ class EventType(Enum):
3377
3377
  CLUSTER_MIGRATED = "CLUSTER_MIGRATED"
3378
3378
  CREATING = "CREATING"
3379
3379
  DBFS_DOWN = "DBFS_DOWN"
3380
+ DECOMMISSION_ENDED = "DECOMMISSION_ENDED"
3381
+ DECOMMISSION_STARTED = "DECOMMISSION_STARTED"
3380
3382
  DID_NOT_EXPAND_DISK = "DID_NOT_EXPAND_DISK"
3381
3383
  DRIVER_HEALTHY = "DRIVER_HEALTHY"
3382
3384
  DRIVER_NOT_RESPONDING = "DRIVER_NOT_RESPONDING"
@@ -4823,6 +4825,16 @@ class InstancePoolAwsAttributes:
4823
4825
  availability: Optional[InstancePoolAwsAttributesAvailability] = None
4824
4826
  """Availability type used for the spot nodes."""
4825
4827
 
4828
+ instance_profile_arn: Optional[str] = None
4829
+ """All AWS instances belonging to the instance pool will have this instance profile. If omitted,
4830
+ instances will initially be launched with the workspace's default instance profile. If defined,
4831
+ clusters that use the pool will inherit the instance profile, and must not specify their own
4832
+ instance profile on cluster creation or update. If the pool does not specify an instance
4833
+ profile, clusters using the pool may specify any instance profile. The instance profile must
4834
+ have previously been added to the Databricks environment by an account administrator.
4835
+
4836
+ This feature may only be available to certain customer plans."""
4837
+
4826
4838
  spot_bid_price_percent: Optional[int] = None
4827
4839
  """Calculates the bid price for AWS spot instances, as a percentage of the corresponding instance
4828
4840
  type's on-demand price. For example, if this field is set to 50, and the cluster needs a new
@@ -4845,6 +4857,8 @@ class InstancePoolAwsAttributes:
4845
4857
  body = {}
4846
4858
  if self.availability is not None:
4847
4859
  body["availability"] = self.availability.value
4860
+ if self.instance_profile_arn is not None:
4861
+ body["instance_profile_arn"] = self.instance_profile_arn
4848
4862
  if self.spot_bid_price_percent is not None:
4849
4863
  body["spot_bid_price_percent"] = self.spot_bid_price_percent
4850
4864
  if self.zone_id is not None:
@@ -4856,6 +4870,8 @@ class InstancePoolAwsAttributes:
4856
4870
  body = {}
4857
4871
  if self.availability is not None:
4858
4872
  body["availability"] = self.availability
4873
+ if self.instance_profile_arn is not None:
4874
+ body["instance_profile_arn"] = self.instance_profile_arn
4859
4875
  if self.spot_bid_price_percent is not None:
4860
4876
  body["spot_bid_price_percent"] = self.spot_bid_price_percent
4861
4877
  if self.zone_id is not None:
@@ -4867,6 +4883,7 @@ class InstancePoolAwsAttributes:
4867
4883
  """Deserializes the InstancePoolAwsAttributes from a dictionary."""
4868
4884
  return cls(
4869
4885
  availability=_enum(d, "availability", InstancePoolAwsAttributesAvailability),
4886
+ instance_profile_arn=d.get("instance_profile_arn", None),
4870
4887
  spot_bid_price_percent=d.get("spot_bid_price_percent", None),
4871
4888
  zone_id=d.get("zone_id", None),
4872
4889
  )
@@ -7087,6 +7104,7 @@ class TerminationReasonCode(Enum):
7087
7104
  DATABASE_CONNECTION_FAILURE = "DATABASE_CONNECTION_FAILURE"
7088
7105
  DATA_ACCESS_CONFIG_CHANGED = "DATA_ACCESS_CONFIG_CHANGED"
7089
7106
  DBFS_COMPONENT_UNHEALTHY = "DBFS_COMPONENT_UNHEALTHY"
7107
+ DBR_IMAGE_RESOLUTION_FAILURE = "DBR_IMAGE_RESOLUTION_FAILURE"
7090
7108
  DISASTER_RECOVERY_REPLICATION = "DISASTER_RECOVERY_REPLICATION"
7091
7109
  DNS_RESOLUTION_ERROR = "DNS_RESOLUTION_ERROR"
7092
7110
  DOCKER_CONTAINER_CREATION_EXCEPTION = "DOCKER_CONTAINER_CREATION_EXCEPTION"
@@ -7783,6 +7801,7 @@ class ClusterPoliciesAPI:
7783
7801
 
7784
7802
  :returns: :class:`CreatePolicyResponse`
7785
7803
  """
7804
+
7786
7805
  body = {}
7787
7806
  if definition is not None:
7788
7807
  body["definition"] = definition
@@ -7814,6 +7833,7 @@ class ClusterPoliciesAPI:
7814
7833
 
7815
7834
 
7816
7835
  """
7836
+
7817
7837
  body = {}
7818
7838
  if policy_id is not None:
7819
7839
  body["policy_id"] = policy_id
@@ -7873,6 +7893,7 @@ class ClusterPoliciesAPI:
7873
7893
 
7874
7894
 
7875
7895
  """
7896
+
7876
7897
  body = {}
7877
7898
  if definition is not None:
7878
7899
  body["definition"] = definition
@@ -7991,6 +8012,7 @@ class ClusterPoliciesAPI:
7991
8012
 
7992
8013
  :returns: :class:`ClusterPolicyPermissions`
7993
8014
  """
8015
+
7994
8016
  body = {}
7995
8017
  if access_control_list is not None:
7996
8018
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -8016,6 +8038,7 @@ class ClusterPoliciesAPI:
8016
8038
 
8017
8039
  :returns: :class:`ClusterPolicyPermissions`
8018
8040
  """
8041
+
8019
8042
  body = {}
8020
8043
  if access_control_list is not None:
8021
8044
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -8133,6 +8156,7 @@ class ClustersAPI:
8133
8156
 
8134
8157
 
8135
8158
  """
8159
+
8136
8160
  body = {}
8137
8161
  if cluster_id is not None:
8138
8162
  body["cluster_id"] = cluster_id
@@ -8332,6 +8356,7 @@ class ClustersAPI:
8332
8356
  Long-running operation waiter for :class:`ClusterDetails`.
8333
8357
  See :method:wait_get_cluster_running for more details.
8334
8358
  """
8359
+
8335
8360
  body = {}
8336
8361
  if apply_policy_default_values is not None:
8337
8362
  body["apply_policy_default_values"] = apply_policy_default_values
@@ -8497,6 +8522,7 @@ class ClustersAPI:
8497
8522
  Long-running operation waiter for :class:`ClusterDetails`.
8498
8523
  See :method:wait_get_cluster_terminated for more details.
8499
8524
  """
8525
+
8500
8526
  body = {}
8501
8527
  if cluster_id is not None:
8502
8528
  body["cluster_id"] = cluster_id
@@ -8695,6 +8721,7 @@ class ClustersAPI:
8695
8721
  Long-running operation waiter for :class:`ClusterDetails`.
8696
8722
  See :method:wait_get_cluster_running for more details.
8697
8723
  """
8724
+
8698
8725
  body = {}
8699
8726
  if apply_policy_default_values is not None:
8700
8727
  body["apply_policy_default_values"] = apply_policy_default_values
@@ -8891,6 +8918,7 @@ class ClustersAPI:
8891
8918
 
8892
8919
  :returns: Iterator over :class:`ClusterEvent`
8893
8920
  """
8921
+
8894
8922
  body = {}
8895
8923
  if cluster_id is not None:
8896
8924
  body["cluster_id"] = cluster_id
@@ -9064,6 +9092,7 @@ class ClustersAPI:
9064
9092
 
9065
9093
 
9066
9094
  """
9095
+
9067
9096
  body = {}
9068
9097
  if cluster_id is not None:
9069
9098
  body["cluster_id"] = cluster_id
@@ -9082,6 +9111,7 @@ class ClustersAPI:
9082
9111
 
9083
9112
 
9084
9113
  """
9114
+
9085
9115
  body = {}
9086
9116
  if cluster_id is not None:
9087
9117
  body["cluster_id"] = cluster_id
@@ -9117,6 +9147,7 @@ class ClustersAPI:
9117
9147
  Long-running operation waiter for :class:`ClusterDetails`.
9118
9148
  See :method:wait_get_cluster_running for more details.
9119
9149
  """
9150
+
9120
9151
  body = {}
9121
9152
  if autoscale is not None:
9122
9153
  body["autoscale"] = autoscale.as_dict()
@@ -9154,6 +9185,7 @@ class ClustersAPI:
9154
9185
  Long-running operation waiter for :class:`ClusterDetails`.
9155
9186
  See :method:wait_get_cluster_running for more details.
9156
9187
  """
9188
+
9157
9189
  body = {}
9158
9190
  if cluster_id is not None:
9159
9191
  body["cluster_id"] = cluster_id
@@ -9184,6 +9216,7 @@ class ClustersAPI:
9184
9216
 
9185
9217
  :returns: :class:`ClusterPermissions`
9186
9218
  """
9219
+
9187
9220
  body = {}
9188
9221
  if access_control_list is not None:
9189
9222
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -9223,6 +9256,7 @@ class ClustersAPI:
9223
9256
  Long-running operation waiter for :class:`ClusterDetails`.
9224
9257
  See :method:wait_get_cluster_running for more details.
9225
9258
  """
9259
+
9226
9260
  body = {}
9227
9261
  if cluster_id is not None:
9228
9262
  body["cluster_id"] = cluster_id
@@ -9246,6 +9280,7 @@ class ClustersAPI:
9246
9280
 
9247
9281
 
9248
9282
  """
9283
+
9249
9284
  body = {}
9250
9285
  if cluster_id is not None:
9251
9286
  body["cluster_id"] = cluster_id
@@ -9290,6 +9325,7 @@ class ClustersAPI:
9290
9325
  Long-running operation waiter for :class:`ClusterDetails`.
9291
9326
  See :method:wait_get_cluster_running for more details.
9292
9327
  """
9328
+
9293
9329
  body = {}
9294
9330
  if cluster is not None:
9295
9331
  body["cluster"] = cluster.as_dict()
@@ -9326,6 +9362,7 @@ class ClustersAPI:
9326
9362
 
9327
9363
  :returns: :class:`ClusterPermissions`
9328
9364
  """
9365
+
9329
9366
  body = {}
9330
9367
  if access_control_list is not None:
9331
9368
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -9469,6 +9506,7 @@ class CommandExecutionAPI:
9469
9506
  Long-running operation waiter for :class:`CommandStatusResponse`.
9470
9507
  See :method:wait_command_status_command_execution_cancelled for more details.
9471
9508
  """
9509
+
9472
9510
  body = {}
9473
9511
  if cluster_id is not None:
9474
9512
  body["clusterId"] = cluster_id
@@ -9561,6 +9599,7 @@ class CommandExecutionAPI:
9561
9599
  Long-running operation waiter for :class:`ContextStatusResponse`.
9562
9600
  See :method:wait_context_status_command_execution_running for more details.
9563
9601
  """
9602
+
9564
9603
  body = {}
9565
9604
  if cluster_id is not None:
9566
9605
  body["clusterId"] = cluster_id
@@ -9592,6 +9631,7 @@ class CommandExecutionAPI:
9592
9631
 
9593
9632
 
9594
9633
  """
9634
+
9595
9635
  body = {}
9596
9636
  if cluster_id is not None:
9597
9637
  body["clusterId"] = cluster_id
@@ -9628,6 +9668,7 @@ class CommandExecutionAPI:
9628
9668
  Long-running operation waiter for :class:`CommandStatusResponse`.
9629
9669
  See :method:wait_command_status_command_execution_finished_or_error for more details.
9630
9670
  """
9671
+
9631
9672
  body = {}
9632
9673
  if cluster_id is not None:
9633
9674
  body["clusterId"] = cluster_id
@@ -9701,6 +9742,7 @@ class GlobalInitScriptsAPI:
9701
9742
 
9702
9743
  :returns: :class:`CreateResponse`
9703
9744
  """
9745
+
9704
9746
  body = {}
9705
9747
  if enabled is not None:
9706
9748
  body["enabled"] = enabled
@@ -9793,6 +9835,7 @@ class GlobalInitScriptsAPI:
9793
9835
 
9794
9836
 
9795
9837
  """
9838
+
9796
9839
  body = {}
9797
9840
  if enabled is not None:
9798
9841
  body["enabled"] = enabled
@@ -9905,6 +9948,7 @@ class InstancePoolsAPI:
9905
9948
 
9906
9949
  :returns: :class:`CreateInstancePoolResponse`
9907
9950
  """
9951
+
9908
9952
  body = {}
9909
9953
  if aws_attributes is not None:
9910
9954
  body["aws_attributes"] = aws_attributes.as_dict()
@@ -9952,6 +9996,7 @@ class InstancePoolsAPI:
9952
9996
 
9953
9997
 
9954
9998
  """
9999
+
9955
10000
  body = {}
9956
10001
  if instance_pool_id is not None:
9957
10002
  body["instance_pool_id"] = instance_pool_id
@@ -10013,6 +10058,7 @@ class InstancePoolsAPI:
10013
10058
 
10014
10059
 
10015
10060
  """
10061
+
10016
10062
  body = {}
10017
10063
  if custom_tags is not None:
10018
10064
  body["custom_tags"] = custom_tags
@@ -10120,6 +10166,7 @@ class InstancePoolsAPI:
10120
10166
 
10121
10167
  :returns: :class:`InstancePoolPermissions`
10122
10168
  """
10169
+
10123
10170
  body = {}
10124
10171
  if access_control_list is not None:
10125
10172
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -10143,6 +10190,7 @@ class InstancePoolsAPI:
10143
10190
 
10144
10191
  :returns: :class:`InstancePoolPermissions`
10145
10192
  """
10193
+
10146
10194
  body = {}
10147
10195
  if access_control_list is not None:
10148
10196
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -10205,6 +10253,7 @@ class InstanceProfilesAPI:
10205
10253
 
10206
10254
 
10207
10255
  """
10256
+
10208
10257
  body = {}
10209
10258
  if iam_role_arn is not None:
10210
10259
  body["iam_role_arn"] = iam_role_arn
@@ -10259,6 +10308,7 @@ class InstanceProfilesAPI:
10259
10308
 
10260
10309
 
10261
10310
  """
10311
+
10262
10312
  body = {}
10263
10313
  if iam_role_arn is not None:
10264
10314
  body["iam_role_arn"] = iam_role_arn
@@ -10301,6 +10351,7 @@ class InstanceProfilesAPI:
10301
10351
 
10302
10352
 
10303
10353
  """
10354
+
10304
10355
  body = {}
10305
10356
  if instance_profile_arn is not None:
10306
10357
  body["instance_profile_arn"] = instance_profile_arn
@@ -10381,6 +10432,7 @@ class LibrariesAPI:
10381
10432
 
10382
10433
 
10383
10434
  """
10435
+
10384
10436
  body = {}
10385
10437
  if cluster_id is not None:
10386
10438
  body["cluster_id"] = cluster_id
@@ -10404,6 +10456,7 @@ class LibrariesAPI:
10404
10456
 
10405
10457
 
10406
10458
  """
10459
+
10407
10460
  body = {}
10408
10461
  if cluster_id is not None:
10409
10462
  body["cluster_id"] = cluster_id
@@ -10453,6 +10506,7 @@ class PolicyComplianceForClustersAPI:
10453
10506
 
10454
10507
  :returns: :class:`EnforceClusterComplianceResponse`
10455
10508
  """
10509
+
10456
10510
  body = {}
10457
10511
  if cluster_id is not None:
10458
10512
  body["cluster_id"] = cluster_id
@@ -1756,6 +1756,7 @@ class GenieAPI:
1756
1756
  Long-running operation waiter for :class:`GenieMessage`.
1757
1757
  See :method:wait_get_message_genie_completed for more details.
1758
1758
  """
1759
+
1759
1760
  body = {}
1760
1761
  if content is not None:
1761
1762
  body["content"] = content
@@ -2116,6 +2117,7 @@ class GenieAPI:
2116
2117
 
2117
2118
 
2118
2119
  """
2120
+
2119
2121
  body = {}
2120
2122
  if rating is not None:
2121
2123
  body["rating"] = rating.value
@@ -2143,6 +2145,7 @@ class GenieAPI:
2143
2145
  Long-running operation waiter for :class:`GenieMessage`.
2144
2146
  See :method:wait_get_message_genie_completed for more details.
2145
2147
  """
2148
+
2146
2149
  body = {}
2147
2150
  if content is not None:
2148
2151
  body["content"] = content
@@ -2195,6 +2198,7 @@ class LakeviewAPI:
2195
2198
 
2196
2199
  :returns: :class:`Dashboard`
2197
2200
  """
2201
+
2198
2202
  body = dashboard.as_dict()
2199
2203
  headers = {
2200
2204
  "Accept": "application/json",
@@ -2214,6 +2218,7 @@ class LakeviewAPI:
2214
2218
 
2215
2219
  :returns: :class:`Schedule`
2216
2220
  """
2221
+
2217
2222
  body = schedule.as_dict()
2218
2223
  headers = {
2219
2224
  "Accept": "application/json",
@@ -2235,6 +2240,7 @@ class LakeviewAPI:
2235
2240
 
2236
2241
  :returns: :class:`Subscription`
2237
2242
  """
2243
+
2238
2244
  body = subscription.as_dict()
2239
2245
  headers = {
2240
2246
  "Accept": "application/json",
@@ -2530,6 +2536,7 @@ class LakeviewAPI:
2530
2536
 
2531
2537
  :returns: :class:`Dashboard`
2532
2538
  """
2539
+
2533
2540
  body = {}
2534
2541
  if display_name is not None:
2535
2542
  body["display_name"] = display_name
@@ -2562,6 +2569,7 @@ class LakeviewAPI:
2562
2569
 
2563
2570
  :returns: :class:`PublishedDashboard`
2564
2571
  """
2572
+
2565
2573
  body = {}
2566
2574
  if embed_credentials is not None:
2567
2575
  body["embed_credentials"] = embed_credentials
@@ -2614,6 +2622,7 @@ class LakeviewAPI:
2614
2622
 
2615
2623
  :returns: :class:`Dashboard`
2616
2624
  """
2625
+
2617
2626
  body = dashboard.as_dict()
2618
2627
  headers = {
2619
2628
  "Accept": "application/json",
@@ -2635,6 +2644,7 @@ class LakeviewAPI:
2635
2644
 
2636
2645
  :returns: :class:`Schedule`
2637
2646
  """
2647
+
2638
2648
  body = schedule.as_dict()
2639
2649
  headers = {
2640
2650
  "Accept": "application/json",
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
  import logging
6
6
  import random
7
7
  import time
8
+ import uuid
8
9
  from dataclasses import dataclass
9
10
  from datetime import timedelta
10
11
  from enum import Enum
@@ -1570,6 +1571,7 @@ class DatabaseAPI:
1570
1571
 
1571
1572
  :returns: :class:`DatabaseCatalog`
1572
1573
  """
1574
+
1573
1575
  body = catalog.as_dict()
1574
1576
  headers = {
1575
1577
  "Accept": "application/json",
@@ -1589,6 +1591,7 @@ class DatabaseAPI:
1589
1591
  Long-running operation waiter for :class:`DatabaseInstance`.
1590
1592
  See :method:wait_get_database_instance_database_available for more details.
1591
1593
  """
1594
+
1592
1595
  body = database_instance.as_dict()
1593
1596
  headers = {
1594
1597
  "Accept": "application/json",
@@ -1622,6 +1625,7 @@ class DatabaseAPI:
1622
1625
 
1623
1626
  :returns: :class:`DatabaseInstanceRole`
1624
1627
  """
1628
+
1625
1629
  body = database_instance_role.as_dict()
1626
1630
  query = {}
1627
1631
  if database_instance_name is not None:
@@ -1644,6 +1648,7 @@ class DatabaseAPI:
1644
1648
 
1645
1649
  :returns: :class:`DatabaseTable`
1646
1650
  """
1651
+
1647
1652
  body = table.as_dict()
1648
1653
  headers = {
1649
1654
  "Accept": "application/json",
@@ -1660,6 +1665,7 @@ class DatabaseAPI:
1660
1665
 
1661
1666
  :returns: :class:`SyncedDatabaseTable`
1662
1667
  """
1668
+
1663
1669
  body = synced_table.as_dict()
1664
1670
  headers = {
1665
1671
  "Accept": "application/json",
@@ -1806,6 +1812,9 @@ class DatabaseAPI:
1806
1812
 
1807
1813
  :returns: :class:`DatabaseCredential`
1808
1814
  """
1815
+
1816
+ if request_id is None or request_id == "":
1817
+ request_id = str(uuid.uuid4())
1809
1818
  body = {}
1810
1819
  if claims is not None:
1811
1820
  body["claims"] = [v.as_dict() for v in claims]
@@ -2049,6 +2058,7 @@ class DatabaseAPI:
2049
2058
 
2050
2059
  :returns: :class:`DatabaseCatalog`
2051
2060
  """
2061
+
2052
2062
  body = database_catalog.as_dict()
2053
2063
  query = {}
2054
2064
  if update_mask is not None:
@@ -2075,6 +2085,7 @@ class DatabaseAPI:
2075
2085
 
2076
2086
  :returns: :class:`DatabaseInstance`
2077
2087
  """
2088
+
2078
2089
  body = database_instance.as_dict()
2079
2090
  query = {}
2080
2091
  if update_mask is not None:
@@ -2101,6 +2112,7 @@ class DatabaseAPI:
2101
2112
 
2102
2113
  :returns: :class:`SyncedDatabaseTable`
2103
2114
  """
2115
+
2104
2116
  body = synced_table.as_dict()
2105
2117
  query = {}
2106
2118
  if update_mask is not None:
@@ -909,6 +909,7 @@ class DataQualityAPI:
909
909
 
910
910
  :returns: :class:`Monitor`
911
911
  """
912
+
912
913
  body = monitor.as_dict()
913
914
  headers = {
914
915
  "Accept": "application/json",
@@ -946,6 +947,7 @@ class DataQualityAPI:
946
947
 
947
948
  :returns: :class:`Refresh`
948
949
  """
950
+
949
951
  body = refresh.as_dict()
950
952
  headers = {
951
953
  "Accept": "application/json",
@@ -1229,6 +1231,7 @@ class DataQualityAPI:
1229
1231
 
1230
1232
  :returns: :class:`Monitor`
1231
1233
  """
1234
+
1232
1235
  body = monitor.as_dict()
1233
1236
  query = {}
1234
1237
  if update_mask is not None:
@@ -1271,6 +1274,7 @@ class DataQualityAPI:
1271
1274
 
1272
1275
  :returns: :class:`Refresh`
1273
1276
  """
1277
+
1274
1278
  body = refresh.as_dict()
1275
1279
  query = {}
1276
1280
  if update_mask is not None: