From ecdef7ec6cdded6fe3eba38d13a28f18a071fc29 Mon Sep 17 00:00:00 2001 From: "databricks-ci-ghec-1[bot]" <184311507+databricks-ci-ghec-1[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2026 06:44:31 +0000 Subject: [PATCH] Update SDK to fe6cf6ee0ed614a43053f552eef142d5e9732d10 --- .codegen/_openapi_sha | 2 +- .gitattributes | 30 +++ NEXT_CHANGELOG.md | 11 +- .../com/databricks/sdk/WorkspaceClient.java | 20 ++ .../aifunctions/AiClassifyOptions.java | 108 +++++++++++ .../aifunctions/AiClassifyRequest.java | 82 +++++++++ .../aifunctions/AiClassifyResponse.java | 64 +++++++ .../AiClassifyResponseMetadata.java | 42 +++++ .../service/aifunctions/AiExtractBbox.java | 57 ++++++ .../aifunctions/AiExtractCitation.java | 94 ++++++++++ .../service/aifunctions/AiExtractOptions.java | 124 +++++++++++++ .../service/aifunctions/AiExtractRequest.java | 84 +++++++++ .../aifunctions/AiExtractResponse.java | 62 +++++++ .../AiExtractResponseMetadata.java | 93 ++++++++++ .../service/aifunctions/AiFunctionsAPI.java | 44 +++++ .../service/aifunctions/AiFunctionsImpl.java | 72 ++++++++ .../aifunctions/AiFunctionsService.java | 23 +++ .../AiParseDocumentFileMetadata.java | 90 +++++++++ .../aifunctions/AiParseDocumentOptions.java | 98 ++++++++++ .../aifunctions/AiParseDocumentPageError.java | 59 ++++++ .../aifunctions/AiParseDocumentRequest.java | 62 +++++++ .../aifunctions/AiParseDocumentResponse.java | 79 ++++++++ .../AiParseDocumentResponseMetadata.java | 74 ++++++++ .../sdk/service/catalog/CreateFunction.java | 5 +- .../catalog/CreateMcpServiceRequest.java | 2 +- .../catalog/DeleteMcpServiceRequest.java | 5 +- .../DeleteModelProviderServiceRequest.java | 5 +- .../catalog/DeleteModelServiceRequest.java | 5 +- .../sdk/service/catalog/FunctionInfo.java | 5 +- .../service/catalog/InferenceTableConfig.java | 34 +--- .../catalog/ListMcpServicesRequest.java | 8 +- .../ListModelProviderServicesRequest.java | 8 +- .../catalog/ListModelServicesRequest.java | 8 +- .../sdk/service/catalog/McpService.java | 37 +--- .../sdk/service/catalog/McpServiceConfig.java | 17 +- .../McpServiceConfigSourceConnection.java | 16 +- .../service/catalog/ModelProviderService.java | 41 ++--- .../catalog/ModelProviderServiceConfig.java | 40 ++-- ...nfigAmazonBedrockProviderDirectConfig.java | 20 +- ...ConfigAzureOpenAiProviderDirectConfig.java | 18 +- ...gGeminiEnterpriseProviderDirectConfig.java | 4 +- ...gMicrosoftFoundryProviderDirectConfig.java | 27 ++- ...roviderServiceConfigModelTargetConfig.java | 13 +- ...roviderServiceConfigServiceCredential.java | 11 +- .../sdk/service/catalog/ModelService.java | 42 ++--- .../ModelServiceConfigDestinationConfig.java | 10 +- .../ModelServiceConfigPayPerTokenConfig.java | 2 +- ...viceConfigProvisionedThroughputConfig.java | 7 +- .../ModelServiceConfigRoutingConfig.java | 16 +- .../sdk/service/catalog/RateLimit.java | 15 +- .../sdk/service/catalog/RfaAPI.java | 4 +- .../sdk/service/catalog/RfaService.java | 4 +- .../catalog/UpdateMcpServiceRequest.java | 12 +- .../UpdateModelProviderServiceRequest.java | 15 +- .../catalog/UpdateModelServiceRequest.java | 15 +- .../compute/HardwareAcceleratorType.java | 3 + .../sdk/service/jobs/ComputeSpec.java | 23 ++- .../service/ml/BackfillFeaturesOperation.java | 172 ++++++++++++++++++ .../service/ml/BackfillFeaturesRequest.java | 75 ++++++++ .../service/ml/BackfillFeaturesResponse.java | 29 +++ .../service/ml/BackfillOperationMetadata.java | 76 ++++++++ .../ml/BackfillOperationMetadataState.java | 15 ++ .../sdk/service/ml/BackfillRange.java | 63 +++++++ .../service/ml/CancelOperationRequest.java | 42 +++++ ...ricksServiceExceptionWithDetailsProto.java | 92 ++++++++++ .../databricks/sdk/service/ml/ErrorCode.java | 91 +++++++++ .../sdk/service/ml/FeatureEngineeringAPI.java | 20 ++ .../service/ml/FeatureEngineeringImpl.java | 57 ++++++ .../service/ml/FeatureEngineeringService.java | 9 + .../sdk/service/ml/GetOperationRequest.java | 41 +++++ .../databricks/sdk/service/ml/Operation.java | 116 ++++++++++++ ...ressNetworkPolicyCrossWorkspaceAccess.java | 13 +- ...cyCrossWorkspaceAccessRestrictionMode.java | 7 + ...etworkPolicyCrossWorkspaceIngressRule.java | 20 +- 74 files changed, 2642 insertions(+), 267 deletions(-) create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyOptions.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyRequest.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyResponse.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyResponseMetadata.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractBbox.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractCitation.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractOptions.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractRequest.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractResponse.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractResponseMetadata.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsAPI.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsImpl.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsService.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentFileMetadata.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentOptions.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentPageError.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentRequest.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentResponse.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentResponseMetadata.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesOperation.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesRequest.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesResponse.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillOperationMetadata.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillOperationMetadataState.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillRange.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/CancelOperationRequest.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/DatabricksServiceExceptionWithDetailsProto.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ErrorCode.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/GetOperationRequest.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/Operation.java diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha index 81813ea1c..7f5161f06 100644 --- a/.codegen/_openapi_sha +++ b/.codegen/_openapi_sha @@ -1 +1 @@ -8370d036e19945296251b43554fa3f88f2d4fa02 \ No newline at end of file +fe6cf6ee0ed614a43053f552eef142d5e9732d10 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index fb11d95cc..aa11f8859 100644 --- a/.gitattributes +++ b/.gitattributes @@ -36,6 +36,25 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/agentbricks/StartCu databricks-sdk-java/src/main/java/com/databricks/sdk/service/agentbricks/State.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/agentbricks/Table.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/agentbricks/UpdateCustomLlmRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyOptions.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyResponse.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyResponseMetadata.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractBbox.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractCitation.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractOptions.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractResponse.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractResponseMetadata.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsAPI.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsImpl.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsService.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentFileMetadata.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentOptions.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentPageError.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentResponse.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentResponseMetadata.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/aisearch/AiSearchAPI.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/aisearch/AiSearchImpl.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/aisearch/AiSearchService.java linguist-generated=true @@ -2180,9 +2199,16 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ApproxCountDisti databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ApproxPercentileFunction.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/AuthConfig.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/AvgFunction.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesOperation.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesResponse.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillOperationMetadata.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillOperationMetadataState.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillRange.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillSource.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BatchCreateMaterializedFeaturesRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BatchCreateMaterializedFeaturesResponse.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/CancelOperationRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ColumnSelection.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/CommentActivityAction.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/CommentObject.java linguist-generated=true @@ -2214,6 +2240,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/CreateWebhookRes databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/CronSchedule.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/CustomUdf.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/DataSource.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/DatabricksServiceExceptionWithDetailsProto.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/Dataset.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/DatasetInput.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/DeleteCommentRequest.java linguist-generated=true @@ -2242,6 +2269,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/DeltaTableSource databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/DirectMtlsConfig.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/DirectSchemas.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/EntityColumn.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ErrorCode.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/Experiment.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ExperimentAccessControlRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ExperimentAccessControlResponse.java linguist-generated=true @@ -2308,6 +2336,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/GetModelVersionD databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/GetModelVersionRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/GetModelVersionResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/GetOnlineStoreRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/GetOperationRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/GetRegisteredModelPermissionLevelsRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/GetRegisteredModelPermissionLevelsResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/GetRegisteredModelPermissionsRequest.java linguist-generated=true @@ -2393,6 +2422,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/OfflineStoreConf databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/OnlineStore.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/OnlineStoreConfig.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/OnlineStoreState.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/Operation.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/Param.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/PermissionLevel.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ProtoSchemaSpec.java linguist-generated=true diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index db8b3bdda..03a3c5be1 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -17,4 +17,13 @@ ### API Changes * Add `excludedColumns` and `recordTypeFilter` fields for `com.databricks.sdk.service.ml.Stream`. * Add `EXTERNAL_USE_LOCATION` enum value for `com.databricks.sdk.service.catalog.Privilege`. -* [Breaking] Remove `planType` field for `com.databricks.sdk.service.catalog.ModelProviderServiceConfigAnthropicProviderRelayedConfig`. \ No newline at end of file +* [Breaking] Remove `planType` field for `com.databricks.sdk.service.catalog.ModelProviderServiceConfigAnthropicProviderRelayedConfig`. +* Add `com.databricks.sdk.service.aifunctions` package. +* Add `workspaceClient.aiFunctions()` service. +* Add `backfillFeatures()`, `cancelOperation()` and `getOperation()` methods for `workspaceClient.featureEngineering()` service. +* Add `provisionedCapacityId` field for `com.databricks.sdk.service.jobs.ComputeSpec`. +* Add `GPU_8X_B300` enum value for `com.databricks.sdk.service.compute.HardwareAcceleratorType`. +* [Breaking] Remove `disabled` field for `com.databricks.sdk.service.catalog.InferenceTableConfig`. +* [Breaking] Remove `owner` field for `com.databricks.sdk.service.catalog.McpService`. +* [Breaking] Remove `owner` field for `com.databricks.sdk.service.catalog.ModelProviderService`. +* [Breaking] Remove `owner` field for `com.databricks.sdk.service.catalog.ModelService`. \ No newline at end of file diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/WorkspaceClient.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/WorkspaceClient.java index 9cdeb133c..49a8ec5fe 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/WorkspaceClient.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/WorkspaceClient.java @@ -10,6 +10,8 @@ import com.databricks.sdk.mixin.SecretsExt; import com.databricks.sdk.service.agentbricks.AgentBricksAPI; import com.databricks.sdk.service.agentbricks.AgentBricksService; +import com.databricks.sdk.service.aifunctions.AiFunctionsAPI; +import com.databricks.sdk.service.aifunctions.AiFunctionsService; import com.databricks.sdk.service.aisearch.AiSearchAPI; import com.databricks.sdk.service.aisearch.AiSearchService; import com.databricks.sdk.service.apps.AppsAPI; @@ -284,6 +286,7 @@ public class WorkspaceClient { private AccessControlAPI accessControlAPI; private AccountAccessControlProxyAPI accountAccessControlProxyAPI; private AgentBricksAPI agentBricksAPI; + private AiFunctionsAPI aiFunctionsAPI; private AiGatewayAPI aiGatewayAPI; private AiSearchAPI aiSearchAPI; private AlertsAPI alertsAPI; @@ -426,6 +429,7 @@ public WorkspaceClient(DatabricksConfig config) { accessControlAPI = new AccessControlAPI(apiClient); accountAccessControlProxyAPI = new AccountAccessControlProxyAPI(apiClient); agentBricksAPI = new AgentBricksAPI(apiClient); + aiFunctionsAPI = new AiFunctionsAPI(apiClient); aiGatewayAPI = new AiGatewayAPI(apiClient); aiSearchAPI = new AiSearchAPI(apiClient); alertsAPI = new AlertsAPI(apiClient); @@ -591,6 +595,11 @@ public AgentBricksAPI agentBricks() { return agentBricksAPI; } + /** Transform and enrich data with AI on Databricks. */ + public AiFunctionsAPI aiFunctions() { + return aiFunctionsAPI; + } + /** * Govern AI workloads in Unity Catalog. This API manages the Unity Catalog securables that bring * centralized access control, lineage, and auditing to AI-serving entities: model services @@ -2284,6 +2293,17 @@ public WorkspaceClient withAgentBricksAPI(AgentBricksAPI agentBricks) { return this; } + /** Replace the default AiFunctionsService with a custom implementation. */ + public WorkspaceClient withAiFunctionsImpl(AiFunctionsService aiFunctions) { + return this.withAiFunctionsAPI(new AiFunctionsAPI(aiFunctions)); + } + + /** Replace the default AiFunctionsAPI with a custom implementation. */ + public WorkspaceClient withAiFunctionsAPI(AiFunctionsAPI aiFunctions) { + this.aiFunctionsAPI = aiFunctions; + return this; + } + /** Replace the default AiGatewayService with a custom implementation. */ public WorkspaceClient withAiGatewayImpl(AiGatewayService aiGateway) { return this.withAiGatewayAPI(new AiGatewayAPI(aiGateway)); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyOptions.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyOptions.java new file mode 100644 index 000000000..afa74a56f --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyOptions.java @@ -0,0 +1,108 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** ai_classify */ +@Generated +public class AiClassifyOptions { + /** When true, includes a per-label confidence score in the response. */ + @JsonProperty("enable_confidence_scores") + private Boolean enableConfidenceScores; + + /** When true, includes a rationale explaining each classification in the response. */ + @JsonProperty("enable_rationales") + private Boolean enableRationales; + + /** Natural-language guidance that steers how the text is classified (up to 20,000 characters). */ + @JsonProperty("instructions") + private String instructions; + + /** When true, allows more than one label to be returned per input. */ + @JsonProperty("multilabel") + private Boolean multilabel; + + /** + * The function version to invoke. Defaults to the latest version. Supported versions: ["2.1"]. + */ + @JsonProperty("version") + private String version; + + public AiClassifyOptions setEnableConfidenceScores(Boolean enableConfidenceScores) { + this.enableConfidenceScores = enableConfidenceScores; + return this; + } + + public Boolean getEnableConfidenceScores() { + return enableConfidenceScores; + } + + public AiClassifyOptions setEnableRationales(Boolean enableRationales) { + this.enableRationales = enableRationales; + return this; + } + + public Boolean getEnableRationales() { + return enableRationales; + } + + public AiClassifyOptions setInstructions(String instructions) { + this.instructions = instructions; + return this; + } + + public String getInstructions() { + return instructions; + } + + public AiClassifyOptions setMultilabel(Boolean multilabel) { + this.multilabel = multilabel; + return this; + } + + public Boolean getMultilabel() { + return multilabel; + } + + public AiClassifyOptions setVersion(String version) { + this.version = version; + return this; + } + + public String getVersion() { + return version; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiClassifyOptions that = (AiClassifyOptions) o; + return Objects.equals(enableConfidenceScores, that.enableConfidenceScores) + && Objects.equals(enableRationales, that.enableRationales) + && Objects.equals(instructions, that.instructions) + && Objects.equals(multilabel, that.multilabel) + && Objects.equals(version, that.version); + } + + @Override + public int hashCode() { + return Objects.hash( + enableConfidenceScores, enableRationales, instructions, multilabel, version); + } + + @Override + public String toString() { + return new ToStringer(AiClassifyOptions.class) + .add("enableConfidenceScores", enableConfidenceScores) + .add("enableRationales", enableRationales) + .add("instructions", instructions) + .add("multilabel", multilabel) + .add("version", version) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyRequest.java new file mode 100644 index 000000000..911080e63 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyRequest.java @@ -0,0 +1,82 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.JsonNode; +import java.util.Objects; + +@Generated +public class AiClassifyRequest { + /** + * The content to classify. It accepts a plain string or the response object of + * [ai_parse_document](:method:AiFunctions/AiParseDocument). + */ + @JsonProperty("content") + private JsonNode content; + + /** + * The label set to classify as. Either a JSON array of label strings (e.g. ["spam", "not_spam"]), + * or a JSON object mapping each label to a description (e.g. {"spam": "unsolicited bulk message", + * "not_spam": "a legitimate message"}). Accepts 2 to 500 labels, each 1 to 100 characters. + */ + @JsonProperty("labels") + private JsonNode labels; + + /** Function options. Omitted fields fall back to their documented defaults. */ + @JsonProperty("options") + private AiClassifyOptions options; + + public AiClassifyRequest setContent(JsonNode content) { + this.content = content; + return this; + } + + public JsonNode getContent() { + return content; + } + + public AiClassifyRequest setLabels(JsonNode labels) { + this.labels = labels; + return this; + } + + public JsonNode getLabels() { + return labels; + } + + public AiClassifyRequest setOptions(AiClassifyOptions options) { + this.options = options; + return this; + } + + public AiClassifyOptions getOptions() { + return options; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiClassifyRequest that = (AiClassifyRequest) o; + return Objects.equals(content, that.content) + && Objects.equals(labels, that.labels) + && Objects.equals(options, that.options); + } + + @Override + public int hashCode() { + return Objects.hash(content, labels, options); + } + + @Override + public String toString() { + return new ToStringer(AiClassifyRequest.class) + .add("content", content) + .add("labels", labels) + .add("options", options) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyResponse.java new file mode 100644 index 000000000..961dcd6cf --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyResponse.java @@ -0,0 +1,64 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.JsonNode; +import java.util.Objects; + +@Generated +public class AiClassifyResponse { + /** Additional metadata returned by AI Classify. */ + @JsonProperty("metadata") + private AiClassifyResponseMetadata metadata; + + /** + * The function result as a JSON value. An array of per-label objects: one element in single-label + * mode (the default), or multiple elements when `multilabel` is true. When + * `enable_confidence_scores` and `enable_rationales` are true, `confidence_score` and `rationale` + * are included in each response value, respectively. + */ + @JsonProperty("response") + private JsonNode response; + + public AiClassifyResponse setMetadata(AiClassifyResponseMetadata metadata) { + this.metadata = metadata; + return this; + } + + public AiClassifyResponseMetadata getMetadata() { + return metadata; + } + + public AiClassifyResponse setResponse(JsonNode response) { + this.response = response; + return this; + } + + public JsonNode getResponse() { + return response; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiClassifyResponse that = (AiClassifyResponse) o; + return Objects.equals(metadata, that.metadata) && Objects.equals(response, that.response); + } + + @Override + public int hashCode() { + return Objects.hash(metadata, response); + } + + @Override + public String toString() { + return new ToStringer(AiClassifyResponse.class) + .add("metadata", metadata) + .add("response", response) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyResponseMetadata.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyResponseMetadata.java new file mode 100644 index 000000000..b8c1146b6 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiClassifyResponseMetadata.java @@ -0,0 +1,42 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@Generated +public class AiClassifyResponseMetadata { + /** The resolved function version. */ + @JsonProperty("version") + private String version; + + public AiClassifyResponseMetadata setVersion(String version) { + this.version = version; + return this; + } + + public String getVersion() { + return version; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiClassifyResponseMetadata that = (AiClassifyResponseMetadata) o; + return Objects.equals(version, that.version); + } + + @Override + public int hashCode() { + return Objects.hash(version); + } + + @Override + public String toString() { + return new ToStringer(AiClassifyResponseMetadata.class).add("version", version).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractBbox.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractBbox.java new file mode 100644 index 000000000..f9c7c33d3 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractBbox.java @@ -0,0 +1,57 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +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; + +/** A bounding box on a source page; used by bbox-input citations. */ +@Generated +public class AiExtractBbox { + /** Pixel coordinates on the page image as [x0, y0, x1, y1]. */ + @JsonProperty("coord") + private Collection coord; + + /** 0-based page index the box is on. */ + @JsonProperty("page_id") + private Long pageId; + + public AiExtractBbox setCoord(Collection coord) { + this.coord = coord; + return this; + } + + public Collection getCoord() { + return coord; + } + + public AiExtractBbox setPageId(Long pageId) { + this.pageId = pageId; + return this; + } + + public Long getPageId() { + return pageId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiExtractBbox that = (AiExtractBbox) o; + return Objects.equals(coord, that.coord) && Objects.equals(pageId, that.pageId); + } + + @Override + public int hashCode() { + return Objects.hash(coord, pageId); + } + + @Override + public String toString() { + return new ToStringer(AiExtractBbox.class).add("coord", coord).add("pageId", pageId).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractCitation.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractCitation.java new file mode 100644 index 000000000..1fb37ca66 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractCitation.java @@ -0,0 +1,94 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +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; + +/** + * A citation locating an extracted value in the source. start/stop are set for span (STRING input) + * citations, bbox for bbox (parsed-document input) citations. + */ +@Generated +public class AiExtractCitation { + /** Bounding boxes locating the citation on the source pages; set for bbox citations. */ + @JsonProperty("bbox") + private Collection bbox; + + /** Integer matching a citation_ids entry on an extracted field. */ + @JsonProperty("id") + private Long id; + + /** Inclusive 0-based character offset into the input string; set for span citations. */ + @JsonProperty("start") + private Long start; + + /** Exclusive 0-based character offset into the input string; set for span citations. */ + @JsonProperty("stop") + private Long stop; + + public AiExtractCitation setBbox(Collection bbox) { + this.bbox = bbox; + return this; + } + + public Collection getBbox() { + return bbox; + } + + public AiExtractCitation setId(Long id) { + this.id = id; + return this; + } + + public Long getId() { + return id; + } + + public AiExtractCitation setStart(Long start) { + this.start = start; + return this; + } + + public Long getStart() { + return start; + } + + public AiExtractCitation setStop(Long stop) { + this.stop = stop; + return this; + } + + public Long getStop() { + return stop; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiExtractCitation that = (AiExtractCitation) o; + return Objects.equals(bbox, that.bbox) + && Objects.equals(id, that.id) + && Objects.equals(start, that.start) + && Objects.equals(stop, that.stop); + } + + @Override + public int hashCode() { + return Objects.hash(bbox, id, start, stop); + } + + @Override + public String toString() { + return new ToStringer(AiExtractCitation.class) + .add("bbox", bbox) + .add("id", id) + .add("start", start) + .add("stop", stop) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractOptions.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractOptions.java new file mode 100644 index 000000000..786c64f47 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractOptions.java @@ -0,0 +1,124 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** ai_extract */ +@Generated +public class AiExtractOptions { + /** + * When true, includes citation metadata locating each extracted value in the source. Depending on + * the type of input, citations can be one of two types: + * + *

For raw text (STRING) inputs, a citation is a span of text in the original input. Each + * object in `metadata.citations` has an `id` (integer matching a `citation_ids` entry on a + * field), a `start` (inclusive 0-based character offset into the input string), and a `stop` + * (exclusive 0-based character offset into the input string). + * + *

For PDF documents and images (when using ai_extract downstream of ai_parse_document), a + * citation is a bounding box in the original input. Each object in `metadata.citations` has an + * `id` (integer matching a `citation_ids` entry on a field) and a `bbox` (array of {coord, + * page_id} objects, identical in shape to element.bbox in ai_parse_document output; coord is + * pixel coordinates on the page image as [x0, y0, x1, y1], and page_id is a 0-based page index). + */ + @JsonProperty("enable_citations") + private Boolean enableCitations; + + /** When true, includes a per-field confidence score in the response. */ + @JsonProperty("enable_confidence_scores") + private Boolean enableConfidenceScores; + + /** Natural-language guidance that steers how data is extracted (up to 20,000 characters). */ + @JsonProperty("instructions") + private String instructions; + + /** + * Extraction mode. Supported modes: "precision" — more powerful extraction for complex schemas, + * long documents, and reasoning-heavy extractions. Defaults to none (standard extraction). + */ + @JsonProperty("mode") + private String mode; + + /** + * The function version to invoke. Defaults to the latest version. Supported versions: ["2.1"]. + */ + @JsonProperty("version") + private String version; + + public AiExtractOptions setEnableCitations(Boolean enableCitations) { + this.enableCitations = enableCitations; + return this; + } + + public Boolean getEnableCitations() { + return enableCitations; + } + + public AiExtractOptions setEnableConfidenceScores(Boolean enableConfidenceScores) { + this.enableConfidenceScores = enableConfidenceScores; + return this; + } + + public Boolean getEnableConfidenceScores() { + return enableConfidenceScores; + } + + public AiExtractOptions setInstructions(String instructions) { + this.instructions = instructions; + return this; + } + + public String getInstructions() { + return instructions; + } + + public AiExtractOptions setMode(String mode) { + this.mode = mode; + return this; + } + + public String getMode() { + return mode; + } + + public AiExtractOptions setVersion(String version) { + this.version = version; + return this; + } + + public String getVersion() { + return version; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiExtractOptions that = (AiExtractOptions) o; + return Objects.equals(enableCitations, that.enableCitations) + && Objects.equals(enableConfidenceScores, that.enableConfidenceScores) + && Objects.equals(instructions, that.instructions) + && Objects.equals(mode, that.mode) + && Objects.equals(version, that.version); + } + + @Override + public int hashCode() { + return Objects.hash(enableCitations, enableConfidenceScores, instructions, mode, version); + } + + @Override + public String toString() { + return new ToStringer(AiExtractOptions.class) + .add("enableCitations", enableCitations) + .add("enableConfidenceScores", enableConfidenceScores) + .add("instructions", instructions) + .add("mode", mode) + .add("version", version) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractRequest.java new file mode 100644 index 000000000..c81e0e6fc --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractRequest.java @@ -0,0 +1,84 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.JsonNode; +import java.util.Objects; + +@Generated +public class AiExtractRequest { + /** + * The text to extract from. It accepts a plain string or the response object of + * [ai_parse_document](:method:AiFunctions/AiParseDocument). + */ + @JsonProperty("content") + private JsonNode content; + + /** Function options. Omitted fields fall back to their documented defaults. */ + @JsonProperty("options") + private AiExtractOptions options; + + /** + * The extraction schema defining the fields to extract. Either a JSON array of field names, + * assumed to be strings (e.g. ["company", "valuation"]), or a JSON object mapping each field to + * its type/description/nullability (e.g. {"company": {"type": "string", "description": "the + * company name"}}). Accepts up to 256 fields, 12 levels of nesting, and 500 enum values. + * Supported field types are string, integer, number, boolean, and enum. + */ + @JsonProperty("schema") + private JsonNode schema; + + public AiExtractRequest setContent(JsonNode content) { + this.content = content; + return this; + } + + public JsonNode getContent() { + return content; + } + + public AiExtractRequest setOptions(AiExtractOptions options) { + this.options = options; + return this; + } + + public AiExtractOptions getOptions() { + return options; + } + + public AiExtractRequest setSchema(JsonNode schema) { + this.schema = schema; + return this; + } + + public JsonNode getSchema() { + return schema; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiExtractRequest that = (AiExtractRequest) o; + return Objects.equals(content, that.content) + && Objects.equals(options, that.options) + && Objects.equals(schema, that.schema); + } + + @Override + public int hashCode() { + return Objects.hash(content, options, schema); + } + + @Override + public String toString() { + return new ToStringer(AiExtractRequest.class) + .add("content", content) + .add("options", options) + .add("schema", schema) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractResponse.java new file mode 100644 index 000000000..ce4de32d0 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractResponse.java @@ -0,0 +1,62 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.JsonNode; +import java.util.Objects; + +@Generated +public class AiExtractResponse { + /** Additional metadata returned by AI Extract. */ + @JsonProperty("metadata") + private AiExtractResponseMetadata metadata; + + /** + * The function result as a JSON value. When `enable_confidence_scores` and `enable_citations` are + * true, `confidence` and `citation_ids` are included in each response field, respectively. + */ + @JsonProperty("response") + private JsonNode response; + + public AiExtractResponse setMetadata(AiExtractResponseMetadata metadata) { + this.metadata = metadata; + return this; + } + + public AiExtractResponseMetadata getMetadata() { + return metadata; + } + + public AiExtractResponse setResponse(JsonNode response) { + this.response = response; + return this; + } + + public JsonNode getResponse() { + return response; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiExtractResponse that = (AiExtractResponse) o; + return Objects.equals(metadata, that.metadata) && Objects.equals(response, that.response); + } + + @Override + public int hashCode() { + return Objects.hash(metadata, response); + } + + @Override + public String toString() { + return new ToStringer(AiExtractResponse.class) + .add("metadata", metadata) + .add("response", response) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractResponseMetadata.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractResponseMetadata.java new file mode 100644 index 000000000..8e963be60 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiExtractResponseMetadata.java @@ -0,0 +1,93 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +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 AiExtractResponseMetadata { + /** + * How the source was chunked for citation offsets (span for text input, bbox for parsed-document + * input); present when citations are enabled. + */ + @JsonProperty("chunk_type") + private String chunkType; + + /** Citation objects locating each result in the source; present when citations are enabled. */ + @JsonProperty("citations") + private Collection citations; + + /** The resolved extraction mode; present when a non-default mode was used. */ + @JsonProperty("mode") + private String mode; + + /** The resolved function version. */ + @JsonProperty("version") + private String version; + + public AiExtractResponseMetadata setChunkType(String chunkType) { + this.chunkType = chunkType; + return this; + } + + public String getChunkType() { + return chunkType; + } + + public AiExtractResponseMetadata setCitations(Collection citations) { + this.citations = citations; + return this; + } + + public Collection getCitations() { + return citations; + } + + public AiExtractResponseMetadata setMode(String mode) { + this.mode = mode; + return this; + } + + public String getMode() { + return mode; + } + + public AiExtractResponseMetadata setVersion(String version) { + this.version = version; + return this; + } + + public String getVersion() { + return version; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiExtractResponseMetadata that = (AiExtractResponseMetadata) o; + return Objects.equals(chunkType, that.chunkType) + && Objects.equals(citations, that.citations) + && Objects.equals(mode, that.mode) + && Objects.equals(version, that.version); + } + + @Override + public int hashCode() { + return Objects.hash(chunkType, citations, mode, version); + } + + @Override + public String toString() { + return new ToStringer(AiExtractResponseMetadata.class) + .add("chunkType", chunkType) + .add("citations", citations) + .add("mode", mode) + .add("version", version) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsAPI.java new file mode 100644 index 000000000..79d09edc0 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsAPI.java @@ -0,0 +1,44 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.core.logging.Logger; +import com.databricks.sdk.core.logging.LoggerFactory; +import com.databricks.sdk.support.Generated; + +/** Transform and enrich data with AI on Databricks. */ +@Generated +public class AiFunctionsAPI { + private static final Logger LOG = LoggerFactory.getLogger(AiFunctionsAPI.class); + + private final AiFunctionsService impl; + + /** Regular-use constructor */ + public AiFunctionsAPI(ApiClient apiClient) { + impl = new AiFunctionsImpl(apiClient); + } + + /** Constructor for mocks */ + public AiFunctionsAPI(AiFunctionsService mock) { + impl = mock; + } + + /** Classifies content according to a set of provided labels. */ + public AiClassifyResponse aiClassify(AiClassifyRequest request) { + return impl.aiClassify(request); + } + + /** Extracts structured data from text and documents according to a provided schema. */ + public AiExtractResponse aiExtract(AiExtractRequest request) { + return impl.aiExtract(request); + } + + /** Parse structured content from unstructured documents. */ + public AiParseDocumentResponse aiParseDocument(AiParseDocumentRequest request) { + return impl.aiParseDocument(request); + } + + public AiFunctionsService impl() { + return impl; + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsImpl.java new file mode 100644 index 000000000..747365ee7 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsImpl.java @@ -0,0 +1,72 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.core.DatabricksException; +import com.databricks.sdk.core.http.Request; +import com.databricks.sdk.support.Generated; +import java.io.IOException; + +/** Package-local implementation of AiFunctions */ +@Generated +class AiFunctionsImpl implements AiFunctionsService { + private final ApiClient apiClient; + + public AiFunctionsImpl(ApiClient apiClient) { + this.apiClient = apiClient; + } + + @Override + public AiClassifyResponse aiClassify(AiClassifyRequest request) { + String path = "/api/2.0/ai-functions/ai-classify"; + 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-Workspace-Id", apiClient.workspaceId()); + } + return apiClient.execute(req, AiClassifyResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public AiExtractResponse aiExtract(AiExtractRequest request) { + String path = "/api/2.0/ai-functions/ai-extract"; + 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-Workspace-Id", apiClient.workspaceId()); + } + return apiClient.execute(req, AiExtractResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public AiParseDocumentResponse aiParseDocument(AiParseDocumentRequest request) { + String path = "/api/2.0/ai-functions/ai-parse-document"; + 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-Workspace-Id", apiClient.workspaceId()); + } + return apiClient.execute(req, AiParseDocumentResponse.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/aifunctions/AiFunctionsService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsService.java new file mode 100644 index 000000000..ac00da07e --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiFunctionsService.java @@ -0,0 +1,23 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; + +/** + * Transform and enrich data with AI on Databricks. + * + *

This is the high-level interface, that contains generated methods. + * + *

Evolving: this interface is under development. Method signatures may change. + */ +@Generated +public interface AiFunctionsService { + /** Classifies content according to a set of provided labels. */ + AiClassifyResponse aiClassify(AiClassifyRequest aiClassifyRequest); + + /** Extracts structured data from text and documents according to a provided schema. */ + AiExtractResponse aiExtract(AiExtractRequest aiExtractRequest); + + /** Parse structured content from unstructured documents. */ + AiParseDocumentResponse aiParseDocument(AiParseDocumentRequest aiParseDocumentRequest); +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentFileMetadata.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentFileMetadata.java new file mode 100644 index 000000000..36e6f8b13 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentFileMetadata.java @@ -0,0 +1,90 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** Metadata about the source file; present only for file-path input. */ +@Generated +public class AiParseDocumentFileMetadata { + /** Last-modified timestamp of the source file, as an HTTP date string. */ + @JsonProperty("file_modification_time") + private String fileModificationTime; + + /** Base name of the source file. */ + @JsonProperty("file_name") + private String fileName; + + /** Unity Catalog volume path of the source file. */ + @JsonProperty("file_path") + private String filePath; + + /** Size of the source file in bytes. */ + @JsonProperty("file_size") + private Long fileSize; + + public AiParseDocumentFileMetadata setFileModificationTime(String fileModificationTime) { + this.fileModificationTime = fileModificationTime; + return this; + } + + public String getFileModificationTime() { + return fileModificationTime; + } + + public AiParseDocumentFileMetadata setFileName(String fileName) { + this.fileName = fileName; + return this; + } + + public String getFileName() { + return fileName; + } + + public AiParseDocumentFileMetadata setFilePath(String filePath) { + this.filePath = filePath; + return this; + } + + public String getFilePath() { + return filePath; + } + + public AiParseDocumentFileMetadata setFileSize(Long fileSize) { + this.fileSize = fileSize; + return this; + } + + public Long getFileSize() { + return fileSize; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiParseDocumentFileMetadata that = (AiParseDocumentFileMetadata) o; + return Objects.equals(fileModificationTime, that.fileModificationTime) + && Objects.equals(fileName, that.fileName) + && Objects.equals(filePath, that.filePath) + && Objects.equals(fileSize, that.fileSize); + } + + @Override + public int hashCode() { + return Objects.hash(fileModificationTime, fileName, filePath, fileSize); + } + + @Override + public String toString() { + return new ToStringer(AiParseDocumentFileMetadata.class) + .add("fileModificationTime", fileModificationTime) + .add("fileName", fileName) + .add("filePath", filePath) + .add("fileSize", fileSize) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentOptions.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentOptions.java new file mode 100644 index 000000000..a05117b4d --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentOptions.java @@ -0,0 +1,98 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** ai_parse_document */ +@Generated +public class AiParseDocumentOptions { + /** + * Element types for which an AI-generated description is produced. Use "*" (default) to generate + * descriptions for all supported element types, "figure" to generate them for figures only, or "" + * (empty string) to generate none. Only figure descriptions are supported for version "2.0", so + * "*" and "figure" produce the same behavior. + */ + @JsonProperty("description_element_types") + private String descriptionElementTypes; + + /** Unity Catalog volume path where rendered page and element images are written. */ + @JsonProperty("image_output_path") + private String imageOutputPath; + + /** + * Pages to parse (1-indexed), as a comma-separated list of page numbers or ranges (e.g. + * "1,3,5-10"). + */ + @JsonProperty("page_range") + private String pageRange; + + /** The ai_parse_document output schema version. Supported value: "2.0". */ + @JsonProperty("version") + private String version; + + public AiParseDocumentOptions setDescriptionElementTypes(String descriptionElementTypes) { + this.descriptionElementTypes = descriptionElementTypes; + return this; + } + + public String getDescriptionElementTypes() { + return descriptionElementTypes; + } + + public AiParseDocumentOptions setImageOutputPath(String imageOutputPath) { + this.imageOutputPath = imageOutputPath; + return this; + } + + public String getImageOutputPath() { + return imageOutputPath; + } + + public AiParseDocumentOptions setPageRange(String pageRange) { + this.pageRange = pageRange; + return this; + } + + public String getPageRange() { + return pageRange; + } + + public AiParseDocumentOptions setVersion(String version) { + this.version = version; + return this; + } + + public String getVersion() { + return version; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiParseDocumentOptions that = (AiParseDocumentOptions) o; + return Objects.equals(descriptionElementTypes, that.descriptionElementTypes) + && Objects.equals(imageOutputPath, that.imageOutputPath) + && Objects.equals(pageRange, that.pageRange) + && Objects.equals(version, that.version); + } + + @Override + public int hashCode() { + return Objects.hash(descriptionElementTypes, imageOutputPath, pageRange, version); + } + + @Override + public String toString() { + return new ToStringer(AiParseDocumentOptions.class) + .add("descriptionElementTypes", descriptionElementTypes) + .add("imageOutputPath", imageOutputPath) + .add("pageRange", pageRange) + .add("version", version) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentPageError.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentPageError.java new file mode 100644 index 000000000..939124403 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentPageError.java @@ -0,0 +1,59 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** A single page that failed to parse while the overall request succeeded. */ +@Generated +public class AiParseDocumentPageError { + /** Message describing why the page failed. */ + @JsonProperty("error_message") + private String errorMessage; + + /** 0-based index of the page that failed. */ + @JsonProperty("page_id") + private Long pageId; + + public AiParseDocumentPageError setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + return this; + } + + public String getErrorMessage() { + return errorMessage; + } + + public AiParseDocumentPageError setPageId(Long pageId) { + this.pageId = pageId; + return this; + } + + public Long getPageId() { + return pageId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiParseDocumentPageError that = (AiParseDocumentPageError) o; + return Objects.equals(errorMessage, that.errorMessage) && Objects.equals(pageId, that.pageId); + } + + @Override + public int hashCode() { + return Objects.hash(errorMessage, pageId); + } + + @Override + public String toString() { + return new ToStringer(AiParseDocumentPageError.class) + .add("errorMessage", errorMessage) + .add("pageId", pageId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentRequest.java new file mode 100644 index 000000000..43acc9e1b --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentRequest.java @@ -0,0 +1,62 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@Generated +public class AiParseDocumentRequest { + /** + * The document to parse, given as a Unity Catalog volume path to the source file (the REST API + * accepts only a UC volume path, not inline binary data). Supported formats: PDF, DOCX, DOC, + * PPTX, PPT, JPG, JPEG, PNG, TIFF. Accepts up to 100 pages and 100 MB per document. + */ + @JsonProperty("content") + private String content; + + /** Function options. Omitted fields fall back to their documented defaults. */ + @JsonProperty("options") + private AiParseDocumentOptions options; + + public AiParseDocumentRequest setContent(String content) { + this.content = content; + return this; + } + + public String getContent() { + return content; + } + + public AiParseDocumentRequest setOptions(AiParseDocumentOptions options) { + this.options = options; + return this; + } + + public AiParseDocumentOptions getOptions() { + return options; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiParseDocumentRequest that = (AiParseDocumentRequest) o; + return Objects.equals(content, that.content) && Objects.equals(options, that.options); + } + + @Override + public int hashCode() { + return Objects.hash(content, options); + } + + @Override + public String toString() { + return new ToStringer(AiParseDocumentRequest.class) + .add("content", content) + .add("options", options) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentResponse.java new file mode 100644 index 000000000..50b9bb534 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentResponse.java @@ -0,0 +1,79 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.JsonNode; +import java.util.Collection; +import java.util.Objects; + +@Generated +public class AiParseDocumentResponse { + /** The parsed document as a JSON value, containing the extracted pages and elements. */ + @JsonProperty("document") + private JsonNode document; + + /** + * Per-page partial-failure details; present when the request succeeds (2xx) but individual pages + * fail. + */ + @JsonProperty("error_status") + private Collection errorStatus; + + /** Additional metadata returned by AI Parse Document. */ + @JsonProperty("metadata") + private AiParseDocumentResponseMetadata metadata; + + public AiParseDocumentResponse setDocument(JsonNode document) { + this.document = document; + return this; + } + + public JsonNode getDocument() { + return document; + } + + public AiParseDocumentResponse setErrorStatus(Collection errorStatus) { + this.errorStatus = errorStatus; + return this; + } + + public Collection getErrorStatus() { + return errorStatus; + } + + public AiParseDocumentResponse setMetadata(AiParseDocumentResponseMetadata metadata) { + this.metadata = metadata; + return this; + } + + public AiParseDocumentResponseMetadata getMetadata() { + return metadata; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiParseDocumentResponse that = (AiParseDocumentResponse) o; + return Objects.equals(document, that.document) + && Objects.equals(errorStatus, that.errorStatus) + && Objects.equals(metadata, that.metadata); + } + + @Override + public int hashCode() { + return Objects.hash(document, errorStatus, metadata); + } + + @Override + public String toString() { + return new ToStringer(AiParseDocumentResponse.class) + .add("document", document) + .add("errorStatus", errorStatus) + .add("metadata", metadata) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentResponseMetadata.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentResponseMetadata.java new file mode 100644 index 000000000..e4ce37f50 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/aifunctions/AiParseDocumentResponseMetadata.java @@ -0,0 +1,74 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.aifunctions; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@Generated +public class AiParseDocumentResponseMetadata { + /** Describes the source file; present only for file-path input. */ + @JsonProperty("file_metadata") + private AiParseDocumentFileMetadata fileMetadata; + + /** Unique identifier for the parse request. */ + @JsonProperty("id") + private String id; + + /** The resolved function version. */ + @JsonProperty("version") + private String version; + + public AiParseDocumentResponseMetadata setFileMetadata(AiParseDocumentFileMetadata fileMetadata) { + this.fileMetadata = fileMetadata; + return this; + } + + public AiParseDocumentFileMetadata getFileMetadata() { + return fileMetadata; + } + + public AiParseDocumentResponseMetadata setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public AiParseDocumentResponseMetadata setVersion(String version) { + this.version = version; + return this; + } + + public String getVersion() { + return version; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AiParseDocumentResponseMetadata that = (AiParseDocumentResponseMetadata) o; + return Objects.equals(fileMetadata, that.fileMetadata) + && Objects.equals(id, that.id) + && Objects.equals(version, that.version); + } + + @Override + public int hashCode() { + return Objects.hash(fileMetadata, id, version); + } + + @Override + public String toString() { + return new ToStringer(AiParseDocumentResponseMetadata.class) + .add("fileMetadata", fileMetadata) + .add("id", id) + .add("version", version) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateFunction.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateFunction.java index 56a9b59e3..41520e074 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateFunction.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateFunction.java @@ -74,7 +74,10 @@ public class CreateFunction { @JsonProperty("routine_definition") private String routineDefinition; - /** function dependencies. */ + /** + * Function dependencies. For external UDFs, dependencies may contain only credential, secret, or + * volume objects. + */ @JsonProperty("routine_dependencies") private DependencyList routineDependencies; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateMcpServiceRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateMcpServiceRequest.java index e5c98b8b8..936891dd6 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateMcpServiceRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateMcpServiceRequest.java @@ -13,7 +13,7 @@ public class CreateMcpServiceRequest { /** * The MCP service to create. The server populates `name` from `parent` + `mcp_service_id`; - * clients should leave it unset. + * clients should leave it unset. `source_connection` is required. */ @JsonProperty("mcp_service") private McpService mcpService; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteMcpServiceRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteMcpServiceRequest.java index ef6c16742..7163c8b8a 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteMcpServiceRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteMcpServiceRequest.java @@ -11,8 +11,9 @@ @Generated public class DeleteMcpServiceRequest { /** - * If-match precondition: when set, the delete proceeds only if the current server-side etag - * matches. Empty means unconditional delete. + * Optimistic concurrency token from the most recent read. When set, the delete succeeds only if + * the resource has not changed. Leave unset for an unconditional delete. For REST requests, + * URL-encode the base64 string returned by the API when setting the `etag` query parameter. */ @JsonIgnore @QueryParam("etag") diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteModelProviderServiceRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteModelProviderServiceRequest.java index e76df6176..9fc7caf66 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteModelProviderServiceRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteModelProviderServiceRequest.java @@ -11,8 +11,9 @@ @Generated public class DeleteModelProviderServiceRequest { /** - * If-match precondition: when set, the delete proceeds only if the current server-side etag - * matches. Empty means unconditional delete. + * Optimistic concurrency token from the most recent read. When set, the delete succeeds only if + * the resource has not changed. Leave unset for an unconditional delete. For REST requests, + * URL-encode the base64 string returned by the API when setting the `etag` query parameter. */ @JsonIgnore @QueryParam("etag") diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteModelServiceRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteModelServiceRequest.java index c0deb630f..5ca53db73 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteModelServiceRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteModelServiceRequest.java @@ -11,8 +11,9 @@ @Generated public class DeleteModelServiceRequest { /** - * If-match precondition: when set, the delete proceeds only if the current server-side etag - * matches. Empty means unconditional delete. + * Optimistic concurrency token from the most recent read. When set, the delete succeeds only if + * the resource has not changed. Leave unset for an unconditional delete. For REST requests, + * URL-encode the base64 string returned by the API when setting the `etag` query parameter. */ @JsonIgnore @QueryParam("etag") diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/FunctionInfo.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/FunctionInfo.java index 69ca56bd1..61c9ec17f 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/FunctionInfo.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/FunctionInfo.java @@ -105,7 +105,10 @@ public class FunctionInfo { @JsonProperty("routine_definition") private String routineDefinition; - /** function dependencies. */ + /** + * Function dependencies. For external UDFs, dependencies may contain only credential, secret, or + * volume objects. + */ @JsonProperty("routine_dependencies") private DependencyList routineDependencies; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/InferenceTableConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/InferenceTableConfig.java index fa0192cd8..d7c182414 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/InferenceTableConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/InferenceTableConfig.java @@ -17,16 +17,6 @@ */ @Generated public class InferenceTableConfig { - /** - * Indicates whether payload logging is disabled (opt-out). Unset means that payload logging is - * active (the on-by-default state coincides with the proto zero-value, so the server never fills - * this field for a client that leaves it unset). Set `disabled = true` to pause runtime logging - * while keeping the sub-message attached (preserving `parent` and `table_name_prefix` for a later - * flip back to active). `parent` remains required either way. - */ - @JsonProperty("disabled") - private Boolean disabled; - /** * True when the bound inference TABLE has been deleted but the parent service still references * it. The dangling reference is surfaced (not silently dropped) so callers can see the broken @@ -47,24 +37,14 @@ public class InferenceTableConfig { private String table; /** - * Prefix for the inference-table's UC-registered name. The actual leaf name UC stores is - * `_payload`; the `_payload` suffix is appended automatically. To find the - * actual UC table after Create, read the `table` field on the response. Defaults to - * `_payload` when unset. Set at create time and immutable thereafter; - * changing it on an existing service is rejected. + * Prefix used to form the inference table's registered name. AI Gateway appends `_payload`; for + * example, `table_name_prefix = "orders"` creates `orders_payload`. If unset, the prefix defaults + * to the service name. Read `table` from the response for the resolved resource name. Set at + * create time and immutable thereafter. */ @JsonProperty("table_name_prefix") private String tableNamePrefix; - public InferenceTableConfig setDisabled(Boolean disabled) { - this.disabled = disabled; - return this; - } - - public Boolean getDisabled() { - return disabled; - } - public InferenceTableConfig setIsDeleted(Boolean isDeleted) { this.isDeleted = isDeleted; return this; @@ -106,8 +86,7 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; InferenceTableConfig that = (InferenceTableConfig) o; - return Objects.equals(disabled, that.disabled) - && Objects.equals(isDeleted, that.isDeleted) + return Objects.equals(isDeleted, that.isDeleted) && Objects.equals(parent, that.parent) && Objects.equals(table, that.table) && Objects.equals(tableNamePrefix, that.tableNamePrefix); @@ -115,13 +94,12 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(disabled, isDeleted, parent, table, tableNamePrefix); + return Objects.hash(isDeleted, parent, table, tableNamePrefix); } @Override public String toString() { return new ToStringer(InferenceTableConfig.class) - .add("disabled", disabled) .add("isDeleted", isDeleted) .add("parent", parent) .add("table", table) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ListMcpServicesRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ListMcpServicesRequest.java index 3345af512..69bdc10ae 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ListMcpServicesRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ListMcpServicesRequest.java @@ -24,7 +24,7 @@ public class ListMcpServicesRequest { private String pageToken; /** - * Name of the parent schema to list within, as `schemas/{catalog}.{schema}`. Each `{...}` + * Parent schema to list within, in the form `schemas/{catalog}.{schema}`. Required. Each `{...}` * component is capped at 255 characters individually. */ @JsonIgnore @@ -32,9 +32,9 @@ public class ListMcpServicesRequest { private String parent; /** - * View selector controlling which fields are populated per row. `FULL` returns the full - * representation of the service; `BASIC` returns a more compact version. Defaults to `BASIC` when - * unset. + * Fields to return for each service. `FULL` includes source-connection details and rate-limit + * principal names. `BASIC` omits the source connection and omits principal names from rate + * limits. Defaults to `BASIC` when unset or `VIEW_UNSPECIFIED`. */ @JsonIgnore @QueryParam("view") diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ListModelProviderServicesRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ListModelProviderServicesRequest.java index c498572f6..8b4e78a23 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ListModelProviderServicesRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ListModelProviderServicesRequest.java @@ -24,7 +24,7 @@ public class ListModelProviderServicesRequest { private String pageToken; /** - * Name of the parent schema to list within, as `schemas/{catalog}.{schema}`. Each `{...}` + * Parent schema to list within, in the form `schemas/{catalog}.{schema}`. Required. Each `{...}` * component is capped at 255 characters individually. */ @JsonIgnore @@ -32,9 +32,9 @@ public class ListModelProviderServicesRequest { private String parent; /** - * View selector controlling which fields are populated per row. `FULL` returns the full - * representation of the service; `BASIC` returns a more compact version. Defaults to `BASIC` when - * unset. + * Fields to return for each service. `FULL` includes inference-table details and rate-limit + * principal names. `BASIC` omits inference-table details and omits principal names from rate + * limits. Defaults to `BASIC` when unset or `VIEW_UNSPECIFIED`. */ @JsonIgnore @QueryParam("view") diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ListModelServicesRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ListModelServicesRequest.java index c27d051a6..8b51d5fed 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ListModelServicesRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ListModelServicesRequest.java @@ -24,7 +24,7 @@ public class ListModelServicesRequest { private String pageToken; /** - * Name of the parent schema to list within, as `schemas/{catalog}.{schema}`. Each `{...}` + * Parent schema to list within, in the form `schemas/{catalog}.{schema}`. Required. Each `{...}` * component is capped at 255 characters individually. */ @JsonIgnore @@ -32,9 +32,9 @@ public class ListModelServicesRequest { private String parent; /** - * View selector controlling which fields are populated per row. `FULL` returns the full - * representation of the service; `BASIC` returns a more compact version. Defaults to `BASIC` when - * unset. + * Fields to return for each service. `FULL` includes destinations, inference-table details, and + * rate-limit principal names. `BASIC` omits destinations and inference-table details and omits + * principal names from rate limits. Defaults to `BASIC` when unset or `VIEW_UNSPECIFIED`. */ @JsonIgnore @QueryParam("view") diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/McpService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/McpService.java index c3d1120d7..f22811115 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/McpService.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/McpService.java @@ -9,9 +9,8 @@ import java.util.Objects; /** - * A governed MCP server registration in Unity Catalog. Acts as a container securable that - * references an MCP server -- customer-external via a UC Connection, or Databricks-hosted via an - * internal server -- and exposes its tools for discovery, authorization, and invocation. + * A Unity Catalog securable that registers an MCP server through a Unity Catalog connection and + * exposes its tools for discovery, authorization, and invocation. */ @Generated public class McpService { @@ -20,14 +19,13 @@ public class McpService { private String comment; /** - * Operational configuration: connection, tool selectors, rate limit. Required on - * CreateMcpService; on UpdateMcpService it is required only when `config` (or a `config.*` - * subpath) appears in `update_mask`. + * Connection, tool selectors, and rate limits. Required on Create. On Update, provide this field + * when `update_mask` contains `config` or one of its subpaths. */ @JsonProperty("config") private McpServiceConfig config; - /** When the MCP service was created. */ + /** Time the MCP service was created. */ @JsonProperty("create_time") private Timestamp createTime; @@ -43,10 +41,9 @@ public class McpService { private String effectiveOwner; /** - * Optimistic concurrency control token. Server-generated from the entity's state and returned on - * every read. To use it as an if-match precondition on a mutation, echo the last-read value back - * via the dedicated `etag` field on the Update / Delete request; the server rejects the mutation - * if the stored etag differs. + * Optimistic concurrency token returned on every read. To make an Update or Delete conditional, + * pass the last-read value in that request's `etag` field. In REST responses, this value is a + * base64 string; URL-encode it when setting the `etag` query parameter. */ @JsonProperty("etag") private String etag; @@ -63,11 +60,7 @@ public class McpService { @JsonProperty("name") private String name; - /** The owner of the MCP service. Write-only; read owner via effective_owner. */ - @JsonProperty("owner") - private String owner; - - /** When the MCP service was last modified. */ + /** Time the MCP service was last modified. */ @JsonProperty("update_time") private Timestamp updateTime; @@ -147,15 +140,6 @@ public String getName() { return name; } - public McpService setOwner(String owner) { - this.owner = owner; - return this; - } - - public String getOwner() { - return owner; - } - public McpService setUpdateTime(Timestamp updateTime) { this.updateTime = updateTime; return this; @@ -187,7 +171,6 @@ public boolean equals(Object o) { && Objects.equals(etag, that.etag) && Objects.equals(metastoreId, that.metastoreId) && Objects.equals(name, that.name) - && Objects.equals(owner, that.owner) && Objects.equals(updateTime, that.updateTime) && Objects.equals(updatedBy, that.updatedBy); } @@ -203,7 +186,6 @@ public int hashCode() { etag, metastoreId, name, - owner, updateTime, updatedBy); } @@ -219,7 +201,6 @@ public String toString() { .add("etag", etag) .add("metastoreId", metastoreId) .add("name", name) - .add("owner", owner) .add("updateTime", updateTime) .add("updatedBy", updatedBy) .toString(); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/McpServiceConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/McpServiceConfig.java index c33e80885..6fed3591c 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/McpServiceConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/McpServiceConfig.java @@ -10,28 +10,27 @@ /** * Operational configuration for an MCP service. Groups the source reference, tool selectors, and - * rate limit -- the fields that configure how the MCP service behaves at invocation time. + * rate limits -- the fields that configure how the MCP service behaves at invocation time. */ @Generated public class McpServiceConfig { /** - * Glob or exact-match patterns selecting which tools from the MCP server to expose. Prefix match - * for patterns with `*`, exact match otherwise. An empty list means all tools are included. - * Per-element max 256 chars. + * Tool names or prefix patterns to expose from the MCP server. Use exact tool names or prefix + * patterns such as `read_*`. An empty list exposes all tools. Each selector can contain at most + * 256 characters. */ @JsonProperty("include_tool_selectors") private Collection includeToolSelectors; /** - * Per-principal rate limits applied to tool invocations routed through this MCP service. Repeated - * to support per-USER / USER_GROUP / SERVICE_PRINCIPAL / SERVICE / USER_DEFAULT scopes - * simultaneously, mirroring the `ModelServiceConfig.rate_limits` shape. Empty when no rate limit - * is configured. + * Rate limits for tool invocations, scoped to a user, group, service principal, the service as a + * whole, or each user by default. Request-tag rate limits are not supported for MCP services. + * Empty when no rate limit is configured. */ @JsonProperty("rate_limits") private Collection rateLimits; - /** UC Connection referencing the MCP server. */ + /** Unity Catalog connection referencing the MCP server. Required on Create. */ @JsonProperty("source_connection") private McpServiceConfigSourceConnection sourceConnection; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/McpServiceConfigSourceConnection.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/McpServiceConfigSourceConnection.java index 43f168ead..0815f5e96 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/McpServiceConfigSourceConnection.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/McpServiceConfigSourceConnection.java @@ -8,19 +8,23 @@ import java.util.Objects; /** - * UC Connection that hosts the MCP server. On create, provide `name` in the schema-scoped form - * `connections/{catalog}.{schema}.{connection}`. On read, the service populates the resolved - * connection metadata and preserves a dangling source so callers can diagnose a deleted backing - * connection. + * Unity Catalog connection that hosts the MCP server. On Create, provide `name` in the + * schema-scoped form `connections/{catalog}.{schema}.{connection}`. On read, the service populates + * the resolved connection metadata and preserves a dangling source so callers can diagnose a + * deleted backing connection. */ @Generated public class McpServiceConfigSourceConnection { - /** */ + /** + * Whether the referenced connection has been deleted. The MCP service keeps the reference so + * callers can identify the broken dependency; tool invocation fails until the source connection + * is updated. + */ @JsonProperty("is_deleted") private Boolean isDeleted; /** - * Name of the UC connection that hosts the MCP server, as + * Name of the Unity Catalog connection that hosts the MCP server, as * `connections/{catalog}.{schema}.{connection}`. */ @JsonProperty("name") diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderService.java index 08128c723..6c032c4d3 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderService.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderService.java @@ -9,10 +9,9 @@ import java.util.Objects; /** - * A governed external model-provider connection stored in Unity Catalog (e.g. an OpenAI API - * account, an Azure OpenAI deployment, an Amazon Bedrock account). Owns the provider type and the - * auth/configuration the platform needs to invoke that provider, and is referenced from - * `ExternalModelConfig.model_provider_service` on a ModelService. + * A governed connection to an external model provider stored in Unity Catalog, such as an OpenAI + * account, Azure OpenAI deployment, or Amazon Bedrock account. It stores the provider type, + * authentication, and connection configuration used by model service destinations. * *

One ModelProviderService can back many ModelServices (e.g. an `openai_prod` provider serving * multiple models); a single ModelService can fan out across multiple ModelProviderServices for @@ -25,15 +24,14 @@ public class ModelProviderService { private String comment; /** - * Behavioral configuration: provider connection, model catalog, and passthrough policy. See - * `ModelProviderServiceConfig` for the per-field contract. Required on - * CreateModelProviderService; on Update it is required only when `config` (or a `config.*` - * subpath) appears in `update_mask`. + * Provider connection, exposed models, request-forwarding controls, rate limits, and payload + * logging. Required on Create. On Update, it is required only when `config` or one of its + * subpaths appears in `update_mask`. */ @JsonProperty("config") private ModelProviderServiceConfig config; - /** When the provider service was created. */ + /** Time the provider service was created. */ @JsonProperty("create_time") private Timestamp createTime; @@ -49,10 +47,9 @@ public class ModelProviderService { private String effectiveOwner; /** - * Optimistic concurrency control token. Server-generated from the entity's state and returned on - * every read. To use it as an if-match precondition on a mutation, echo the last-read value back - * via the dedicated `etag` field on the Update / Delete request; the server rejects the mutation - * if the stored etag differs. + * Optimistic concurrency token returned on every read. To make an Update or Delete conditional, + * pass the last-read value in that request's `etag` field. In REST responses, this value is a + * base64 string; URL-encode it when setting the `etag` query parameter. */ @JsonProperty("etag") private String etag; @@ -70,11 +67,7 @@ public class ModelProviderService { @JsonProperty("name") private String name; - /** The owner of the model provider service. Write-only; read owner via effective_owner. */ - @JsonProperty("owner") - private String owner; - - /** When the provider service was last modified. */ + /** Time the provider service was last modified. */ @JsonProperty("update_time") private Timestamp updateTime; @@ -154,15 +147,6 @@ public String getName() { return name; } - public ModelProviderService setOwner(String owner) { - this.owner = owner; - return this; - } - - public String getOwner() { - return owner; - } - public ModelProviderService setUpdateTime(Timestamp updateTime) { this.updateTime = updateTime; return this; @@ -194,7 +178,6 @@ public boolean equals(Object o) { && Objects.equals(etag, that.etag) && Objects.equals(metastoreId, that.metastoreId) && Objects.equals(name, that.name) - && Objects.equals(owner, that.owner) && Objects.equals(updateTime, that.updateTime) && Objects.equals(updatedBy, that.updatedBy); } @@ -210,7 +193,6 @@ public int hashCode() { etag, metastoreId, name, - owner, updateTime, updatedBy); } @@ -226,7 +208,6 @@ public String toString() { .add("etag", etag) .add("metastoreId", metastoreId) .add("name", name) - .add("owner", owner) .add("updateTime", updateTime) .add("updatedBy", updatedBy) .toString(); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfig.java index 560f1c06b..1ca65058b 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfig.java @@ -40,27 +40,25 @@ public class ModelProviderServiceConfig { private ModelProviderServiceConfigCustomProviderConfig custom; /** - * Whether to forward incoming request headers to the upstream provider. Applies to managed - * (multi-model) requests as well as passthrough requests served by this provider service. - * Governance-level decision by the provider service owner; not selectable per inference call. + * Whether to forward incoming HTTP headers to the upstream provider. Applies to translated and + * passthrough requests and is configured for the entire provider service, not per request. + * Upstream authentication is configured separately in `provider`. */ @JsonProperty("forward_headers") private Boolean forwardHeaders; /** - * Whether to forward incoming request query parameters to the upstream provider. Same - * trust-boundary semantics as `forward_headers`. + * Whether incoming query parameters are forwarded to the upstream provider. Applies to translated + * and passthrough requests and is configured for the entire provider service, not per request. */ @JsonProperty("forward_query_parameters") private Boolean forwardQueryParameters; /** - * Whether to forward request paths that fall outside this service's managed API set to the - * upstream provider as opaque passthrough. When true, requests addressed to subpaths not - * recognized by the managed API surface are proxied to the upstream provider over the same - * provider connection. When false, only managed-API paths are served. Governance-level decision - * by the provider service owner; expanding this expands the trust boundary that the - * ModelProviderService exposes. + * Whether to proxy paths that AI Gateway does not recognize as configured provider-native API + * types. When true, these paths are forwarded unchanged over the provider connection. When false, + * only recognized API paths are served. Enabling this broadens the upstream API surface exposed + * through the provider service. */ @JsonProperty("forward_unmanaged_paths") private Boolean forwardUnmanagedPaths; @@ -70,10 +68,8 @@ public class ModelProviderServiceConfig { private ModelProviderServiceConfigGeminiEnterpriseProviderConfig geminiEnterprise; /** - * Inference table configuration for payload logging when this provider service is invoked - * directly. When it is invoked through a model service, the model service's own inference table - * captures the invocation instead. Mirrors `ModelServiceConfig.inference_table` / - * `AgentServiceConfig.inference_table`. + * Payload logging configuration for requests sent directly to this provider service. Requests + * routed through a model service are captured by that model service's inference table instead. */ @JsonProperty("inference_table") private InferenceTableConfig inferenceTable; @@ -97,18 +93,18 @@ public class ModelProviderServiceConfig { private ModelProviderServiceConfigExternalModelProviderType providerType; /** - * Rate limits applied when this provider service is invoked directly. When it is invoked through - * a model service, the model service's own `rate_limits` apply instead. Mirrors - * `ModelServiceConfig.rate_limits` / `McpServiceConfig.rate_limits`. + * Rate limits for requests sent directly to this provider service. Requests routed through a + * model service use that model service's rate limits instead. */ @JsonProperty("rate_limits") private Collection rateLimits; /** - * Routing targets this provider service exposes (provider-side model identifier + unified API - * types per entry). Required (>=1) when `allow_all_targets = false`; optional and additive when - * `allow_all_targets = true`. References from `ExternalModelConfig.target` must match an entry - * here unless `allow_all_targets = true`. + * Models and provider-native API types exposed by this provider service. Each entry must include + * at least one `native_api_types` value. When `allow_all_targets` is false, at least one entry is + * required and model service destinations can reference only listed models. When + * `allow_all_targets` is true, any upstream model is routable; entries in this list provide + * API-type metadata without restricting other models. */ @JsonProperty("targets") private Collection targets; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigAmazonBedrockProviderDirectConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigAmazonBedrockProviderDirectConfig.java index b5ece20df..dc787453b 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigAmazonBedrockProviderDirectConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigAmazonBedrockProviderDirectConfig.java @@ -11,10 +11,10 @@ * Direct form of Amazon Bedrock provider config. * *

Authentication is one of two mutually exclusive modes, exactly one of which must be supplied - * on Create: - Access keys: set `aws_access_key`, leave `service_credential` unset. - UC service - * credential: set `service_credential.name` to the AIP-122 resource-name form `credentials/{name}`, - * leave `aws_access_key` unset. The credential value lives in UC and is referenced by name, not - * held on this message. Setting more than one mode is rejected. + * on Create: - Access keys: set `aws_access_key`, leave `service_credential` unset. - Unity Catalog + * service credential: set `service_credential.name` to the resource name `credentials/{name}`, + * leave `aws_access_key` unset. The credential value lives in Unity Catalog and is referenced by + * name, not held on this message. Setting more than one mode is rejected. */ @Generated public class ModelProviderServiceConfigAmazonBedrockProviderDirectConfig { @@ -27,12 +27,12 @@ public class ModelProviderServiceConfigAmazonBedrockProviderDirectConfig { private String region; /** - * Reference to a UC service credential authorizing Bedrock requests. On Create the caller - * supplies `service_credential.name` in the AIP-122 resource-name form `credentials/{name}`. - * Required on Create when using UC-service-credential auth; mutually exclusive with - * `aws_access_key`. The credential is referenced by name; its value is not carried here. On read - * the resolved `id` and `is_deleted` are also populated. Only supported on AWS-hosted workspaces; - * Create requests from other clouds are rejected with INVALID_PARAMETER_VALUE. + * Reference to a Unity Catalog service credential authorizing Bedrock requests. On Create, supply + * `service_credential.name` in the form `credentials/{name}`. Required on Create when using + * service-credential authentication; mutually exclusive with `aws_access_key`. The credential is + * referenced by name; its value is not carried here. On read, the resolved `id` and `is_deleted` + * are also populated. Only supported on AWS-hosted workspaces; Create requests from other clouds + * are rejected with INVALID_PARAMETER_VALUE. */ @JsonProperty("service_credential") private ModelProviderServiceConfigServiceCredential serviceCredential; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigAzureOpenAiProviderDirectConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigAzureOpenAiProviderDirectConfig.java index e6645c843..3d431fbcb 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigAzureOpenAiProviderDirectConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigAzureOpenAiProviderDirectConfig.java @@ -11,11 +11,11 @@ * Direct form of Azure OpenAI provider config. Exactly one of three mutually-exclusive auth modes * must be supplied on Create: - API key: set `api_key`, leave `entra_service_principal` and * `service_credential` unset. - Entra ID (service principal): set `entra_service_principal`, leave - * `api_key` and `service_credential` unset. - UC service credential: set `service_credential.name` - * to the AIP-122 resource-name form `credentials/{name}`, leave `api_key` and - * `entra_service_principal` unset. The credential value lives in UC and is referenced by name, not - * held on this message. Only supported on Azure-hosted workspaces. Setting more than one mode is - * rejected. + * `api_key` and `service_credential` unset. - Unity Catalog service credential: set + * `service_credential.name` to the resource name `credentials/{name}`, leave `api_key` and + * `entra_service_principal` unset. The credential value lives in Unity Catalog and is referenced by + * name, not held on this message. Only supported on Azure-hosted workspaces. Setting more than one + * mode is rejected. */ @Generated public class ModelProviderServiceConfigAzureOpenAiProviderDirectConfig { @@ -40,11 +40,11 @@ public class ModelProviderServiceConfigAzureOpenAiProviderDirectConfig { private ModelProviderServiceConfigEntraServicePrincipal entraServicePrincipal; /** - * Reference to a UC service credential authorizing Azure OpenAI requests. On Create the caller - * supplies `service_credential.name` in the AIP-122 resource-name form `credentials/{name}`. - * Required on Create when using UC-service-credential auth; mutually exclusive with `api_key` and + * Reference to a Unity Catalog service credential authorizing Azure OpenAI requests. On Create, + * supply `service_credential.name` in the form `credentials/{name}`. Required on Create when + * using service-credential authentication; mutually exclusive with `api_key` and * `entra_service_principal`. The credential is referenced by name; its value is not carried here. - * On read the resolved `id` and `is_deleted` are also populated. Only supported on Azure-hosted + * On read, the resolved `id` and `is_deleted` are also populated. Only supported on Azure-hosted * workspaces; Create requests from other clouds are rejected with INVALID_PARAMETER_VALUE. */ @JsonProperty("service_credential") diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigGeminiEnterpriseProviderDirectConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigGeminiEnterpriseProviderDirectConfig.java index a1b12f54f..bb2866581 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigGeminiEnterpriseProviderDirectConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigGeminiEnterpriseProviderDirectConfig.java @@ -11,8 +11,8 @@ * Direct form of Gemini Enterprise provider config. * *

Authentication is one of two mutually exclusive modes; exactly one must be supplied on Create: - * - API key: set `api_key`, leave `service_credential` unset. - UC service credential: set - * `service_credential`, leave `api_key` unset. + * - API key: set `api_key`, leave `service_credential` unset. - Unity Catalog service credential: + * set `service_credential`, leave `api_key` unset. */ @Generated public class ModelProviderServiceConfigGeminiEnterpriseProviderDirectConfig { diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigMicrosoftFoundryProviderDirectConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigMicrosoftFoundryProviderDirectConfig.java index 501cb8505..0223eedf0 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigMicrosoftFoundryProviderDirectConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigMicrosoftFoundryProviderDirectConfig.java @@ -14,22 +14,22 @@ * on Create: - API key: set `api_key`, leave `entra_service_principal` and `service_credential` * unset. - Entra ID (service principal): set `entra_service_principal`, leave `api_key` and * `service_credential` unset. AI Gateway exchanges these for an Entra bearer token on outbound - * requests via the OAuth2 client-credentials grant. - UC service credential: set - * `service_credential.name` to the AIP-122 resource-name form `credentials/{name}`, leave `api_key` - * and `entra_service_principal` unset. The credential value lives in UC and is referenced by name, - * not held on this message. Only supported on Azure-hosted workspaces. Setting more than one mode - * is rejected. + * requests via the OAuth2 client-credentials grant. - Unity Catalog service credential: set + * `service_credential.name` to the resource name `credentials/{name}`, leave `api_key` and + * `entra_service_principal` unset. The credential value lives in Unity Catalog and is referenced by + * name, not held on this message. Only supported on Azure-hosted workspaces. Setting more than one + * mode is rejected. */ @Generated public class ModelProviderServiceConfigMicrosoftFoundryProviderDirectConfig { /** - * Microsoft AI Foundry API key. Mutually exclusive with the Entra and service-credential modes. + * Microsoft Foundry API key. Mutually exclusive with the Entra and service-credential modes. * Supplied as inline plaintext via `ProviderSecret.plaintext`. */ @JsonProperty("api_key") private ModelProviderServiceConfigProviderSecret apiKey; - /** Microsoft AI Foundry endpoint URL. Required on Create. */ + /** Microsoft Foundry endpoint URL. Required on Create. */ @JsonProperty("base_url") private String baseUrl; @@ -40,13 +40,12 @@ public class ModelProviderServiceConfigMicrosoftFoundryProviderDirectConfig { private ModelProviderServiceConfigEntraServicePrincipal entraServicePrincipal; /** - * Reference to a UC service credential authorizing Microsoft Foundry requests. On Create the - * caller supplies `service_credential.name` in the AIP-122 resource-name form - * `credentials/{name}`. Required on Create when using UC-service-credential auth; mutually - * exclusive with `api_key` and `entra_service_principal`. The credential is referenced by name; - * its value is not carried here. On read the resolved `id` and `is_deleted` are also populated. - * Only supported on Azure-hosted workspaces; Create requests from other clouds are rejected with - * INVALID_PARAMETER_VALUE. + * Reference to a Unity Catalog service credential authorizing Microsoft Foundry requests. On + * Create, supply `service_credential.name` in the form `credentials/{name}`. Required on Create + * when using service-credential authentication; mutually exclusive with `api_key` and + * `entra_service_principal`. The credential is referenced by name; its value is not carried here. + * On read, the resolved `id` and `is_deleted` are also populated. Only supported on Azure-hosted + * workspaces; Create requests from other clouds are rejected with INVALID_PARAMETER_VALUE. */ @JsonProperty("service_credential") private ModelProviderServiceConfigServiceCredential serviceCredential; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigModelTargetConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigModelTargetConfig.java index 37c1baf87..eedf50aa3 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigModelTargetConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigModelTargetConfig.java @@ -12,19 +12,16 @@ @Generated public class ModelProviderServiceConfigModelTargetConfig { /** - * Provider-side model identifier (e.g. "gpt-5", "claude-opus-4-7"). This is a string on the LLM - * provider's side, not a UC entity. The UC governance hook for external destinations is the - * ModelProviderService referenced by `ExternalModelConfig.model_provider_service`, not the model - * itself. + * Provider-side model identifier, such as `gpt-5` or `claude-opus-4-7`. This identifies a model + * at the upstream provider; it is not a Unity Catalog model resource. */ @JsonProperty("model") private String model; /** - * Provider-native API types the model supports (e.g. "openai/v1/chat/completions"). Used by the - * platform for request/response translation from the unified API type. At most 64 entries of at - * most 256 characters each; the list is persisted into the destination binding's bounded storage - * envelope. + * Provider-native API types supported by this model, such as `openai/v1/chat/completions`. AI + * Gateway uses these values to translate requests and responses. At most 64 entries of 256 + * characters each are allowed. */ @JsonProperty("native_api_types") private Collection nativeApiTypes; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigServiceCredential.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigServiceCredential.java index 95bd3b200..420b595df 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigServiceCredential.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelProviderServiceConfigServiceCredential.java @@ -8,16 +8,15 @@ import java.util.Objects; /** - * ---- Provider configuration (nested; see the `provider` oneof below) ---- The customer-owned UC - * service credential a ModelProviderService uses to authenticate to its provider, referenced by - * name. + * ---- Provider configuration (nested; see the `provider` oneof below) ---- The customer-owned + * Unity Catalog service credential a ModelProviderService uses to authenticate to its provider, + * referenced by name. */ @Generated public class ModelProviderServiceConfigServiceCredential { /** - * Resource name of the bound UC service credential, in the AIP-122 form `credentials/{name}` (a - * metastore-level single-part credential name). On create the caller supplies the name here. On - * read it reflects the credential's current name at read time. + * Resource name of the bound Unity Catalog service credential, in the form `credentials/{name}`. + * On Create, supply the name here. On read, this field reflects the credential's current name. */ @JsonProperty("name") private String name; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelService.java index c3d1440df..9162704e5 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelService.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelService.java @@ -11,9 +11,8 @@ /** * A governed AI Gateway endpoint in Unity Catalog that routes inference requests to one or more - * model destinations (for example a foundation model or an external LLM reached through a - * ModelProviderService). Applies centralized access control, rate limits, guardrails, and auditing - * to the traffic it serves. + * destinations, such as a Databricks foundation model or an external model reached through a model + * provider service. Applies centralized access control, rate limits, and auditing to its traffic. */ @Generated public class ModelService { @@ -22,14 +21,13 @@ public class ModelService { private String comment; /** - * Operational configuration: destinations, routing, rate limits, inference table. Required on - * CreateModelService; on UpdateModelService it is required only when `config` (or a `config.*` - * subpath) appears in `update_mask`. + * Destinations, routing, rate limits, and payload logging configuration. Required on Create. On + * Update, provide this field when `update_mask` contains `config` or one of its subpaths. */ @JsonProperty("config") private ModelServiceConfig config; - /** When the model service was created. */ + /** Time the model service was created. */ @JsonProperty("create_time") private Timestamp createTime; @@ -45,10 +43,9 @@ public class ModelService { private String effectiveOwner; /** - * Optimistic concurrency control token. Server-generated from the entity's state and returned on - * every read. To use it as an if-match precondition on a mutation, echo the last-read value back - * via the dedicated `etag` field on the Update / Delete request; the server rejects the mutation - * if the stored etag differs. + * Optimistic concurrency token returned on every read. To make an Update or Delete conditional, + * pass the last-read value in that request's `etag` field. In REST responses, this value is a + * base64 string; URL-encode it when setting the `etag` query parameter. */ @JsonProperty("etag") private String etag; @@ -66,18 +63,15 @@ public class ModelService { @JsonProperty("name") private String name; - /** The owner of the model service. Write-only; read owner via effective_owner. */ - @JsonProperty("owner") - private String owner; - /** - * Unified API types this endpoint supports (e.g. "chat", "embeddings", "completions"). Derived - * from the destinations' backing models / providers at read time. + * API types supported across this service's destinations, such as `openai/v1/chat/completions`, + * `openai/v1/embeddings`, and `mlflow/v1/chat/completions`. Derived from the backing models and + * providers at read time. */ @JsonProperty("supported_api_types") private Collection supportedApiTypes; - /** When the model service was last modified. */ + /** Time the model service was last modified. */ @JsonProperty("update_time") private Timestamp updateTime; @@ -157,15 +151,6 @@ public String getName() { return name; } - public ModelService setOwner(String owner) { - this.owner = owner; - return this; - } - - public String getOwner() { - return owner; - } - public ModelService setSupportedApiTypes(Collection supportedApiTypes) { this.supportedApiTypes = supportedApiTypes; return this; @@ -206,7 +191,6 @@ public boolean equals(Object o) { && Objects.equals(etag, that.etag) && Objects.equals(metastoreId, that.metastoreId) && Objects.equals(name, that.name) - && Objects.equals(owner, that.owner) && Objects.equals(supportedApiTypes, that.supportedApiTypes) && Objects.equals(updateTime, that.updateTime) && Objects.equals(updatedBy, that.updatedBy); @@ -223,7 +207,6 @@ public int hashCode() { etag, metastoreId, name, - owner, supportedApiTypes, updateTime, updatedBy); @@ -240,7 +223,6 @@ public String toString() { .add("etag", etag) .add("metastoreId", metastoreId) .add("name", name) - .add("owner", owner) .add("supportedApiTypes", supportedApiTypes) .add("updateTime", updateTime) .add("updatedBy", updatedBy) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigDestinationConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigDestinationConfig.java index f15285cf6..0adac8001 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigDestinationConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigDestinationConfig.java @@ -13,7 +13,10 @@ */ @Generated public class ModelServiceConfigDestinationConfig { - /** Backing-model category. Determines which oneof variant is populated. */ + /** + * Backing-model category. Provide the matching type-specific configuration and leave the other + * type-specific configurations unset. + */ @JsonProperty("destination_type") private ModelServiceConfigDestinationConfigDestinationType destinationType; @@ -44,8 +47,9 @@ public class ModelServiceConfigDestinationConfig { private ModelServiceConfigProvisionedThroughputConfig provisionedThroughputConfig; /** - * Share of traffic sent to this destination, 0-100. Optional on fallback destinations; see - * FallbackConfig. + * Percentage of primary traffic sent to this destination, from 0 to 100. Required when + * `traffic_splitting` is set; primary percentages must sum to 100. Fallback destinations are + * ordered and do not use this field. */ @JsonProperty("traffic_percentage") private Long trafficPercentage; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigPayPerTokenConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigPayPerTokenConfig.java index caed45cd9..f911c9d12 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigPayPerTokenConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigPayPerTokenConfig.java @@ -13,7 +13,7 @@ */ @Generated public class ModelServiceConfigPayPerTokenConfig { - /** Resource name of the UC model. Format: `models/{catalog}.{schema}.{model}`. */ + /** Resource name of the Unity Catalog model. Format: `models/{catalog}.{schema}.{model}`. */ @JsonProperty("model") private String model; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigProvisionedThroughputConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigProvisionedThroughputConfig.java index 4e5c7bb5a..c03320833 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigProvisionedThroughputConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigProvisionedThroughputConfig.java @@ -23,9 +23,10 @@ public class ModelServiceConfigProvisionedThroughputConfig { /** * Name of the backing Model Serving endpoint serving the provisioned- throughput foundation - * model, as the AIP-122 typed resource name `serving-endpoints/{name}`. The same UC model can be - * served on multiple Model Serving endpoints (different throughput / region / config); the caller - * picks which one this destination routes to. The endpoint must exist at create time. + * model, in the form `serving-endpoints/{name}`. The same Unity Catalog model can be served on + * multiple Model Serving endpoints with different throughput, regions, or configurations. The + * caller selects the endpoint to which this destination routes. The endpoint must exist at create + * time. */ @JsonProperty("model_serving_endpoint") private String modelServingEndpoint; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigRoutingConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigRoutingConfig.java index b91093f77..77fecdedf 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigRoutingConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelServiceConfigRoutingConfig.java @@ -16,14 +16,18 @@ @Generated public class ModelServiceConfigRoutingConfig { /** - * Primary routing destinations. At most 10 are allowed. At least one is required on - * CreateModelService; on UpdateModelService it is required only when `config.routing` (or a - * `config.routing.*` subpath) appears in `update_mask`. + * Primary routing destinations. At most 10 are allowed. At least one is required on Create. On + * Update, provide this list when replacing the full `config` or updating + * `config.routing.destinations`; other granular routing updates do not require resending + * destinations. The intermediate `config.routing` mask path is not supported. */ @JsonProperty("destinations") private Collection destinations; - /** Fallback routing config, applied after primary destinations fail. */ + /** + * Fallback routing applied after a primary destination fails. Fallback destinations are tried in + * the listed order. + */ @JsonProperty("fallback") private ModelServiceConfigFallbackConfig fallback; @@ -36,8 +40,8 @@ public class ModelServiceConfigRoutingConfig { private Duration firstTokenTimeout; /** - * Marker message selecting request-based traffic splitting. Traffic is distributed according to - * each destination's traffic_percentage value; no configuration lives on this message itself. + * Select `traffic_splitting` to enable weighted traffic splitting across primary destinations. + * Their `traffic_percentage` values must sum to 100. */ @JsonProperty("traffic_splitting") private ModelServiceConfigRoutingConfigTrafficSplitting trafficSplitting; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RateLimit.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RateLimit.java index 6d95d6080..970eca5f6 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RateLimit.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RateLimit.java @@ -13,7 +13,10 @@ */ @Generated public class RateLimit { - /** Scope key. Determines whether `principal` is required. */ + /** + * Scope of the rate limit. Depending on this value, the limit applies to a principal, the service + * as a whole, each user by default, or a request tag. + */ @JsonProperty("key") private RateLimitRateLimitKey key; @@ -44,11 +47,17 @@ public class RateLimit { @JsonProperty("request_tag_value") private String requestTagValue; - /** Max requests allowed within a renewal period. Leave unset for no request limit. */ + /** + * Maximum requests allowed in one renewal period. Leave unset for no request limit. Set to `0` to + * deny all requests. + */ @JsonProperty("requests") private Long requests; - /** Max tokens allowed within a renewal period. Leave unset for no token limit. */ + /** + * Maximum tokens allowed in one renewal period. Leave unset for no token limit. Set to `0` to + * deny all requests. + */ @JsonProperty("tokens") private Long tokens; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaAPI.java index 17d0d7e7b..153859784 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaAPI.java @@ -67,8 +67,8 @@ public AccessRequestDestinations getAccessRequestDestinations( * Updates the access request destinations for the given securable. The caller must be a metastore * admin, the owner of the securable, or a user that has the **MANAGE** privilege on the securable * in order to assign destinations. A maximum of 5 emails and 5 external notification destinations - * (Slack, Microsoft Teams, and Generic Webhook destinations) can be assigned to a securable. If a - * URL destination is assigned, no other destinations can be set. + * (Slack, Microsoft Teams, Generic Webhook, and Databricks App Slack/Teams destinations) can be + * assigned to a securable. If a URL destination is assigned, no other destinations can be set. * *

The supported securable types are: "metastore", "catalog", "schema", "table", * "external_location", "connection", "credential", "function", "registered_model", and "volume". diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaService.java index 911269bc8..46ee29c5c 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaService.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaService.java @@ -42,8 +42,8 @@ AccessRequestDestinations getAccessRequestDestinations( * Updates the access request destinations for the given securable. The caller must be a metastore * admin, the owner of the securable, or a user that has the **MANAGE** privilege on the securable * in order to assign destinations. A maximum of 5 emails and 5 external notification destinations - * (Slack, Microsoft Teams, and Generic Webhook destinations) can be assigned to a securable. If a - * URL destination is assigned, no other destinations can be set. + * (Slack, Microsoft Teams, Generic Webhook, and Databricks App Slack/Teams destinations) can be + * assigned to a securable. If a URL destination is assigned, no other destinations can be set. * *

The supported securable types are: "metastore", "catalog", "schema", "table", * "external_location", "connection", "credential", "function", "registered_model", and "volume". diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateMcpServiceRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateMcpServiceRequest.java index e32f5fbae..87d9805c9 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateMcpServiceRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateMcpServiceRequest.java @@ -13,8 +13,9 @@ @Generated public class UpdateMcpServiceRequest { /** - * If-match precondition: when set, the update proceeds only if the current server-side etag - * matches. Empty means an unconditional update. + * Optimistic concurrency token from the most recent read. When set, the update succeeds only if + * the resource has not changed. Leave unset for an unconditional update. For REST requests, + * URL-encode the base64 string returned by the API when setting the `etag` query parameter. */ @JsonIgnore @QueryParam("etag") @@ -36,8 +37,11 @@ public class UpdateMcpServiceRequest { @JsonIgnore private String name; /** - * The list of fields to update. The framework validates each path against the `mcp_service` field - * above. Wildcard paths (`paths: ["*"]`) are not supported; list each field path explicitly. + * Fields to update. Use `config` to replace the entire configuration. The replacement must + * include every required field; any optional field you omit is cleared. To preserve sibling + * fields, use one or more granular paths: `comment`, `config.source_connection.name`, + * `config.include_tool_selectors`, or `config.rate_limits`. Wildcard paths such as `*` are not + * supported. */ @JsonIgnore @QueryParam("update_mask") diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateModelProviderServiceRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateModelProviderServiceRequest.java index 83f360599..dc1331e22 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateModelProviderServiceRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateModelProviderServiceRequest.java @@ -13,8 +13,9 @@ @Generated public class UpdateModelProviderServiceRequest { /** - * If-match precondition: when set, the update proceeds only if the current server-side etag - * matches. Empty means an unconditional update. + * Optimistic concurrency token from the most recent read. When set, the update succeeds only if + * the resource has not changed. Leave unset for an unconditional update. For REST requests, + * URL-encode the base64 string returned by the API when setting the `etag` query parameter. */ @JsonIgnore @QueryParam("etag") @@ -37,9 +38,13 @@ public class UpdateModelProviderServiceRequest { @JsonIgnore private String name; /** - * The list of fields to update. The framework validates each path against the - * `model_provider_service` field above. Wildcard paths (`paths: ["*"]`) are not supported; list - * each field path explicitly. + * Fields to update. Use `config` to replace the entire configuration. The replacement must + * include every required field; any optional field you omit is cleared. To preserve sibling + * fields, use one or more granular paths: `comment`, `config.provider`, + * `config.allow_all_targets`, `config.targets`, `config.forward_headers`, + * `config.forward_query_parameters`, `config.forward_unmanaged_paths`, `config.rate_limits`, or + * `config.inference_table`. The provider type is immutable, and wildcard paths such as `*` are + * not supported. */ @JsonIgnore @QueryParam("update_mask") diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateModelServiceRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateModelServiceRequest.java index 491a1e0c0..db56e1622 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateModelServiceRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateModelServiceRequest.java @@ -13,8 +13,9 @@ @Generated public class UpdateModelServiceRequest { /** - * If-match precondition: when set, the update proceeds only if the current server-side etag - * matches. Empty means an unconditional update. + * Optimistic concurrency token from the most recent read. When set, the update succeeds only if + * the resource has not changed. Leave unset for an unconditional update. For REST requests, + * URL-encode the base64 string returned by the API when setting the `etag` query parameter. */ @JsonIgnore @QueryParam("etag") @@ -37,9 +38,13 @@ public class UpdateModelServiceRequest { @JsonIgnore private String name; /** - * The list of fields to update. The framework validates each path against the `model_service` - * field above. Wildcard paths (`paths: ["*"]`) are not supported; list each field path - * explicitly. + * Fields to update. Use `config` to replace the entire configuration. The replacement must + * include every required field; any optional field you omit is cleared. To preserve sibling + * fields, use one or more granular paths: `comment`, `config.routing.destinations`, + * `config.routing.routing_strategy`, `config.routing.fallback.destinations`, + * `config.routing.first_token_timeout`, `config.rate_limits`, or `config.inference_table`. + * Intermediate paths such as `config.routing` and `config.routing.fallback`, and wildcard paths + * such as `*`, are not supported. */ @JsonIgnore @QueryParam("update_mask") diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/HardwareAcceleratorType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/HardwareAcceleratorType.java index 58e133a04..291225952 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/HardwareAcceleratorType.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/HardwareAcceleratorType.java @@ -18,6 +18,9 @@ public enum HardwareAcceleratorType { @JsonProperty("GPU_1xH100") GPU_1X_H100, + @JsonProperty("GPU_8xB300") + GPU_8X_B300, + @JsonProperty("GPU_8xH100") GPU_8X_H100, } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ComputeSpec.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ComputeSpec.java index ce50fddaa..fb65a9f85 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ComputeSpec.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ComputeSpec.java @@ -28,6 +28,14 @@ public class ComputeSpec { @JsonProperty("accelerator_type") private ComputeSpecAcceleratorType acceleratorType; + /** + * Optional ID of a pre-provisioned accelerator capacity reservation to run this AI Runtime + * workload on. When set, the workload is scheduled onto the referenced reserved capacity instead + * of the on-demand capacity shared among all Databricks customers. + */ + @JsonProperty("provisioned_capacity_id") + private String provisionedCapacityId; + public ComputeSpec setAcceleratorCount(Long acceleratorCount) { this.acceleratorCount = acceleratorCount; return this; @@ -46,18 +54,28 @@ public ComputeSpecAcceleratorType getAcceleratorType() { return acceleratorType; } + public ComputeSpec setProvisionedCapacityId(String provisionedCapacityId) { + this.provisionedCapacityId = provisionedCapacityId; + return this; + } + + public String getProvisionedCapacityId() { + return provisionedCapacityId; + } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ComputeSpec that = (ComputeSpec) o; return Objects.equals(acceleratorCount, that.acceleratorCount) - && Objects.equals(acceleratorType, that.acceleratorType); + && Objects.equals(acceleratorType, that.acceleratorType) + && Objects.equals(provisionedCapacityId, that.provisionedCapacityId); } @Override public int hashCode() { - return Objects.hash(acceleratorCount, acceleratorType); + return Objects.hash(acceleratorCount, acceleratorType, provisionedCapacityId); } @Override @@ -65,6 +83,7 @@ public String toString() { return new ToStringer(ComputeSpec.class) .add("acceleratorCount", acceleratorCount) .add("acceleratorType", acceleratorType) + .add("provisionedCapacityId", provisionedCapacityId) .toString(); } } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesOperation.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesOperation.java new file mode 100644 index 000000000..9e1b28846 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesOperation.java @@ -0,0 +1,172 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.ml; + +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 backfillFeatures operation. Provides methods to wait + * for completion, check status, cancel, and access metadata. + */ +@Generated +public class BackfillFeaturesOperation { + private static final Logger LOG = LoggerFactory.getLogger(BackfillFeaturesOperation.class); + + private final FeatureEngineeringService impl; + private Operation operation; + private final ObjectMapper objectMapper; + + public BackfillFeaturesOperation(FeatureEngineeringService impl, Operation operation) { + this.impl = impl; + this.operation = operation; + this.objectMapper = SerDeUtils.createMapper(); + } + + /** + * Wait for the operation to complete and return the resulting BackfillFeaturesResponse. Waits + * indefinitely if no timeout is specified. + * + * @return the created BackfillFeaturesResponse + * @throws TimeoutException if the operation doesn't complete within the timeout + * @throws DatabricksException if the operation fails + */ + public BackfillFeaturesResponse waitForCompletion() throws TimeoutException { + return waitForCompletion(Optional.empty()); + } + + /** + * Wait for the operation to complete and return the resulting BackfillFeaturesResponse. + * + * @param options the options for configuring the wait behavior, can be empty for defaults + * @return the created BackfillFeaturesResponse + * @throws TimeoutException if the operation doesn't complete within the timeout + * @throws DatabricksException if the operation fails + */ + public BackfillFeaturesResponse 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()); + return objectMapper.treeToValue(responseJson, BackfillFeaturesResponse.class); + } catch (JsonProcessingException e) { + throw new DatabricksException( + "Failed to unmarshal backfillFeaturesResponse 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); + } + + /** + * Cancel the operation. + * + * @throws DatabricksException if the cancellation fails + */ + public void cancel() { + impl.cancelOperation(new CancelOperationRequest().setName(operation.getName())); + } + + /** + * 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 BackfillOperationMetadata getMetadata() { + if (operation.getMetadata() == null) { + return null; + } + + try { + JsonNode metadataJson = objectMapper.valueToTree(operation.getMetadata()); + return objectMapper.treeToValue(metadataJson, BackfillOperationMetadata.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/ml/BackfillFeaturesRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesRequest.java new file mode 100644 index 000000000..6b8cbb010 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesRequest.java @@ -0,0 +1,75 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.ml; + +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 BackfillFeaturesRequest { + /** Output ranges to backfill. */ + @JsonProperty("backfill_ranges") + private Collection backfillRanges; + + /** Full names of the features to backfill. */ + @JsonProperty("feature_full_names") + private Collection featureFullNames; + + /** Idempotency token for the request. */ + @JsonProperty("request_id") + private String requestId; + + public BackfillFeaturesRequest setBackfillRanges(Collection backfillRanges) { + this.backfillRanges = backfillRanges; + return this; + } + + public Collection getBackfillRanges() { + return backfillRanges; + } + + public BackfillFeaturesRequest setFeatureFullNames(Collection featureFullNames) { + this.featureFullNames = featureFullNames; + return this; + } + + public Collection getFeatureFullNames() { + return featureFullNames; + } + + public BackfillFeaturesRequest setRequestId(String requestId) { + this.requestId = requestId; + return this; + } + + public String getRequestId() { + return requestId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BackfillFeaturesRequest that = (BackfillFeaturesRequest) o; + return Objects.equals(backfillRanges, that.backfillRanges) + && Objects.equals(featureFullNames, that.featureFullNames) + && Objects.equals(requestId, that.requestId); + } + + @Override + public int hashCode() { + return Objects.hash(backfillRanges, featureFullNames, requestId); + } + + @Override + public String toString() { + return new ToStringer(BackfillFeaturesRequest.class) + .add("backfillRanges", backfillRanges) + .add("featureFullNames", featureFullNames) + .add("requestId", requestId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesResponse.java new file mode 100644 index 000000000..39af33fc2 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillFeaturesResponse.java @@ -0,0 +1,29 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.ml; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import java.util.Objects; + +/** Result of a completed backfill. */ +@Generated +public class BackfillFeaturesResponse { + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + return true; + } + + @Override + public int hashCode() { + return Objects.hash(); + } + + @Override + public String toString() { + return new ToStringer(BackfillFeaturesResponse.class).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillOperationMetadata.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillOperationMetadata.java new file mode 100644 index 000000000..b96f77f04 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillOperationMetadata.java @@ -0,0 +1,76 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.ml; + +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; + +/** Progress and configuration for a backfill. */ +@Generated +public class BackfillOperationMetadata { + /** Output ranges targeted by the backfill. */ + @JsonProperty("backfill_ranges") + private Collection backfillRanges; + + /** Full names of the features targeted by the backfill. */ + @JsonProperty("feature_full_names") + private Collection featureFullNames; + + /** Current state of the backfill. */ + @JsonProperty("state") + private BackfillOperationMetadataState state; + + public BackfillOperationMetadata setBackfillRanges(Collection backfillRanges) { + this.backfillRanges = backfillRanges; + return this; + } + + public Collection getBackfillRanges() { + return backfillRanges; + } + + public BackfillOperationMetadata setFeatureFullNames(Collection featureFullNames) { + this.featureFullNames = featureFullNames; + return this; + } + + public Collection getFeatureFullNames() { + return featureFullNames; + } + + public BackfillOperationMetadata setState(BackfillOperationMetadataState state) { + this.state = state; + return this; + } + + public BackfillOperationMetadataState getState() { + return state; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BackfillOperationMetadata that = (BackfillOperationMetadata) o; + return Objects.equals(backfillRanges, that.backfillRanges) + && Objects.equals(featureFullNames, that.featureFullNames) + && Objects.equals(state, that.state); + } + + @Override + public int hashCode() { + return Objects.hash(backfillRanges, featureFullNames, state); + } + + @Override + public String toString() { + return new ToStringer(BackfillOperationMetadata.class) + .add("backfillRanges", backfillRanges) + .add("featureFullNames", featureFullNames) + .add("state", state) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillOperationMetadataState.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillOperationMetadataState.java new file mode 100644 index 000000000..958b4ec49 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillOperationMetadataState.java @@ -0,0 +1,15 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.ml; + +import com.databricks.sdk.support.Generated; + +/** Lifecycle state of a backfill. */ +@Generated +public enum BackfillOperationMetadataState { + CANCELLED, + FAILED, + PENDING, + RUNNING, + SUCCEEDED, +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillRange.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillRange.java new file mode 100644 index 000000000..8991e7426 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/BackfillRange.java @@ -0,0 +1,63 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.ml; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.protobuf.Timestamp; +import java.util.Objects; + +/** A time range for a backfill. */ +@Generated +public class BackfillRange { + /** End of the backfill range, exclusive. If unset, defaults to the current time. */ + @JsonProperty("end_time") + private Timestamp endTime; + + /** + * Start of the backfill range, inclusive. If unset, defaults to the earliest source timestamp of + * the feature. + */ + @JsonProperty("start_time") + private Timestamp startTime; + + public BackfillRange setEndTime(Timestamp endTime) { + this.endTime = endTime; + return this; + } + + public Timestamp getEndTime() { + return endTime; + } + + public BackfillRange setStartTime(Timestamp startTime) { + this.startTime = startTime; + return this; + } + + public Timestamp getStartTime() { + return startTime; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BackfillRange that = (BackfillRange) o; + return Objects.equals(endTime, that.endTime) && Objects.equals(startTime, that.startTime); + } + + @Override + public int hashCode() { + return Objects.hash(endTime, startTime); + } + + @Override + public String toString() { + return new ToStringer(BackfillRange.class) + .add("endTime", endTime) + .add("startTime", startTime) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/CancelOperationRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/CancelOperationRequest.java new file mode 100644 index 000000000..294a41772 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/CancelOperationRequest.java @@ -0,0 +1,42 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.ml; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.Objects; + +/** The request message for `CancelOperation` method. */ +@Generated +public class CancelOperationRequest { + /** The name of the operation resource to be cancelled. */ + @JsonIgnore private String name; + + public CancelOperationRequest 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; + CancelOperationRequest that = (CancelOperationRequest) o; + return Objects.equals(name, that.name); + } + + @Override + public int hashCode() { + return Objects.hash(name); + } + + @Override + public String toString() { + return new ToStringer(CancelOperationRequest.class).add("name", name).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/DatabricksServiceExceptionWithDetailsProto.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/DatabricksServiceExceptionWithDetailsProto.java new file mode 100644 index 000000000..e2d3f0030 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/DatabricksServiceExceptionWithDetailsProto.java @@ -0,0 +1,92 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.ml; + +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; + +/** Databricks Error that is returned by all Databricks APIs. */ +@Generated +public class DatabricksServiceExceptionWithDetailsProto { + /** */ + @JsonProperty("details") + private Collection details; + + /** */ + @JsonProperty("error_code") + private ErrorCode errorCode; + + /** */ + @JsonProperty("message") + private String message; + + /** */ + @JsonProperty("stack_trace") + private String stackTrace; + + public DatabricksServiceExceptionWithDetailsProto setDetails(Collection details) { + this.details = details; + return this; + } + + public Collection getDetails() { + return details; + } + + public DatabricksServiceExceptionWithDetailsProto setErrorCode(ErrorCode errorCode) { + this.errorCode = errorCode; + return this; + } + + public ErrorCode getErrorCode() { + return errorCode; + } + + public DatabricksServiceExceptionWithDetailsProto setMessage(String message) { + this.message = message; + return this; + } + + public String getMessage() { + return message; + } + + public DatabricksServiceExceptionWithDetailsProto setStackTrace(String stackTrace) { + this.stackTrace = stackTrace; + return this; + } + + public String getStackTrace() { + return stackTrace; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DatabricksServiceExceptionWithDetailsProto that = + (DatabricksServiceExceptionWithDetailsProto) o; + return Objects.equals(details, that.details) + && Objects.equals(errorCode, that.errorCode) + && Objects.equals(message, that.message) + && Objects.equals(stackTrace, that.stackTrace); + } + + @Override + public int hashCode() { + return Objects.hash(details, errorCode, message, stackTrace); + } + + @Override + public String toString() { + return new ToStringer(DatabricksServiceExceptionWithDetailsProto.class) + .add("details", details) + .add("errorCode", errorCode) + .add("message", message) + .add("stackTrace", stackTrace) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ErrorCode.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ErrorCode.java new file mode 100644 index 000000000..15c5f245c --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ErrorCode.java @@ -0,0 +1,91 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.ml; + +import com.databricks.sdk.support.Generated; + +/** Error codes returned by Databricks APIs to indicate specific failure conditions. */ +@Generated +public enum ErrorCode { + ABORTED, + ALREADY_EXISTS, + BAD_REQUEST, + CANCELLED, + CATALOG_ALREADY_EXISTS, + CATALOG_DOES_NOT_EXIST, + CATALOG_NOT_EMPTY, + COULD_NOT_ACQUIRE_LOCK, + CUSTOMER_UNAUTHORIZED, + DAC_ALREADY_EXISTS, + DAC_DOES_NOT_EXIST, + DATA_LOSS, + DEADLINE_EXCEEDED, + DEPLOYMENT_TIMEOUT, + DIRECTORY_NOT_EMPTY, + DIRECTORY_PROTECTED, + DRY_RUN_FAILED, + ENDPOINT_NOT_FOUND, + EXTERNAL_LOCATION_ALREADY_EXISTS, + EXTERNAL_LOCATION_DOES_NOT_EXIST, + FEATURE_DISABLED, + GIT_CONFLICT, + GIT_REMOTE_ERROR, + GIT_SENSITIVE_TOKEN_DETECTED, + GIT_UNKNOWN_REF, + GIT_URL_NOT_ON_ALLOW_LIST, + INSECURE_PARTNER_RESPONSE, + INTERNAL_ERROR, + INVALID_PARAMETER_VALUE, + INVALID_STATE, + INVALID_STATE_TRANSITION, + IO_ERROR, + IPYNB_FILE_IN_REPO, + MALFORMED_PARTNER_RESPONSE, + MALFORMED_REQUEST, + MANAGED_RESOURCE_GROUP_DOES_NOT_EXIST, + MAX_BLOCK_SIZE_EXCEEDED, + MAX_CHILD_NODE_SIZE_EXCEEDED, + MAX_LIST_SIZE_EXCEEDED, + MAX_NOTEBOOK_SIZE_EXCEEDED, + MAX_READ_SIZE_EXCEEDED, + METASTORE_ALREADY_EXISTS, + METASTORE_DOES_NOT_EXIST, + METASTORE_NOT_EMPTY, + NOT_FOUND, + NOT_IMPLEMENTED, + PARTIAL_DELETE, + PERMISSION_DENIED, + PERMISSION_NOT_PROPAGATED, + PRINCIPAL_DOES_NOT_EXIST, + PROJECTS_OPERATION_TIMEOUT, + PROVIDER_ALREADY_EXISTS, + PROVIDER_DOES_NOT_EXIST, + PROVIDER_SHARE_NOT_ACCESSIBLE, + QUOTA_EXCEEDED, + RECIPIENT_ALREADY_EXISTS, + RECIPIENT_DOES_NOT_EXIST, + REQUEST_LIMIT_EXCEEDED, + RESOURCE_ALREADY_EXISTS, + RESOURCE_CONFLICT, + RESOURCE_DOES_NOT_EXIST, + RESOURCE_EXHAUSTED, + RESOURCE_LIMIT_EXCEEDED, + SCHEMA_ALREADY_EXISTS, + SCHEMA_DOES_NOT_EXIST, + SCHEMA_NOT_EMPTY, + SEARCH_QUERY_TOO_LONG, + SEARCH_QUERY_TOO_SHORT, + SERVICE_UNDER_MAINTENANCE, + SHARE_ALREADY_EXISTS, + SHARE_DOES_NOT_EXIST, + STORAGE_CREDENTIAL_ALREADY_EXISTS, + STORAGE_CREDENTIAL_DOES_NOT_EXIST, + TABLE_ALREADY_EXISTS, + TABLE_DOES_NOT_EXIST, + TEMPORARILY_UNAVAILABLE, + UNAUTHENTICATED, + UNAVAILABLE, + UNKNOWN, + UNPARSEABLE_HTTP_ERROR, + WORKSPACE_TEMPORARILY_UNAVAILABLE, +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringAPI.java index 88e553f31..b46490323 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringAPI.java @@ -24,12 +24,23 @@ public FeatureEngineeringAPI(FeatureEngineeringService mock) { impl = mock; } + /** Backfill features. */ + public BackfillFeaturesOperation backfillFeatures(BackfillFeaturesRequest request) { + Operation operation = impl.backfillFeatures(request); + return new BackfillFeaturesOperation(impl, operation); + } + /** Batch create materialized features. */ public BatchCreateMaterializedFeaturesResponse batchCreateMaterializedFeatures( BatchCreateMaterializedFeaturesRequest request) { return impl.batchCreateMaterializedFeatures(request); } + /** Cancel an operation. */ + public void cancelOperation(CancelOperationRequest request) { + impl.cancelOperation(request); + } + /** Create a Feature. */ public Feature createFeature(CreateFeatureRequest request) { return impl.createFeature(request); @@ -124,6 +135,15 @@ public MaterializedFeature getMaterializedFeature(GetMaterializedFeatureRequest return impl.getMaterializedFeature(request); } + public Operation getOperation(String name) { + return getOperation(new GetOperationRequest().setName(name)); + } + + /** Get an operation. */ + public Operation getOperation(GetOperationRequest request) { + return impl.getOperation(request); + } + public Stream getStream(String name) { return getStream(new GetStreamRequest().setName(name)); } 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 70c55c2c2..ac04b09e9 100644 --- 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 @@ -6,6 +6,7 @@ import com.databricks.sdk.core.http.Request; import com.databricks.sdk.support.Generated; import java.io.IOException; +import java.util.UUID; /** Package-local implementation of FeatureEngineering */ @Generated @@ -16,6 +17,27 @@ public FeatureEngineeringImpl(ApiClient apiClient) { this.apiClient = apiClient; } + @Override + public Operation backfillFeatures(BackfillFeaturesRequest request) { + String path = "/api/2.0/feature-engineering/features:backfill"; + try { + Request req = new Request("POST", path, apiClient.serialize(request)); + + if (request.getRequestId() == null || request.getRequestId().isEmpty()) { + request.setRequestId(UUID.randomUUID().toString()); + } + 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, Operation.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + @Override public BatchCreateMaterializedFeaturesResponse batchCreateMaterializedFeatures( BatchCreateMaterializedFeaturesRequest request) { @@ -35,6 +57,24 @@ public BatchCreateMaterializedFeaturesResponse batchCreateMaterializedFeatures( } } + @Override + public void cancelOperation(CancelOperationRequest request) { + String path = String.format("/api/2.0/feature-engineering/%s:cancel", 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-Workspace-Id", apiClient.workspaceId()); + } + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + @Override public Feature createFeature(CreateFeatureRequest request) { String path = "/api/2.0/feature-engineering/features"; @@ -235,6 +275,23 @@ public MaterializedFeature getMaterializedFeature(GetMaterializedFeatureRequest } } + @Override + public Operation getOperation(GetOperationRequest request) { + String path = String.format("/api/2.0/feature-engineering/%s", request.getName()); + try { + Request req = new Request("GET", path); + + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + if (apiClient.workspaceId() != null) { + req.withHeader("X-Databricks-Workspace-Id", apiClient.workspaceId()); + } + return apiClient.execute(req, Operation.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + @Override public Stream getStream(GetStreamRequest request) { String path = String.format("/api/2.0/feature-engineering/streams/%s", request.getName()); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringService.java index dc4be7546..132ee12c5 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringService.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringService.java @@ -12,10 +12,16 @@ */ @Generated public interface FeatureEngineeringService { + /** Backfill features. */ + Operation backfillFeatures(BackfillFeaturesRequest backfillFeaturesRequest); + /** Batch create materialized features. */ BatchCreateMaterializedFeaturesResponse batchCreateMaterializedFeatures( BatchCreateMaterializedFeaturesRequest batchCreateMaterializedFeaturesRequest); + /** Cancel an operation. */ + void cancelOperation(CancelOperationRequest cancelOperationRequest); + /** Create a Feature. */ Feature createFeature(CreateFeatureRequest createFeatureRequest); @@ -60,6 +66,9 @@ MaterializedFeature createMaterializedFeature( MaterializedFeature getMaterializedFeature( GetMaterializedFeatureRequest getMaterializedFeatureRequest); + /** Get an operation. */ + Operation getOperation(GetOperationRequest getOperationRequest); + /** Get a Stream by its full three-part name (catalog.schema.stream). */ Stream getStream(GetStreamRequest getStreamRequest); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/GetOperationRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/GetOperationRequest.java new file mode 100644 index 000000000..78a06bfbf --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/GetOperationRequest.java @@ -0,0 +1,41 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.ml; + +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 GetOperationRequest { + /** The name of the operation resource. */ + @JsonIgnore private String name; + + public GetOperationRequest 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; + GetOperationRequest that = (GetOperationRequest) o; + return Objects.equals(name, that.name); + } + + @Override + public int hashCode() { + return Objects.hash(name); + } + + @Override + public String toString() { + return new ToStringer(GetOperationRequest.class).add("name", name).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/Operation.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/Operation.java new file mode 100644 index 000000000..406202948 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/Operation.java @@ -0,0 +1,116 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.ml; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** This resource represents a long-running operation that is the result of a network API call. */ +@Generated +public class Operation { + /** + * If the value is `false`, it means the operation is still in progress. If `true`, the operation + * is completed, and either `error` or `response` is available. + */ + @JsonProperty("done") + private Boolean done; + + /** The error result of the operation in case of failure or cancellation. */ + @JsonProperty("error") + private DatabricksServiceExceptionWithDetailsProto error; + + /** + * Service-specific metadata associated with the operation. It typically contains progress + * information and common metadata such as create time. Some services might not provide such + * metadata. + */ + @JsonProperty("metadata") + private Object metadata; + + /** + * The server-assigned name, which is only unique within the same service that originally returns + * it. If you use the default HTTP mapping, the `name` should be a resource name ending with + * `operations/{unique_id}`. + */ + @JsonProperty("name") + private String name; + + /** The normal, successful response of the operation. */ + @JsonProperty("response") + private Object response; + + public Operation setDone(Boolean done) { + this.done = done; + return this; + } + + public Boolean getDone() { + return done; + } + + public Operation setError(DatabricksServiceExceptionWithDetailsProto error) { + this.error = error; + return this; + } + + public DatabricksServiceExceptionWithDetailsProto getError() { + return error; + } + + public Operation setMetadata(Object metadata) { + this.metadata = metadata; + return this; + } + + public Object getMetadata() { + return metadata; + } + + public Operation setName(String name) { + this.name = name; + return this; + } + + public String getName() { + return name; + } + + public Operation setResponse(Object response) { + this.response = response; + return this; + } + + public Object getResponse() { + return response; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Operation that = (Operation) o; + return Objects.equals(done, that.done) + && Objects.equals(error, that.error) + && Objects.equals(metadata, that.metadata) + && Objects.equals(name, that.name) + && Objects.equals(response, that.response); + } + + @Override + public int hashCode() { + return Objects.hash(done, error, metadata, name, response); + } + + @Override + public String toString() { + return new ToStringer(Operation.class) + .add("done", done) + .add("error", error) + .add("metadata", metadata) + .add("name", name) + .add("response", response) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CustomerFacingIngressNetworkPolicyCrossWorkspaceAccess.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CustomerFacingIngressNetworkPolicyCrossWorkspaceAccess.java index 200a6c0e7..288ae2231 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CustomerFacingIngressNetworkPolicyCrossWorkspaceAccess.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CustomerFacingIngressNetworkPolicyCrossWorkspaceAccess.java @@ -10,15 +10,22 @@ @Generated public class CustomerFacingIngressNetworkPolicyCrossWorkspaceAccess { - /** */ + /** + * Allow rules are evaluated after deny rules. A request matching any allow rule is allowed; a + * request matching no rule is denied by default. Only applies when restriction_mode is + * RESTRICTED_ACCESS. + */ @JsonProperty("allow_rules") private Collection allowRules; - /** */ + /** + * Deny rules are evaluated first. A request matching any deny rule is denied, regardless of allow + * rules. Only applies when restriction_mode is RESTRICTED_ACCESS. + */ @JsonProperty("deny_rules") private Collection denyRules; - /** */ + /** The restriction mode for cross-workspace access. */ @JsonProperty("restriction_mode") private CustomerFacingIngressNetworkPolicyCrossWorkspaceAccessRestrictionMode restrictionMode; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CustomerFacingIngressNetworkPolicyCrossWorkspaceAccessRestrictionMode.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CustomerFacingIngressNetworkPolicyCrossWorkspaceAccessRestrictionMode.java index 0ba262469..941b6244f 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CustomerFacingIngressNetworkPolicyCrossWorkspaceAccessRestrictionMode.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CustomerFacingIngressNetworkPolicyCrossWorkspaceAccessRestrictionMode.java @@ -4,6 +4,13 @@ import com.databricks.sdk.support.Generated; +/** + * The restriction mode for cross-workspace access. In FULL_ACCESS mode, requests from any source + * workspace (in any account) are allowed, and deny rules and allow rules cannot be set. In + * RESTRICTED_ACCESS mode, access is restricted based on deny rules and allow rules; requests that + * do not match any allow rule are denied. In LEGACY_MODE, cross-workspace ingress is not governed + * by this policy. + */ @Generated public enum CustomerFacingIngressNetworkPolicyCrossWorkspaceAccessRestrictionMode { FULL_ACCESS, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CustomerFacingIngressNetworkPolicyCrossWorkspaceIngressRule.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CustomerFacingIngressNetworkPolicyCrossWorkspaceIngressRule.java index 8fdecc371..c92287286 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CustomerFacingIngressNetworkPolicyCrossWorkspaceIngressRule.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/CustomerFacingIngressNetworkPolicyCrossWorkspaceIngressRule.java @@ -7,13 +7,23 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** + * An ingress rule is enforced when a request satisfies all specified attributes — including request + * origin, destination, and authentication. + */ @Generated public class CustomerFacingIngressNetworkPolicyCrossWorkspaceIngressRule { - /** */ + /** + * The authenticated identity the request must match. When unset, the rule matches all users and + * service principals. + */ @JsonProperty("authentication") private CustomerFacingIngressNetworkPolicyAuthentication authentication; - /** */ + /** + * The destination the request must match — the resource being accessed, for example the workspace + * UI or workspace APIs. See RequestDestination. + */ @JsonProperty("destination") private CustomerFacingIngressNetworkPolicyRequestDestination destination; @@ -21,7 +31,11 @@ public class CustomerFacingIngressNetworkPolicyCrossWorkspaceIngressRule { @JsonProperty("label") private String label; - /** */ + /** + * The origin the request must match — the source workspace the request comes from, either + * specific source workspaces or any source workspace in any account. See + * CrossWorkspaceRequestOrigin. + */ @JsonProperty("origin") private CustomerFacingIngressNetworkPolicyCrossWorkspaceRequestOrigin origin;