docs: public Mono<HttpDecodedResponse> ensureExpectedStatus(final HttpDecodedResponse decodedResponse, final SwaggerMethodParser methodParser, int[] additionalAllowedStatusCodes) {
          final int responseStatusCode = decodedResponse.sourceResponse().statusCode();
          final Mono<HttpDecodedResponse> asyncResult;
          if (!methodParser.isExpectedResponseStatusCode(responseStatusCode, additionalAllowedStatusCodes)) {
              Mono<String> bodyAsString = decodedResponse.sourceResponse().bodyAsString();
              //
              asyncResult = bodyAsString.flatMap((Function<String, Mono<HttpDecodedResponse>>) responseContent -> {
                  // bodyAsString() emits non-empty string, now look for decoded version of same string
                  Mono<Object> decodedErrorBody = decodedResponse.decodedBody();
                  //
                  return decodedErrorBody.flatMap((Function<Object, Mono<HttpDecodedResponse>>) responseDecodedErrorObject -> {
                      // decodedBody() emits 'responseDecodedErrorObject' the successfully decoded exception body object
                      Throwable exception = instantiateUnexpectedException(methodParser.getUnexpectedException(responseStatusCode),
                              decodedResponse.sourceResponse(),
                              responseContent,
                              responseDecodedErrorObject);
                      return Mono.error(exception);
                      //
                  }).switchIfEmpty(Mono.defer((Supplier<Mono<HttpDecodedResponse>>) () -> {
                      // decodedBody() emits empty, indicate unable to decode 'responseContent',
                      // create exception with un-decodable content string and without exception body object.
                      Throwable exception = instantiateUnexpectedException(methodParser.getUnexpectedException(responseStatusCode),
                              decodedResponse.sourceResponse(),
                              responseContent,
                              null);
                      return Mono.error(exception);
                      //
                  }));
              }).switchIfEmpty(Mono.defer((Supplier<Mono<HttpDecodedResponse>>) () -> {
                  // bodyAsString() emits empty, indicate no body, create exception empty content string no exception body object.
                  Throwable exception = instantiateUnexpectedException(methodParser.getUnexpectedException(responseStatusCode),
                          decodedResponse.sourceResponse(),
                          "",
                          null);
                  return Mono.error(exception);
                  //
              }));
          } else {
              asyncResult = Mono.just(decodedResponse);
          }
          return asyncResult;
      }