diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha
index 73633aa1e..037327042 100755
--- a/.codegen/_openapi_sha
+++ b/.codegen/_openapi_sha
@@ -1 +1 @@
-bd6e15a1d13c8bf0fcaa1675bde0fd8fa37df2d0
\ No newline at end of file
+0555d6a59265799ed8ea12f355eee662e739430d
\ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
index 6c402aa3c..ab4d15cbc 100755
--- a/.gitattributes
+++ b/.gitattributes
@@ -1404,6 +1404,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListSortOrder.j
databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListUsersRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListUsersResponse.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListWorkspaceAssignmentRequest.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/MeRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/MigratePermissionsRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/MigratePermissionsResponse.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/Name.java linguist-generated=true
@@ -2507,6 +2508,8 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/SyncedTabl
databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/SyncedTableSyncedTableSpec.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/SyncedTableSyncedTableSpecSyncedTableSchedulingPolicy.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/SyncedTableSyncedTableStatus.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/UndeleteBranchOperation.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/UndeleteBranchRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/UndeleteProjectOperation.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/UndeleteProjectRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/UpdateBranchOperation.java linguist-generated=true
diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md
old mode 100644
new mode 100755
index 4cde6fca1..835569c98
--- a/NEXT_CHANGELOG.md
+++ b/NEXT_CHANGELOG.md
@@ -15,3 +15,16 @@
### Internal Changes
### API Changes
+* Add `undeleteBranch()` method for `workspaceClient.postgres()` service.
+* Add `attributes` and `excludedAttributes` fields for `com.databricks.sdk.service.iam.MeRequest`.
+* Add `includeTriggerState` field for `com.databricks.sdk.service.jobs.GetJobRequest`.
+* Add `deleteTime` and `purgeTime` fields for `com.databricks.sdk.service.postgres.BranchStatus`.
+* Add `purge` field for `com.databricks.sdk.service.postgres.DeleteBranchRequest`.
+* Add `showDeleted` field for `com.databricks.sdk.service.postgres.ListBranchesRequest`.
+* Add `DELETED` enum value for `com.databricks.sdk.service.postgres.BranchStatusState`.
+* [Breaking] Change `actionType` and `resourceId` fields for `com.databricks.sdk.service.bundle.Operation` to be required.
+* Change `actionType` and `resourceId` fields for `com.databricks.sdk.service.bundle.Operation` to be required.
+* Change `cliVersion` field for `com.databricks.sdk.service.bundle.Version` to be required.
+* [Breaking] Change `cliVersion` field for `com.databricks.sdk.service.bundle.Version` to be required.
+* [Breaking] Change `tags` field for `com.databricks.sdk.service.marketplace.ListListingsRequest` to type `com.databricks.sdk.service.marketplace.ListingTag` class.
+* [Breaking] Change pagination for `workspaceClient.clusters().events()` method.
\ No newline at end of file
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/bundle/Operation.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/bundle/Operation.java
index cb9298c97..ea8faae37 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/bundle/Operation.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/bundle/Operation.java
@@ -37,10 +37,7 @@ public class Operation {
@JsonProperty("name")
private String name;
- /**
- * ID reference for the actual resource in the workspace (e.g. the job ID, pipeline ID). Should be
- * unset for delete operations.
- */
+ /** ID reference for the actual resource in the workspace (e.g. the job ID, pipeline ID). */
@JsonProperty("resource_id")
private String resourceId;
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurableKind.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurableKind.java
index e53628277..2b1fdebed 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurableKind.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurableKind.java
@@ -4,12 +4,7 @@
import com.databricks.sdk.support.Generated;
-/**
- * Specific variant of a SecurableType: identifies the concrete implementation or backing system for
- * a UC securable (e.g. CATALOG_STANDARD vs CATALOG_DELTASHARING; MEMORY_STORE_STANDARD for
- * Conversations-backed memory stores). Used to dispatch type-specific handling in the entity model.
- * Latest kind: MEMORY_STORE_STANDARD = 330; Next id: 331
- */
+/** Latest kind: MODEL_SERVICE_SYSTEM_DELTASHARING = 330; Next id: 331 */
@Generated
public enum SecurableKind {
TABLE_DB_STORAGE,
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/Environment.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/Environment.java
index ed2aff3d6..4c9b5894d 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/Environment.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/Environment.java
@@ -22,7 +22,10 @@ public class Environment {
* Databricks-provided base environment ID (e.g., `workspace-base-environments/databricks_ai_v4`)
* and workspace base environment ID (e.g.,
* `workspace-base-environments/dbe_b849b66e-b31a-4cb5-b161-1f2b10877fb7`) is in Beta. Either
- * `environment_version` or `base_environment` can be provided. For more information, see
+ * `environment_version` or `base_environment` can be provided. For more information about
+ * Databricks-provided base environments, see the [list workspace base
+ * environments](:method:Environments/ListWorkspaceBaseEnvironments) API. For more information,
+ * see
*/
@JsonProperty("base_environment")
private String baseEnvironment;
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/environments/EnvironmentsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/environments/EnvironmentsAPI.java
index 6f37f8f89..c00f8101c 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/environments/EnvironmentsAPI.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/environments/EnvironmentsAPI.java
@@ -91,7 +91,21 @@ public WorkspaceBaseEnvironment getWorkspaceBaseEnvironment(
return impl.getWorkspaceBaseEnvironment(request);
}
- /** Lists all WorkspaceBaseEnvironments in the workspace. */
+ /**
+ * Lists all WorkspaceBaseEnvironments in the workspace.
+ *
+ *
Databricks provides the following base environments:
+ *
+ *
- `workspace-base-environments/databricks_ai_...`: includes popular AI and deep learning
+ * packages for serverless GPU compute.
+ *
+ *
- `workspace-base-environments/databricks_ml_...`: includes popular ML packages for
+ * serverless compute.
+ *
+ *
Databricks-provided base environments are versioned. For example,
+ * `workspace-base-environments/databricks_ml_v5` corresponds to the ML environment built on
+ * environment version 5.
+ */
public Iterable listWorkspaceBaseEnvironments(
ListWorkspaceBaseEnvironmentsRequest request) {
return new Paginator<>(
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/environments/EnvironmentsService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/environments/EnvironmentsService.java
index 3016ef103..945f703d8 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/environments/EnvironmentsService.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/environments/EnvironmentsService.java
@@ -50,7 +50,21 @@ DefaultWorkspaceBaseEnvironment getDefaultWorkspaceBaseEnvironment(
WorkspaceBaseEnvironment getWorkspaceBaseEnvironment(
GetWorkspaceBaseEnvironmentRequest getWorkspaceBaseEnvironmentRequest);
- /** Lists all WorkspaceBaseEnvironments in the workspace. */
+ /**
+ * Lists all WorkspaceBaseEnvironments in the workspace.
+ *
+ * Databricks provides the following base environments:
+ *
+ *
- `workspace-base-environments/databricks_ai_...`: includes popular AI and deep learning
+ * packages for serverless GPU compute.
+ *
+ *
- `workspace-base-environments/databricks_ml_...`: includes popular ML packages for
+ * serverless compute.
+ *
+ *
Databricks-provided base environments are versioned. For example,
+ * `workspace-base-environments/databricks_ml_v5` corresponds to the ML environment built on
+ * environment version 5.
+ */
ListWorkspaceBaseEnvironmentsResponse listWorkspaceBaseEnvironments(
ListWorkspaceBaseEnvironmentsRequest listWorkspaceBaseEnvironmentsRequest);
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserAPI.java
index 302fcff03..9434e2b50 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserAPI.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserAPI.java
@@ -26,8 +26,8 @@ public CurrentUserAPI(CurrentUserService mock) {
}
/** Get details about the current method caller's identity. */
- public User me() {
- return impl.me();
+ public User me(MeRequest request) {
+ return impl.me(request);
}
public CurrentUserService impl() {
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserImpl.java
index 8c22d2f91..8b04e6aae 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserImpl.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserImpl.java
@@ -17,11 +17,12 @@ public CurrentUserImpl(ApiClient apiClient) {
}
@Override
- public User me() {
+ public User me(MeRequest request) {
String path = "/api/2.0/preview/scim/v2/Me";
try {
Request req = new Request("GET", path);
+ ApiClient.setQuery(req, request);
req.withHeader("Accept", "application/json");
if (apiClient.workspaceId() != null) {
req.withHeader("X-Databricks-Org-Id", apiClient.workspaceId());
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserService.java
index ae5466cce..b34451e8f 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserService.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserService.java
@@ -13,5 +13,5 @@
@Generated
public interface CurrentUserService {
/** Get details about the current method caller's identity. */
- User me();
+ User me(MeRequest meRequest);
}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/MeRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/MeRequest.java
new file mode 100755
index 000000000..83cb7525b
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/MeRequest.java
@@ -0,0 +1,62 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.iam;
+
+import com.databricks.sdk.support.Generated;
+import com.databricks.sdk.support.QueryParam;
+import com.databricks.sdk.support.ToStringer;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import java.util.Objects;
+
+@Generated
+public class MeRequest {
+ /** Comma-separated list of attributes to return in response. */
+ @JsonIgnore
+ @QueryParam("attributes")
+ private String attributes;
+
+ /** Comma-separated list of attributes to exclude in response. */
+ @JsonIgnore
+ @QueryParam("excludedAttributes")
+ private String excludedAttributes;
+
+ public MeRequest setAttributes(String attributes) {
+ this.attributes = attributes;
+ return this;
+ }
+
+ public String getAttributes() {
+ return attributes;
+ }
+
+ public MeRequest setExcludedAttributes(String excludedAttributes) {
+ this.excludedAttributes = excludedAttributes;
+ return this;
+ }
+
+ public String getExcludedAttributes() {
+ return excludedAttributes;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ MeRequest that = (MeRequest) o;
+ return Objects.equals(attributes, that.attributes)
+ && Objects.equals(excludedAttributes, that.excludedAttributes);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, excludedAttributes);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(MeRequest.class)
+ .add("attributes", attributes)
+ .add("excludedAttributes", excludedAttributes)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/GetJobRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/GetJobRequest.java
index 782000d0b..2496d1d02 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/GetJobRequest.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/GetJobRequest.java
@@ -10,6 +10,11 @@
@Generated
public class GetJobRequest {
+ /** Flag that indicates that trigger state should be included in the response. */
+ @JsonIgnore
+ @QueryParam("include_trigger_state")
+ private Boolean includeTriggerState;
+
/** The canonical identifier of the job to retrieve information about. This field is required. */
@JsonIgnore
@QueryParam("job_id")
@@ -23,6 +28,15 @@ public class GetJobRequest {
@QueryParam("page_token")
private String pageToken;
+ public GetJobRequest setIncludeTriggerState(Boolean includeTriggerState) {
+ this.includeTriggerState = includeTriggerState;
+ return this;
+ }
+
+ public Boolean getIncludeTriggerState() {
+ return includeTriggerState;
+ }
+
public GetJobRequest setJobId(Long jobId) {
this.jobId = jobId;
return this;
@@ -46,17 +60,20 @@ public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
GetJobRequest that = (GetJobRequest) o;
- return Objects.equals(jobId, that.jobId) && Objects.equals(pageToken, that.pageToken);
+ return Objects.equals(includeTriggerState, that.includeTriggerState)
+ && Objects.equals(jobId, that.jobId)
+ && Objects.equals(pageToken, that.pageToken);
}
@Override
public int hashCode() {
- return Objects.hash(jobId, pageToken);
+ return Objects.hash(includeTriggerState, jobId, pageToken);
}
@Override
public String toString() {
return new ToStringer(GetJobRequest.class)
+ .add("includeTriggerState", includeTriggerState)
.add("jobId", jobId)
.add("pageToken", pageToken)
.toString();
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ListListingsRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ListListingsRequest.java
index 2cc8fd092..c6a6cdc6d 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ListListingsRequest.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ListListingsRequest.java
@@ -51,10 +51,10 @@ public class ListListingsRequest {
@QueryParam("provider_ids")
private Collection providerIds;
- /** Matches any of the following tags */
+ /** Matches listings with this tag */
@JsonIgnore
@QueryParam("tags")
- private Collection tags;
+ private ListingTag tags;
public ListListingsRequest setAssets(Collection assets) {
this.assets = assets;
@@ -128,12 +128,12 @@ public Collection getProviderIds() {
return providerIds;
}
- public ListListingsRequest setTags(Collection tags) {
+ public ListListingsRequest setTags(ListingTag tags) {
this.tags = tags;
return this;
}
- public Collection getTags() {
+ public ListingTag getTags() {
return tags;
}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/BranchStatus.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/BranchStatus.java
index 584b6ebcf..9b4dde230 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/BranchStatus.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/BranchStatus.java
@@ -29,6 +29,10 @@ public class BranchStatus {
@JsonProperty("default")
private Boolean defaultValue;
+ /** A timestamp indicating when the branch was deleted. Empty if the branch is not deleted. */
+ @JsonProperty("delete_time")
+ private Timestamp deleteTime;
+
/** Absolute expiration time for the branch. Empty if expiration is disabled. */
@JsonProperty("expire_time")
private Timestamp expireTime;
@@ -45,6 +49,13 @@ public class BranchStatus {
@JsonProperty("pending_state")
private BranchStatusState pendingState;
+ /**
+ * A timestamp indicating when the branch is scheduled to be purged. Empty if the branch is not
+ * deleted, otherwise set to a timestamp in the future.
+ */
+ @JsonProperty("purge_time")
+ private Timestamp purgeTime;
+
/**
* The name of the source branch from which this branch was created. Format:
* projects/{project_id}/branches/{branch_id}
@@ -91,6 +102,15 @@ public Boolean getDefault() {
return defaultValue;
}
+ public BranchStatus setDeleteTime(Timestamp deleteTime) {
+ this.deleteTime = deleteTime;
+ return this;
+ }
+
+ public Timestamp getDeleteTime() {
+ return deleteTime;
+ }
+
public BranchStatus setExpireTime(Timestamp expireTime) {
this.expireTime = expireTime;
return this;
@@ -127,6 +147,15 @@ public BranchStatusState getPendingState() {
return pendingState;
}
+ public BranchStatus setPurgeTime(Timestamp purgeTime) {
+ this.purgeTime = purgeTime;
+ return this;
+ }
+
+ public Timestamp getPurgeTime() {
+ return purgeTime;
+ }
+
public BranchStatus setSourceBranch(String sourceBranch) {
this.sourceBranch = sourceBranch;
return this;
@@ -171,10 +200,12 @@ public boolean equals(Object o) {
return Objects.equals(branchId, that.branchId)
&& Objects.equals(currentState, that.currentState)
&& Objects.equals(defaultValue, that.defaultValue)
+ && Objects.equals(deleteTime, that.deleteTime)
&& Objects.equals(expireTime, that.expireTime)
&& Objects.equals(isProtected, that.isProtected)
&& Objects.equals(logicalSizeBytes, that.logicalSizeBytes)
&& Objects.equals(pendingState, that.pendingState)
+ && Objects.equals(purgeTime, that.purgeTime)
&& Objects.equals(sourceBranch, that.sourceBranch)
&& Objects.equals(sourceBranchLsn, that.sourceBranchLsn)
&& Objects.equals(sourceBranchTime, that.sourceBranchTime)
@@ -187,10 +218,12 @@ public int hashCode() {
branchId,
currentState,
defaultValue,
+ deleteTime,
expireTime,
isProtected,
logicalSizeBytes,
pendingState,
+ purgeTime,
sourceBranch,
sourceBranchLsn,
sourceBranchTime,
@@ -203,10 +236,12 @@ public String toString() {
.add("branchId", branchId)
.add("currentState", currentState)
.add("defaultValue", defaultValue)
+ .add("deleteTime", deleteTime)
.add("expireTime", expireTime)
.add("isProtected", isProtected)
.add("logicalSizeBytes", logicalSizeBytes)
.add("pendingState", pendingState)
+ .add("purgeTime", purgeTime)
.add("sourceBranch", sourceBranch)
.add("sourceBranchLsn", sourceBranchLsn)
.add("sourceBranchTime", sourceBranchTime)
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/BranchStatusState.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/BranchStatusState.java
index a617f80a0..ff89f0cc7 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/BranchStatusState.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/BranchStatusState.java
@@ -8,6 +8,7 @@
@Generated
public enum BranchStatusState {
ARCHIVED,
+ DELETED,
IMPORTING,
INIT,
READY,
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/DeleteBranchRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/DeleteBranchRequest.java
index 00f0f3460..f65faca4a 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/DeleteBranchRequest.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/DeleteBranchRequest.java
@@ -3,6 +3,7 @@
package com.databricks.sdk.service.postgres;
import com.databricks.sdk.support.Generated;
+import com.databricks.sdk.support.QueryParam;
import com.databricks.sdk.support.ToStringer;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.Objects;
@@ -15,6 +16,11 @@ public class DeleteBranchRequest {
*/
@JsonIgnore private String name;
+ /** If true, permanently delete the branch; if false, soft delete. */
+ @JsonIgnore
+ @QueryParam("purge")
+ private Boolean purge;
+
public DeleteBranchRequest setName(String name) {
this.name = name;
return this;
@@ -24,21 +30,33 @@ public String getName() {
return name;
}
+ public DeleteBranchRequest setPurge(Boolean purge) {
+ this.purge = purge;
+ return this;
+ }
+
+ public Boolean getPurge() {
+ return purge;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DeleteBranchRequest that = (DeleteBranchRequest) o;
- return Objects.equals(name, that.name);
+ return Objects.equals(name, that.name) && Objects.equals(purge, that.purge);
}
@Override
public int hashCode() {
- return Objects.hash(name);
+ return Objects.hash(name, purge);
}
@Override
public String toString() {
- return new ToStringer(DeleteBranchRequest.class).add("name", name).toString();
+ return new ToStringer(DeleteBranchRequest.class)
+ .add("name", name)
+ .add("purge", purge)
+ .toString();
}
}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/ListBranchesRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/ListBranchesRequest.java
index 4957cac59..86988f9c3 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/ListBranchesRequest.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/ListBranchesRequest.java
@@ -23,6 +23,14 @@ public class ListBranchesRequest {
/** The Project that owns this collection of branches. Format: projects/{project_id} */
@JsonIgnore private String parent;
+ /**
+ * Whether to include soft-deleted branches in the response. When true, deleted branches are
+ * included alongside active branches. Purged branches are never returned.
+ */
+ @JsonIgnore
+ @QueryParam("show_deleted")
+ private Boolean showDeleted;
+
public ListBranchesRequest setPageSize(Long pageSize) {
this.pageSize = pageSize;
return this;
@@ -50,6 +58,15 @@ public String getParent() {
return parent;
}
+ public ListBranchesRequest setShowDeleted(Boolean showDeleted) {
+ this.showDeleted = showDeleted;
+ return this;
+ }
+
+ public Boolean getShowDeleted() {
+ return showDeleted;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
@@ -57,12 +74,13 @@ public boolean equals(Object o) {
ListBranchesRequest that = (ListBranchesRequest) o;
return Objects.equals(pageSize, that.pageSize)
&& Objects.equals(pageToken, that.pageToken)
- && Objects.equals(parent, that.parent);
+ && Objects.equals(parent, that.parent)
+ && Objects.equals(showDeleted, that.showDeleted);
}
@Override
public int hashCode() {
- return Objects.hash(pageSize, pageToken, parent);
+ return Objects.hash(pageSize, pageToken, parent, showDeleted);
}
@Override
@@ -71,6 +89,7 @@ public String toString() {
.add("pageSize", pageSize)
.add("pageToken", pageToken)
.add("parent", parent)
+ .add("showDeleted", showDeleted)
.toString();
}
}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresAPI.java
index abe5c04ec..255b88164 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresAPI.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresAPI.java
@@ -333,6 +333,12 @@ public Iterable listRoles(ListRolesRequest request) {
});
}
+ /** Undeletes the specified database branch. */
+ public UndeleteBranchOperation undeleteBranch(UndeleteBranchRequest request) {
+ Operation operation = impl.undeleteBranch(request);
+ return new UndeleteBranchOperation(impl, operation);
+ }
+
/** Undeletes a soft-deleted project. */
public UndeleteProjectOperation undeleteProject(UndeleteProjectRequest request) {
Operation operation = impl.undeleteProject(request);
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresImpl.java
index b6981a62d..396c52f34 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresImpl.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresImpl.java
@@ -500,6 +500,24 @@ public ListRolesResponse listRoles(ListRolesRequest request) {
}
}
+ @Override
+ public Operation undeleteBranch(UndeleteBranchRequest request) {
+ String path = String.format("/api/2.0/postgres/%s/undelete", request.getName());
+ try {
+ Request req = new Request("POST", path, apiClient.serialize(request));
+
+ ApiClient.setQuery(req, request);
+ req.withHeader("Accept", "application/json");
+ req.withHeader("Content-Type", "application/json");
+ if (apiClient.workspaceId() != null) {
+ req.withHeader("X-Databricks-Org-Id", apiClient.workspaceId());
+ }
+ return apiClient.execute(req, Operation.class);
+ } catch (IOException e) {
+ throw new DatabricksException("IO error: " + e.getMessage(), e);
+ }
+ }
+
@Override
public Operation undeleteProject(UndeleteProjectRequest request) {
String path = String.format("/api/2.0/postgres/%s/undelete", request.getName());
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresService.java
index 4c767cb90..a728f5e23 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresService.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresService.java
@@ -124,6 +124,9 @@ DatabaseCredential generateDatabaseCredential(
/** Returns a paginated list of Postgres roles in the branch. */
ListRolesResponse listRoles(ListRolesRequest listRolesRequest);
+ /** Undeletes the specified database branch. */
+ Operation undeleteBranch(UndeleteBranchRequest undeleteBranchRequest);
+
/** Undeletes a soft-deleted project. */
Operation undeleteProject(UndeleteProjectRequest undeleteProjectRequest);
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/UndeleteBranchOperation.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/UndeleteBranchOperation.java
new file mode 100755
index 000000000..b02c73fb5
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/UndeleteBranchOperation.java
@@ -0,0 +1,162 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+package com.databricks.sdk.service.postgres;
+
+import com.databricks.sdk.core.DatabricksException;
+import com.databricks.sdk.core.logging.Logger;
+import com.databricks.sdk.core.logging.LoggerFactory;
+import com.databricks.sdk.core.utils.SerDeUtils;
+import com.databricks.sdk.service.common.lro.LroOptions;
+import com.databricks.sdk.support.Generated;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import java.time.Duration;
+import java.util.Optional;
+import java.util.concurrent.TimeoutException;
+
+/**
+ * Wrapper for interacting with a long-running undeleteBranch operation. Provides methods to wait
+ * for completion, check status, cancel, and access metadata.
+ */
+@Generated
+public class UndeleteBranchOperation {
+ private static final Logger LOG = LoggerFactory.getLogger(UndeleteBranchOperation.class);
+
+ private final PostgresService impl;
+ private Operation operation;
+ private final ObjectMapper objectMapper;
+
+ public UndeleteBranchOperation(PostgresService impl, Operation operation) {
+ this.impl = impl;
+ this.operation = operation;
+ this.objectMapper = SerDeUtils.createMapper();
+ }
+
+ /**
+ * Wait for the operation to complete and return the resulting . Waits indefinitely if no timeout
+ * is specified.
+ *
+ * @return the created
+ * @throws TimeoutException if the operation doesn't complete within the timeout
+ * @throws DatabricksException if the operation fails
+ */
+ public void waitForCompletion() throws TimeoutException {
+ waitForCompletion(Optional.empty());
+ }
+
+ /**
+ * Wait for the operation to complete and return the resulting .
+ *
+ * @param options the options for configuring the wait behavior, can be empty for defaults
+ * @return the created
+ * @throws TimeoutException if the operation doesn't complete within the timeout
+ * @throws DatabricksException if the operation fails
+ */
+ public void waitForCompletion(Optional options) throws TimeoutException {
+ Optional timeout = options.flatMap(LroOptions::getTimeout);
+ long deadline =
+ timeout.isPresent()
+ ? System.currentTimeMillis() + timeout.get().toMillis()
+ : Long.MAX_VALUE;
+ String statusMessage = "polling operation...";
+ int attempt = 1;
+
+ while (System.currentTimeMillis() < deadline) {
+ // Refresh the operation state
+ refreshOperation();
+
+ if (operation.getDone() != null && operation.getDone()) {
+ // Operation completed, check for success or failure
+ if (operation.getError() != null) {
+ String errorMsg = "unknown error";
+ if (operation.getError().getMessage() != null
+ && !operation.getError().getMessage().isEmpty()) {
+ errorMsg = operation.getError().getMessage();
+ }
+
+ if (operation.getError().getErrorCode() != null) {
+ errorMsg = String.format("[%s] %s", operation.getError().getErrorCode(), errorMsg);
+ }
+
+ throw new DatabricksException("Operation failed: " + errorMsg);
+ }
+
+ // Operation completed successfully, unmarshal response
+ if (operation.getResponse() == null) {
+ throw new DatabricksException("Operation completed but no response available");
+ }
+
+ try {
+ JsonNode responseJson = objectMapper.valueToTree(operation.getResponse());
+ objectMapper.treeToValue(responseJson, Void.class);
+ return;
+ } catch (JsonProcessingException e) {
+ throw new DatabricksException("Failed to unmarshal response: " + e.getMessage(), e);
+ }
+ }
+
+ // Operation still in progress, wait before polling again
+ String prefix = String.format("operation=%s", operation.getName());
+ int sleep = Math.min(attempt, 10); // sleep 10s max per attempt
+ LOG.info("{}: operation in progress (sleeping ~{}s)", prefix, sleep);
+
+ try {
+ Thread.sleep((long) (sleep * 1000L + Math.random() * 1000));
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ throw new DatabricksException("Current thread was interrupted", e);
+ }
+ attempt++;
+ }
+
+ String timeoutMessage =
+ timeout.isPresent()
+ ? String.format("Operation timed out after %s: %s", timeout.get(), statusMessage)
+ : String.format("Operation timed out: %s", statusMessage);
+ throw new TimeoutException(timeoutMessage);
+ }
+
+ /**
+ * Get the operation name.
+ *
+ * @return the operation name
+ */
+ public String getName() {
+ return operation.getName();
+ }
+
+ /**
+ * Get the operation metadata.
+ *
+ * @return the operation metadata, or null if not available
+ * @throws DatabricksException if the metadata cannot be deserialized
+ */
+ public BranchOperationMetadata getMetadata() {
+ if (operation.getMetadata() == null) {
+ return null;
+ }
+
+ try {
+ JsonNode metadataJson = objectMapper.valueToTree(operation.getMetadata());
+ return objectMapper.treeToValue(metadataJson, BranchOperationMetadata.class);
+ } catch (JsonProcessingException e) {
+ throw new DatabricksException("Failed to unmarshal operation metadata: " + e.getMessage(), e);
+ }
+ }
+
+ /**
+ * Check if the operation is done. This method refreshes the operation state before checking.
+ *
+ * @return true if the operation is complete, false otherwise
+ * @throws DatabricksException if the status check fails
+ */
+ public boolean isDone() {
+ refreshOperation();
+ return operation.getDone() != null && operation.getDone();
+ }
+
+ /** Refresh the operation state by polling the server. */
+ private void refreshOperation() {
+ operation = impl.getOperation(new GetOperationRequest().setName(operation.getName()));
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/UndeleteBranchRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/UndeleteBranchRequest.java
new file mode 100755
index 000000000..1431d082b
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/UndeleteBranchRequest.java
@@ -0,0 +1,44 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.postgres;
+
+import com.databricks.sdk.support.Generated;
+import com.databricks.sdk.support.ToStringer;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import java.util.Objects;
+
+@Generated
+public class UndeleteBranchRequest {
+ /**
+ * The full resource path of the branch to undelete. Format:
+ * projects/{project_id}/branches/{branch_id}
+ */
+ @JsonIgnore private String name;
+
+ public UndeleteBranchRequest setName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ UndeleteBranchRequest that = (UndeleteBranchRequest) o;
+ return Objects.equals(name, that.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(UndeleteBranchRequest.class).add("name", name).toString();
+ }
+}