The error details are converted to a list of ErrorDetail objects. This only supports the
+ * ErrorInfo type.
+ *
+ * @param errorCode The error code.
+ * @param message The error message.
+ * @param scimDetail The SCIM detail.
+ */
public ApiErrorBody(
@JsonProperty("error_code") String errorCode,
@JsonProperty("message") String message,
@@ -28,14 +41,14 @@ public ApiErrorBody(
@JsonProperty("status") String scimStatus,
@JsonProperty("scimType") String scimType,
@JsonProperty("error") String api12Error,
- @JsonProperty("details") List BadRequest errors occur when the request format, structure, or content does not meet the
+ * service's requirements. This is different from business logic errors or system failures - it
+ * specifically indicates that the client sent a malformed or invalid request.
+ *
+ * Examples of bad request violations might include:
+ *
+ * This information helps clients:
+ *
+ * This list contains details about each specific field or aspect of the request that violated
+ * the service's requirements. Multiple violations can occur if the request has multiple problems.
+ *
+ * @return the list of field violations
+ */
+ @JsonProperty("field_violations")
+ public abstract List Each violation provides details about what specific field or aspect of the request was
+ * invalid and how the client can fix it.
+ */
+ @AutoValue
+ @JsonDeserialize(builder = AutoValue_BadRequest_BadRequestFieldViolation.Builder.class)
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public abstract static class BadRequestFieldViolation {
+
+ /**
+ * A path leading to a field in the request body.
+ *
+ * This field identifies the specific location of the violation within the request structure.
+ * The path format depends on the request format but typically follows a hierarchical structure.
+ *
+ * Examples of field paths:
+ *
+ * This path helps clients quickly locate and fix the problematic field in their request.
+ *
+ * @return the path to the violating field
+ */
+ @JsonProperty("field")
+ public abstract String field();
+
+ /**
+ * A description of why the request element is bad.
+ *
+ * This field provides a human-readable explanation of what's wrong with the field and how to
+ * fix it. The description should be clear enough for developers to understand and resolve the
+ * issue.
+ *
+ * Examples of field violation descriptions:
+ *
+ * This class provides detailed information that can be used by developers and support teams to
+ * understand what went wrong and where the error occurred. The information is typically more
+ * technical and detailed than what would be shown to end users.
+ *
+ * DebugInfo is particularly useful for:
+ *
+ * This list contains the call stack at the time the error occurred, typically starting from
+ * the most recent call and going backwards through the call chain. Each entry usually represents
+ * a method call or function invocation.
+ *
+ * Stack trace information is invaluable for:
+ *
+ * This field can contain any additional context or details that the server deems useful for
+ * debugging purposes. The exact content depends on the service implementation and the specific
+ * error that occurred.
+ *
+ * Examples of additional debugging information might include:
+ *
+ * This class provides structured information about what went wrong, including:
+ *
+ * This information can be used by clients to:
+ *
+ * Examples might include: "INVALID_ARGUMENT", "RESOURCE_NOT_FOUND", "PERMISSION_DENIED", etc.
+ *
+ * @return the reason for the error
+ */
+ @JsonProperty("reason")
+ public abstract String reason();
+
+ /**
+ * The logical grouping to which the "reason" belongs.
+ *
+ * This provides context about the domain or category of the error. Examples might include:
+ * "databricks.api", "databricks.auth", etc.
+ *
+ * @return the domain of the error
+ */
+ @JsonProperty("domain")
+ public abstract String domain();
+
+ /**
+ * Additional structured details about this error.
+ *
+ * This map can contain arbitrary key-value pairs that provide additional context about the
+ * error. The exact contents depend on the specific error type and the service implementation.
+ *
+ * @return additional metadata about the error
+ */
+ @JsonProperty("metadata")
+ public abstract Map For example, if a quota check failed with an error indicating the calling project hasn't
+ * enabled the accessed service, this can contain a URL pointing directly to the right place in the
+ * developer console to flip the bit.
+ *
+ * Help information is particularly useful for:
+ *
+ * This type of error detail helps transform error responses from simple failure notifications
+ * into actionable guidance that users can follow to resolve their issues.
+ */
+@AutoValue
+@JsonDeserialize(builder = AutoValue_Help.Builder.class)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public abstract class Help {
+
+ /**
+ * URL(s) pointing to additional information on handling the current error.
+ *
+ * This list contains links to resources that can help users understand and resolve the error
+ * they encountered. Each link should provide specific, actionable guidance related to the current
+ * error context.
+ *
+ * Examples of helpful links might include:
+ *
+ * Each link should be specific to the error context and provide actionable guidance that users
+ * can follow to resolve their issue.
+ */
+ @AutoValue
+ @JsonDeserialize(builder = AutoValue_Help_HelpLink.Builder.class)
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public abstract static class HelpLink {
+
+ /**
+ * Describes what the link offers.
+ *
+ * This field provides a human-readable description of what users can expect to find when
+ * they follow the link. The description should be clear and specific enough for users to decide
+ * whether the link is relevant to their situation.
+ *
+ * Examples of link descriptions:
+ *
+ * A good description helps users understand:
+ *
+ * This field contains the actual URL that users can follow to access the helpful resource.
+ * The URL should be:
+ *
+ * Examples of helpful URLs:
+ *
+ * This error type indicates that one or more conditions that must be met before a request can be
+ * processed have not been satisfied. Preconditions are typically business logic rules or system
+ * state requirements that must be true for the operation to succeed.
+ *
+ * Examples of precondition failures might include:
+ *
+ * This information helps clients understand:
+ *
+ * This list contains details about each specific precondition that failed. Multiple violations
+ * can occur if multiple preconditions are not met simultaneously.
+ *
+ * @return the list of precondition violations
+ */
+ @JsonProperty("violations")
+ public abstract List Each violation provides details about what specific precondition failed and how the client
+ * can resolve the issue.
+ */
+ @AutoValue
+ @JsonDeserialize(
+ builder = AutoValue_PreconditionFailure_PreconditionFailureViolation.Builder.class)
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public abstract static class PreconditionFailureViolation {
+
+ /**
+ * The type of PreconditionFailure.
+ *
+ * This field categorizes the type of precondition that failed. Examples might include:
+ *
+ * This field identifies the specific entity or resource that failed the precondition check.
+ * The interpretation depends on the type of precondition failure.
+ *
+ * Examples:
+ *
+ * Examples of precondition failure descriptions:
+ *
+ * For example, if a daily limit was exceeded for the calling project, a service could respond
+ * with a QuotaFailure detail containing the project id and the description of the quota limit that
+ * was exceeded. If the calling project hasn't enabled the service in the developer console, then a
+ * service could respond with the project id and set {@code service_disabled} to true.
+ *
+ * Also see {@link RetryInfo} and {@link Help} types for other details about handling a quota
+ * failure.
+ *
+ * This information helps clients understand:
+ *
+ * This list contains details about each specific quota violation that occurred. Multiple
+ * violations can happen in a single request if multiple quota limits are exceeded simultaneously.
+ *
+ * @return the list of quota violations
+ */
+ @JsonProperty("violations")
+ public abstract List Each violation provides details about what specific quota limit was exceeded and how the
+ * client can resolve the issue.
+ */
+ @AutoValue
+ @JsonDeserialize(builder = AutoValue_QuotaFailure_QuotaFailureViolation.Builder.class)
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public abstract static class QuotaFailureViolation {
+
+ /**
+ * The subject on which the quota check failed.
+ *
+ * This typically identifies the specific resource, project, user, or other entity that
+ * exceeded the quota limit. Examples might include:
+ *
+ * Examples of quota violation descriptions:
+ *
+ * This class provides information that can be used to:
+ *
+ * The information contained here is typically opaque to clients and should only be interpreted
+ * by the service that generated it.
+ */
+@AutoValue
+@JsonDeserialize(builder = AutoValue_RequestInfo.Builder.class)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public abstract class RequestInfo {
+
+ /**
+ * An opaque string that should only be interpreted by the service that generated it. For example,
+ * it can be used to identify requests in the service's logs.
+ *
+ * This identifier is typically used by service operators and support teams to trace the
+ * execution of specific requests through the system.
+ *
+ * @return the request identifier
+ */
+ @JsonProperty("request_id")
+ public abstract String requestId();
+
+ /**
+ * Any data that was used to serve this request. For example, an encrypted stack trace that can be
+ * sent back to the service provider for debugging.
+ *
+ * This field may contain sensitive information that is useful for debugging but should be
+ * handled carefully. It might include:
+ *
+ * This error detail type provides information about the specific resource that was involved in
+ * the error. This is particularly useful when the error is related to resource access, permissions,
+ * or resource-specific operations.
+ *
+ * ResourceInfo helps clients understand:
+ *
+ * Examples of when ResourceInfo might be provided:
+ *
+ * This field categorizes the resource by its type or class. Examples might include:
+ *
+ * This information helps clients understand what category of resource was involved and
+ * potentially implement resource-type-specific error handling.
+ *
+ * @return the type of resource
+ */
+ @JsonProperty("resource_type")
+ public abstract String resourceType();
+
+ /**
+ * The name of the resource being accessed.
+ *
+ * This field provides the specific identifier or name of the resource that was involved in the
+ * error. The format depends on the resource type but typically includes:
+ *
+ * This identifier helps clients locate the specific resource and potentially retry the
+ * operation or report the issue more precisely.
+ *
+ * @return the name or identifier of the resource
+ */
+ @JsonProperty("resource_name")
+ public abstract String resourceName();
+
+ /**
+ * The owner of the resource (optional).
+ *
+ * This field identifies who owns or controls the resource. This information is particularly
+ * useful for permission-related errors or when the client needs to contact the resource owner.
+ *
+ * Examples of owner values:
+ *
+ * Note: This field may be null or empty if the owner information is not available or not
+ * applicable.
+ *
+ * @return the owner of the resource, or null if not available
+ */
+ @JsonProperty("owner")
+ public abstract String owner();
+
+ /**
+ * Describes what error is encountered when accessing this resource.
+ *
+ * This field provides a human-readable description of the specific error that occurred when
+ * trying to access or operate on the resource. The description should be clear enough for
+ * developers to understand what went wrong.
+ *
+ * Examples of resource error descriptions:
+ *
+ * Clients could ignore the recommendation here or retry when this information is missing from
+ * error responses. However, it's always recommended that clients should use exponential backoff
+ * when retrying.
+ *
+ * Clients should wait until the {@code retryDelay} amount of time has passed since receiving the
+ * error response before retrying. If retrying requests also fail, clients should use an exponential
+ * backoff scheme to gradually increase the delay between retries based on {@code retryDelay}, until
+ * either a maximum number of retries have been reached or a maximum retry delay cap has been
+ * reached.
+ *
+ * This information helps clients implement intelligent retry strategies that respect the
+ * service's recommendations while avoiding overwhelming the service with rapid retry attempts.
+ */
+@AutoValue
+@JsonDeserialize(builder = AutoValue_RetryInfo.Builder.class)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public abstract class RetryInfo {
+
+ /**
+ * Clients should wait at least this long between retrying the same request.
+ *
+ * Note: This is serialized as a string in the format "3.000000001s" where the string ends in
+ * the suffix "s" (indicating seconds) and is preceded by a decimal number of seconds.
+ *
+ * Examples of valid formats:
+ *
+ * This deserializer is strict and will reject invalid duration formats by throwing an
+ * IOException. Valid formats must:
+ *
+ * Examples of valid formats: "30s", "1.5s", "0.001s", "3.000000001s" Examples of invalid
+ * formats: "30", "30ms", "abc", 42
+ */
+ static class DurationDeserializer extends JsonDeserializer
+ *
+ *
+ *
+ *
+ */
+@AutoValue
+@JsonDeserialize(builder = AutoValue_BadRequest.Builder.class)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public abstract class BadRequest {
+
+ /**
+ * Describes all field violations in the request.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * @return description of why the field is invalid
+ */
+ @JsonProperty("description")
+ public abstract String description();
+
+ /**
+ * Creates a new builder for constructing BadRequestFieldViolation instances.
+ *
+ * @return a new builder instance
+ */
+ public static Builder builder() {
+ return new AutoValue_BadRequest_BadRequestFieldViolation.Builder();
+ }
+
+ /** Builder for constructing BadRequestFieldViolation instances. */
+ @AutoValue.Builder
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public abstract static class Builder {
+
+ /**
+ * Sets the field path.
+ *
+ * @param field the path to the violating field
+ * @return this builder for method chaining
+ */
+ @JsonProperty("field")
+ public abstract Builder setField(String field);
+
+ /**
+ * Sets the violation description.
+ *
+ * @param description description of why the field is invalid
+ * @return this builder for method chaining
+ */
+ @JsonProperty("description")
+ public abstract Builder setDescription(String description);
+
+ /**
+ * Builds the BadRequestFieldViolation instance.
+ *
+ * @return a new BadRequestFieldViolation instance
+ */
+ public abstract BadRequestFieldViolation build();
+ }
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/DebugInfo.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/DebugInfo.java
new file mode 100644
index 000000000..d13c87cc3
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/DebugInfo.java
@@ -0,0 +1,122 @@
+package com.databricks.sdk.core.error.details;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.google.auto.value.AutoValue;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * DebugInfo describes additional debugging information.
+ *
+ *
+ *
+ */
+@AutoValue
+@JsonDeserialize(builder = AutoValue_DebugInfo.Builder.class)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public abstract class DebugInfo {
+
+ /**
+ * The stack trace entries indicating where the error occurred.
+ *
+ *
+ *
+ *
+ * @return the stack trace entries
+ */
+ @JsonProperty("stack_entries")
+ public abstract List
+ *
+ *
+ * @return additional debugging information
+ */
+ @JsonProperty("detail")
+ public abstract String detail();
+
+ /**
+ * Creates a new builder for constructing DebugInfo instances.
+ *
+ * @return a new builder instance
+ */
+ public static Builder builder() {
+ return new AutoValue_DebugInfo.Builder();
+ }
+
+ /** Builder for constructing DebugInfo instances. */
+ @AutoValue.Builder
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public abstract static class Builder {
+
+ /**
+ * Sets the stack trace entries.
+ *
+ * @param stackEntries the stack trace entries
+ * @return this builder for method chaining
+ */
+ @JsonProperty("stack_entries")
+ public abstract Builder setStackEntries(List
+ *
+ *
+ *
+ *
+ */
+@AutoValue
+@JsonDeserialize(builder = AutoValue_ErrorInfo.Builder.class)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public abstract class ErrorInfo {
+
+ /**
+ * The reason of the error. This is a constant value that identifies the proximate cause of the
+ * error.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * @return the list of helpful links
+ */
+ @JsonProperty("links")
+ public abstract List
+ *
+ *
+ *
+ *
+ *
+ * @return description of what the link offers
+ */
+ @JsonProperty("description")
+ public abstract String description();
+
+ /**
+ * The URL of the link.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * @return the URL of the helpful resource
+ */
+ @JsonProperty("url")
+ public abstract String url();
+
+ /**
+ * Creates a new builder for constructing HelpLink instances.
+ *
+ * @return a new builder instance
+ */
+ public static Builder builder() {
+ return new AutoValue_Help_HelpLink.Builder();
+ }
+
+ /** Builder for constructing HelpLink instances. */
+ @AutoValue.Builder
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public abstract static class Builder {
+
+ /**
+ * Sets the link description.
+ *
+ * @param description description of what the link offers
+ * @return this builder for method chaining
+ */
+ @JsonProperty("description")
+ public abstract Builder setDescription(String description);
+
+ /**
+ * Sets the link URL.
+ *
+ * @param url the URL of the helpful resource
+ * @return this builder for method chaining
+ */
+ @JsonProperty("url")
+ public abstract Builder setUrl(String url);
+
+ /**
+ * Builds the HelpLink instance.
+ *
+ * @return a new HelpLink instance
+ */
+ public abstract HelpLink build();
+ }
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/PreconditionFailure.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/PreconditionFailure.java
new file mode 100644
index 000000000..ca5a16692
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/PreconditionFailure.java
@@ -0,0 +1,210 @@
+package com.databricks.sdk.core.error.details;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.google.auto.value.AutoValue;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * PreconditionFailure describes what preconditions have failed.
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+@AutoValue
+@JsonDeserialize(builder = AutoValue_PreconditionFailure.Builder.class)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public abstract class PreconditionFailure {
+
+ /**
+ * Describes all precondition violations.
+ *
+ *
+ *
+ *
+ * @return the type of precondition failure
+ */
+ @JsonProperty("type")
+ public abstract String type();
+
+ /**
+ * The subject, relative to the type, that failed.
+ *
+ *
+ *
+ *
+ * @return the subject of the precondition failure
+ */
+ @JsonProperty("subject")
+ public abstract String subject();
+
+ /**
+ * A description of how the precondition failed. Developers can use this description to
+ * understand how to fix the failure.
+ *
+ *
+ *
+ *
+ * @return description of the precondition failure
+ */
+ @JsonProperty("description")
+ public abstract String description();
+
+ /**
+ * Creates a new builder for constructing PreconditionFailureViolation instances.
+ *
+ * @return a new builder instance
+ */
+ public static Builder builder() {
+ return new AutoValue_PreconditionFailure_PreconditionFailureViolation.Builder();
+ }
+
+ /** Builder for constructing PreconditionFailureViolation instances. */
+ @AutoValue.Builder
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public abstract static class Builder {
+
+ /**
+ * Sets the type of precondition failure.
+ *
+ * @param type the type of precondition failure
+ * @return this builder for method chaining
+ */
+ @JsonProperty("type")
+ public abstract Builder setType(String type);
+
+ /**
+ * Sets the subject of the precondition failure.
+ *
+ * @param subject the subject of the precondition failure
+ * @return this builder for method chaining
+ */
+ @JsonProperty("subject")
+ public abstract Builder setSubject(String subject);
+
+ /**
+ * Sets the description of the precondition failure.
+ *
+ * @param description description of the precondition failure
+ * @return this builder for method chaining
+ */
+ @JsonProperty("description")
+ public abstract Builder setDescription(String description);
+
+ /**
+ * Builds the PreconditionFailureViolation instance.
+ *
+ * @return a new PreconditionFailureViolation instance
+ */
+ public abstract PreconditionFailureViolation build();
+ }
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/QuotaFailure.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/QuotaFailure.java
new file mode 100644
index 000000000..1e5c2fa22
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/QuotaFailure.java
@@ -0,0 +1,174 @@
+package com.databricks.sdk.core.error.details;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.google.auto.value.AutoValue;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * QuotaFailure describes how a quota check failed.
+ *
+ *
+ *
+ */
+@AutoValue
+@JsonDeserialize(builder = AutoValue_QuotaFailure.Builder.class)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public abstract class QuotaFailure {
+
+ /**
+ * Describes all quota violations.
+ *
+ *
+ *
+ *
+ * @return the subject of the quota violation
+ */
+ @JsonProperty("subject")
+ public abstract String subject();
+
+ /**
+ * A description of how the quota check failed. Clients can use this description to find more
+ * about the quota configuration in the service's public documentation, or find the relevant
+ * quota limit to adjust through developer console.
+ *
+ *
+ *
+ *
+ * @return description of the quota violation
+ */
+ @JsonProperty("description")
+ public abstract String description();
+
+ /**
+ * Creates a new builder for constructing QuotaFailureViolation instances.
+ *
+ * @return a new builder instance
+ */
+ public static Builder builder() {
+ return new AutoValue_QuotaFailure_QuotaFailureViolation.Builder();
+ }
+
+ /** Builder for constructing QuotaFailureViolation instances. */
+ @AutoValue.Builder
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public abstract static class Builder {
+
+ /**
+ * Sets the subject of the quota violation.
+ *
+ * @param subject the subject of the quota violation
+ * @return this builder for method chaining
+ */
+ @JsonProperty("subject")
+ public abstract Builder setSubject(String subject);
+
+ /**
+ * Sets the description of the quota violation.
+ *
+ * @param description description of the quota violation
+ * @return this builder for method chaining
+ */
+ @JsonProperty("description")
+ public abstract Builder setDescription(String description);
+
+ /**
+ * Builds the QuotaFailureViolation instance.
+ *
+ * @return a new QuotaFailureViolation instance
+ */
+ public abstract QuotaFailureViolation build();
+ }
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/RequestInfo.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/RequestInfo.java
new file mode 100644
index 000000000..d691d2195
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/RequestInfo.java
@@ -0,0 +1,99 @@
+package com.databricks.sdk.core.error.details;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.google.auto.value.AutoValue;
+
+/**
+ * RequestInfo contains metadata about the request that clients can attach when filing a bug or
+ * providing other forms of feedback.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * @return data that was used to serve the request
+ */
+ @JsonProperty("serving_data")
+ public abstract String servingData();
+
+ /**
+ * Creates a new builder for constructing RequestInfo instances.
+ *
+ * @return a new builder instance
+ */
+ public static Builder builder() {
+ return new AutoValue_RequestInfo.Builder();
+ }
+
+ /** Builder for constructing RequestInfo instances. */
+ @AutoValue.Builder
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public abstract static class Builder {
+
+ /**
+ * Sets the request identifier.
+ *
+ * @param requestId the request identifier
+ * @return this builder for method chaining
+ */
+ @JsonProperty("request_id")
+ public abstract Builder setRequestId(String requestId);
+
+ /**
+ * Sets the serving data.
+ *
+ * @param servingData data that was used to serve the request
+ * @return this builder for method chaining
+ */
+ @JsonProperty("serving_data")
+ public abstract Builder setServingData(String servingData);
+
+ /**
+ * Builds the RequestInfo instance.
+ *
+ * @return a new RequestInfo instance
+ */
+ public abstract RequestInfo build();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/ResourceInfo.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/ResourceInfo.java
new file mode 100644
index 000000000..f47375b7a
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/ResourceInfo.java
@@ -0,0 +1,189 @@
+package com.databricks.sdk.core.error.details;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.google.auto.value.AutoValue;
+
+/**
+ * ResourceInfo describes the resource that is being accessed.
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+@AutoValue
+@JsonDeserialize(builder = AutoValue_ResourceInfo.Builder.class)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public abstract class ResourceInfo {
+
+ /**
+ * A name for the type of resource being accessed.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * @return description of the resource access error
+ */
+ @JsonProperty("description")
+ public abstract String description();
+
+ /**
+ * Creates a new builder for constructing ResourceInfo instances.
+ *
+ * @return a new builder instance
+ */
+ public static Builder builder() {
+ return new AutoValue_ResourceInfo.Builder();
+ }
+
+ /** Builder for constructing ResourceInfo instances. */
+ @AutoValue.Builder
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public abstract static class Builder {
+
+ /**
+ * Sets the resource type.
+ *
+ * @param resourceType the type of resource
+ * @return this builder for method chaining
+ */
+ @JsonProperty("resource_type")
+ public abstract Builder setResourceType(String resourceType);
+
+ /**
+ * Sets the resource name.
+ *
+ * @param resourceName the name or identifier of the resource
+ * @return this builder for method chaining
+ */
+ @JsonProperty("resource_name")
+ public abstract Builder setResourceName(String resourceName);
+
+ /**
+ * Sets the resource owner.
+ *
+ * @param owner the owner of the resource
+ * @return this builder for method chaining
+ */
+ @JsonProperty("owner")
+ public abstract Builder setOwner(String owner);
+
+ /**
+ * Sets the error description.
+ *
+ * @param description description of the resource access error
+ * @return this builder for method chaining
+ */
+ @JsonProperty("description")
+ public abstract Builder setDescription(String description);
+
+ /**
+ * Builds the ResourceInfo instance.
+ *
+ * @return a new ResourceInfo instance
+ */
+ public abstract ResourceInfo build();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/RetryInfo.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/RetryInfo.java
new file mode 100644
index 000000000..a44d9a141
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/error/details/RetryInfo.java
@@ -0,0 +1,145 @@
+package com.databricks.sdk.core.error.details;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.google.auto.value.AutoValue;
+import java.io.IOException;
+import java.time.Duration;
+
+/**
+ * RetryInfo describes when clients can retry a failed request.
+ *
+ *
+ *
+ *
+ * @return the recommended delay before retrying
+ */
+ @JsonProperty("retry_delay")
+ @JsonDeserialize(using = RetryInfo.DurationDeserializer.class)
+ public abstract Duration retryDelay();
+
+ /**
+ * Creates a new builder for constructing RetryInfo instances.
+ *
+ * @return a new builder instance
+ */
+ public static Builder builder() {
+ return new AutoValue_RetryInfo.Builder();
+ }
+
+ /** Builder for constructing RetryInfo instances. */
+ @AutoValue.Builder
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public abstract static class Builder {
+
+ /**
+ * Sets the retry delay.
+ *
+ * @param retryDelay the recommended delay before retrying
+ * @return this builder for method chaining
+ */
+ @JsonProperty("retry_delay")
+ @JsonDeserialize(using = RetryInfo.DurationDeserializer.class)
+ public abstract Builder setRetryDelay(Duration retryDelay);
+
+ /**
+ * Builds the RetryInfo instance.
+ *
+ * @return a new RetryInfo instance
+ */
+ public abstract RetryInfo build();
+ }
+
+ /**
+ * Custom deserializer for Duration field to handle "30s" format.
+ *
+ *
+ *
+ *
+ *