Skip to content

Commit 2d0edf7

Browse files
Default to empty list
1 parent d016a93 commit 2d0edf7

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
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

Comments
 (0)