@Nullable
@Override
@CallSuper
public List<String> validate(@NonNull RetryStrategy retryStrategy) {
List<String> errors;
int policy = retryStrategy.getPolicy();
int initial = retryStrategy.getInitialBackoff();
int maximum = retryStrategy.getMaximumBackoff();
errors =
addErrorsIf(
policy != RETRY_POLICY_EXPONENTIAL && policy != RETRY_POLICY_LINEAR,
null,
"Unknown retry policy provided");
errors =
addErrorsIf(
maximum < initial,
errors,
"Maximum backoff must be greater than or equal to initial backoff");
errors =
addErrorsIf(300 > maximum, errors, "Maximum backoff must be greater than 300s (5 minutes)");
errors = addErrorsIf(initial < 30, errors, "Initial backoff must be at least 30s");
return errors;
}