Skip to content

Commit 0360c78

Browse files
committed
Update the error code mapping
1 parent b35af39 commit 0360c78

File tree

1 file changed

+54
-13
lines changed

1 file changed

+54
-13
lines changed

multicloudj-common-aws/src/main/java/com/salesforce/multicloudj/common/aws/CommonErrorCodeMapping.java

Lines changed: 54 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,60 @@ private CommonErrorCodeMapping() {
2222
// The common error codes as source of truth is here:
2323
// https://docs.aws.amazon.com/STS/latest/APIReference/CommonErrors.html
2424
// https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/CommonErrors.html
25-
ERROR_MAPPING = Map.ofEntries(
26-
Map.entry("AccessDeniedException", UnAuthorizedException.class),
27-
Map.entry("IncompleteSignature", InvalidArgumentException.class),
28-
Map.entry("InternalFailure", UnknownException.class),
29-
Map.entry("InvalidAction", InvalidArgumentException.class),
30-
Map.entry("InvalidClientTokenId", InvalidArgumentException.class),
31-
Map.entry("NotAuthorized", UnAuthorizedException.class),
32-
Map.entry("OptInRequired", UnAuthorizedException.class),
33-
Map.entry("RequestExpired", ResourceExhaustedException.class),
34-
Map.entry("ServiceUnavailable", UnknownException.class),
35-
Map.entry("ThrottlingException", ResourceExhaustedException.class),
36-
Map.entry("ValidationError", InvalidArgumentException.class)
37-
);
25+
// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
26+
Map<String, Class<? extends SubstrateSdkException>> map = new HashMap<>();
27+
28+
// Common errors from STS/DynamoDB
29+
map.put("IncompleteSignature", InvalidArgumentException.class);
30+
map.put("InternalFailure", UnknownException.class);
31+
map.put("InvalidAction", InvalidArgumentException.class);
32+
map.put("InvalidClientTokenId", InvalidArgumentException.class);
33+
map.put("NotAuthorized", UnAuthorizedException.class);
34+
map.put("OptInRequired", UnAuthorizedException.class);
35+
map.put("RequestExpired", ResourceExhaustedException.class);
36+
map.put("ServiceUnavailable", UnknownException.class);
37+
map.put("ThrottlingException", ResourceExhaustedException.class);
38+
map.put("ValidationError", InvalidArgumentException.class);
39+
40+
// All 403 Forbidden errors from S3
41+
map.put("AccessDenied", UnAuthorizedException.class);
42+
map.put("AccountNotAuthorized", UnAuthorizedException.class);
43+
map.put("AccountProblem", UnAuthorizedException.class);
44+
map.put("AllAccessDisabled", UnAuthorizedException.class);
45+
map.put("InvalidAccessKeyId", InvalidArgumentException.class);
46+
map.put("InvalidPayer", UnAuthorizedException.class);
47+
map.put("InvalidSecurity", UnAuthorizedException.class);
48+
map.put("NotSignedUp", UnAuthorizedException.class);
49+
map.put("RequestTimeTooSkewed", InvalidArgumentException.class);
50+
map.put("SignatureDoesNotMatch", InvalidArgumentException.class);
51+
map.put("TokenRefreshRequired", UnAuthorizedException.class);
52+
53+
// Common 400 Bad Request errors
54+
map.put("BadDigest", InvalidArgumentException.class);
55+
map.put("InvalidRequest", InvalidArgumentException.class);
56+
map.put("InvalidArgument", InvalidArgumentException.class);
57+
map.put("MalformedPolicy", InvalidArgumentException.class);
58+
map.put("MalformedXML", InvalidArgumentException.class);
59+
map.put("MetadataTooLarge", InvalidArgumentException.class);
60+
map.put("MissingContentLength", InvalidArgumentException.class);
61+
map.put("MissingSecurityHeader", InvalidArgumentException.class);
62+
map.put("RequestTimeout", ResourceExhaustedException.class);
63+
64+
// Common 404 Not Found errors
65+
map.put("NoSuchKey", ResourceNotFoundException.class);
66+
map.put("NoSuchBucket", ResourceNotFoundException.class);
67+
map.put("NoSuchVersion", ResourceNotFoundException.class);
68+
map.put("NoSuchUpload", ResourceNotFoundException.class);
69+
70+
// Common 409 Conflict errors
71+
map.put("BucketAlreadyExists", ResourceAlreadyExistsException.class);
72+
map.put("BucketAlreadyOwnedByYou", ResourceAlreadyExistsException.class);
73+
map.put("OperationAborted", ResourceConflictException.class);
74+
75+
// Common 503 Service Unavailable errors
76+
map.put("SlowDown", ResourceExhaustedException.class);
77+
78+
ERROR_MAPPING = Collections.unmodifiableMap(map);
3879
}
3980

4081
public static Map<String, Class<? extends SubstrateSdkException>> get() {

0 commit comments

Comments
 (0)