code: def check_response_status(self, response):
          
          if not (200 <= response.status_code < 300):
              try:
                  message = response.json()["errors"]
              except Exception:
                  message = None
              floyd_logger.debug("Error received : status_code: {}, message: {}".format(response.status_code,
                                                                                        message or response.content))
              if response.status_code == 400:
                  raise BadRequestException(response)
              elif response.status_code == 401:
                  raise AuthenticationException()
              elif response.status_code == 403:
                  raise AuthorizationException(response)
              elif response.status_code == 404:
                  raise NotFoundException()
              elif response.status_code == 429:
                  raise OverLimitException(response.json().get("message"))
              elif response.status_code == 502:
                  raise BadGatewayException()
              elif response.status_code == 504:
                  raise GatewayTimeoutException()
              elif response.status_code == 423:
                  raise LockedException()
              elif 500 <= response.status_code < 600:
                  if 'Server under maintenance' in response.content.decode():
                      raise ServerException('Server under maintenance, please try again later.')
                  else:
                      raise ServerException()
              else:
                  msg = "An error occurred. Server response: {}".format(response.status_code)
                  raise FloydException(message=msg)
docs: Check if response is successful. Else raise Exception.