diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha index 74d67612d..b09d95934 100644 --- a/.codegen/_openapi_sha +++ b/.codegen/_openapi_sha @@ -1 +1 @@ -aa64d6796e23b2b78365de6b81611ad1ed97736c \ No newline at end of file +fa7c388d15531622e47f91f4d6341274b5cdc694 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index 8003abc5a..a7297e6b9 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2451,6 +2451,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/GoogleDri databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionConfig.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionGatewayPipelineDefinition.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinition.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionFanoutOptions.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionTableSpecificConfigQueryBasedConnectorConfig.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionWorkdayReportParameters.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionWorkdayReportParametersQueryKeyValue.java linguist-generated=true @@ -2860,6 +2861,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ModelDataPl databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/OpenAiConfig.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/PaLmConfig.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/PatchServingEndpointTags.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/PatchTelemetryConfigRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/PayloadTable.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/PtEndpointCoreConfig.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/PtServedModel.java linguist-generated=true diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index 87616ec46..044a42207 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -17,4 +17,6 @@ ### API Changes * Add `SPECIAL_DESTINATION_SCHEMA_OWNER`, `SPECIAL_DESTINATION_TABLE_OWNER`, `SPECIAL_DESTINATION_VOLUME_OWNER`, `SPECIAL_DESTINATION_FUNCTION_OWNER` and `SPECIAL_DESTINATION_REGISTERED_MODEL_OWNER` enum values for `com.databricks.sdk.service.catalog.SpecialDestination`. * [Breaking] Change `createDeployment()` method for `workspaceClient.bundleDeployments()` service with new required argument order. -* [Breaking] Remove `deploymentId` field for `com.databricks.sdk.service.bundledeployments.CreateDeploymentRequest`. \ No newline at end of file +* [Breaking] Remove `deploymentId` field for `com.databricks.sdk.service.bundledeployments.CreateDeploymentRequest`. +* Add `patchTelemetryConfig()` method for `workspaceClient.servingEndpoints()` service. +* Add `fanoutOptions` field for `com.databricks.sdk.service.pipelines.SchemaSpec`. \ No newline at end of file diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/files/FileInfo.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/files/FileInfo.java index 43e6185ee..fd46809b0 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/files/FileInfo.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/files/FileInfo.java @@ -9,7 +9,7 @@ @Generated public class FileInfo { - /** The length of the file in bytes. This field is omitted for directories. */ + /** The length of the file in bytes. Set to 0 for directories. */ @JsonProperty("file_size") private Long fileSize; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionFanoutOptions.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionFanoutOptions.java new file mode 100644 index 000000000..90100a0d3 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionFanoutOptions.java @@ -0,0 +1,70 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.pipelines; + +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; + +/** + * Fanout configuration for multi-table routing from streaming sources. Routes each input record to + * a destination table based on a routing key derived from the record. The key value becomes the + * table name suffix: {destination_catalog}.{destination_schema}.{key_value}. + */ +@Generated +public class IngestionPipelineDefinitionFanoutOptions { + /** + * Column path or SQL expression whose value determines the destination table. Supports dotted + * paths (e.g. "value.event_name") and expressions (e.g. "value:event_name::string"). + */ + @JsonProperty("fanout_by") + private String fanoutBy; + + /** + * Optional transforms applied to each route's DataFrame before writing to the destination table. + */ + @JsonProperty("transforms") + private Collection transforms; + + public IngestionPipelineDefinitionFanoutOptions setFanoutBy(String fanoutBy) { + this.fanoutBy = fanoutBy; + return this; + } + + public String getFanoutBy() { + return fanoutBy; + } + + public IngestionPipelineDefinitionFanoutOptions setTransforms( + Collection transforms) { + this.transforms = transforms; + return this; + } + + public Collection getTransforms() { + return transforms; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + IngestionPipelineDefinitionFanoutOptions that = (IngestionPipelineDefinitionFanoutOptions) o; + return Objects.equals(fanoutBy, that.fanoutBy) && Objects.equals(transforms, that.transforms); + } + + @Override + public int hashCode() { + return Objects.hash(fanoutBy, transforms); + } + + @Override + public String toString() { + return new ToStringer(IngestionPipelineDefinitionFanoutOptions.class) + .add("fanoutBy", fanoutBy) + .add("transforms", transforms) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/SchemaSpec.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/SchemaSpec.java index 845fd1fb5..fcf043c97 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/SchemaSpec.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/SchemaSpec.java @@ -25,6 +25,14 @@ public class SchemaSpec { @JsonProperty("destination_schema") private String destinationSchema; + /** + * Fanout options for multi-table routing from streaming sources. When set, records are routed to + * destination tables based on a per-record routing key. The key value becomes the table name: + * {destination_catalog}.{destination_schema}.{key_value}. + */ + @JsonProperty("fanout_options") + private IngestionPipelineDefinitionFanoutOptions fanoutOptions; + /** The source catalog name. Might be optional depending on the type of source. */ @JsonProperty("source_catalog") private String sourceCatalog; @@ -68,6 +76,15 @@ public String getDestinationSchema() { return destinationSchema; } + public SchemaSpec setFanoutOptions(IngestionPipelineDefinitionFanoutOptions fanoutOptions) { + this.fanoutOptions = fanoutOptions; + return this; + } + + public IngestionPipelineDefinitionFanoutOptions getFanoutOptions() { + return fanoutOptions; + } + public SchemaSpec setSourceCatalog(String sourceCatalog) { this.sourceCatalog = sourceCatalog; return this; @@ -103,6 +120,7 @@ public boolean equals(Object o) { return Objects.equals(connectorOptions, that.connectorOptions) && Objects.equals(destinationCatalog, that.destinationCatalog) && Objects.equals(destinationSchema, that.destinationSchema) + && Objects.equals(fanoutOptions, that.fanoutOptions) && Objects.equals(sourceCatalog, that.sourceCatalog) && Objects.equals(sourceSchema, that.sourceSchema) && Objects.equals(tableConfiguration, that.tableConfiguration); @@ -114,6 +132,7 @@ public int hashCode() { connectorOptions, destinationCatalog, destinationSchema, + fanoutOptions, sourceCatalog, sourceSchema, tableConfiguration); @@ -125,6 +144,7 @@ public String toString() { .add("connectorOptions", connectorOptions) .add("destinationCatalog", destinationCatalog) .add("destinationSchema", destinationSchema) + .add("fanoutOptions", fanoutOptions) .add("sourceCatalog", sourceCatalog) .add("sourceSchema", sourceSchema) .add("tableConfiguration", tableConfiguration) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/PatchTelemetryConfigRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/PatchTelemetryConfigRequest.java new file mode 100644 index 000000000..531a94d78 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/PatchTelemetryConfigRequest.java @@ -0,0 +1,67 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.serving; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** Updates the telemetry configuration of a serving endpoint. */ +@Generated +public class PatchTelemetryConfigRequest { + /** + * The name of the serving endpoint whose telemetry configuration is being updated. This field is + * required. + */ + @JsonIgnore private String name; + + /** + * The telemetry configuration to be applied to the serving endpoint. Can specify either a + * telemetry_profile_id to use an existing profile, or table_names to create a new profile with + * the specified Unity Catalog tables. If not provided, the telemetry configuration will be + * removed from the endpoint. + */ + @JsonProperty("telemetry_config") + private TelemetryConfig telemetryConfig; + + public PatchTelemetryConfigRequest setName(String name) { + this.name = name; + return this; + } + + public String getName() { + return name; + } + + public PatchTelemetryConfigRequest setTelemetryConfig(TelemetryConfig telemetryConfig) { + this.telemetryConfig = telemetryConfig; + return this; + } + + public TelemetryConfig getTelemetryConfig() { + return telemetryConfig; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PatchTelemetryConfigRequest that = (PatchTelemetryConfigRequest) o; + return Objects.equals(name, that.name) && Objects.equals(telemetryConfig, that.telemetryConfig); + } + + @Override + public int hashCode() { + return Objects.hash(name, telemetryConfig); + } + + @Override + public String toString() { + return new ToStringer(PatchTelemetryConfigRequest.class) + .add("name", name) + .add("telemetryConfig", telemetryConfig) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsAPI.java index d795e1294..8f42241ca 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsAPI.java @@ -211,6 +211,11 @@ public EndpointTags patch(PatchServingEndpointTags request) { return impl.patch(request); } + /** Updates the telemetry configuration of a serving endpoint. */ + public ServingEndpointDetailed patchTelemetryConfig(PatchTelemetryConfigRequest request) { + return impl.patchTelemetryConfig(request); + } + /** Deprecated: Please use AI Gateway to manage rate limits instead. */ public PutResponse put(PutRequest request) { return impl.put(request); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsImpl.java index e229c9274..5cccc20d9 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsImpl.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsImpl.java @@ -251,6 +251,25 @@ public EndpointTags patch(PatchServingEndpointTags request) { } } + @Override + public ServingEndpointDetailed patchTelemetryConfig(PatchTelemetryConfigRequest request) { + String path = + String.format("/api/2.0/serving-endpoints/%s/telemetry-config", request.getName()); + try { + Request req = new Request("PATCH", path, apiClient.serialize(request)); + + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + if (apiClient.workspaceId() != null) { + req.withHeader("X-Databricks-Workspace-Id", apiClient.workspaceId()); + } + return apiClient.execute(req, ServingEndpointDetailed.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + @Override public PutResponse put(PutRequest request) { String path = String.format("/api/2.0/serving-endpoints/%s/rate-limits", request.getName()); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsService.java index b6c99591d..ea2daaad3 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsService.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsService.java @@ -72,6 +72,10 @@ ServingEndpointPermissions getPermissions( /** Used to batch add and delete tags from a serving endpoint with a single API call. */ EndpointTags patch(PatchServingEndpointTags patchServingEndpointTags); + /** Updates the telemetry configuration of a serving endpoint. */ + ServingEndpointDetailed patchTelemetryConfig( + PatchTelemetryConfigRequest patchTelemetryConfigRequest); + /** Deprecated: Please use AI Gateway to manage rate limits instead. */ PutResponse put(PutRequest putRequest);