databricks-sdk 0.28.0__py3-none-any.whl → 0.30.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 (31) hide show
  1. databricks/sdk/__init__.py +74 -22
  2. databricks/sdk/config.py +89 -48
  3. databricks/sdk/core.py +38 -9
  4. databricks/sdk/credentials_provider.py +134 -57
  5. databricks/sdk/data_plane.py +65 -0
  6. databricks/sdk/dbutils.py +81 -3
  7. databricks/sdk/mixins/files.py +12 -4
  8. databricks/sdk/oauth.py +8 -6
  9. databricks/sdk/service/apps.py +977 -0
  10. databricks/sdk/service/billing.py +602 -218
  11. databricks/sdk/service/catalog.py +263 -62
  12. databricks/sdk/service/compute.py +515 -94
  13. databricks/sdk/service/dashboards.py +1310 -2
  14. databricks/sdk/service/iam.py +99 -88
  15. databricks/sdk/service/jobs.py +159 -166
  16. databricks/sdk/service/marketplace.py +74 -58
  17. databricks/sdk/service/oauth2.py +149 -70
  18. databricks/sdk/service/pipelines.py +73 -53
  19. databricks/sdk/service/serving.py +332 -694
  20. databricks/sdk/service/settings.py +424 -4
  21. databricks/sdk/service/sharing.py +235 -26
  22. databricks/sdk/service/sql.py +2484 -553
  23. databricks/sdk/service/vectorsearch.py +75 -0
  24. databricks/sdk/useragent.py +144 -0
  25. databricks/sdk/version.py +1 -1
  26. {databricks_sdk-0.28.0.dist-info → databricks_sdk-0.30.0.dist-info}/METADATA +37 -16
  27. {databricks_sdk-0.28.0.dist-info → databricks_sdk-0.30.0.dist-info}/RECORD +31 -28
  28. {databricks_sdk-0.28.0.dist-info → databricks_sdk-0.30.0.dist-info}/WHEEL +1 -1
  29. {databricks_sdk-0.28.0.dist-info → databricks_sdk-0.30.0.dist-info}/LICENSE +0 -0
  30. {databricks_sdk-0.28.0.dist-info → databricks_sdk-0.30.0.dist-info}/NOTICE +0 -0
  31. {databricks_sdk-0.28.0.dist-info → databricks_sdk-0.30.0.dist-info}/top_level.txt +0 -0
@@ -63,7 +63,7 @@ class CreatePipeline:
63
63
  id: Optional[str] = None
64
64
  """Unique identifier for this pipeline."""
65
65
 
66
- ingestion_definition: Optional[ManagedIngestionPipelineDefinition] = None
66
+ ingestion_definition: Optional[IngestionPipelineDefinition] = None
67
67
  """The configuration for a managed ingestion pipeline. These settings cannot be used with the
68
68
  'libraries', 'target' or 'catalog' settings."""
69
69
 
@@ -136,8 +136,7 @@ class CreatePipeline:
136
136
  filters=_from_dict(d, 'filters', Filters),
137
137
  gateway_definition=_from_dict(d, 'gateway_definition', IngestionGatewayPipelineDefinition),
138
138
  id=d.get('id', None),
139
- ingestion_definition=_from_dict(d, 'ingestion_definition',
140
- ManagedIngestionPipelineDefinition),
139
+ ingestion_definition=_from_dict(d, 'ingestion_definition', IngestionPipelineDefinition),
141
140
  libraries=_repeated_dict(d, 'libraries', PipelineLibrary),
142
141
  name=d.get('name', None),
143
142
  notifications=_repeated_dict(d, 'notifications', Notifications),
@@ -277,7 +276,7 @@ class EditPipeline:
277
276
  id: Optional[str] = None
278
277
  """Unique identifier for this pipeline."""
279
278
 
280
- ingestion_definition: Optional[ManagedIngestionPipelineDefinition] = None
279
+ ingestion_definition: Optional[IngestionPipelineDefinition] = None
281
280
  """The configuration for a managed ingestion pipeline. These settings cannot be used with the
282
281
  'libraries', 'target' or 'catalog' settings."""
283
282
 
@@ -355,8 +354,7 @@ class EditPipeline:
355
354
  filters=_from_dict(d, 'filters', Filters),
356
355
  gateway_definition=_from_dict(d, 'gateway_definition', IngestionGatewayPipelineDefinition),
357
356
  id=d.get('id', None),
358
- ingestion_definition=_from_dict(d, 'ingestion_definition',
359
- ManagedIngestionPipelineDefinition),
357
+ ingestion_definition=_from_dict(d, 'ingestion_definition', IngestionPipelineDefinition),
360
358
  libraries=_repeated_dict(d, 'libraries', PipelineLibrary),
361
359
  name=d.get('name', None),
362
360
  notifications=_repeated_dict(d, 'notifications', Notifications),
@@ -590,7 +588,7 @@ class IngestionGatewayPipelineDefinition:
590
588
  """Required, Immutable. The name of the catalog for the gateway pipeline's storage location."""
591
589
 
592
590
  gateway_storage_name: Optional[str] = None
593
- """Required. The Unity Catalog-compatible naming for the gateway storage location. This is the
591
+ """Optional. The Unity Catalog-compatible name for the gateway storage location. This is the
594
592
  destination to use for the data that is extracted by the gateway. Delta Live Tables system will
595
593
  automatically create the storage location under the catalog and schema."""
596
594
 
@@ -617,6 +615,41 @@ class IngestionGatewayPipelineDefinition:
617
615
  gateway_storage_schema=d.get('gateway_storage_schema', None))
618
616
 
619
617
 
618
+ @dataclass
619
+ class IngestionPipelineDefinition:
620
+ connection_name: Optional[str] = None
621
+ """Immutable. The Unity Catalog connection this ingestion pipeline uses to communicate with the
622
+ source. Specify either ingestion_gateway_id or connection_name."""
623
+
624
+ ingestion_gateway_id: Optional[str] = None
625
+ """Immutable. Identifier for the ingestion gateway used by this ingestion pipeline to communicate
626
+ with the source. Specify either ingestion_gateway_id or connection_name."""
627
+
628
+ objects: Optional[List[IngestionConfig]] = None
629
+ """Required. Settings specifying tables to replicate and the destination for the replicated tables."""
630
+
631
+ table_configuration: Optional[TableSpecificConfig] = None
632
+ """Configuration settings to control the ingestion of tables. These settings are applied to all
633
+ tables in the pipeline."""
634
+
635
+ def as_dict(self) -> dict:
636
+ """Serializes the IngestionPipelineDefinition into a dictionary suitable for use as a JSON request body."""
637
+ body = {}
638
+ if self.connection_name is not None: body['connection_name'] = self.connection_name
639
+ if self.ingestion_gateway_id is not None: body['ingestion_gateway_id'] = self.ingestion_gateway_id
640
+ if self.objects: body['objects'] = [v.as_dict() for v in self.objects]
641
+ if self.table_configuration: body['table_configuration'] = self.table_configuration.as_dict()
642
+ return body
643
+
644
+ @classmethod
645
+ def from_dict(cls, d: Dict[str, any]) -> IngestionPipelineDefinition:
646
+ """Deserializes the IngestionPipelineDefinition from a dictionary."""
647
+ return cls(connection_name=d.get('connection_name', None),
648
+ ingestion_gateway_id=d.get('ingestion_gateway_id', None),
649
+ objects=_repeated_dict(d, 'objects', IngestionConfig),
650
+ table_configuration=_from_dict(d, 'table_configuration', TableSpecificConfig))
651
+
652
+
620
653
  @dataclass
621
654
  class ListPipelineEventsResponse:
622
655
  events: Optional[List[PipelineEvent]] = None
@@ -693,41 +726,6 @@ class ListUpdatesResponse:
693
726
  updates=_repeated_dict(d, 'updates', UpdateInfo))
694
727
 
695
728
 
696
- @dataclass
697
- class ManagedIngestionPipelineDefinition:
698
- connection_name: Optional[str] = None
699
- """Immutable. The Unity Catalog connection this ingestion pipeline uses to communicate with the
700
- source. Specify either ingestion_gateway_id or connection_name."""
701
-
702
- ingestion_gateway_id: Optional[str] = None
703
- """Immutable. Identifier for the ingestion gateway used by this ingestion pipeline to communicate
704
- with the source. Specify either ingestion_gateway_id or connection_name."""
705
-
706
- objects: Optional[List[IngestionConfig]] = None
707
- """Required. Settings specifying tables to replicate and the destination for the replicated tables."""
708
-
709
- table_configuration: Optional[TableSpecificConfig] = None
710
- """Configuration settings to control the ingestion of tables. These settings are applied to all
711
- tables in the pipeline."""
712
-
713
- def as_dict(self) -> dict:
714
- """Serializes the ManagedIngestionPipelineDefinition into a dictionary suitable for use as a JSON request body."""
715
- body = {}
716
- if self.connection_name is not None: body['connection_name'] = self.connection_name
717
- if self.ingestion_gateway_id is not None: body['ingestion_gateway_id'] = self.ingestion_gateway_id
718
- if self.objects: body['objects'] = [v.as_dict() for v in self.objects]
719
- if self.table_configuration: body['table_configuration'] = self.table_configuration.as_dict()
720
- return body
721
-
722
- @classmethod
723
- def from_dict(cls, d: Dict[str, any]) -> ManagedIngestionPipelineDefinition:
724
- """Deserializes the ManagedIngestionPipelineDefinition from a dictionary."""
725
- return cls(connection_name=d.get('connection_name', None),
726
- ingestion_gateway_id=d.get('ingestion_gateway_id', None),
727
- objects=_repeated_dict(d, 'objects', IngestionConfig),
728
- table_configuration=_from_dict(d, 'table_configuration', TableSpecificConfig))
729
-
730
-
731
729
  @dataclass
732
730
  class ManualTrigger:
733
731
 
@@ -1003,6 +1001,9 @@ class PipelineCluster:
1003
1001
  """The node type of the Spark driver. Note that this field is optional; if unset, the driver node
1004
1002
  type will be set as the same value as `node_type_id` defined above."""
1005
1003
 
1004
+ enable_local_disk_encryption: Optional[bool] = None
1005
+ """Whether to enable local disk encryption for the cluster."""
1006
+
1006
1007
  gcp_attributes: Optional[compute.GcpAttributes] = None
1007
1008
  """Attributes related to clusters running on Google Cloud Platform. If not specified at cluster
1008
1009
  creation, a set of default values will be used."""
@@ -1074,6 +1075,8 @@ class PipelineCluster:
1074
1075
  if self.driver_instance_pool_id is not None:
1075
1076
  body['driver_instance_pool_id'] = self.driver_instance_pool_id
1076
1077
  if self.driver_node_type_id is not None: body['driver_node_type_id'] = self.driver_node_type_id
1078
+ if self.enable_local_disk_encryption is not None:
1079
+ body['enable_local_disk_encryption'] = self.enable_local_disk_encryption
1077
1080
  if self.gcp_attributes: body['gcp_attributes'] = self.gcp_attributes.as_dict()
1078
1081
  if self.init_scripts: body['init_scripts'] = [v.as_dict() for v in self.init_scripts]
1079
1082
  if self.instance_pool_id is not None: body['instance_pool_id'] = self.instance_pool_id
@@ -1097,6 +1100,7 @@ class PipelineCluster:
1097
1100
  custom_tags=d.get('custom_tags', None),
1098
1101
  driver_instance_pool_id=d.get('driver_instance_pool_id', None),
1099
1102
  driver_node_type_id=d.get('driver_node_type_id', None),
1103
+ enable_local_disk_encryption=d.get('enable_local_disk_encryption', None),
1100
1104
  gcp_attributes=_from_dict(d, 'gcp_attributes', compute.GcpAttributes),
1101
1105
  init_scripts=_repeated_dict(d, 'init_scripts', compute.InitScriptInfo),
1102
1106
  instance_pool_id=d.get('instance_pool_id', None),
@@ -1242,7 +1246,10 @@ class PipelineLibrary:
1242
1246
  """Specification of a maven library to be installed."""
1243
1247
 
1244
1248
  notebook: Optional[NotebookLibrary] = None
1245
- """The path to a notebook that defines a pipeline and is stored in the <Databricks> workspace."""
1249
+ """The path to a notebook that defines a pipeline and is stored in the Databricks workspace."""
1250
+
1251
+ whl: Optional[str] = None
1252
+ """URI of the whl to be installed."""
1246
1253
 
1247
1254
  def as_dict(self) -> dict:
1248
1255
  """Serializes the PipelineLibrary into a dictionary suitable for use as a JSON request body."""
@@ -1251,6 +1258,7 @@ class PipelineLibrary:
1251
1258
  if self.jar is not None: body['jar'] = self.jar
1252
1259
  if self.maven: body['maven'] = self.maven.as_dict()
1253
1260
  if self.notebook: body['notebook'] = self.notebook.as_dict()
1261
+ if self.whl is not None: body['whl'] = self.whl
1254
1262
  return body
1255
1263
 
1256
1264
  @classmethod
@@ -1259,7 +1267,8 @@ class PipelineLibrary:
1259
1267
  return cls(file=_from_dict(d, 'file', FileLibrary),
1260
1268
  jar=d.get('jar', None),
1261
1269
  maven=_from_dict(d, 'maven', compute.MavenLibrary),
1262
- notebook=_from_dict(d, 'notebook', NotebookLibrary))
1270
+ notebook=_from_dict(d, 'notebook', NotebookLibrary),
1271
+ whl=d.get('whl', None))
1263
1272
 
1264
1273
 
1265
1274
  @dataclass
@@ -1403,7 +1412,7 @@ class PipelineSpec:
1403
1412
  id: Optional[str] = None
1404
1413
  """Unique identifier for this pipeline."""
1405
1414
 
1406
- ingestion_definition: Optional[ManagedIngestionPipelineDefinition] = None
1415
+ ingestion_definition: Optional[IngestionPipelineDefinition] = None
1407
1416
  """The configuration for a managed ingestion pipeline. These settings cannot be used with the
1408
1417
  'libraries', 'target' or 'catalog' settings."""
1409
1418
 
@@ -1472,8 +1481,7 @@ class PipelineSpec:
1472
1481
  filters=_from_dict(d, 'filters', Filters),
1473
1482
  gateway_definition=_from_dict(d, 'gateway_definition', IngestionGatewayPipelineDefinition),
1474
1483
  id=d.get('id', None),
1475
- ingestion_definition=_from_dict(d, 'ingestion_definition',
1476
- ManagedIngestionPipelineDefinition),
1484
+ ingestion_definition=_from_dict(d, 'ingestion_definition', IngestionPipelineDefinition),
1477
1485
  libraries=_repeated_dict(d, 'libraries', PipelineLibrary),
1478
1486
  name=d.get('name', None),
1479
1487
  notifications=_repeated_dict(d, 'notifications', Notifications),
@@ -1506,6 +1514,9 @@ class PipelineStateInfo:
1506
1514
  creator_user_name: Optional[str] = None
1507
1515
  """The username of the pipeline creator."""
1508
1516
 
1517
+ health: Optional[PipelineStateInfoHealth] = None
1518
+ """The health of a pipeline."""
1519
+
1509
1520
  latest_updates: Optional[List[UpdateStateInfo]] = None
1510
1521
  """Status of the latest updates for the pipeline. Ordered with the newest update first."""
1511
1522
 
@@ -1527,6 +1538,7 @@ class PipelineStateInfo:
1527
1538
  body = {}
1528
1539
  if self.cluster_id is not None: body['cluster_id'] = self.cluster_id
1529
1540
  if self.creator_user_name is not None: body['creator_user_name'] = self.creator_user_name
1541
+ if self.health is not None: body['health'] = self.health.value
1530
1542
  if self.latest_updates: body['latest_updates'] = [v.as_dict() for v in self.latest_updates]
1531
1543
  if self.name is not None: body['name'] = self.name
1532
1544
  if self.pipeline_id is not None: body['pipeline_id'] = self.pipeline_id
@@ -1539,6 +1551,7 @@ class PipelineStateInfo:
1539
1551
  """Deserializes the PipelineStateInfo from a dictionary."""
1540
1552
  return cls(cluster_id=d.get('cluster_id', None),
1541
1553
  creator_user_name=d.get('creator_user_name', None),
1554
+ health=_enum(d, 'health', PipelineStateInfoHealth),
1542
1555
  latest_updates=_repeated_dict(d, 'latest_updates', UpdateStateInfo),
1543
1556
  name=d.get('name', None),
1544
1557
  pipeline_id=d.get('pipeline_id', None),
@@ -1546,6 +1559,13 @@ class PipelineStateInfo:
1546
1559
  state=_enum(d, 'state', PipelineState))
1547
1560
 
1548
1561
 
1562
+ class PipelineStateInfoHealth(Enum):
1563
+ """The health of a pipeline."""
1564
+
1565
+ HEALTHY = 'HEALTHY'
1566
+ UNHEALTHY = 'UNHEALTHY'
1567
+
1568
+
1549
1569
  @dataclass
1550
1570
  class PipelineTrigger:
1551
1571
  cron: Optional[CronTrigger] = None
@@ -1584,7 +1604,7 @@ class SchemaSpec:
1584
1604
  table_configuration: Optional[TableSpecificConfig] = None
1585
1605
  """Configuration settings to control the ingestion of tables. These settings are applied to all
1586
1606
  tables in this schema and override the table_configuration defined in the
1587
- ManagedIngestionPipelineDefinition object."""
1607
+ IngestionPipelineDefinition object."""
1588
1608
 
1589
1609
  def as_dict(self) -> dict:
1590
1610
  """Serializes the SchemaSpec into a dictionary suitable for use as a JSON request body."""
@@ -1796,7 +1816,7 @@ class TableSpec:
1796
1816
 
1797
1817
  table_configuration: Optional[TableSpecificConfig] = None
1798
1818
  """Configuration settings to control the ingestion of tables. These settings override the
1799
- table_configuration defined in the ManagedIngestionPipelineDefinition object and the SchemaSpec."""
1819
+ table_configuration defined in the IngestionPipelineDefinition object and the SchemaSpec."""
1800
1820
 
1801
1821
  def as_dict(self) -> dict:
1802
1822
  """Serializes the TableSpec into a dictionary suitable for use as a JSON request body."""
@@ -2090,7 +2110,7 @@ class PipelinesAPI:
2090
2110
  filters: Optional[Filters] = None,
2091
2111
  gateway_definition: Optional[IngestionGatewayPipelineDefinition] = None,
2092
2112
  id: Optional[str] = None,
2093
- ingestion_definition: Optional[ManagedIngestionPipelineDefinition] = None,
2113
+ ingestion_definition: Optional[IngestionPipelineDefinition] = None,
2094
2114
  libraries: Optional[List[PipelineLibrary]] = None,
2095
2115
  name: Optional[str] = None,
2096
2116
  notifications: Optional[List[Notifications]] = None,
@@ -2131,7 +2151,7 @@ class PipelinesAPI:
2131
2151
  The definition of a gateway pipeline to support CDC.
2132
2152
  :param id: str (optional)
2133
2153
  Unique identifier for this pipeline.
2134
- :param ingestion_definition: :class:`ManagedIngestionPipelineDefinition` (optional)
2154
+ :param ingestion_definition: :class:`IngestionPipelineDefinition` (optional)
2135
2155
  The configuration for a managed ingestion pipeline. These settings cannot be used with the
2136
2156
  'libraries', 'target' or 'catalog' settings.
2137
2157
  :param libraries: List[:class:`PipelineLibrary`] (optional)
@@ -2498,7 +2518,7 @@ class PipelinesAPI:
2498
2518
  filters: Optional[Filters] = None,
2499
2519
  gateway_definition: Optional[IngestionGatewayPipelineDefinition] = None,
2500
2520
  id: Optional[str] = None,
2501
- ingestion_definition: Optional[ManagedIngestionPipelineDefinition] = None,
2521
+ ingestion_definition: Optional[IngestionPipelineDefinition] = None,
2502
2522
  libraries: Optional[List[PipelineLibrary]] = None,
2503
2523
  name: Optional[str] = None,
2504
2524
  notifications: Optional[List[Notifications]] = None,
@@ -2542,7 +2562,7 @@ class PipelinesAPI:
2542
2562
  The definition of a gateway pipeline to support CDC.
2543
2563
  :param id: str (optional)
2544
2564
  Unique identifier for this pipeline.
2545
- :param ingestion_definition: :class:`ManagedIngestionPipelineDefinition` (optional)
2565
+ :param ingestion_definition: :class:`IngestionPipelineDefinition` (optional)
2546
2566
  The configuration for a managed ingestion pipeline. These settings cannot be used with the
2547
2567
  'libraries', 'target' or 'catalog' settings.
2548
2568
  :param libraries: List[:class:`PipelineLibrary`] (optional)