databricks-sdk 0.153.0__tar.gz → 0.154.0__tar.gz

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.
Files changed (116) hide show
  1. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/CHANGELOG.md +17 -0
  2. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/PKG-INFO +1 -1
  3. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/__init__.py +2 -2
  4. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/agentkit.py +46 -49
  5. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/catalog.py +64 -0
  6. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/compute.py +5 -33
  7. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/disasterrecovery.py +45 -0
  8. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/jobs.py +71 -0
  9. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/knowledgeassistants.py +1 -1
  10. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/pipelines.py +2 -0
  11. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/sandbox.py +378 -0
  12. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/supervisoragents.py +1 -1
  13. databricks_sdk-0.154.0/databricks/sdk/version.py +1 -0
  14. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks_sdk.egg-info/PKG-INFO +1 -1
  15. databricks_sdk-0.153.0/databricks/sdk/version.py +0 -1
  16. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/CONTRIBUTING.md +0 -0
  17. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/DCO +0 -0
  18. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/LICENSE +0 -0
  19. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/MANIFEST.in +0 -0
  20. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/Makefile +0 -0
  21. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/NOTICE +0 -0
  22. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/README.md +0 -0
  23. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/SECURITY.md +0 -0
  24. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/__init__.py +0 -0
  25. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/_base_client.py +0 -0
  26. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/_property.py +0 -0
  27. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/_sandbox_grpc/__init__.py +0 -0
  28. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/_sandbox_grpc/sandbox_service_pb2.py +0 -0
  29. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/_sandbox_grpc/sandbox_service_pb2_grpc.py +0 -0
  30. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/_widgets/__init__.py +0 -0
  31. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/_widgets/default_widgets_utils.py +0 -0
  32. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/_widgets/ipywidgets_utils.py +0 -0
  33. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/azure.py +0 -0
  34. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/casing.py +0 -0
  35. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/client_types.py +0 -0
  36. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/clock.py +0 -0
  37. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/common/lro.py +0 -0
  38. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/common/types/__init__.py +0 -0
  39. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/common/types/fieldmask.py +0 -0
  40. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/config.py +0 -0
  41. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/core.py +0 -0
  42. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/credentials_provider.py +0 -0
  43. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/data_plane.py +0 -0
  44. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/dbutils.py +0 -0
  45. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/environments.py +0 -0
  46. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/errors/__init__.py +0 -0
  47. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/errors/base.py +0 -0
  48. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/errors/customizer.py +0 -0
  49. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/errors/deserializer.py +0 -0
  50. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/errors/details.py +0 -0
  51. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/errors/mapper.py +0 -0
  52. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/errors/overrides.py +0 -0
  53. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/errors/parser.py +0 -0
  54. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/errors/platform.py +0 -0
  55. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/errors/private_link.py +0 -0
  56. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/errors/sdk.py +0 -0
  57. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/logger/__init__.py +0 -0
  58. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/logger/round_trip_logger.py +0 -0
  59. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/mixins/__init__.py +0 -0
  60. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/mixins/_grpc_transport.py +0 -0
  61. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/mixins/compute.py +0 -0
  62. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/mixins/files.py +0 -0
  63. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/mixins/files_utils.py +0 -0
  64. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/mixins/jobs.py +0 -0
  65. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/mixins/open_ai_client.py +0 -0
  66. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/mixins/sandbox.py +0 -0
  67. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/mixins/sharing.py +0 -0
  68. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/mixins/workspace.py +0 -0
  69. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/oauth.py +0 -0
  70. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/oidc.py +0 -0
  71. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/oidc_token_supplier.py +0 -0
  72. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/py.typed +0 -0
  73. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/retries.py +0 -0
  74. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/runtime/__init__.py +0 -0
  75. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/runtime/dbutils_stub.py +0 -0
  76. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/__init__.py +0 -0
  77. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/_internal.py +0 -0
  78. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/agentbricks.py +0 -0
  79. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/aifunctions.py +0 -0
  80. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/aisearch.py +0 -0
  81. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/apps.py +0 -0
  82. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/billing.py +0 -0
  83. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/bundle.py +0 -0
  84. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/bundledeployments.py +0 -0
  85. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/cleanrooms.py +0 -0
  86. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/dashboards.py +0 -0
  87. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/database.py +0 -0
  88. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/dataclassification.py +0 -0
  89. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/dataquality.py +0 -0
  90. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/domains.py +0 -0
  91. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/environments.py +0 -0
  92. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/files.py +0 -0
  93. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/iam.py +0 -0
  94. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/iamv2.py +0 -0
  95. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/marketplace.py +0 -0
  96. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/ml.py +0 -0
  97. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/networking.py +0 -0
  98. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/oauth2.py +0 -0
  99. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/postgres.py +0 -0
  100. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/provisioning.py +0 -0
  101. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/qualitymonitorv2.py +0 -0
  102. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/serving.py +0 -0
  103. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/settings.py +0 -0
  104. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/settingsv2.py +0 -0
  105. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/sharing.py +0 -0
  106. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/sql.py +0 -0
  107. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/tags.py +0 -0
  108. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/vectorsearch.py +0 -0
  109. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/service/workspace.py +0 -0
  110. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks/sdk/useragent.py +0 -0
  111. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks_sdk.egg-info/SOURCES.txt +0 -0
  112. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks_sdk.egg-info/dependency_links.txt +0 -0
  113. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks_sdk.egg-info/requires.txt +0 -0
  114. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/databricks_sdk.egg-info/top_level.txt +0 -0
  115. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/pyproject.toml +0 -0
  116. {databricks_sdk-0.153.0 → databricks_sdk-0.154.0}/setup.cfg +0 -0
@@ -1,5 +1,22 @@
1
1
  # Version changelog
2
2
 
3
+ ## Release v0.154.0 (2026-10-19)
4
+
5
+ ### API Changes
6
+ * Add `create_directory()`, `delete_path()`, `get_metadata()`, `list_directory_contents()` and `rename_path()` methods for [w.sandbox](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/sandbox/sandbox.html) workspace-level service.
7
+ * Add `secrets` field for `databricks.sdk.service.catalog.ConnectionInfo`.
8
+ * Add `secrets` field for `databricks.sdk.service.catalog.CreateConnection`.
9
+ * Add `governed_tags` field for `databricks.sdk.service.catalog.PolicyInfo`.
10
+ * Add `secrets` field for `databricks.sdk.service.catalog.UpdateConnection`.
11
+ * Add `has_replication_point_blocking_errors` and `initial_replication_progress` fields for `databricks.sdk.service.disasterrecovery.FailoverGroup`.
12
+ * Add `duration_target` field for `databricks.sdk.service.jobs.BaseRun`.
13
+ * Add `duration_target` field for `databricks.sdk.service.jobs.CreateJob`.
14
+ * Add `duration_target` field for `databricks.sdk.service.jobs.JobSettings`.
15
+ * Add `duration_target` field for `databricks.sdk.service.jobs.RepairRun`.
16
+ * Add `duration_target` field for `databricks.sdk.service.jobs.Run`.
17
+ * Add `duration_target` field for `databricks.sdk.service.jobs.RunNow`.
18
+ * Add `duration_target` field for `databricks.sdk.service.jobs.SubmitRun`.
19
+
3
20
  ## Release v0.153.0 (2026-10-15)
4
21
 
5
22
  ### API Changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databricks-sdk
3
- Version: 0.153.0
3
+ Version: 0.154.0
4
4
  Summary: Databricks SDK for Python (Beta)
5
5
  Project-URL: Documentation, https://databricks-sdk-py.readthedocs.io
6
6
  Keywords: databricks,sdk
@@ -829,7 +829,7 @@ class WorkspaceClient:
829
829
 
830
830
  @property
831
831
  def knowledge_assistants(self) -> pkg_knowledgeassistants.KnowledgeAssistantsAPI:
832
- """Manage Knowledge Assistants and related resources."""
832
+ """Manage legacy Knowledge Assistants and related resources."""
833
833
  return self._knowledge_assistants
834
834
 
835
835
  @property
@@ -1094,7 +1094,7 @@ class WorkspaceClient:
1094
1094
 
1095
1095
  @property
1096
1096
  def supervisor_agents(self) -> pkg_supervisoragents.SupervisorAgentsAPI:
1097
- """Manage Supervisor Agents and related resources."""
1097
+ """Manage legacy Supervisor Agents and related resources."""
1098
1098
  return self._supervisor_agents
1099
1099
 
1100
1100
  @property
@@ -138,10 +138,10 @@ class ForkSessionResponse:
138
138
 
139
139
  @dataclass
140
140
  class ListManagedMemoryEntriesResponse:
141
- """Response containing managed memory entries."""
141
+ """Response containing memory entries."""
142
142
 
143
143
  managed_memory_entries: Optional[List[ManagedMemoryEntry]] = None
144
- """Managed memory entries matching the request and selected response view."""
144
+ """Memory entries matching the request and selected response view."""
145
145
 
146
146
  next_page_token: Optional[str] = None
147
147
  """Opaque pagination token. This field is omitted when there are no more results."""
@@ -175,10 +175,10 @@ class ListManagedMemoryEntriesResponse:
175
175
 
176
176
  @dataclass
177
177
  class ListManagedMemoryStoresResponse:
178
- """Response containing managed memory stores in the caller's workspace."""
178
+ """Response containing memory stores in the caller's workspace."""
179
179
 
180
180
  managed_memory_stores: Optional[List[ManagedMemoryStore]] = None
181
- """Managed memory stores in the caller's workspace."""
181
+ """Memory stores in the caller's workspace."""
182
182
 
183
183
  next_page_token: Optional[str] = None
184
184
  """Opaque pagination token. This field is omitted when there are no more results."""
@@ -320,7 +320,7 @@ class ListSessionsResponse:
320
320
 
321
321
  @dataclass
322
322
  class ManagedMemoryEntry:
323
- """A workspace-scoped entry in a managed memory store."""
323
+ """A workspace-scoped entry in a memory store."""
324
324
 
325
325
  actor_id: str
326
326
  """Customer-provided identifier for the actor whose memory this entry represents."""
@@ -416,10 +416,10 @@ class ManagedMemoryEntry:
416
416
 
417
417
  @dataclass
418
418
  class ManagedMemoryEntrySearchResult:
419
- """One relevance-ranked managed memory search result."""
419
+ """One relevance-ranked memory search result."""
420
420
 
421
421
  managed_memory_entry: Optional[ManagedMemoryEntry] = None
422
- """Managed memory entry matching the query."""
422
+ """Memory entry matching the query."""
423
423
 
424
424
  score: Optional[float] = None
425
425
  """Relevance score for the result. Higher scores are more relevant."""
@@ -451,14 +451,14 @@ class ManagedMemoryEntrySearchResult:
451
451
 
452
452
 
453
453
  class ManagedMemoryEntrySourceType(Enum):
454
- """Identifies the source that created a managed memory entry."""
454
+ """Identifies the source that created a memory entry."""
455
455
 
456
456
  MANAGED_MEMORY_ENTRY_SOURCE_TYPE_AGENT = "MANAGED_MEMORY_ENTRY_SOURCE_TYPE_AGENT"
457
457
  MANAGED_MEMORY_ENTRY_SOURCE_TYPE_DREAMER = "MANAGED_MEMORY_ENTRY_SOURCE_TYPE_DREAMER"
458
458
 
459
459
 
460
460
  class ManagedMemoryEntryView(Enum):
461
- """Controls how much managed memory entry data is returned."""
461
+ """Controls how much memory entry data is returned."""
462
462
 
463
463
  MANAGED_MEMORY_ENTRY_VIEW_BASIC = "MANAGED_MEMORY_ENTRY_VIEW_BASIC"
464
464
  MANAGED_MEMORY_ENTRY_VIEW_FULL = "MANAGED_MEMORY_ENTRY_VIEW_FULL"
@@ -466,7 +466,7 @@ class ManagedMemoryEntryView(Enum):
466
466
 
467
467
  @dataclass
468
468
  class ManagedMemoryStore:
469
- """A workspace-scoped managed memory store backed by service-managed storage."""
469
+ """A workspace-scoped memory store backed by service-managed storage."""
470
470
 
471
471
  create_time: Optional[Timestamp] = None
472
472
  """Time when the store was created."""
@@ -480,9 +480,9 @@ class ManagedMemoryStore:
480
480
  """Human-readable description of the memory store."""
481
481
 
482
482
  display_name: Optional[str] = None
483
- """Deprecated compatibility alias for the caller-provided managed memory store ID. Canonical
484
- clients provide the ID through ``CreateMemoryStoreRequest.managed_memory_store_id`` and use
485
- ``name`` as the resource identifier."""
483
+ """Deprecated compatibility alias for the caller-provided memory store ID. Canonical clients
484
+ provide the ID through ``CreateMemoryStoreRequest.managed_memory_store_id`` and use ``name`` as
485
+ the resource identifier."""
486
486
 
487
487
  name: Optional[str] = None
488
488
  """Resource name in the form ``memory-stores/{managed_memory_store_id}``."""
@@ -591,7 +591,7 @@ class PopSessionItemResponse:
591
591
 
592
592
  @dataclass
593
593
  class SearchManagedMemoryEntriesResponse:
594
- """Response containing managed memory entries ranked by relevance."""
594
+ """Response containing memory entries ranked by relevance."""
595
595
 
596
596
  managed_memory_entries: Optional[List[ManagedMemoryEntry]] = None
597
597
  """Deprecated compatibility alias for clients migrating to ``results``. This contains the same
@@ -852,7 +852,7 @@ class SessionStore:
852
852
 
853
853
  @dataclass
854
854
  class StorageBackend:
855
- """Service-managed storage backing a managed memory store."""
855
+ """Service-managed storage backing a memory store."""
856
856
 
857
857
  backend_id: Optional[str] = None
858
858
  """Backend-specific identifier. For Lakebase, this is the project ID."""
@@ -885,7 +885,7 @@ class StorageBackend:
885
885
 
886
886
 
887
887
  class StorageBackendType(Enum):
888
- """Type of service-managed storage backing a managed memory store."""
888
+ """Type of service-managed storage backing a memory store."""
889
889
 
890
890
  STORAGE_BACKEND_TYPE_LAKEBASE = "STORAGE_BACKEND_TYPE_LAKEBASE"
891
891
 
@@ -951,19 +951,18 @@ class AgentKitAPI:
951
951
  def create_memory(
952
952
  self, parent: str, managed_memory_entry: ManagedMemoryEntry, *, managed_memory_entry_id: Optional[str] = None
953
953
  ) -> ManagedMemoryEntry:
954
- """Creates a managed memory entry using exclusive-create semantics. Callers may choose the entry ID; the
955
- service generates one when it is omitted. Returns ``ALREADY_EXISTS`` when an entry with the same
956
- actor, session, and path already exists. Omitted ``session_id`` is its own uniqueness key: two
954
+ """Creates a memory entry using exclusive-create semantics. Callers may choose the entry ID; the service
955
+ generates one when it is omitted. Returns ``ALREADY_EXISTS`` when an entry with the same actor,
956
+ session, and path already exists. Omitted ``session_id`` is its own uniqueness key: two
957
957
  omitted-session entries with the same actor and path conflict, but an omitted-session entry does not
958
958
  conflict with a session-scoped entry at the same actor and path.
959
959
 
960
960
  :param parent: str
961
- Managed memory store that will contain the entry, in the form
962
- ``memory-stores/{managed_memory_store_id}``.
961
+ Memory store that will contain the entry, in the form ``memory-stores/{managed_memory_store_id}``.
963
962
  :param managed_memory_entry: :class:`ManagedMemoryEntry`
964
- The managed memory entry to create.
963
+ The memory entry to create.
965
964
  :param managed_memory_entry_id: str (optional)
966
- Optional caller-selected managed memory entry ID. The service generates an ID when omitted.
965
+ Optional caller-selected memory entry ID. The service generates an ID when omitted.
967
966
 
968
967
  :returns: :class:`ManagedMemoryEntry`
969
968
  """
@@ -987,12 +986,12 @@ class AgentKitAPI:
987
986
  def create_memory_store(
988
987
  self, managed_memory_store: ManagedMemoryStore, managed_memory_store_id: str
989
988
  ) -> ManagedMemoryStore:
990
- """Creates a managed memory store in the caller's workspace.
989
+ """Creates a memory store in the caller's workspace.
991
990
 
992
991
  :param managed_memory_store: :class:`ManagedMemoryStore`
993
- The managed memory store to create.
992
+ The memory store to create.
994
993
  :param managed_memory_store_id: str
995
- Caller-provided, workspace-unique managed memory store ID. It must be 3-56 characters, begin with a
994
+ Caller-provided, workspace-unique memory store ID. It must be 3-56 characters, begin with a
996
995
  lowercase letter, contain only lowercase letters, digits, and hyphens, and end with a letter or
997
996
  digit.
998
997
 
@@ -1075,8 +1074,8 @@ class AgentKitAPI:
1075
1074
  return SessionStore.from_dict(res)
1076
1075
 
1077
1076
  def delete_memory(self, name: str):
1078
- """Deletes a managed memory entry by resource name. Returns ``NOT_FOUND`` when the entry does not exist
1079
- in the caller's workspace.
1077
+ """Deletes a memory entry by resource name. Returns ``NOT_FOUND`` when the entry does not exist in the
1078
+ caller's workspace.
1080
1079
 
1081
1080
  :param name: str
1082
1081
  Resource name in the form
@@ -1096,8 +1095,8 @@ class AgentKitAPI:
1096
1095
  self._api.do("DELETE", f"/api/2.0/agents/{name}", headers=headers)
1097
1096
 
1098
1097
  def delete_memory_store(self, name: str):
1099
- """Deletes a managed memory store by resource name. Returns ``NOT_FOUND`` when the store does not exist
1100
- in the caller's workspace.
1098
+ """Deletes a memory store by resource name. Returns ``NOT_FOUND`` when the store does not exist in the
1099
+ caller's workspace.
1101
1100
 
1102
1101
  :param name: str
1103
1102
  Resource name in the form ``memory-stores/{managed_memory_store_id}``.
@@ -1172,7 +1171,7 @@ class AgentKitAPI:
1172
1171
  :param session_id: str
1173
1172
  Identifier of the session whose transcript is distilled into memories.
1174
1173
  :param memory_store: str
1175
- Managed memory store the extracted entries are written to, in the form
1174
+ Memory store the extracted entries are written to, in the form
1176
1175
  ``memory-stores/{managed_memory_store_id}``.
1177
1176
  :param dry_run: bool (optional)
1178
1177
  When true, extract and return the entries without writing them to the memory store. Defaults to
@@ -1257,8 +1256,8 @@ class AgentKitAPI:
1257
1256
  return ForkSessionResponse.from_dict(res)
1258
1257
 
1259
1258
  def get_memory(self, name: str, *, view: Optional[ManagedMemoryEntryView] = None) -> ManagedMemoryEntry:
1260
- """Retrieves a managed memory entry by resource name. ``view`` controls whether the response includes
1261
- memory content. Returns ``NOT_FOUND`` when the entry does not exist in the caller's workspace.
1259
+ """Retrieves a memory entry by resource name. ``view`` controls whether the response includes memory
1260
+ content. Returns ``NOT_FOUND`` when the entry does not exist in the caller's workspace.
1262
1261
 
1263
1262
  :param name: str
1264
1263
  Resource name in the form
@@ -1284,8 +1283,8 @@ class AgentKitAPI:
1284
1283
  return ManagedMemoryEntry.from_dict(res)
1285
1284
 
1286
1285
  def get_memory_store(self, name: str) -> ManagedMemoryStore:
1287
- """Retrieves a managed memory store by resource name. Returns ``NOT_FOUND`` when the store does not exist
1288
- in the caller's workspace.
1286
+ """Retrieves a memory store by resource name. Returns ``NOT_FOUND`` when the store does not exist in the
1287
+ caller's workspace.
1289
1288
 
1290
1289
  :param name: str
1291
1290
  Resource name in the form ``memory-stores/{managed_memory_store_id}``.
@@ -1355,13 +1354,12 @@ class AgentKitAPI:
1355
1354
  session_id: Optional[str] = None,
1356
1355
  view: Optional[ManagedMemoryEntryView] = None,
1357
1356
  ) -> Iterator[ManagedMemoryEntry]:
1358
- """Lists managed memory entries for one actor. An exact ``path`` filters entries across sessions,
1359
- ignoring session metadata. Otherwise, ``session_id`` and ``path_prefix`` restrict the actor partition.
1360
- ``view`` controls whether each returned entry includes memory content.
1357
+ """Lists memory entries for one actor. An exact ``path`` filters entries across sessions, ignoring
1358
+ session metadata. Otherwise, ``session_id`` and ``path_prefix`` restrict the actor partition. ``view``
1359
+ controls whether each returned entry includes memory content.
1361
1360
 
1362
1361
  :param parent: str
1363
- Managed memory store whose entries are listed, in the form
1364
- ``memory-stores/{managed_memory_store_id}``.
1362
+ Memory store whose entries are listed, in the form ``memory-stores/{managed_memory_store_id}``.
1365
1363
  :param actor_id: str
1366
1364
  Customer-provided identifier for the actor whose entries are listed.
1367
1365
  :param page_size: int (optional)
@@ -1413,7 +1411,7 @@ class AgentKitAPI:
1413
1411
  def list_memory_stores(
1414
1412
  self, *, page_size: Optional[int] = None, page_token: Optional[str] = None
1415
1413
  ) -> Iterator[ManagedMemoryStore]:
1416
- """Lists managed memory stores in the caller's workspace.
1414
+ """Lists memory stores in the caller's workspace.
1417
1415
 
1418
1416
  :param page_size: int (optional)
1419
1417
  Maximum number of stores to return. The service may return fewer stores than requested. Defaults to
@@ -1621,12 +1619,11 @@ class AgentKitAPI:
1621
1619
  session_id: Optional[str] = None,
1622
1620
  view: Optional[ManagedMemoryEntryView] = None,
1623
1621
  ) -> Iterator[ManagedMemoryEntrySearchResult]:
1624
- """Searches managed memory entries by text query for one actor. Returns matching entries and scores
1625
- ranked by relevance; ``view`` controls whether each returned entry includes content.
1622
+ """Searches memory entries by text query for one actor. Returns matching entries and scores ranked by
1623
+ relevance; ``view`` controls whether each returned entry includes content.
1626
1624
 
1627
1625
  :param parent: str
1628
- Managed memory store whose entries are searched, in the form
1629
- ``memory-stores/{managed_memory_store_id}``.
1626
+ Memory store whose entries are searched, in the form ``memory-stores/{managed_memory_store_id}``.
1630
1627
  :param actor_id: str
1631
1628
  Customer-provided identifier for the actor whose entries are searched.
1632
1629
  :param query: str
@@ -1689,13 +1686,13 @@ class AgentKitAPI:
1689
1686
  def update_memory(
1690
1687
  self, name: str, managed_memory_entry: ManagedMemoryEntry, update_mask: FieldMask
1691
1688
  ) -> ManagedMemoryEntry:
1692
- """Updates selected mutable fields on a managed memory entry. Identity fields are immutable.
1689
+ """Updates selected mutable fields on a memory entry. Identity fields are immutable.
1693
1690
 
1694
1691
  :param name: str
1695
1692
  Resource name in the form
1696
1693
  ``memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}``.
1697
1694
  :param managed_memory_entry: :class:`ManagedMemoryEntry`
1698
- The managed memory entry to update.
1695
+ The memory entry to update.
1699
1696
  :param update_mask: FieldMask
1700
1697
  Fields to update. Only ``content`` and ``description`` may be updated.
1701
1698
 
@@ -1721,12 +1718,12 @@ class AgentKitAPI:
1721
1718
  def update_memory_store(
1722
1719
  self, name: str, managed_memory_store: ManagedMemoryStore, update_mask: FieldMask
1723
1720
  ) -> ManagedMemoryStore:
1724
- """Updates a managed memory store's description and metadata.
1721
+ """Updates a memory store's description and metadata.
1725
1722
 
1726
1723
  :param name: str
1727
1724
  Resource name in the form ``memory-stores/{managed_memory_store_id}``.
1728
1725
  :param managed_memory_store: :class:`ManagedMemoryStore`
1729
- The managed memory store to update. ``name`` is taken from the URL.
1726
+ The memory store to update. ``name`` is taken from the URL.
1730
1727
  :param update_mask: FieldMask
1731
1728
  Only ``description`` and ``metadata`` may be updated. Selecting ``metadata`` replaces the entire
1732
1729
  map.
@@ -1765,6 +1765,10 @@ class ConnectionInfo:
1765
1765
  read_only: Optional[bool] = None
1766
1766
  """If the connection is read only."""
1767
1767
 
1768
+ secrets: Optional[Dict[str, str]] = None
1769
+ """A map of option names to UC Secret references. Keys are connection option names (same as in
1770
+ OptionsKVPairs) and values are UC Secret fully qualified names."""
1771
+
1768
1772
  securable_type: Optional[SecurableType] = None
1769
1773
 
1770
1774
  updated_at: Optional[int] = None
@@ -1809,6 +1813,8 @@ class ConnectionInfo:
1809
1813
  body["provisioning_info"] = self.provisioning_info.as_dict()
1810
1814
  if self.read_only is not None:
1811
1815
  body["read_only"] = self.read_only
1816
+ if self.secrets:
1817
+ body["secrets"] = self.secrets
1812
1818
  if self.securable_type is not None:
1813
1819
  body["securable_type"] = self.securable_type.value
1814
1820
  if self.updated_at is not None:
@@ -1852,6 +1858,8 @@ class ConnectionInfo:
1852
1858
  body["provisioning_info"] = self.provisioning_info
1853
1859
  if self.read_only is not None:
1854
1860
  body["read_only"] = self.read_only
1861
+ if self.secrets:
1862
+ body["secrets"] = self.secrets
1855
1863
  if self.securable_type is not None:
1856
1864
  body["securable_type"] = self.securable_type
1857
1865
  if self.updated_at is not None:
@@ -1881,6 +1889,7 @@ class ConnectionInfo:
1881
1889
  properties=d.get("properties", None),
1882
1890
  provisioning_info=_from_dict(d, "provisioning_info", ProvisioningInfo),
1883
1891
  read_only=d.get("read_only", None),
1892
+ secrets=d.get("secrets", None),
1884
1893
  securable_type=_enum(d, "securable_type", SecurableType),
1885
1894
  updated_at=_int64(d, "updated_at"),
1886
1895
  updated_by=d.get("updated_by", None),
@@ -5757,6 +5766,40 @@ class GetWorkspaceBindingsResponse:
5757
5766
  )
5758
5767
 
5759
5768
 
5769
+ @dataclass
5770
+ class GovernedTagReference:
5771
+ """A governed tag referenced by a policy condition."""
5772
+
5773
+ tag_key: str
5774
+ """The governed tag key."""
5775
+
5776
+ tag_value: Optional[str] = None
5777
+ """The governed tag value, when the policy references a specific value."""
5778
+
5779
+ def as_dict(self) -> dict:
5780
+ """Serializes the GovernedTagReference into a dictionary suitable for use as a JSON request body."""
5781
+ body = {}
5782
+ if self.tag_key is not None:
5783
+ body["tag_key"] = self.tag_key
5784
+ if self.tag_value is not None:
5785
+ body["tag_value"] = self.tag_value
5786
+ return body
5787
+
5788
+ def as_shallow_dict(self) -> dict:
5789
+ """Serializes the GovernedTagReference into a shallow dictionary of its immediate attributes."""
5790
+ body = {}
5791
+ if self.tag_key is not None:
5792
+ body["tag_key"] = self.tag_key
5793
+ if self.tag_value is not None:
5794
+ body["tag_value"] = self.tag_value
5795
+ return body
5796
+
5797
+ @classmethod
5798
+ def from_dict(cls, d: Dict[str, Any]) -> GovernedTagReference:
5799
+ """Deserializes the GovernedTagReference from a dictionary."""
5800
+ return cls(tag_key=d.get("tag_key", None), tag_value=d.get("tag_value", None))
5801
+
5802
+
5760
5803
  @dataclass
5761
5804
  class GrantOptions:
5762
5805
  privileges: List[str]
@@ -10546,6 +10589,10 @@ class PolicyInfo:
10546
10589
  except_principals: Optional[List[str]] = None
10547
10590
  """Optional list of user or group names that should be excluded from the policy."""
10548
10591
 
10592
+ governed_tags: Optional[List[GovernedTagReference]] = None
10593
+ """Governed tag keys and values referenced by this policy's conditions and function arguments.
10594
+ Output only."""
10595
+
10549
10596
  grant: Optional[GrantOptions] = None
10550
10597
  """Options for grant policies. Valid only if ``policy_type`` is ``POLICY_TYPE_GRANT``. Required on
10551
10598
  create and optional on update. When specified on update, the new options will replace the
@@ -10601,6 +10648,8 @@ class PolicyInfo:
10601
10648
  body["except_principals"] = [v for v in self.except_principals]
10602
10649
  if self.for_securable_type is not None:
10603
10650
  body["for_securable_type"] = self.for_securable_type.value
10651
+ if self.governed_tags:
10652
+ body["governed_tags"] = [v.as_dict() for v in self.governed_tags]
10604
10653
  if self.grant:
10605
10654
  body["grant"] = self.grant.as_dict()
10606
10655
  if self.id is not None:
@@ -10644,6 +10693,8 @@ class PolicyInfo:
10644
10693
  body["except_principals"] = self.except_principals
10645
10694
  if self.for_securable_type is not None:
10646
10695
  body["for_securable_type"] = self.for_securable_type
10696
+ if self.governed_tags:
10697
+ body["governed_tags"] = self.governed_tags
10647
10698
  if self.grant:
10648
10699
  body["grant"] = self.grant
10649
10700
  if self.id is not None:
@@ -10681,6 +10732,7 @@ class PolicyInfo:
10681
10732
  deny=_from_dict(d, "deny", DenyOptions),
10682
10733
  except_principals=d.get("except_principals", None),
10683
10734
  for_securable_type=_enum(d, "for_securable_type", SecurableType),
10735
+ governed_tags=_repeated_dict(d, "governed_tags", GovernedTagReference),
10684
10736
  grant=_from_dict(d, "grant", GrantOptions),
10685
10737
  id=d.get("id", None),
10686
10738
  match_columns=_repeated_dict(d, "match_columns", MatchColumn),
@@ -15574,6 +15626,7 @@ class ConnectionsAPI:
15574
15626
  parent: Optional[str] = None,
15575
15627
  properties: Optional[Dict[str, str]] = None,
15576
15628
  read_only: Optional[bool] = None,
15629
+ secrets: Optional[Dict[str, str]] = None,
15577
15630
  ) -> ConnectionInfo:
15578
15631
  """Creates a new connection
15579
15632
 
@@ -15597,6 +15650,9 @@ class ConnectionsAPI:
15597
15650
  A map of key-value properties attached to the securable.
15598
15651
  :param read_only: bool (optional)
15599
15652
  If the connection is read only.
15653
+ :param secrets: Dict[str,str] (optional)
15654
+ A map of option names to UC Secret references. Keys are connection option names (same as in
15655
+ OptionsKVPairs) and values are UC Secret fully qualified names.
15600
15656
 
15601
15657
  :returns: :class:`ConnectionInfo`
15602
15658
  """
@@ -15618,6 +15674,8 @@ class ConnectionsAPI:
15618
15674
  body["properties"] = properties
15619
15675
  if read_only is not None:
15620
15676
  body["read_only"] = read_only
15677
+ if secrets is not None:
15678
+ body["secrets"] = secrets
15621
15679
  headers = {
15622
15680
  "Accept": "application/json",
15623
15681
  "Content-Type": "application/json",
@@ -15732,6 +15790,7 @@ class ConnectionsAPI:
15732
15790
  environment_settings: Optional[EnvironmentSettings] = None,
15733
15791
  new_name: Optional[str] = None,
15734
15792
  owner: Optional[str] = None,
15793
+ secrets: Optional[Dict[str, str]] = None,
15735
15794
  ) -> ConnectionInfo:
15736
15795
  """Updates the connection that matches the supplied name.
15737
15796
 
@@ -15745,6 +15804,9 @@ class ConnectionsAPI:
15745
15804
  New name for the connection.
15746
15805
  :param owner: str (optional)
15747
15806
  Username of current owner of the connection.
15807
+ :param secrets: Dict[str,str] (optional)
15808
+ A map of option names to UC Secret references. Keys are connection option names (same as in
15809
+ OptionsKVPairs) and values are UC Secret fully qualified names.
15748
15810
 
15749
15811
  :returns: :class:`ConnectionInfo`
15750
15812
  """
@@ -15758,6 +15820,8 @@ class ConnectionsAPI:
15758
15820
  body["options"] = options
15759
15821
  if owner is not None:
15760
15822
  body["owner"] = owner
15823
+ if secrets is not None:
15824
+ body["secrets"] = secrets
15761
15825
  headers = {
15762
15826
  "Accept": "application/json",
15763
15827
  "Content-Type": "application/json",
@@ -675,11 +675,7 @@ class ClusterAttributes:
675
675
 
676
676
  driver_node_type_id: Optional[str] = None
677
677
  """The node type of the Spark driver. Note that this field is optional; if unset, the driver node
678
- type will be set as the same value as ``node_type_id`` defined above.
679
-
680
- This field, along with node_type_id, should not be set if virtual_cluster_size is set. If both
681
- driver_node_type_id, node_type_id, and virtual_cluster_size are specified, driver_node_type_id
682
- and node_type_id take precedence."""
678
+ type will be set as the same value as ``node_type_id`` defined above."""
683
679
 
684
680
  enable_elastic_disk: Optional[bool] = None
685
681
  """Autoscaling Local Storage: when enabled, this cluster will dynamically acquire additional disk
@@ -1098,11 +1094,7 @@ class ClusterDetails:
1098
1094
 
1099
1095
  driver_node_type_id: Optional[str] = None
1100
1096
  """The node type of the Spark driver. Note that this field is optional; if unset, the driver node
1101
- type will be set as the same value as ``node_type_id`` defined above.
1102
-
1103
- This field, along with node_type_id, should not be set if virtual_cluster_size is set. If both
1104
- driver_node_type_id, node_type_id, and virtual_cluster_size are specified, driver_node_type_id
1105
- and node_type_id take precedence."""
1097
+ type will be set as the same value as ``node_type_id`` defined above."""
1106
1098
 
1107
1099
  enable_elastic_disk: Optional[bool] = None
1108
1100
  """Autoscaling Local Storage: when enabled, this cluster will dynamically acquire additional disk
@@ -2187,11 +2179,7 @@ class ClusterSpec:
2187
2179
 
2188
2180
  driver_node_type_id: Optional[str] = None
2189
2181
  """The node type of the Spark driver. Note that this field is optional; if unset, the driver node
2190
- type will be set as the same value as ``node_type_id`` defined above.
2191
-
2192
- This field, along with node_type_id, should not be set if virtual_cluster_size is set. If both
2193
- driver_node_type_id, node_type_id, and virtual_cluster_size are specified, driver_node_type_id
2194
- and node_type_id take precedence."""
2182
+ type will be set as the same value as ``node_type_id`` defined above."""
2195
2183
 
2196
2184
  enable_elastic_disk: Optional[bool] = None
2197
2185
  """Autoscaling Local Storage: when enabled, this cluster will dynamically acquire additional disk
@@ -3360,11 +3348,7 @@ class EnforcePolicyComplianceForClusterResponseClusterSettings:
3360
3348
 
3361
3349
  driver_node_type_id: Optional[str] = None
3362
3350
  """The node type of the Spark driver. Note that this field is optional; if unset, the driver node
3363
- type will be set as the same value as ``node_type_id`` defined above.
3364
-
3365
- This field, along with node_type_id, should not be set if virtual_cluster_size is set. If both
3366
- driver_node_type_id, node_type_id, and virtual_cluster_size are specified, driver_node_type_id
3367
- and node_type_id take precedence."""
3351
+ type will be set as the same value as ``node_type_id`` defined above."""
3368
3352
 
3369
3353
  enable_elastic_disk: Optional[bool] = None
3370
3354
  """Autoscaling Local Storage: when enabled, this cluster will dynamically acquire additional disk
@@ -8146,11 +8130,7 @@ class UpdateClusterResource:
8146
8130
 
8147
8131
  driver_node_type_id: Optional[str] = None
8148
8132
  """The node type of the Spark driver. Note that this field is optional; if unset, the driver node
8149
- type will be set as the same value as ``node_type_id`` defined above.
8150
-
8151
- This field, along with node_type_id, should not be set if virtual_cluster_size is set. If both
8152
- driver_node_type_id, node_type_id, and virtual_cluster_size are specified, driver_node_type_id
8153
- and node_type_id take precedence."""
8133
+ type will be set as the same value as ``node_type_id`` defined above."""
8154
8134
 
8155
8135
  enable_elastic_disk: Optional[bool] = None
8156
8136
  """Autoscaling Local Storage: when enabled, this cluster will dynamically acquire additional disk
@@ -9149,10 +9129,6 @@ class ClustersAPI:
9149
9129
  :param driver_node_type_id: str (optional)
9150
9130
  The node type of the Spark driver. Note that this field is optional; if unset, the driver node type
9151
9131
  will be set as the same value as ``node_type_id`` defined above.
9152
-
9153
- This field, along with node_type_id, should not be set if virtual_cluster_size is set. If both
9154
- driver_node_type_id, node_type_id, and virtual_cluster_size are specified, driver_node_type_id and
9155
- node_type_id take precedence.
9156
9132
  :param enable_elastic_disk: bool (optional)
9157
9133
  Autoscaling Local Storage: when enabled, this cluster will dynamically acquire additional disk space
9158
9134
  when its Spark workers are running low on disk space.
@@ -9542,10 +9518,6 @@ class ClustersAPI:
9542
9518
  :param driver_node_type_id: str (optional)
9543
9519
  The node type of the Spark driver. Note that this field is optional; if unset, the driver node type
9544
9520
  will be set as the same value as ``node_type_id`` defined above.
9545
-
9546
- This field, along with node_type_id, should not be set if virtual_cluster_size is set. If both
9547
- driver_node_type_id, node_type_id, and virtual_cluster_size are specified, driver_node_type_id and
9548
- node_type_id take precedence.
9549
9521
  :param enable_elastic_disk: bool (optional)
9550
9522
  Autoscaling Local Storage: when enabled, this cluster will dynamically acquire additional disk space
9551
9523
  when its Spark workers are running low on disk space.
@@ -58,6 +58,13 @@ class FailoverGroup:
58
58
  etag: Optional[str] = None
59
59
  """Opaque version string for optimistic locking. Server-generated and returned in responses."""
60
60
 
61
+ has_replication_point_blocking_errors: Optional[bool] = None
62
+ """True if errors currently block the replication point."""
63
+
64
+ initial_replication_progress: Optional[InitialReplicationProgress] = None
65
+ """Initial replication progress of all in-scope assets. Set only when the FailoverGroup is in
66
+ INITIAL_REPLICATION state."""
67
+
61
68
  name: Optional[str] = None
62
69
  """Fully qualified resource name in the format
63
70
  accounts/{account_id}/failover-groups/{failover_group_id}."""
@@ -83,8 +90,12 @@ class FailoverGroup:
83
90
  body["effective_primary_region"] = self.effective_primary_region
84
91
  if self.etag is not None:
85
92
  body["etag"] = self.etag
93
+ if self.has_replication_point_blocking_errors is not None:
94
+ body["has_replication_point_blocking_errors"] = self.has_replication_point_blocking_errors
86
95
  if self.initial_primary_region is not None:
87
96
  body["initial_primary_region"] = self.initial_primary_region
97
+ if self.initial_replication_progress:
98
+ body["initial_replication_progress"] = self.initial_replication_progress.as_dict()
88
99
  if self.name is not None:
89
100
  body["name"] = self.name
90
101
  if self.regions:
@@ -110,8 +121,12 @@ class FailoverGroup:
110
121
  body["effective_primary_region"] = self.effective_primary_region
111
122
  if self.etag is not None:
112
123
  body["etag"] = self.etag
124
+ if self.has_replication_point_blocking_errors is not None:
125
+ body["has_replication_point_blocking_errors"] = self.has_replication_point_blocking_errors
113
126
  if self.initial_primary_region is not None:
114
127
  body["initial_primary_region"] = self.initial_primary_region
128
+ if self.initial_replication_progress:
129
+ body["initial_replication_progress"] = self.initial_replication_progress
115
130
  if self.name is not None:
116
131
  body["name"] = self.name
117
132
  if self.regions:
@@ -135,7 +150,9 @@ class FailoverGroup:
135
150
  create_time=_timestamp(d, "create_time"),
136
151
  effective_primary_region=d.get("effective_primary_region", None),
137
152
  etag=d.get("etag", None),
153
+ has_replication_point_blocking_errors=d.get("has_replication_point_blocking_errors", None),
138
154
  initial_primary_region=d.get("initial_primary_region", None),
155
+ initial_replication_progress=_from_dict(d, "initial_replication_progress", InitialReplicationProgress),
139
156
  name=d.get("name", None),
140
157
  regions=d.get("regions", None),
141
158
  replication_point=_timestamp(d, "replication_point"),
@@ -159,6 +176,34 @@ class FailoverGroupState(Enum):
159
176
  INITIAL_REPLICATION = "INITIAL_REPLICATION"
160
177
 
161
178
 
179
+ @dataclass
180
+ class InitialReplicationProgress:
181
+ """Progress of the initial replication of all in-scope assets (Unity Catalog and workspace assets)
182
+ of a FailoverGroup. Populated only while the FailoverGroup is in INITIAL_REPLICATION."""
183
+
184
+ completed: Optional[int] = None
185
+ """Percent complete, 0-100."""
186
+
187
+ def as_dict(self) -> dict:
188
+ """Serializes the InitialReplicationProgress into a dictionary suitable for use as a JSON request body."""
189
+ body = {}
190
+ if self.completed is not None:
191
+ body["completed"] = self.completed
192
+ return body
193
+
194
+ def as_shallow_dict(self) -> dict:
195
+ """Serializes the InitialReplicationProgress into a shallow dictionary of its immediate attributes."""
196
+ body = {}
197
+ if self.completed is not None:
198
+ body["completed"] = self.completed
199
+ return body
200
+
201
+ @classmethod
202
+ def from_dict(cls, d: Dict[str, Any]) -> InitialReplicationProgress:
203
+ """Deserializes the InitialReplicationProgress from a dictionary."""
204
+ return cls(completed=d.get("completed", None))
205
+
206
+
162
207
  @dataclass
163
208
  class ListFailoverGroupsResponse:
164
209
  """Response for listing failover groups."""