diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha index 6d75c3f05..cad921392 100644 --- a/.codegen/_openapi_sha +++ b/.codegen/_openapi_sha @@ -1 +1 @@ -d7df8ec941171923f991f29c30d94e7cd20001df \ No newline at end of file +fc0241ef3fa690fe0d1bd2238dbdb4c4e58a12ab \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index cfc7c0d98..d5be4e202 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1693,9 +1693,12 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Condition.java databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ConditionTask.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ConditionTaskOp.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Continuous.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ContinuousTriggerConfiguration.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ContinuousTriggerState.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CreateJob.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CreateResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CronSchedule.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CronTriggerConfiguration.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/DashboardPageSnapshot.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/DashboardTask.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/DashboardTaskOutput.java linguist-generated=true @@ -1772,13 +1775,16 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ListRunsReques databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ListRunsResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ModelTriggerConfiguration.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ModelTriggerConfigurationCondition.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ModelTriggerState.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/NotebookOutput.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/NotebookTask.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/OutputSchemaInfo.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PauseStatus.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PerTriggerState.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PerformanceTarget.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PeriodicTriggerConfiguration.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PeriodicTriggerConfigurationTimeUnit.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PeriodicTriggerState.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PipelineParams.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PipelineTask.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PolicyComplianceForJobsAPI.java linguist-generated=true @@ -1825,6 +1831,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunState.java databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunStatus.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunTask.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunType.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ScheduleTriggerState.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Source.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/SparkJarTask.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/SparkPythonTask.java linguist-generated=true @@ -1866,6 +1873,10 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TaskRetryMode. databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TerminationCodeCode.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TerminationDetails.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TerminationTypeType.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerConfiguration.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerDetails.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerEvaluation.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerHistory.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerInfo.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerSettings.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerStateProto.java linguist-generated=true @@ -2481,6 +2492,8 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/UpdateAccoun databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/UpdateCustomAppIntegration.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/UpdatePublishedAppIntegration.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/UpdateServicePrincipalFederationPolicyRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ApiSourceConnectorConfig.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ApiSourceConnectorOptions.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ApplyEnvironmentRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ApplyEnvironmentRequestResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/AutoFullRefreshPolicy.java linguist-generated=true @@ -3220,6 +3233,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/GetTokenMa databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/GetTokenPermissionLevelsResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/GetTokenResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/GetWorkspaceNetworkOptionRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/GoogleApiEndpoints.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/IpAccessListInfo.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/IpAccessListsAPI.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/IpAccessListsImpl.java linguist-generated=true diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index 1dd0ce0d2..689ce954b 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -15,3 +15,11 @@ ### Internal Changes ### API Changes +* Add `mlflowArtifactLocation` field for `com.databricks.sdk.service.jobs.AiRuntimeTask`. +* Add `triggerDetails` field for `com.databricks.sdk.service.jobs.BaseJob`. +* Add `triggers` field for `com.databricks.sdk.service.jobs.CreateJob`. +* Add `triggerDetails` field for `com.databricks.sdk.service.jobs.Job`. +* Add `triggers` field for `com.databricks.sdk.service.jobs.JobSettings`. +* Add `apiSourceConnectorOptions` field for `com.databricks.sdk.service.pipelines.ConnectorOptions`. +* Add `apiSourceConnectorConfig` field for `com.databricks.sdk.service.pipelines.SourceConfig`. +* Add `allVpcScServices` and `googleApiEndpoints` fields for `com.databricks.sdk.service.settings.GcpEndpoint`. \ No newline at end of file diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/AiRuntimeTask.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/AiRuntimeTask.java index 671d0fa7b..ff485e1eb 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/AiRuntimeTask.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/AiRuntimeTask.java @@ -51,6 +51,16 @@ public class AiRuntimeTask { @JsonProperty("experiment") private String experiment; + /** + * Optional root location for MLflow artifacts logged by the run. If this field isn't specified + * the default artifact location will be in dbfs i.e. + * `dbfs:/databricks/mlflow-tracking//...` If dbfs access is restricted or UC is + * preferred this can be a custom location in UC: `dbfs:/Volumes////...` + * The location should be unique for each experiment. + */ + @JsonProperty("mlflow_artifact_location") + private String mlflowArtifactLocation; + /** * Optional workspace directory under which the MLflow experiment named in `experiment` is * created. Must start with `/Workspace`. Set this when running as a service principal that has no @@ -102,6 +112,15 @@ public String getExperiment() { return experiment; } + public AiRuntimeTask setMlflowArtifactLocation(String mlflowArtifactLocation) { + this.mlflowArtifactLocation = mlflowArtifactLocation; + return this; + } + + public String getMlflowArtifactLocation() { + return mlflowArtifactLocation; + } + public AiRuntimeTask setMlflowExperimentDirectory(String mlflowExperimentDirectory) { this.mlflowExperimentDirectory = mlflowExperimentDirectory; return this; @@ -129,6 +148,7 @@ public boolean equals(Object o) { && Objects.equals(deployments, that.deployments) && Objects.equals(dockerImageUrl, that.dockerImageUrl) && Objects.equals(experiment, that.experiment) + && Objects.equals(mlflowArtifactLocation, that.mlflowArtifactLocation) && Objects.equals(mlflowExperimentDirectory, that.mlflowExperimentDirectory) && Objects.equals(mlflowRun, that.mlflowRun); } @@ -140,6 +160,7 @@ public int hashCode() { deployments, dockerImageUrl, experiment, + mlflowArtifactLocation, mlflowExperimentDirectory, mlflowRun); } @@ -151,6 +172,7 @@ public String toString() { .add("deployments", deployments) .add("dockerImageUrl", dockerImageUrl) .add("experiment", experiment) + .add("mlflowArtifactLocation", mlflowArtifactLocation) .add("mlflowExperimentDirectory", mlflowExperimentDirectory) .add("mlflowRun", mlflowRun) .toString(); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseJob.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseJob.java index a78f27377..7e61cee3c 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseJob.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseJob.java @@ -5,6 +5,7 @@ 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 @@ -54,6 +55,15 @@ public class BaseJob { @JsonProperty("settings") private JobSettings settings; + /** + * Per-trigger runtime information for the multi-trigger surface. Same length and order as + * `JobSettings.triggers`; `trigger_details[i]` corresponds to `triggers[i]`. Sub-fields (`state`, + * `history`) are populated independently based on the `GetJob.include_trigger_state` / + * `include_trigger_history` flags. + */ + @JsonProperty("trigger_details") + private Collection triggerDetails; + /** State of the trigger associated with the job. */ @JsonProperty("trigger_state") private TriggerStateProto triggerState; @@ -121,6 +131,15 @@ public JobSettings getSettings() { return settings; } + public BaseJob setTriggerDetails(Collection triggerDetails) { + this.triggerDetails = triggerDetails; + return this; + } + + public Collection getTriggerDetails() { + return triggerDetails; + } + public BaseJob setTriggerState(TriggerStateProto triggerState) { this.triggerState = triggerState; return this; @@ -142,6 +161,7 @@ public boolean equals(Object o) { && Objects.equals(hasMore, that.hasMore) && Objects.equals(jobId, that.jobId) && Objects.equals(settings, that.settings) + && Objects.equals(triggerDetails, that.triggerDetails) && Objects.equals(triggerState, that.triggerState); } @@ -155,6 +175,7 @@ public int hashCode() { hasMore, jobId, settings, + triggerDetails, triggerState); } @@ -168,6 +189,7 @@ public String toString() { .add("hasMore", hasMore) .add("jobId", jobId) .add("settings", settings) + .add("triggerDetails", triggerDetails) .add("triggerState", triggerState) .toString(); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ContinuousTriggerConfiguration.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ContinuousTriggerConfiguration.java new file mode 100644 index 000000000..0bc932a35 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ContinuousTriggerConfiguration.java @@ -0,0 +1,48 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.jobs; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * Continuous trigger. Stripped-down counterpart to `ContinuousSettings`: `pause_status` is owned by + * the enclosing `TriggerConfiguration` and intentionally omitted here. + */ +@Generated +public class ContinuousTriggerConfiguration { + /** Whether the continuous job applies task-level retries. Defaults to NEVER. */ + @JsonProperty("task_retry_mode") + private TaskRetryMode taskRetryMode; + + public ContinuousTriggerConfiguration setTaskRetryMode(TaskRetryMode taskRetryMode) { + this.taskRetryMode = taskRetryMode; + return this; + } + + public TaskRetryMode getTaskRetryMode() { + return taskRetryMode; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ContinuousTriggerConfiguration that = (ContinuousTriggerConfiguration) o; + return Objects.equals(taskRetryMode, that.taskRetryMode); + } + + @Override + public int hashCode() { + return Objects.hash(taskRetryMode); + } + + @Override + public String toString() { + return new ToStringer(ContinuousTriggerConfiguration.class) + .add("taskRetryMode", taskRetryMode) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ContinuousTriggerState.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ContinuousTriggerState.java new file mode 100644 index 000000000..3c9a3403a --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ContinuousTriggerState.java @@ -0,0 +1,74 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.jobs; + +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 ContinuousTriggerState { + /** */ + @JsonProperty("consecutive_failures") + private Long consecutiveFailures; + + /** */ + @JsonProperty("is_backing_off") + private Boolean isBackingOff; + + /** */ + @JsonProperty("next_attempt_ms") + private Long nextAttemptMs; + + public ContinuousTriggerState setConsecutiveFailures(Long consecutiveFailures) { + this.consecutiveFailures = consecutiveFailures; + return this; + } + + public Long getConsecutiveFailures() { + return consecutiveFailures; + } + + public ContinuousTriggerState setIsBackingOff(Boolean isBackingOff) { + this.isBackingOff = isBackingOff; + return this; + } + + public Boolean getIsBackingOff() { + return isBackingOff; + } + + public ContinuousTriggerState setNextAttemptMs(Long nextAttemptMs) { + this.nextAttemptMs = nextAttemptMs; + return this; + } + + public Long getNextAttemptMs() { + return nextAttemptMs; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ContinuousTriggerState that = (ContinuousTriggerState) o; + return Objects.equals(consecutiveFailures, that.consecutiveFailures) + && Objects.equals(isBackingOff, that.isBackingOff) + && Objects.equals(nextAttemptMs, that.nextAttemptMs); + } + + @Override + public int hashCode() { + return Objects.hash(consecutiveFailures, isBackingOff, nextAttemptMs); + } + + @Override + public String toString() { + return new ToStringer(ContinuousTriggerState.class) + .add("consecutiveFailures", consecutiveFailures) + .add("isBackingOff", isBackingOff) + .add("nextAttemptMs", nextAttemptMs) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CreateJob.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CreateJob.java index 6a3cdae29..0b1d665ef 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CreateJob.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CreateJob.java @@ -195,6 +195,15 @@ public class CreateJob { @JsonProperty("trigger") private TriggerSettings trigger; + /** + * List of triggers attached to this job. A run starts when any active trigger evaluates to true. + * Cannot be set in the same request as the legacy `schedule`, `trigger`, or `continuous` fields. + * The 10-trigger cap is the design's hard limit; rollout steps the effective cap 3 -> 5 -> 10 via + * internal validation during the preview. + */ + @JsonProperty("triggers") + private Collection triggers; + /** * The id of the user specified usage policy to use for this job. If not specified, a default * usage policy may be applied when creating or modifying the job. See `effective_usage_policy_id` @@ -432,6 +441,15 @@ public TriggerSettings getTrigger() { return trigger; } + public CreateJob setTriggers(Collection triggers) { + this.triggers = triggers; + return this; + } + + public Collection getTriggers() { + return triggers; + } + public CreateJob setUsagePolicyId(String usagePolicyId) { this.usagePolicyId = usagePolicyId; return this; @@ -480,6 +498,7 @@ public boolean equals(Object o) { && Objects.equals(tasks, that.tasks) && Objects.equals(timeoutSeconds, that.timeoutSeconds) && Objects.equals(trigger, that.trigger) + && Objects.equals(triggers, that.triggers) && Objects.equals(usagePolicyId, that.usagePolicyId) && Objects.equals(webhookNotifications, that.webhookNotifications); } @@ -512,6 +531,7 @@ public int hashCode() { tasks, timeoutSeconds, trigger, + triggers, usagePolicyId, webhookNotifications); } @@ -544,6 +564,7 @@ public String toString() { .add("tasks", tasks) .add("timeoutSeconds", timeoutSeconds) .add("trigger", trigger) + .add("triggers", triggers) .add("usagePolicyId", usagePolicyId) .add("webhookNotifications", webhookNotifications) .toString(); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CronTriggerConfiguration.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CronTriggerConfiguration.java new file mode 100644 index 000000000..4eb5981e0 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CronTriggerConfiguration.java @@ -0,0 +1,74 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.jobs; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * Cron schedule trigger. Stripped-down counterpart to `CronSchedule`: `pause_status` and + * `sql_condition` are owned by the enclosing `TriggerConfiguration` and intentionally omitted here. + */ +@Generated +public class CronTriggerConfiguration { + /** + * A Cron expression using Quartz syntax that describes the schedule for this trigger. See [Cron + * Trigger] for details. + * + *

[Cron Trigger]: + * http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html + */ + @JsonProperty("quartz_cron_expression") + private String quartzCronExpression; + + /** + * A Java timezone ID. The schedule is resolved with respect to this timezone. See [Java TimeZone] + * for details. + * + *

[Java TimeZone]: https://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html + */ + @JsonProperty("timezone_id") + private String timezoneId; + + public CronTriggerConfiguration setQuartzCronExpression(String quartzCronExpression) { + this.quartzCronExpression = quartzCronExpression; + return this; + } + + public String getQuartzCronExpression() { + return quartzCronExpression; + } + + public CronTriggerConfiguration setTimezoneId(String timezoneId) { + this.timezoneId = timezoneId; + return this; + } + + public String getTimezoneId() { + return timezoneId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CronTriggerConfiguration that = (CronTriggerConfiguration) o; + return Objects.equals(quartzCronExpression, that.quartzCronExpression) + && Objects.equals(timezoneId, that.timezoneId); + } + + @Override + public int hashCode() { + return Objects.hash(quartzCronExpression, timezoneId); + } + + @Override + public String toString() { + return new ToStringer(CronTriggerConfiguration.class) + .add("quartzCronExpression", quartzCronExpression) + .add("timezoneId", timezoneId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Job.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Job.java index 3b2a3d50b..42c9003e2 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Job.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Job.java @@ -5,6 +5,7 @@ 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; /** Job was retrieved successfully. */ @@ -71,6 +72,15 @@ public class Job { @JsonProperty("settings") private JobSettings settings; + /** + * Per-trigger runtime information for the multi-trigger surface. Same length and order as + * `JobSettings.triggers`; `trigger_details[i]` corresponds to `triggers[i]`. Sub-fields (`state`, + * `history`) are populated independently based on the `GetJob.include_trigger_state` / + * `include_trigger_history` flags. + */ + @JsonProperty("trigger_details") + private Collection triggerDetails; + /** State of the trigger associated with the job. */ @JsonProperty("trigger_state") private TriggerStateProto triggerState; @@ -156,6 +166,15 @@ public JobSettings getSettings() { return settings; } + public Job setTriggerDetails(Collection triggerDetails) { + this.triggerDetails = triggerDetails; + return this; + } + + public Collection getTriggerDetails() { + return triggerDetails; + } + public Job setTriggerState(TriggerStateProto triggerState) { this.triggerState = triggerState; return this; @@ -179,6 +198,7 @@ public boolean equals(Object o) { && Objects.equals(nextPageToken, that.nextPageToken) && Objects.equals(runAsUserName, that.runAsUserName) && Objects.equals(settings, that.settings) + && Objects.equals(triggerDetails, that.triggerDetails) && Objects.equals(triggerState, that.triggerState); } @@ -194,6 +214,7 @@ public int hashCode() { nextPageToken, runAsUserName, settings, + triggerDetails, triggerState); } @@ -209,6 +230,7 @@ public String toString() { .add("nextPageToken", nextPageToken) .add("runAsUserName", runAsUserName) .add("settings", settings) + .add("triggerDetails", triggerDetails) .add("triggerState", triggerState) .toString(); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobSettings.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobSettings.java index dfd55ab16..56cda2f66 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobSettings.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobSettings.java @@ -191,6 +191,15 @@ public class JobSettings { @JsonProperty("trigger") private TriggerSettings trigger; + /** + * List of triggers attached to this job. A run starts when any active trigger evaluates to true. + * Cannot be set in the same request as the legacy `schedule`, `trigger`, or `continuous` fields. + * The 10-trigger cap is the design's hard limit; rollout steps the effective cap 3 -> 5 -> 10 via + * internal validation during the preview. + */ + @JsonProperty("triggers") + private Collection triggers; + /** * The id of the user specified usage policy to use for this job. If not specified, a default * usage policy may be applied when creating or modifying the job. See `effective_usage_policy_id` @@ -419,6 +428,15 @@ public TriggerSettings getTrigger() { return trigger; } + public JobSettings setTriggers(Collection triggers) { + this.triggers = triggers; + return this; + } + + public Collection getTriggers() { + return triggers; + } + public JobSettings setUsagePolicyId(String usagePolicyId) { this.usagePolicyId = usagePolicyId; return this; @@ -466,6 +484,7 @@ public boolean equals(Object o) { && Objects.equals(tasks, that.tasks) && Objects.equals(timeoutSeconds, that.timeoutSeconds) && Objects.equals(trigger, that.trigger) + && Objects.equals(triggers, that.triggers) && Objects.equals(usagePolicyId, that.usagePolicyId) && Objects.equals(webhookNotifications, that.webhookNotifications); } @@ -497,6 +516,7 @@ public int hashCode() { tasks, timeoutSeconds, trigger, + triggers, usagePolicyId, webhookNotifications); } @@ -528,6 +548,7 @@ public String toString() { .add("tasks", tasks) .add("timeoutSeconds", timeoutSeconds) .add("trigger", trigger) + .add("triggers", triggers) .add("usagePolicyId", usagePolicyId) .add("webhookNotifications", webhookNotifications) .toString(); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ModelTriggerState.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ModelTriggerState.java new file mode 100644 index 000000000..79b30ad69 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ModelTriggerState.java @@ -0,0 +1,32 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.jobs; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import java.util.Objects; + +/** + * Runtime state for a model trigger. Currently empty because model triggers do not expose any + * trigger-specific runtime state. + */ +@Generated +public class ModelTriggerState { + + @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(ModelTriggerState.class).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PerTriggerState.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PerTriggerState.java new file mode 100644 index 000000000..21d276d71 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PerTriggerState.java @@ -0,0 +1,156 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.jobs; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * Per-trigger runtime state for the multi-trigger surface. Mirrors `TriggerConfiguration`'s + * trigger-type variants 1:1; each entry sets exactly one variant matching the corresponding + * trigger's type. Variants with no runtime state today (`schedule`, `model`) are emitted as empty + * messages. + */ +@Generated +public class PerTriggerState { + /** */ + @JsonProperty("continuous") + private ContinuousTriggerState continuous; + + /** */ + @JsonProperty("file_arrival") + private FileArrivalTriggerState fileArrival; + + /** */ + @JsonProperty("model") + private ModelTriggerState model; + + /** Whether this trigger is paused or not. Mirrors the configured pause_status. */ + @JsonProperty("pause_status") + private PauseStatus pauseStatus; + + /** */ + @JsonProperty("periodic") + private PeriodicTriggerState periodic; + + /** */ + @JsonProperty("schedule") + private ScheduleTriggerState schedule; + + /** State for SQL condition evaluation, can coexist with other trigger states. */ + @JsonProperty("sql_condition") + private SqlConditionState sqlCondition; + + /** */ + @JsonProperty("table_update") + private TableTriggerState tableUpdate; + + public PerTriggerState setContinuous(ContinuousTriggerState continuous) { + this.continuous = continuous; + return this; + } + + public ContinuousTriggerState getContinuous() { + return continuous; + } + + public PerTriggerState setFileArrival(FileArrivalTriggerState fileArrival) { + this.fileArrival = fileArrival; + return this; + } + + public FileArrivalTriggerState getFileArrival() { + return fileArrival; + } + + public PerTriggerState setModel(ModelTriggerState model) { + this.model = model; + return this; + } + + public ModelTriggerState getModel() { + return model; + } + + public PerTriggerState setPauseStatus(PauseStatus pauseStatus) { + this.pauseStatus = pauseStatus; + return this; + } + + public PauseStatus getPauseStatus() { + return pauseStatus; + } + + public PerTriggerState setPeriodic(PeriodicTriggerState periodic) { + this.periodic = periodic; + return this; + } + + public PeriodicTriggerState getPeriodic() { + return periodic; + } + + public PerTriggerState setSchedule(ScheduleTriggerState schedule) { + this.schedule = schedule; + return this; + } + + public ScheduleTriggerState getSchedule() { + return schedule; + } + + public PerTriggerState setSqlCondition(SqlConditionState sqlCondition) { + this.sqlCondition = sqlCondition; + return this; + } + + public SqlConditionState getSqlCondition() { + return sqlCondition; + } + + public PerTriggerState setTableUpdate(TableTriggerState tableUpdate) { + this.tableUpdate = tableUpdate; + return this; + } + + public TableTriggerState getTableUpdate() { + return tableUpdate; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PerTriggerState that = (PerTriggerState) o; + return Objects.equals(continuous, that.continuous) + && Objects.equals(fileArrival, that.fileArrival) + && Objects.equals(model, that.model) + && Objects.equals(pauseStatus, that.pauseStatus) + && Objects.equals(periodic, that.periodic) + && Objects.equals(schedule, that.schedule) + && Objects.equals(sqlCondition, that.sqlCondition) + && Objects.equals(tableUpdate, that.tableUpdate); + } + + @Override + public int hashCode() { + return Objects.hash( + continuous, fileArrival, model, pauseStatus, periodic, schedule, sqlCondition, tableUpdate); + } + + @Override + public String toString() { + return new ToStringer(PerTriggerState.class) + .add("continuous", continuous) + .add("fileArrival", fileArrival) + .add("model", model) + .add("pauseStatus", pauseStatus) + .add("periodic", periodic) + .add("schedule", schedule) + .add("sqlCondition", sqlCondition) + .add("tableUpdate", tableUpdate) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PeriodicTriggerState.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PeriodicTriggerState.java new file mode 100644 index 000000000..b055a7e88 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PeriodicTriggerState.java @@ -0,0 +1,42 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.jobs; + +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 PeriodicTriggerState { + /** */ + @JsonProperty("next_run_time") + private Long nextRunTime; + + public PeriodicTriggerState setNextRunTime(Long nextRunTime) { + this.nextRunTime = nextRunTime; + return this; + } + + public Long getNextRunTime() { + return nextRunTime; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PeriodicTriggerState that = (PeriodicTriggerState) o; + return Objects.equals(nextRunTime, that.nextRunTime); + } + + @Override + public int hashCode() { + return Objects.hash(nextRunTime); + } + + @Override + public String toString() { + return new ToStringer(PeriodicTriggerState.class).add("nextRunTime", nextRunTime).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ScheduleTriggerState.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ScheduleTriggerState.java new file mode 100644 index 000000000..3c80620e5 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ScheduleTriggerState.java @@ -0,0 +1,32 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.jobs; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import java.util.Objects; + +/** + * Runtime state for a schedule trigger. Currently empty because schedule triggers do not expose any + * trigger-specific runtime state. + */ +@Generated +public class ScheduleTriggerState { + + @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(ScheduleTriggerState.class).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerConfiguration.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerConfiguration.java new file mode 100644 index 000000000..be52f5eac --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerConfiguration.java @@ -0,0 +1,162 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.jobs; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * A single trigger attached to a job via `JobSettings.triggers`. Exactly one of the trigger-type + * fields (`periodic`, `schedule`, `continuous`, `file_arrival`, `table_update`, `model`) must be + * set; mutual exclusivity is enforced in the API handler rather than via `oneof` so that codegen, + * validation, and JSON serialization across SDKs and Terraform behave consistently. + */ +@Generated +public class TriggerConfiguration { + /** Continuous trigger configuration. */ + @JsonProperty("continuous") + private ContinuousTriggerConfiguration continuous; + + /** File arrival trigger configuration. */ + @JsonProperty("file_arrival") + private FileArrivalTriggerConfiguration fileArrival; + + /** Model trigger configuration. */ + @JsonProperty("model") + private ModelTriggerConfiguration model; + + /** + * Whether this trigger is paused. Defaults to UNPAUSED when unset; the server always returns an + * explicit value on read. + */ + @JsonProperty("pause_status") + private PauseStatus pauseStatus; + + /** + * Trigger type: exactly one must be set; mutual exclusivity is enforced in the API handler + * Periodic trigger configuration. + */ + @JsonProperty("periodic") + private PeriodicTriggerConfiguration periodic; + + /** Cron schedule trigger configuration. */ + @JsonProperty("schedule") + private CronTriggerConfiguration schedule; + + /** Optional SQL condition that gates whether this trigger fires. */ + @JsonProperty("sql_condition") + private SqlConditionConfiguration sqlCondition; + + /** Table update trigger configuration. */ + @JsonProperty("table_update") + private TableUpdateTriggerConfiguration tableUpdate; + + public TriggerConfiguration setContinuous(ContinuousTriggerConfiguration continuous) { + this.continuous = continuous; + return this; + } + + public ContinuousTriggerConfiguration getContinuous() { + return continuous; + } + + public TriggerConfiguration setFileArrival(FileArrivalTriggerConfiguration fileArrival) { + this.fileArrival = fileArrival; + return this; + } + + public FileArrivalTriggerConfiguration getFileArrival() { + return fileArrival; + } + + public TriggerConfiguration setModel(ModelTriggerConfiguration model) { + this.model = model; + return this; + } + + public ModelTriggerConfiguration getModel() { + return model; + } + + public TriggerConfiguration setPauseStatus(PauseStatus pauseStatus) { + this.pauseStatus = pauseStatus; + return this; + } + + public PauseStatus getPauseStatus() { + return pauseStatus; + } + + public TriggerConfiguration setPeriodic(PeriodicTriggerConfiguration periodic) { + this.periodic = periodic; + return this; + } + + public PeriodicTriggerConfiguration getPeriodic() { + return periodic; + } + + public TriggerConfiguration setSchedule(CronTriggerConfiguration schedule) { + this.schedule = schedule; + return this; + } + + public CronTriggerConfiguration getSchedule() { + return schedule; + } + + public TriggerConfiguration setSqlCondition(SqlConditionConfiguration sqlCondition) { + this.sqlCondition = sqlCondition; + return this; + } + + public SqlConditionConfiguration getSqlCondition() { + return sqlCondition; + } + + public TriggerConfiguration setTableUpdate(TableUpdateTriggerConfiguration tableUpdate) { + this.tableUpdate = tableUpdate; + return this; + } + + public TableUpdateTriggerConfiguration getTableUpdate() { + return tableUpdate; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TriggerConfiguration that = (TriggerConfiguration) o; + return Objects.equals(continuous, that.continuous) + && Objects.equals(fileArrival, that.fileArrival) + && Objects.equals(model, that.model) + && Objects.equals(pauseStatus, that.pauseStatus) + && Objects.equals(periodic, that.periodic) + && Objects.equals(schedule, that.schedule) + && Objects.equals(sqlCondition, that.sqlCondition) + && Objects.equals(tableUpdate, that.tableUpdate); + } + + @Override + public int hashCode() { + return Objects.hash( + continuous, fileArrival, model, pauseStatus, periodic, schedule, sqlCondition, tableUpdate); + } + + @Override + public String toString() { + return new ToStringer(TriggerConfiguration.class) + .add("continuous", continuous) + .add("fileArrival", fileArrival) + .add("model", model) + .add("pauseStatus", pauseStatus) + .add("periodic", periodic) + .add("schedule", schedule) + .add("sqlCondition", sqlCondition) + .add("tableUpdate", tableUpdate) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerDetails.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerDetails.java new file mode 100644 index 000000000..6db54d531 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerDetails.java @@ -0,0 +1,63 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.jobs; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * Per-trigger runtime details returned by `GetJob`. Same length and order as + * `JobSettings.triggers`; sub-fields are populated independently based on the corresponding + * `GetJob.include_trigger_state` / `include_trigger_history` flags. + */ +@Generated +public class TriggerDetails { + /** Recent evaluation history. Populated when `GetJob.include_trigger_history` is set. */ + @JsonProperty("history") + private TriggerHistory history; + + /** Current runtime state. Populated when `GetJob.include_trigger_state` is set. */ + @JsonProperty("state") + private PerTriggerState state; + + public TriggerDetails setHistory(TriggerHistory history) { + this.history = history; + return this; + } + + public TriggerHistory getHistory() { + return history; + } + + public TriggerDetails setState(PerTriggerState state) { + this.state = state; + return this; + } + + public PerTriggerState getState() { + return state; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TriggerDetails that = (TriggerDetails) o; + return Objects.equals(history, that.history) && Objects.equals(state, that.state); + } + + @Override + public int hashCode() { + return Objects.hash(history, state); + } + + @Override + public String toString() { + return new ToStringer(TriggerDetails.class) + .add("history", history) + .add("state", state) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerEvaluation.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerEvaluation.java new file mode 100644 index 000000000..0d907f18f --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerEvaluation.java @@ -0,0 +1,80 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.jobs; + +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 TriggerEvaluation { + /** + * Human-readable description of the trigger evaluation result. Explains why the trigger + * evaluation triggered or did not trigger a run, or failed. + */ + @JsonProperty("description") + private String description; + + /** + * The ID of the run that was triggered by the trigger evaluation. Only returned if a run was + * triggered. + */ + @JsonProperty("run_id") + private Long runId; + + /** Timestamp at which the trigger was evaluated. */ + @JsonProperty("timestamp") + private Long timestamp; + + public TriggerEvaluation setDescription(String description) { + this.description = description; + return this; + } + + public String getDescription() { + return description; + } + + public TriggerEvaluation setRunId(Long runId) { + this.runId = runId; + return this; + } + + public Long getRunId() { + return runId; + } + + public TriggerEvaluation setTimestamp(Long timestamp) { + this.timestamp = timestamp; + return this; + } + + public Long getTimestamp() { + return timestamp; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TriggerEvaluation that = (TriggerEvaluation) o; + return Objects.equals(description, that.description) + && Objects.equals(runId, that.runId) + && Objects.equals(timestamp, that.timestamp); + } + + @Override + public int hashCode() { + return Objects.hash(description, runId, timestamp); + } + + @Override + public String toString() { + return new ToStringer(TriggerEvaluation.class) + .add("description", description) + .add("runId", runId) + .add("timestamp", timestamp) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerHistory.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerHistory.java new file mode 100644 index 000000000..c5cb1717a --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/TriggerHistory.java @@ -0,0 +1,74 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.jobs; + +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 TriggerHistory { + /** The last time the trigger failed to evaluate. */ + @JsonProperty("last_failed") + private TriggerEvaluation lastFailed; + + /** The last time the trigger was evaluated but did not trigger a run. */ + @JsonProperty("last_not_triggered") + private TriggerEvaluation lastNotTriggered; + + /** The last time the run was triggered due to a file arrival. */ + @JsonProperty("last_triggered") + private TriggerEvaluation lastTriggered; + + public TriggerHistory setLastFailed(TriggerEvaluation lastFailed) { + this.lastFailed = lastFailed; + return this; + } + + public TriggerEvaluation getLastFailed() { + return lastFailed; + } + + public TriggerHistory setLastNotTriggered(TriggerEvaluation lastNotTriggered) { + this.lastNotTriggered = lastNotTriggered; + return this; + } + + public TriggerEvaluation getLastNotTriggered() { + return lastNotTriggered; + } + + public TriggerHistory setLastTriggered(TriggerEvaluation lastTriggered) { + this.lastTriggered = lastTriggered; + return this; + } + + public TriggerEvaluation getLastTriggered() { + return lastTriggered; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TriggerHistory that = (TriggerHistory) o; + return Objects.equals(lastFailed, that.lastFailed) + && Objects.equals(lastNotTriggered, that.lastNotTriggered) + && Objects.equals(lastTriggered, that.lastTriggered); + } + + @Override + public int hashCode() { + return Objects.hash(lastFailed, lastNotTriggered, lastTriggered); + } + + @Override + public String toString() { + return new ToStringer(TriggerHistory.class) + .add("lastFailed", lastFailed) + .add("lastNotTriggered", lastNotTriggered) + .add("lastTriggered", lastTriggered) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ApiSourceConnectorConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ApiSourceConnectorConfig.java new file mode 100644 index 000000000..c31fa4938 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ApiSourceConnectorConfig.java @@ -0,0 +1,44 @@ +// 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.Map; +import java.util.Objects; + +/** Top-level configuration for API Source connectors with arbitrary configuration. */ +@Generated +public class ApiSourceConnectorConfig { + /** Arbitrary key-value configuration values for the API Source connector. */ + @JsonProperty("configs") + private Map configs; + + public ApiSourceConnectorConfig setConfigs(Map configs) { + this.configs = configs; + return this; + } + + public Map getConfigs() { + return configs; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ApiSourceConnectorConfig that = (ApiSourceConnectorConfig) o; + return Objects.equals(configs, that.configs); + } + + @Override + public int hashCode() { + return Objects.hash(configs); + } + + @Override + public String toString() { + return new ToStringer(ApiSourceConnectorConfig.class).add("configs", configs).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ApiSourceConnectorOptions.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ApiSourceConnectorOptions.java new file mode 100644 index 000000000..a0de1f48a --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ApiSourceConnectorOptions.java @@ -0,0 +1,44 @@ +// 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.Map; +import java.util.Objects; + +/** Options for API Source connectors with arbitrary configuration. */ +@Generated +public class ApiSourceConnectorOptions { + /** Arbitrary key-value configuration options for the API Source connector. */ + @JsonProperty("options") + private Map options; + + public ApiSourceConnectorOptions setOptions(Map options) { + this.options = options; + return this; + } + + public Map getOptions() { + return options; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ApiSourceConnectorOptions that = (ApiSourceConnectorOptions) o; + return Objects.equals(options, that.options); + } + + @Override + public int hashCode() { + return Objects.hash(options); + } + + @Override + public String toString() { + return new ToStringer(ApiSourceConnectorOptions.class).add("options", options).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ConnectorOptions.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ConnectorOptions.java index a171279df..d3af5d266 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ConnectorOptions.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ConnectorOptions.java @@ -10,6 +10,10 @@ /** Wrapper message for source-specific options to support multiple connector types */ @Generated public class ConnectorOptions { + /** Connector-specific options for API Source connectors. */ + @JsonProperty("api_source_connector_options") + private ApiSourceConnectorOptions apiSourceConnectorOptions; + /** */ @JsonProperty("confluence_options") private ConfluenceConnectorOptions confluenceOptions; @@ -58,6 +62,16 @@ public class ConnectorOptions { @JsonProperty("zendesk_support_options") private ZendeskSupportOptions zendeskSupportOptions; + public ConnectorOptions setApiSourceConnectorOptions( + ApiSourceConnectorOptions apiSourceConnectorOptions) { + this.apiSourceConnectorOptions = apiSourceConnectorOptions; + return this; + } + + public ApiSourceConnectorOptions getApiSourceConnectorOptions() { + return apiSourceConnectorOptions; + } + public ConnectorOptions setConfluenceOptions(ConfluenceConnectorOptions confluenceOptions) { this.confluenceOptions = confluenceOptions; return this; @@ -171,7 +185,8 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ConnectorOptions that = (ConnectorOptions) o; - return Objects.equals(confluenceOptions, that.confluenceOptions) + return Objects.equals(apiSourceConnectorOptions, that.apiSourceConnectorOptions) + && Objects.equals(confluenceOptions, that.confluenceOptions) && Objects.equals(gdriveOptions, that.gdriveOptions) && Objects.equals(googleAdsOptions, that.googleAdsOptions) && Objects.equals(jiraOptions, that.jiraOptions) @@ -188,6 +203,7 @@ public boolean equals(Object o) { @Override public int hashCode() { return Objects.hash( + apiSourceConnectorOptions, confluenceOptions, gdriveOptions, googleAdsOptions, @@ -205,6 +221,7 @@ public int hashCode() { @Override public String toString() { return new ToStringer(ConnectorOptions.class) + .add("apiSourceConnectorOptions", apiSourceConnectorOptions) .add("confluenceOptions", confluenceOptions) .add("gdriveOptions", gdriveOptions) .add("googleAdsOptions", googleAdsOptions) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/SourceConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/SourceConfig.java index 8eacbde36..b6bbcd5aa 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/SourceConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/SourceConfig.java @@ -9,6 +9,10 @@ @Generated public class SourceConfig { + /** Connector-specific top-level configuration for API Source connectors. */ + @JsonProperty("api_source_connector_config") + private ApiSourceConnectorConfig apiSourceConnectorConfig; + /** Catalog-level source configuration parameters */ @JsonProperty("catalog") private SourceCatalogConfig catalog; @@ -17,6 +21,16 @@ public class SourceConfig { @JsonProperty("google_ads_config") private GoogleAdsConfig googleAdsConfig; + public SourceConfig setApiSourceConnectorConfig( + ApiSourceConnectorConfig apiSourceConnectorConfig) { + this.apiSourceConnectorConfig = apiSourceConnectorConfig; + return this; + } + + public ApiSourceConnectorConfig getApiSourceConnectorConfig() { + return apiSourceConnectorConfig; + } + public SourceConfig setCatalog(SourceCatalogConfig catalog) { this.catalog = catalog; return this; @@ -40,18 +54,20 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; SourceConfig that = (SourceConfig) o; - return Objects.equals(catalog, that.catalog) + return Objects.equals(apiSourceConnectorConfig, that.apiSourceConnectorConfig) + && Objects.equals(catalog, that.catalog) && Objects.equals(googleAdsConfig, that.googleAdsConfig); } @Override public int hashCode() { - return Objects.hash(catalog, googleAdsConfig); + return Objects.hash(apiSourceConnectorConfig, catalog, googleAdsConfig); } @Override public String toString() { return new ToStringer(SourceConfig.class) + .add("apiSourceConnectorConfig", apiSourceConnectorConfig) .add("catalog", catalog) .add("googleAdsConfig", googleAdsConfig) .toString(); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/GcpEndpoint.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/GcpEndpoint.java index c7e128029..6794e2bf1 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/GcpEndpoint.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/GcpEndpoint.java @@ -9,6 +9,14 @@ @Generated public class GcpEndpoint { + /** All Google APIs that support VPC Service Controls (a subset of all Google APIs). */ + @JsonProperty("all_vpc_sc_services") + private Boolean allVpcScServices; + + /** Selected Google API hostnames, e.g. "storage.googleapis.com", "bigquery.googleapis.com". */ + @JsonProperty("google_api_endpoints") + private GoogleApiEndpoints googleApiEndpoints; + /** Output only. The URI of the created PSC endpoint. */ @JsonProperty("psc_endpoint_uri") private String pscEndpointUri; @@ -20,6 +28,24 @@ public class GcpEndpoint { @JsonProperty("service_attachment") private String serviceAttachment; + public GcpEndpoint setAllVpcScServices(Boolean allVpcScServices) { + this.allVpcScServices = allVpcScServices; + return this; + } + + public Boolean getAllVpcScServices() { + return allVpcScServices; + } + + public GcpEndpoint setGoogleApiEndpoints(GoogleApiEndpoints googleApiEndpoints) { + this.googleApiEndpoints = googleApiEndpoints; + return this; + } + + public GoogleApiEndpoints getGoogleApiEndpoints() { + return googleApiEndpoints; + } + public GcpEndpoint setPscEndpointUri(String pscEndpointUri) { this.pscEndpointUri = pscEndpointUri; return this; @@ -43,18 +69,22 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; GcpEndpoint that = (GcpEndpoint) o; - return Objects.equals(pscEndpointUri, that.pscEndpointUri) + return Objects.equals(allVpcScServices, that.allVpcScServices) + && Objects.equals(googleApiEndpoints, that.googleApiEndpoints) + && Objects.equals(pscEndpointUri, that.pscEndpointUri) && Objects.equals(serviceAttachment, that.serviceAttachment); } @Override public int hashCode() { - return Objects.hash(pscEndpointUri, serviceAttachment); + return Objects.hash(allVpcScServices, googleApiEndpoints, pscEndpointUri, serviceAttachment); } @Override public String toString() { return new ToStringer(GcpEndpoint.class) + .add("allVpcScServices", allVpcScServices) + .add("googleApiEndpoints", googleApiEndpoints) .add("pscEndpointUri", pscEndpointUri) .add("serviceAttachment", serviceAttachment) .toString(); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/GoogleApiEndpoints.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/GoogleApiEndpoints.java new file mode 100644 index 000000000..3ddf3960b --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/GoogleApiEndpoints.java @@ -0,0 +1,50 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.settings; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Collection; +import java.util.Objects; + +/** + * Wrapper for a list of Google API hostnames. Wrapped in a message because proto3 oneof does not + * support repeated fields directly. + */ +@Generated +public class GoogleApiEndpoints { + /** + * Google API hostnames, e.g. "storage.googleapis.com", "bigquery.googleapis.com". Use + * "googleapis.com" to cover all Google APIs. + */ + @JsonProperty("endpoints") + private Collection endpoints; + + public GoogleApiEndpoints setEndpoints(Collection endpoints) { + this.endpoints = endpoints; + return this; + } + + public Collection getEndpoints() { + return endpoints; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + GoogleApiEndpoints that = (GoogleApiEndpoints) o; + return Objects.equals(endpoints, that.endpoints); + } + + @Override + public int hashCode() { + return Objects.hash(endpoints); + } + + @Override + public String toString() { + return new ToStringer(GoogleApiEndpoints.class).add("endpoints", endpoints).toString(); + } +}