private static FeignClientException clientErrorStatus(
      int status,
      String message,
      Request request,
      byte[] body,
      Map<String, Collection<String>> headers) {
    switch (status) {
      case 400:
        return new BadRequest(message, request, body, headers);
      case 401:
        return new Unauthorized(message, request, body, headers);
      case 403:
        return new Forbidden(message, request, body, headers);
      case 404:
        return new NotFound(message, request, body, headers);
      case 405:
        return new MethodNotAllowed(message, request, body, headers);
      case 406:
        return new NotAcceptable(message, request, body, headers);
      case 409:
        return new Conflict(message, request, body, headers);
      case 410:
        return new Gone(message, request, body, headers);
      case 415:
        return new UnsupportedMediaType(message, request, body, headers);
      case 429:
        return new TooManyRequests(message, request, body, headers);
      case 422:
        return new UnprocessableEntity(message, request, body, headers);
      default:
        return new FeignClientException(status, message, request, body, headers);
    }
  }
The Response body.

@return an Optional wrapping the response body.
core/src/main/java/feign/FeignException.java