code: private function processError(Psr7\Response $response)
      {
          $content = $response->getBody()->getContents();
  
          switch ($response->getStatusCode()) {
              case BadRequestException::HTTP_CODE:
                  throw new BadRequestException($response->getHeaders(), $content);
              case UnauthorizedException::HTTP_CODE:
                  throw new UnauthorizedException($response->getHeaders(), $content);
              case ForbiddenException::HTTP_CODE:
                  throw new ForbiddenException($response->getHeaders(), $content);
              case NotFoundException::HTTP_CODE:
                  throw new NotFoundException($response->getHeaders(), $content);
              case RequestTimeoutException::HTTP_CODE:
                  throw new RequestTimeoutException($response->getHeaders(), $content);
              case TooManyRequestsException::HTTP_CODE:
                  throw new TooManyRequestsException($response->getHeaders(), $content);
              case InternalServerException::HTTP_CODE:
                  throw new InternalServerException($response->getHeaders(), $content);
              default:
                  throw new ResponseException(
                      'An unknown API error occurred',
                      $response->getStatusCode(),
                      $response->getHeaders(),
                      $content
                  );
          }
      }
docs: @param Psr7\Response $response
  
  @throws ResponseException