diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha index ddc34be53..76599c0a1 100755 --- a/.codegen/_openapi_sha +++ b/.codegen/_openapi_sha @@ -1 +1 @@ -4811189a6ca18d0632b06ad1d44b696a0a17dbe4 \ No newline at end of file +e3586ea1d9b0c6df1b28f95888a425958b13b582 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index 043b34c6a..b993beca5 100755 --- a/.gitattributes +++ b/.gitattributes @@ -1348,6 +1348,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2A databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2Impl.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2Service.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/Actor.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AutoscopeState.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CheckPolicyRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CheckPolicyResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ComplexValue.java linguist-generated=true @@ -3114,6 +3115,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdatePers databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdatePrivateEndpointRule.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateRestrictWorkspaceAdminsSettingRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateSqlResultsDownloadRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateTokenManagementRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateTokenRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateTokenResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateWorkspaceNetworkOptionRequest.java linguist-generated=true diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md old mode 100644 new mode 100755 index b96103974..f4722c1f3 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -16,3 +16,10 @@ * Switch workspace addressing header on workspace-scoped API calls from `X-Databricks-Org-Id` to `X-Databricks-Workspace-Id`. The value continues to come from the `DATABRICKS_WORKSPACE_ID` environment variable / `DatabricksConfig.setWorkspaceId()` setter, and now accepts either a classic numeric workspace ID or another workspace identifier format (server disambiguates). Mirrors [databricks/databricks-sdk-go#1688](https://github.com/databricks/databricks-sdk-go/pull/1688). ### API Changes +* Add `updateTokenManagement()` method for `workspaceClient.tokenManagement()` service. +* Add `deploymentId` and `versionId` fields for `com.databricks.sdk.service.jobs.JobDeployment`. +* Add `deploymentId` and `versionId` fields for `com.databricks.sdk.service.pipelines.PipelineDeployment`. +* Add `autoscopeEnabled` field for `com.databricks.sdk.service.settings.CreateOboTokenRequest`. +* Add `autoscopeEnabled` field for `com.databricks.sdk.service.settings.CreateTokenRequest`. +* Add `autoscopeState`, `backfillScopes`, `inferredScopes` and `scopes` fields for `com.databricks.sdk.service.settings.PublicTokenInfo`. +* Add `autoscopeState`, `backfillScopes`, `inferredScopes` and `scopes` fields for `com.databricks.sdk.service.settings.TokenInfo`. \ No newline at end of file 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 34bd9f8e3..3f98a7563 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,7 +4,7 @@ import com.databricks.sdk.support.Generated; -/** Latest kind: CONNECTION_GOOGLE_CLOUD_LAKEHOUSE_SERVICE_ACCOUNT = 340; Next id: 341 */ +/** Latest kind: CONNECTION_GOOGLE_CLOUD_LAKEHOUSE_SERVICE_ACCOUNT = 340; Next id: 342 */ @Generated public enum SecurableKind { TABLE_DB_STORAGE, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AutoscopeState.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AutoscopeState.java new file mode 100755 index 000000000..b3c32a43b --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AutoscopeState.java @@ -0,0 +1,21 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.support.Generated; + +/** + * State of inferred scope collection (autoscope) for an external PAT. Mirrored in + * databricks.identity.AutoscopeState in common/principal-context/api/proto/tokendetails.proto. + * Token store and token management proto can depend on this. Principal context proto should NOT + * depend on this proto definitions because too many services depend on the principal context proto. + */ +@Generated +public enum AutoscopeState { + AUTOSCOPE_STATE_API_NOT_COVERED, + AUTOSCOPE_STATE_BACKFILLED, + AUTOSCOPE_STATE_COMPLETED, + AUTOSCOPE_STATE_DISABLED, + AUTOSCOPE_STATE_RUNNING, + AUTOSCOPE_STATE_USER_SELECTED, +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobDeployment.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobDeployment.java index 26483f7a5..50e139e4b 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobDeployment.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobDeployment.java @@ -9,6 +9,13 @@ @Generated public class JobDeployment { + /** + * ID of the deployment that manages this job. Only set when `kind` is `BUNDLE`. Used to look up + * deployment metadata from the Deployment Metadata service. + */ + @JsonProperty("deployment_id") + private String deploymentId; + /** * The kind of deployment that manages the job. * @@ -22,6 +29,22 @@ public class JobDeployment { @JsonProperty("metadata_file_path") private String metadataFilePath; + /** + * ID of the version of the deployment that produced this job. Only set when `kind` is `BUNDLE`. + * Identifies a specific snapshot of the deployment in the Deployment Metadata service. + */ + @JsonProperty("version_id") + private String versionId; + + public JobDeployment setDeploymentId(String deploymentId) { + this.deploymentId = deploymentId; + return this; + } + + public String getDeploymentId() { + return deploymentId; + } + public JobDeployment setKind(JobDeploymentKind kind) { this.kind = kind; return this; @@ -40,25 +63,38 @@ public String getMetadataFilePath() { return metadataFilePath; } + public JobDeployment setVersionId(String versionId) { + this.versionId = versionId; + return this; + } + + public String getVersionId() { + return versionId; + } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; JobDeployment that = (JobDeployment) o; - return Objects.equals(kind, that.kind) - && Objects.equals(metadataFilePath, that.metadataFilePath); + return Objects.equals(deploymentId, that.deploymentId) + && Objects.equals(kind, that.kind) + && Objects.equals(metadataFilePath, that.metadataFilePath) + && Objects.equals(versionId, that.versionId); } @Override public int hashCode() { - return Objects.hash(kind, metadataFilePath); + return Objects.hash(deploymentId, kind, metadataFilePath, versionId); } @Override public String toString() { return new ToStringer(JobDeployment.class) + .add("deploymentId", deploymentId) .add("kind", kind) .add("metadataFilePath", metadataFilePath) + .add("versionId", versionId) .toString(); } } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderProviderAnalyticsDashboardsImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderProviderAnalyticsDashboardsImpl.java index a5e901479..ae9e89427 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderProviderAnalyticsDashboardsImpl.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderProviderAnalyticsDashboardsImpl.java @@ -24,6 +24,7 @@ public ProviderAnalyticsDashboard create() { Request req = new Request("POST", path); req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); if (apiClient.workspaceId() != null) { req.withHeader("X-Databricks-Workspace-Id", apiClient.workspaceId()); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringImpl.java index 563da146a..70c55c2c2 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringImpl.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringImpl.java @@ -100,7 +100,7 @@ public Stream createStream(CreateStreamRequest request) { req.withHeader("Accept", "application/json"); req.withHeader("Content-Type", "application/json"); if (apiClient.workspaceId() != null) { - req.withHeader("X-Databricks-Org-Id", apiClient.workspaceId()); + req.withHeader("X-Databricks-Workspace-Id", apiClient.workspaceId()); } return apiClient.execute(req, Stream.class); } catch (IOException e) { @@ -172,7 +172,7 @@ public void deleteStream(DeleteStreamRequest request) { ApiClient.setQuery(req, request); req.withHeader("Accept", "application/json"); if (apiClient.workspaceId() != null) { - req.withHeader("X-Databricks-Org-Id", apiClient.workspaceId()); + req.withHeader("X-Databricks-Workspace-Id", apiClient.workspaceId()); } apiClient.execute(req, Void.class); } catch (IOException e) { @@ -244,7 +244,7 @@ public Stream getStream(GetStreamRequest request) { ApiClient.setQuery(req, request); req.withHeader("Accept", "application/json"); if (apiClient.workspaceId() != null) { - req.withHeader("X-Databricks-Org-Id", apiClient.workspaceId()); + req.withHeader("X-Databricks-Workspace-Id", apiClient.workspaceId()); } return apiClient.execute(req, Stream.class); } catch (IOException e) { @@ -313,7 +313,7 @@ public ListStreamsResponse listStreams(ListStreamsRequest request) { ApiClient.setQuery(req, request); req.withHeader("Accept", "application/json"); if (apiClient.workspaceId() != null) { - req.withHeader("X-Databricks-Org-Id", apiClient.workspaceId()); + req.withHeader("X-Databricks-Workspace-Id", apiClient.workspaceId()); } return apiClient.execute(req, ListStreamsResponse.class); } catch (IOException e) { @@ -390,7 +390,7 @@ public Stream updateStream(UpdateStreamRequest request) { req.withHeader("Accept", "application/json"); req.withHeader("Content-Type", "application/json"); if (apiClient.workspaceId() != null) { - req.withHeader("X-Databricks-Org-Id", apiClient.workspaceId()); + req.withHeader("X-Databricks-Workspace-Id", apiClient.workspaceId()); } return apiClient.execute(req, Stream.class); } catch (IOException e) { diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/PipelineDeployment.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/PipelineDeployment.java index 579d9f1f1..ac1b35c62 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/PipelineDeployment.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/PipelineDeployment.java @@ -9,6 +9,13 @@ @Generated public class PipelineDeployment { + /** + * ID of the deployment that manages this pipeline. Only set when `kind` is `BUNDLE`. Used to look + * up deployment metadata from the Deployment Metadata service. + */ + @JsonProperty("deployment_id") + private String deploymentId; + /** The deployment method that manages the pipeline. */ @JsonProperty("kind") private DeploymentKind kind; @@ -17,6 +24,22 @@ public class PipelineDeployment { @JsonProperty("metadata_file_path") private String metadataFilePath; + /** + * ID of the version of the deployment that produced this pipeline. Only set when `kind` is + * `BUNDLE`. Identifies a specific snapshot of the deployment in the Deployment Metadata service. + */ + @JsonProperty("version_id") + private String versionId; + + public PipelineDeployment setDeploymentId(String deploymentId) { + this.deploymentId = deploymentId; + return this; + } + + public String getDeploymentId() { + return deploymentId; + } + public PipelineDeployment setKind(DeploymentKind kind) { this.kind = kind; return this; @@ -35,25 +58,38 @@ public String getMetadataFilePath() { return metadataFilePath; } + public PipelineDeployment setVersionId(String versionId) { + this.versionId = versionId; + return this; + } + + public String getVersionId() { + return versionId; + } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; PipelineDeployment that = (PipelineDeployment) o; - return Objects.equals(kind, that.kind) - && Objects.equals(metadataFilePath, that.metadataFilePath); + return Objects.equals(deploymentId, that.deploymentId) + && Objects.equals(kind, that.kind) + && Objects.equals(metadataFilePath, that.metadataFilePath) + && Objects.equals(versionId, that.versionId); } @Override public int hashCode() { - return Objects.hash(kind, metadataFilePath); + return Objects.hash(deploymentId, kind, metadataFilePath, versionId); } @Override public String toString() { return new ToStringer(PipelineDeployment.class) + .add("deploymentId", deploymentId) .add("kind", kind) .add("metadataFilePath", metadataFilePath) + .add("versionId", versionId) .toString(); } } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CreateOboTokenRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CreateOboTokenRequest.java index f2837aadf..c6b72946c 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CreateOboTokenRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CreateOboTokenRequest.java @@ -15,6 +15,10 @@ public class CreateOboTokenRequest { @JsonProperty("application_id") private String applicationId; + /** Whether to enable autoscoping for this token. */ + @JsonProperty("autoscope_enabled") + private Boolean autoscopeEnabled; + /** Comment that describes the purpose of the token. */ @JsonProperty("comment") private String comment; @@ -36,6 +40,15 @@ public String getApplicationId() { return applicationId; } + public CreateOboTokenRequest setAutoscopeEnabled(Boolean autoscopeEnabled) { + this.autoscopeEnabled = autoscopeEnabled; + return this; + } + + public Boolean getAutoscopeEnabled() { + return autoscopeEnabled; + } + public CreateOboTokenRequest setComment(String comment) { this.comment = comment; return this; @@ -69,6 +82,7 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; CreateOboTokenRequest that = (CreateOboTokenRequest) o; return Objects.equals(applicationId, that.applicationId) + && Objects.equals(autoscopeEnabled, that.autoscopeEnabled) && Objects.equals(comment, that.comment) && Objects.equals(lifetimeSeconds, that.lifetimeSeconds) && Objects.equals(scopes, that.scopes); @@ -76,13 +90,14 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(applicationId, comment, lifetimeSeconds, scopes); + return Objects.hash(applicationId, autoscopeEnabled, comment, lifetimeSeconds, scopes); } @Override public String toString() { return new ToStringer(CreateOboTokenRequest.class) .add("applicationId", applicationId) + .add("autoscopeEnabled", autoscopeEnabled) .add("comment", comment) .add("lifetimeSeconds", lifetimeSeconds) .add("scopes", scopes) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CreateTokenRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CreateTokenRequest.java index 60e76814d..d49184ce8 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CreateTokenRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CreateTokenRequest.java @@ -10,6 +10,13 @@ @Generated public class CreateTokenRequest { + /** + * Whether to enable autoscoping for this token. When true, the token will automatically collect + * inferred API path scopes as it is used. + */ + @JsonProperty("autoscope_enabled") + private Boolean autoscopeEnabled; + /** Optional description to attach to the token. */ @JsonProperty("comment") private String comment; @@ -26,6 +33,15 @@ public class CreateTokenRequest { @JsonProperty("scopes") private Collection scopes; + public CreateTokenRequest setAutoscopeEnabled(Boolean autoscopeEnabled) { + this.autoscopeEnabled = autoscopeEnabled; + return this; + } + + public Boolean getAutoscopeEnabled() { + return autoscopeEnabled; + } + public CreateTokenRequest setComment(String comment) { this.comment = comment; return this; @@ -58,19 +74,21 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; CreateTokenRequest that = (CreateTokenRequest) o; - return Objects.equals(comment, that.comment) + return Objects.equals(autoscopeEnabled, that.autoscopeEnabled) + && Objects.equals(comment, that.comment) && Objects.equals(lifetimeSeconds, that.lifetimeSeconds) && Objects.equals(scopes, that.scopes); } @Override public int hashCode() { - return Objects.hash(comment, lifetimeSeconds, scopes); + return Objects.hash(autoscopeEnabled, comment, lifetimeSeconds, scopes); } @Override public String toString() { return new ToStringer(CreateTokenRequest.class) + .add("autoscopeEnabled", autoscopeEnabled) .add("comment", comment) .add("lifetimeSeconds", lifetimeSeconds) .add("scopes", scopes) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/PublicTokenInfo.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/PublicTokenInfo.java index 669916616..12df08849 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/PublicTokenInfo.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/PublicTokenInfo.java @@ -5,10 +5,19 @@ import com.databricks.sdk.support.Generated; import com.databricks.sdk.support.ToStringer; import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Collection; import java.util.Objects; @Generated public class PublicTokenInfo { + /** Output only. The autoscope state of this token. */ + @JsonProperty("autoscope_state") + private com.databricks.sdk.service.iam.AutoscopeState autoscopeState; + + /** Output only. Scopes inferred from offline backfill processing. */ + @JsonProperty("backfill_scopes") + private Collection backfillScopes; + /** Comment the token was created with, if applicable. */ @JsonProperty("comment") private String comment; @@ -21,10 +30,37 @@ public class PublicTokenInfo { @JsonProperty("expiry_time") private Long expiryTime; + /** Output only. Inferred API path scopes collected for this token when autoscope is enabled. */ + @JsonProperty("inferred_scopes") + private Collection inferredScopes; + + /** Scope of the token was created with, if applicable. */ + @JsonProperty("scopes") + private Collection scopes; + /** The ID of this token. */ @JsonProperty("token_id") private String tokenId; + public PublicTokenInfo setAutoscopeState( + com.databricks.sdk.service.iam.AutoscopeState autoscopeState) { + this.autoscopeState = autoscopeState; + return this; + } + + public com.databricks.sdk.service.iam.AutoscopeState getAutoscopeState() { + return autoscopeState; + } + + public PublicTokenInfo setBackfillScopes(Collection backfillScopes) { + this.backfillScopes = backfillScopes; + return this; + } + + public Collection getBackfillScopes() { + return backfillScopes; + } + public PublicTokenInfo setComment(String comment) { this.comment = comment; return this; @@ -52,6 +88,24 @@ public Long getExpiryTime() { return expiryTime; } + public PublicTokenInfo setInferredScopes(Collection inferredScopes) { + this.inferredScopes = inferredScopes; + return this; + } + + public Collection getInferredScopes() { + return inferredScopes; + } + + public PublicTokenInfo setScopes(Collection scopes) { + this.scopes = scopes; + return this; + } + + public Collection getScopes() { + return scopes; + } + public PublicTokenInfo setTokenId(String tokenId) { this.tokenId = tokenId; return this; @@ -66,23 +120,39 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; PublicTokenInfo that = (PublicTokenInfo) o; - return Objects.equals(comment, that.comment) + return Objects.equals(autoscopeState, that.autoscopeState) + && Objects.equals(backfillScopes, that.backfillScopes) + && Objects.equals(comment, that.comment) && Objects.equals(creationTime, that.creationTime) && Objects.equals(expiryTime, that.expiryTime) + && Objects.equals(inferredScopes, that.inferredScopes) + && Objects.equals(scopes, that.scopes) && Objects.equals(tokenId, that.tokenId); } @Override public int hashCode() { - return Objects.hash(comment, creationTime, expiryTime, tokenId); + return Objects.hash( + autoscopeState, + backfillScopes, + comment, + creationTime, + expiryTime, + inferredScopes, + scopes, + tokenId); } @Override public String toString() { return new ToStringer(PublicTokenInfo.class) + .add("autoscopeState", autoscopeState) + .add("backfillScopes", backfillScopes) .add("comment", comment) .add("creationTime", creationTime) .add("expiryTime", expiryTime) + .add("inferredScopes", inferredScopes) + .add("scopes", scopes) .add("tokenId", tokenId) .toString(); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenInfo.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenInfo.java index 08e227383..06e9414a3 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenInfo.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenInfo.java @@ -5,10 +5,19 @@ import com.databricks.sdk.support.Generated; import com.databricks.sdk.support.ToStringer; import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Collection; import java.util.Objects; @Generated public class TokenInfo { + /** Output only. The autoscope state of this token. */ + @JsonProperty("autoscope_state") + private com.databricks.sdk.service.iam.AutoscopeState autoscopeState; + + /** Output only. Scopes inferred from offline backfill processing. */ + @JsonProperty("backfill_scopes") + private Collection backfillScopes; + /** Comment that describes the purpose of the token, specified by the token creator. */ @JsonProperty("comment") private String comment; @@ -29,6 +38,10 @@ public class TokenInfo { @JsonProperty("expiry_time") private Long expiryTime; + /** Output only. Inferred API path scopes collected for this token when autoscope is enabled. */ + @JsonProperty("inferred_scopes") + private Collection inferredScopes; + /** Approximate timestamp for the day the token was last used. Accurate up to 1 day. */ @JsonProperty("last_used_day") private Long lastUsedDay; @@ -37,6 +50,10 @@ public class TokenInfo { @JsonProperty("owner_id") private Long ownerId; + /** Scope of the token was created with, if applicable. */ + @JsonProperty("scopes") + private Collection scopes; + /** ID of the token. */ @JsonProperty("token_id") private String tokenId; @@ -45,6 +62,24 @@ public class TokenInfo { @JsonProperty("workspace_id") private Long workspaceId; + public TokenInfo setAutoscopeState(com.databricks.sdk.service.iam.AutoscopeState autoscopeState) { + this.autoscopeState = autoscopeState; + return this; + } + + public com.databricks.sdk.service.iam.AutoscopeState getAutoscopeState() { + return autoscopeState; + } + + public TokenInfo setBackfillScopes(Collection backfillScopes) { + this.backfillScopes = backfillScopes; + return this; + } + + public Collection getBackfillScopes() { + return backfillScopes; + } + public TokenInfo setComment(String comment) { this.comment = comment; return this; @@ -90,6 +125,15 @@ public Long getExpiryTime() { return expiryTime; } + public TokenInfo setInferredScopes(Collection inferredScopes) { + this.inferredScopes = inferredScopes; + return this; + } + + public Collection getInferredScopes() { + return inferredScopes; + } + public TokenInfo setLastUsedDay(Long lastUsedDay) { this.lastUsedDay = lastUsedDay; return this; @@ -108,6 +152,15 @@ public Long getOwnerId() { return ownerId; } + public TokenInfo setScopes(Collection scopes) { + this.scopes = scopes; + return this; + } + + public Collection getScopes() { + return scopes; + } + public TokenInfo setTokenId(String tokenId) { this.tokenId = tokenId; return this; @@ -131,13 +184,17 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; TokenInfo that = (TokenInfo) o; - return Objects.equals(comment, that.comment) + return Objects.equals(autoscopeState, that.autoscopeState) + && Objects.equals(backfillScopes, that.backfillScopes) + && Objects.equals(comment, that.comment) && Objects.equals(createdById, that.createdById) && Objects.equals(createdByUsername, that.createdByUsername) && Objects.equals(creationTime, that.creationTime) && Objects.equals(expiryTime, that.expiryTime) + && Objects.equals(inferredScopes, that.inferredScopes) && Objects.equals(lastUsedDay, that.lastUsedDay) && Objects.equals(ownerId, that.ownerId) + && Objects.equals(scopes, that.scopes) && Objects.equals(tokenId, that.tokenId) && Objects.equals(workspaceId, that.workspaceId); } @@ -145,13 +202,17 @@ public boolean equals(Object o) { @Override public int hashCode() { return Objects.hash( + autoscopeState, + backfillScopes, comment, createdById, createdByUsername, creationTime, expiryTime, + inferredScopes, lastUsedDay, ownerId, + scopes, tokenId, workspaceId); } @@ -159,13 +220,17 @@ public int hashCode() { @Override public String toString() { return new ToStringer(TokenInfo.class) + .add("autoscopeState", autoscopeState) + .add("backfillScopes", backfillScopes) .add("comment", comment) .add("createdById", createdById) .add("createdByUsername", createdByUsername) .add("creationTime", creationTime) .add("expiryTime", expiryTime) + .add("inferredScopes", inferredScopes) .add("lastUsedDay", lastUsedDay) .add("ownerId", ownerId) + .add("scopes", scopes) .add("tokenId", tokenId) .add("workspaceId", workspaceId) .toString(); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementAPI.java index d1ccc37aa..becfa549a 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementAPI.java @@ -81,6 +81,11 @@ public TokenPermissions updatePermissions(TokenPermissionsRequest request) { return impl.updatePermissions(request); } + /** Updates a token, specified by its ID. */ + public TokenInfo updateTokenManagement(UpdateTokenManagementRequest request) { + return impl.updateTokenManagement(request); + } + public TokenManagementService impl() { return impl; } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementImpl.java index 6accb2fbe..ebe7e5ffe 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementImpl.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementImpl.java @@ -151,4 +151,22 @@ public TokenPermissions updatePermissions(TokenPermissionsRequest request) { throw new DatabricksException("IO error: " + e.getMessage(), e); } } + + @Override + public TokenInfo updateTokenManagement(UpdateTokenManagementRequest request) { + String path = String.format("/api/2.0/token-management/tokens/%s", request.getTokenId()); + try { + Request req = new Request("PATCH", 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-Workspace-Id", apiClient.workspaceId()); + } + return apiClient.execute(req, TokenInfo.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementService.java index e51a86446..ac2cfb6ed 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementService.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementService.java @@ -41,4 +41,7 @@ public interface TokenManagementService { * Updates the permissions on all tokens. Tokens can inherit permissions from their root object. */ TokenPermissions updatePermissions(TokenPermissionsRequest tokenPermissionsRequest); + + /** Updates a token, specified by its ID. */ + TokenInfo updateTokenManagement(UpdateTokenManagementRequest updateTokenManagementRequest); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokensAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokensAPI.java index 0cec5fee9..2541b65df 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokensAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokensAPI.java @@ -59,8 +59,7 @@ public Iterable list() { /** * Updates the comment or scopes of a token. * - *

If a token with the specified ID is not valid, this call returns an error - * **RESOURCE_DOES_NOT_EXIST**. + *

If a token with the specified ID is not valid, this call returns an error **NOT_FOUND**. */ public UpdateTokenResponse update(UpdateTokenRequest request) { return impl.update(request); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokensService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokensService.java index 05155d7f1..d489b0a77 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokensService.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokensService.java @@ -34,8 +34,7 @@ public interface TokensService { /** * Updates the comment or scopes of a token. * - *

If a token with the specified ID is not valid, this call returns an error - * **RESOURCE_DOES_NOT_EXIST**. + *

If a token with the specified ID is not valid, this call returns an error **NOT_FOUND**. */ UpdateTokenResponse update(UpdateTokenRequest updateTokenRequest); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateTokenManagementRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateTokenManagementRequest.java new file mode 100755 index 000000000..0d0da379b --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateTokenManagementRequest.java @@ -0,0 +1,90 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.settings; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.protobuf.FieldMask; +import java.util.Objects; + +/** + * For the list of supported token scopes, see https://docs.databricks.com/api/workspace/api/scopes. + */ +@Generated +public class UpdateTokenManagementRequest { + /** */ + @JsonProperty("token") + private TokenInfo token; + + /** ID of the token. */ + @JsonIgnore private String tokenId; + + /** + * A list of field name under token, For example, {"update_mask": "comment,scopes"} + * + *

The field mask must be a single string, with multiple fields separated by commas (no + * spaces). The field path is relative to the resource object, using a dot (`.`) to navigate + * sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is + * not allowed, as only the entire collection field can be specified. Field names must exactly + * match the resource field names. + * + *

A field mask of `*` indicates full replacement. It’s recommended to always explicitly list + * the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if + * the API changes in the future. + */ + @JsonProperty("update_mask") + private FieldMask updateMask; + + public UpdateTokenManagementRequest setToken(TokenInfo token) { + this.token = token; + return this; + } + + public TokenInfo getToken() { + return token; + } + + public UpdateTokenManagementRequest setTokenId(String tokenId) { + this.tokenId = tokenId; + return this; + } + + public String getTokenId() { + return tokenId; + } + + public UpdateTokenManagementRequest setUpdateMask(FieldMask updateMask) { + this.updateMask = updateMask; + return this; + } + + public FieldMask getUpdateMask() { + return updateMask; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UpdateTokenManagementRequest that = (UpdateTokenManagementRequest) o; + return Objects.equals(token, that.token) + && Objects.equals(tokenId, that.tokenId) + && Objects.equals(updateMask, that.updateMask); + } + + @Override + public int hashCode() { + return Objects.hash(token, tokenId, updateMask); + } + + @Override + public String toString() { + return new ToStringer(UpdateTokenManagementRequest.class) + .add("token", token) + .add("tokenId", tokenId) + .add("updateMask", updateMask) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateTokenRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateTokenRequest.java index 0802f7c59..2683f04ae 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateTokenRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateTokenRequest.java @@ -9,6 +9,9 @@ import com.google.protobuf.FieldMask; import java.util.Objects; +/** + * For the list of supported token scopes, see https://docs.databricks.com/api/workspace/api/scopes. + */ @Generated public class UpdateTokenRequest { /** */ @@ -19,8 +22,7 @@ public class UpdateTokenRequest { @JsonIgnore private String tokenId; /** - * A list of field name under PublicTokenInfo, For example in request use {"update_mask": - * "comment,scopes"} + * A list of field name under token, For example, {"update_mask": "comment,scopes"} * *

The field mask must be a single string, with multiple fields separated by commas (no * spaces). The field path is relative to the resource object, using a dot (`.`) to navigate diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/StatementExecutionImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/StatementExecutionImpl.java index ccfb5082d..65c2d8e79 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/StatementExecutionImpl.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/StatementExecutionImpl.java @@ -20,9 +20,10 @@ public StatementExecutionImpl(ApiClient apiClient) { public void cancelExecution(CancelExecutionRequest request) { String path = String.format("/api/2.0/sql/statements/%s/cancel", request.getStatementId()); try { - Request req = new Request("POST", path); + Request req = new Request("POST", path, apiClient.serialize(request)); ApiClient.setQuery(req, request); + req.withHeader("Content-Type", "application/json"); if (apiClient.workspaceId() != null) { req.withHeader("X-Databricks-Workspace-Id", apiClient.workspaceId()); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/vectorsearch/VectorSearchIndexesImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/vectorsearch/VectorSearchIndexesImpl.java index d6e225932..0cb73a66f 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/vectorsearch/VectorSearchIndexesImpl.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/vectorsearch/VectorSearchIndexesImpl.java @@ -162,10 +162,11 @@ public ScanVectorIndexResponse scanIndex(ScanVectorIndexRequest request) { public void syncIndex(SyncIndexRequest request) { String path = String.format("/api/2.0/vector-search/indexes/%s/sync", request.getIndexName()); try { - Request req = new Request("POST", path); + 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-Workspace-Id", apiClient.workspaceId()); }