databricks-sdk 0.69.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 (37) hide show
  1. databricks/sdk/__init__.py +24 -24
  2. databricks/sdk/dbutils.py +17 -0
  3. databricks/sdk/mixins/files.py +10 -10
  4. databricks/sdk/service/agentbricks.py +2 -0
  5. databricks/sdk/service/apps.py +10 -0
  6. databricks/sdk/service/billing.py +13 -3
  7. databricks/sdk/service/catalog.py +131 -47
  8. databricks/sdk/service/cleanrooms.py +11 -3
  9. databricks/sdk/service/compute.py +64 -0
  10. databricks/sdk/service/dashboards.py +10 -0
  11. databricks/sdk/service/database.py +12 -0
  12. databricks/sdk/service/dataquality.py +201 -52
  13. databricks/sdk/service/files.py +7 -72
  14. databricks/sdk/service/iam.py +26 -36
  15. databricks/sdk/service/iamv2.py +6 -0
  16. databricks/sdk/service/jobs.py +86 -154
  17. databricks/sdk/service/marketplace.py +18 -0
  18. databricks/sdk/service/ml.py +464 -13
  19. databricks/sdk/service/oauth2.py +37 -19
  20. databricks/sdk/service/pipelines.py +25 -2
  21. databricks/sdk/service/provisioning.py +19 -1
  22. databricks/sdk/service/qualitymonitorv2.py +2 -0
  23. databricks/sdk/service/serving.py +16 -21
  24. databricks/sdk/service/settings.py +45 -72
  25. databricks/sdk/service/settingsv2.py +2 -0
  26. databricks/sdk/service/sharing.py +23 -69
  27. databricks/sdk/service/sql.py +85 -62
  28. databricks/sdk/service/tags.py +2 -0
  29. databricks/sdk/service/vectorsearch.py +8 -0
  30. databricks/sdk/service/workspace.py +18 -91
  31. databricks/sdk/version.py +1 -1
  32. {databricks_sdk-0.69.0.dist-info → databricks_sdk-0.71.0.dist-info}/METADATA +1 -1
  33. {databricks_sdk-0.69.0.dist-info → databricks_sdk-0.71.0.dist-info}/RECORD +37 -37
  34. {databricks_sdk-0.69.0.dist-info → databricks_sdk-0.71.0.dist-info}/WHEEL +0 -0
  35. {databricks_sdk-0.69.0.dist-info → databricks_sdk-0.71.0.dist-info}/licenses/LICENSE +0 -0
  36. {databricks_sdk-0.69.0.dist-info → databricks_sdk-0.71.0.dist-info}/licenses/NOTICE +0 -0
  37. {databricks_sdk-0.69.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"
@@ -7155,11 +7173,21 @@ class TerminationReasonCode(Enum):
7155
7173
  NEPHOS_RESOURCE_MANAGEMENT = "NEPHOS_RESOURCE_MANAGEMENT"
7156
7174
  NETVISOR_SETUP_TIMEOUT = "NETVISOR_SETUP_TIMEOUT"
7157
7175
  NETWORK_CHECK_CONTROL_PLANE_FAILURE = "NETWORK_CHECK_CONTROL_PLANE_FAILURE"
7176
+ NETWORK_CHECK_CONTROL_PLANE_FAILURE_DUE_TO_MISCONFIG = "NETWORK_CHECK_CONTROL_PLANE_FAILURE_DUE_TO_MISCONFIG"
7158
7177
  NETWORK_CHECK_DNS_SERVER_FAILURE = "NETWORK_CHECK_DNS_SERVER_FAILURE"
7178
+ NETWORK_CHECK_DNS_SERVER_FAILURE_DUE_TO_MISCONFIG = "NETWORK_CHECK_DNS_SERVER_FAILURE_DUE_TO_MISCONFIG"
7159
7179
  NETWORK_CHECK_METADATA_ENDPOINT_FAILURE = "NETWORK_CHECK_METADATA_ENDPOINT_FAILURE"
7180
+ NETWORK_CHECK_METADATA_ENDPOINT_FAILURE_DUE_TO_MISCONFIG = (
7181
+ "NETWORK_CHECK_METADATA_ENDPOINT_FAILURE_DUE_TO_MISCONFIG"
7182
+ )
7160
7183
  NETWORK_CHECK_MULTIPLE_COMPONENTS_FAILURE = "NETWORK_CHECK_MULTIPLE_COMPONENTS_FAILURE"
7184
+ NETWORK_CHECK_MULTIPLE_COMPONENTS_FAILURE_DUE_TO_MISCONFIG = (
7185
+ "NETWORK_CHECK_MULTIPLE_COMPONENTS_FAILURE_DUE_TO_MISCONFIG"
7186
+ )
7161
7187
  NETWORK_CHECK_NIC_FAILURE = "NETWORK_CHECK_NIC_FAILURE"
7188
+ NETWORK_CHECK_NIC_FAILURE_DUE_TO_MISCONFIG = "NETWORK_CHECK_NIC_FAILURE_DUE_TO_MISCONFIG"
7162
7189
  NETWORK_CHECK_STORAGE_FAILURE = "NETWORK_CHECK_STORAGE_FAILURE"
7190
+ NETWORK_CHECK_STORAGE_FAILURE_DUE_TO_MISCONFIG = "NETWORK_CHECK_STORAGE_FAILURE_DUE_TO_MISCONFIG"
7163
7191
  NETWORK_CONFIGURATION_FAILURE = "NETWORK_CONFIGURATION_FAILURE"
7164
7192
  NFS_MOUNT_FAILURE = "NFS_MOUNT_FAILURE"
7165
7193
  NO_ACTIVATED_K8S = "NO_ACTIVATED_K8S"
@@ -7773,6 +7801,7 @@ class ClusterPoliciesAPI:
7773
7801
 
7774
7802
  :returns: :class:`CreatePolicyResponse`
7775
7803
  """
7804
+
7776
7805
  body = {}
7777
7806
  if definition is not None:
7778
7807
  body["definition"] = definition
@@ -7804,6 +7833,7 @@ class ClusterPoliciesAPI:
7804
7833
 
7805
7834
 
7806
7835
  """
7836
+
7807
7837
  body = {}
7808
7838
  if policy_id is not None:
7809
7839
  body["policy_id"] = policy_id
@@ -7863,6 +7893,7 @@ class ClusterPoliciesAPI:
7863
7893
 
7864
7894
 
7865
7895
  """
7896
+
7866
7897
  body = {}
7867
7898
  if definition is not None:
7868
7899
  body["definition"] = definition
@@ -7981,6 +8012,7 @@ class ClusterPoliciesAPI:
7981
8012
 
7982
8013
  :returns: :class:`ClusterPolicyPermissions`
7983
8014
  """
8015
+
7984
8016
  body = {}
7985
8017
  if access_control_list is not None:
7986
8018
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -8006,6 +8038,7 @@ class ClusterPoliciesAPI:
8006
8038
 
8007
8039
  :returns: :class:`ClusterPolicyPermissions`
8008
8040
  """
8041
+
8009
8042
  body = {}
8010
8043
  if access_control_list is not None:
8011
8044
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -8123,6 +8156,7 @@ class ClustersAPI:
8123
8156
 
8124
8157
 
8125
8158
  """
8159
+
8126
8160
  body = {}
8127
8161
  if cluster_id is not None:
8128
8162
  body["cluster_id"] = cluster_id
@@ -8322,6 +8356,7 @@ class ClustersAPI:
8322
8356
  Long-running operation waiter for :class:`ClusterDetails`.
8323
8357
  See :method:wait_get_cluster_running for more details.
8324
8358
  """
8359
+
8325
8360
  body = {}
8326
8361
  if apply_policy_default_values is not None:
8327
8362
  body["apply_policy_default_values"] = apply_policy_default_values
@@ -8487,6 +8522,7 @@ class ClustersAPI:
8487
8522
  Long-running operation waiter for :class:`ClusterDetails`.
8488
8523
  See :method:wait_get_cluster_terminated for more details.
8489
8524
  """
8525
+
8490
8526
  body = {}
8491
8527
  if cluster_id is not None:
8492
8528
  body["cluster_id"] = cluster_id
@@ -8685,6 +8721,7 @@ class ClustersAPI:
8685
8721
  Long-running operation waiter for :class:`ClusterDetails`.
8686
8722
  See :method:wait_get_cluster_running for more details.
8687
8723
  """
8724
+
8688
8725
  body = {}
8689
8726
  if apply_policy_default_values is not None:
8690
8727
  body["apply_policy_default_values"] = apply_policy_default_values
@@ -8881,6 +8918,7 @@ class ClustersAPI:
8881
8918
 
8882
8919
  :returns: Iterator over :class:`ClusterEvent`
8883
8920
  """
8921
+
8884
8922
  body = {}
8885
8923
  if cluster_id is not None:
8886
8924
  body["cluster_id"] = cluster_id
@@ -9054,6 +9092,7 @@ class ClustersAPI:
9054
9092
 
9055
9093
 
9056
9094
  """
9095
+
9057
9096
  body = {}
9058
9097
  if cluster_id is not None:
9059
9098
  body["cluster_id"] = cluster_id
@@ -9072,6 +9111,7 @@ class ClustersAPI:
9072
9111
 
9073
9112
 
9074
9113
  """
9114
+
9075
9115
  body = {}
9076
9116
  if cluster_id is not None:
9077
9117
  body["cluster_id"] = cluster_id
@@ -9107,6 +9147,7 @@ class ClustersAPI:
9107
9147
  Long-running operation waiter for :class:`ClusterDetails`.
9108
9148
  See :method:wait_get_cluster_running for more details.
9109
9149
  """
9150
+
9110
9151
  body = {}
9111
9152
  if autoscale is not None:
9112
9153
  body["autoscale"] = autoscale.as_dict()
@@ -9144,6 +9185,7 @@ class ClustersAPI:
9144
9185
  Long-running operation waiter for :class:`ClusterDetails`.
9145
9186
  See :method:wait_get_cluster_running for more details.
9146
9187
  """
9188
+
9147
9189
  body = {}
9148
9190
  if cluster_id is not None:
9149
9191
  body["cluster_id"] = cluster_id
@@ -9174,6 +9216,7 @@ class ClustersAPI:
9174
9216
 
9175
9217
  :returns: :class:`ClusterPermissions`
9176
9218
  """
9219
+
9177
9220
  body = {}
9178
9221
  if access_control_list is not None:
9179
9222
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -9213,6 +9256,7 @@ class ClustersAPI:
9213
9256
  Long-running operation waiter for :class:`ClusterDetails`.
9214
9257
  See :method:wait_get_cluster_running for more details.
9215
9258
  """
9259
+
9216
9260
  body = {}
9217
9261
  if cluster_id is not None:
9218
9262
  body["cluster_id"] = cluster_id
@@ -9236,6 +9280,7 @@ class ClustersAPI:
9236
9280
 
9237
9281
 
9238
9282
  """
9283
+
9239
9284
  body = {}
9240
9285
  if cluster_id is not None:
9241
9286
  body["cluster_id"] = cluster_id
@@ -9280,6 +9325,7 @@ class ClustersAPI:
9280
9325
  Long-running operation waiter for :class:`ClusterDetails`.
9281
9326
  See :method:wait_get_cluster_running for more details.
9282
9327
  """
9328
+
9283
9329
  body = {}
9284
9330
  if cluster is not None:
9285
9331
  body["cluster"] = cluster.as_dict()
@@ -9316,6 +9362,7 @@ class ClustersAPI:
9316
9362
 
9317
9363
  :returns: :class:`ClusterPermissions`
9318
9364
  """
9365
+
9319
9366
  body = {}
9320
9367
  if access_control_list is not None:
9321
9368
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -9459,6 +9506,7 @@ class CommandExecutionAPI:
9459
9506
  Long-running operation waiter for :class:`CommandStatusResponse`.
9460
9507
  See :method:wait_command_status_command_execution_cancelled for more details.
9461
9508
  """
9509
+
9462
9510
  body = {}
9463
9511
  if cluster_id is not None:
9464
9512
  body["clusterId"] = cluster_id
@@ -9551,6 +9599,7 @@ class CommandExecutionAPI:
9551
9599
  Long-running operation waiter for :class:`ContextStatusResponse`.
9552
9600
  See :method:wait_context_status_command_execution_running for more details.
9553
9601
  """
9602
+
9554
9603
  body = {}
9555
9604
  if cluster_id is not None:
9556
9605
  body["clusterId"] = cluster_id
@@ -9582,6 +9631,7 @@ class CommandExecutionAPI:
9582
9631
 
9583
9632
 
9584
9633
  """
9634
+
9585
9635
  body = {}
9586
9636
  if cluster_id is not None:
9587
9637
  body["clusterId"] = cluster_id
@@ -9618,6 +9668,7 @@ class CommandExecutionAPI:
9618
9668
  Long-running operation waiter for :class:`CommandStatusResponse`.
9619
9669
  See :method:wait_command_status_command_execution_finished_or_error for more details.
9620
9670
  """
9671
+
9621
9672
  body = {}
9622
9673
  if cluster_id is not None:
9623
9674
  body["clusterId"] = cluster_id
@@ -9691,6 +9742,7 @@ class GlobalInitScriptsAPI:
9691
9742
 
9692
9743
  :returns: :class:`CreateResponse`
9693
9744
  """
9745
+
9694
9746
  body = {}
9695
9747
  if enabled is not None:
9696
9748
  body["enabled"] = enabled
@@ -9783,6 +9835,7 @@ class GlobalInitScriptsAPI:
9783
9835
 
9784
9836
 
9785
9837
  """
9838
+
9786
9839
  body = {}
9787
9840
  if enabled is not None:
9788
9841
  body["enabled"] = enabled
@@ -9895,6 +9948,7 @@ class InstancePoolsAPI:
9895
9948
 
9896
9949
  :returns: :class:`CreateInstancePoolResponse`
9897
9950
  """
9951
+
9898
9952
  body = {}
9899
9953
  if aws_attributes is not None:
9900
9954
  body["aws_attributes"] = aws_attributes.as_dict()
@@ -9942,6 +9996,7 @@ class InstancePoolsAPI:
9942
9996
 
9943
9997
 
9944
9998
  """
9999
+
9945
10000
  body = {}
9946
10001
  if instance_pool_id is not None:
9947
10002
  body["instance_pool_id"] = instance_pool_id
@@ -10003,6 +10058,7 @@ class InstancePoolsAPI:
10003
10058
 
10004
10059
 
10005
10060
  """
10061
+
10006
10062
  body = {}
10007
10063
  if custom_tags is not None:
10008
10064
  body["custom_tags"] = custom_tags
@@ -10110,6 +10166,7 @@ class InstancePoolsAPI:
10110
10166
 
10111
10167
  :returns: :class:`InstancePoolPermissions`
10112
10168
  """
10169
+
10113
10170
  body = {}
10114
10171
  if access_control_list is not None:
10115
10172
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -10133,6 +10190,7 @@ class InstancePoolsAPI:
10133
10190
 
10134
10191
  :returns: :class:`InstancePoolPermissions`
10135
10192
  """
10193
+
10136
10194
  body = {}
10137
10195
  if access_control_list is not None:
10138
10196
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -10195,6 +10253,7 @@ class InstanceProfilesAPI:
10195
10253
 
10196
10254
 
10197
10255
  """
10256
+
10198
10257
  body = {}
10199
10258
  if iam_role_arn is not None:
10200
10259
  body["iam_role_arn"] = iam_role_arn
@@ -10249,6 +10308,7 @@ class InstanceProfilesAPI:
10249
10308
 
10250
10309
 
10251
10310
  """
10311
+
10252
10312
  body = {}
10253
10313
  if iam_role_arn is not None:
10254
10314
  body["iam_role_arn"] = iam_role_arn
@@ -10291,6 +10351,7 @@ class InstanceProfilesAPI:
10291
10351
 
10292
10352
 
10293
10353
  """
10354
+
10294
10355
  body = {}
10295
10356
  if instance_profile_arn is not None:
10296
10357
  body["instance_profile_arn"] = instance_profile_arn
@@ -10371,6 +10432,7 @@ class LibrariesAPI:
10371
10432
 
10372
10433
 
10373
10434
  """
10435
+
10374
10436
  body = {}
10375
10437
  if cluster_id is not None:
10376
10438
  body["cluster_id"] = cluster_id
@@ -10394,6 +10456,7 @@ class LibrariesAPI:
10394
10456
 
10395
10457
 
10396
10458
  """
10459
+
10397
10460
  body = {}
10398
10461
  if cluster_id is not None:
10399
10462
  body["cluster_id"] = cluster_id
@@ -10443,6 +10506,7 @@ class PolicyComplianceForClustersAPI:
10443
10506
 
10444
10507
  :returns: :class:`EnforceClusterComplianceResponse`
10445
10508
  """
10509
+
10446
10510
  body = {}
10447
10511
  if cluster_id is not None:
10448
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: