1+ package com .databricks .sdk .core .error .details ;
2+
3+ import com .fasterxml .jackson .databind .JsonNode ;
4+ import com .fasterxml .jackson .databind .annotation .JsonDeserialize ;
5+ import com .google .auto .value .AutoValue ;
6+ import java .util .Collections ;
7+ import java .util .List ;
8+ import java .util .Optional ;
9+
10+ /**
11+ * ErrorDetails contains the error details of an API error. It is the union of known error details
12+ * types and unknown details.
13+ */
14+ @ AutoValue
15+ @ JsonDeserialize (using = ErrorDetailsDeserializer .class )
16+ public abstract class ErrorDetails {
17+
18+ public abstract Optional <ErrorInfo > errorInfo ();
19+
20+ public abstract Optional <RequestInfo > requestInfo ();
21+
22+ public abstract Optional <RetryInfo > retryInfo ();
23+
24+ public abstract Optional <DebugInfo > debugInfo ();
25+
26+ public abstract Optional <QuotaFailure > quotaFailure ();
27+
28+ public abstract Optional <PreconditionFailure > preconditionFailure ();
29+
30+ public abstract Optional <BadRequest > badRequest ();
31+
32+ public abstract Optional <ResourceInfo > resourceInfo ();
33+
34+ public abstract Optional <Help > help ();
35+
36+ public abstract List <JsonNode > unknownDetails ();
37+
38+ public static Builder builder () {
39+ return new AutoValue_ErrorDetails .Builder ().setUnknownDetails (Collections .emptyList ());
40+ }
41+
42+ @ AutoValue .Builder
43+ public abstract static class Builder {
44+ public abstract Builder setErrorInfo (ErrorInfo errorInfo );
45+
46+ public abstract Builder setRequestInfo (RequestInfo requestInfo );
47+
48+ public abstract Builder setRetryInfo (RetryInfo retryInfo );
49+
50+ public abstract Builder setDebugInfo (DebugInfo debugInfo );
51+
52+ public abstract Builder setQuotaFailure (QuotaFailure quotaFailure );
53+
54+ public abstract Builder setPreconditionFailure (PreconditionFailure preconditionFailure );
55+
56+ public abstract Builder setBadRequest (BadRequest badRequest );
57+
58+ public abstract Builder setResourceInfo (ResourceInfo resourceInfo );
59+
60+ public abstract Builder setHelp (Help help );
61+
62+ public abstract Builder setUnknownDetails (List <JsonNode > unknownDetails );
63+
64+ abstract ErrorDetails autoBuild ();
65+
66+ public ErrorDetails build () {
67+ if (unknownDetails () == null ) {
68+ setUnknownDetails (Collections .emptyList ());
69+ }
70+ return autoBuild ();
71+ }
72+
73+ abstract List <JsonNode > unknownDetails ();
74+ }
75+ }
0 commit comments