# Path: prestans/http.py
# class STATUS:
#     """
#     The following is a selection of HTTP status codes that are recommended for use 
#     by REST services. You are welcome to use other available status codes.
#     
#     http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
#     """
# 
#     # Informational
#     CONTINUE = 100
#     SWITCHING_PROTOCOLS = 101
#     PROCESSING = 102
#     EARLY_HINTS = 103
# 
#     # Success
#     OK = 200
#     CREATED = 201
#     ACCEPTED = 202
#     NON_AUTHORITATIVE_INFORMATION = 203
#     NO_CONTENT = 204
#     RESET_CONTENT = 205
#     PARTIAL_CONTENT = 206
#     MULTI_STATUS = 207
#     ALREADY_REPORTED = 208
#     IM_USED = 226
# 
#     # Redirection
#     MULTIPLE_CHOICES = 300
#     MOVED_PERMANENTLY = 301
#     FOUND = 302
#     SEE_OTHER = 303
#     NOT_MODIFIED = 304
#     USE_PROXY = 305
#     SWITCH_PROXY = 306
#     TEMPORARY_REDIRECT = 307
#     PERMANENT_REDIRECT = 308
# 
#     # Client Error
#     BAD_REQUEST = 400
#     UNAUTHORIZED = 401
#     PAYMENT_REQUIRED = 402
#     FORBIDDEN = 403
#     NOT_FOUND = 404
#     METHOD_NOT_ALLOWED = 405
#     NOT_ACCEPTABLE = 406
#     PROXY_AUTH_REQUIRED = 407
#     REQUEST_TIMEOUT = 408
#     CONFLICT = 409
#     GONE = 410
#     LENGTH_REQUIRED = 411
#     PRECONDITION_FAILED = 412
#     PAYLOAD_TOO_LARGE = 413
#     URI_TOO_LONG = 414
#     UNSUPPORTED_MEDIA_TYPE = 415
#     RANGE_NOT_SATISFIABLE = 416
#     EXCEPTION_FAILED = 417
#     TEAPOT = 418
#     AUTHENTICATION_TIMEOUT = 419
#     MISDIRECTED_REQUEST = 421
#     UNPROCESSABLE_ENTITY = 422
#     LOCKED = 423
# 
#     # Server Error
#     INTERNAL_SERVER_ERROR = 500
#     NOT_IMPLEMENTED = 501
#     BAD_GATEWAY = 502
#     SERVICE_UNAVAILABLE = 503
#     GATEWAY_TIMEOUT = 504
#     HTTP_VERSION_NOT_SUPPORTED = 505
#     VARIANT_ALSO_NEGOTIATES = 506
#     INSUFFICIENT_STORAGE = 507
#     LOOP_DETECTED = 508
#     NOT_EXTENDED = 510
#     NETWORK_AUTHENTICATION_REQUIRED = 511


from prestans.http import STATUS
        from prestans.types import Model

    def __init__(self, message="Bad Request", response_model=None):
        _code = STATUS.BAD_REQUEST
        super(BadRequest, self).__init__(_code, message, response_model)


class Conflict(ResponseException):

    def __init__(self, message="Conflict", response_model=None):
        _code = STATUS.CONFLICT
        super(Conflict, self).__init__(_code, message, response_model)


class NotFound(ResponseException):

    def __init__(self, message="Not Found", response_model=None):
        _code = STATUS.NOT_FOUND
        super(NotFound, self).__init__(_code, message, response_model)


class Unauthorized(ResponseException):

    def __init__(self, message="Unauthorized", response_model=None):
        _code = STATUS.UNAUTHORIZED
        super(Unauthorized, self).__init__(_code, message, response_model)


class MovedPermanently(ResponseException):

    def __init__(self, message="Moved Permanently", response_model=None):

# Path: prestans/http.py
# class STATUS:
#     """
#     The following is a selection of HTTP status codes that are recommended for use 
#     by REST services. You are welcome to use other available status codes.
#     
#     http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
#     """
# 
#     # Informational
#     CONTINUE = 100
#     SWITCHING_PROTOCOLS = 101
#     PROCESSING = 102
#     EARLY_HINTS = 103
# 
#     # Success
#     OK = 200
#     CREATED = 201
#     ACCEPTED = 202
#     NON_AUTHORITATIVE_INFORMATION = 203
#     NO_CONTENT = 204
#     RESET_CONTENT = 205
#     PARTIAL_CONTENT = 206
#     MULTI_STATUS = 207
#     ALREADY_REPORTED = 208
#     IM_USED = 226
# 
#     # Redirection
#     MULTIPLE_CHOICES = 300
#     MOVED_PERMANENTLY = 301
#     FOUND = 302
#     SEE_OTHER = 303
#     NOT_MODIFIED = 304
#     USE_PROXY = 305
#     SWITCH_PROXY = 306
#     TEMPORARY_REDIRECT = 307
#     PERMANENT_REDIRECT = 308
# 
#     # Client Error
#     BAD_REQUEST = 400
#     UNAUTHORIZED = 401
#     PAYMENT_REQUIRED = 402
#     FORBIDDEN = 403
#     NOT_FOUND = 404
#     METHOD_NOT_ALLOWED = 405
#     NOT_ACCEPTABLE = 406
#     PROXY_AUTH_REQUIRED = 407
#     REQUEST_TIMEOUT = 408
#     CONFLICT = 409
#     GONE = 410
#     LENGTH_REQUIRED = 411
#     PRECONDITION_FAILED = 412
#     PAYLOAD_TOO_LARGE = 413
#     URI_TOO_LONG = 414
#     UNSUPPORTED_MEDIA_TYPE = 415
#     RANGE_NOT_SATISFIABLE = 416
#     EXCEPTION_FAILED = 417
#     TEAPOT = 418
#     AUTHENTICATION_TIMEOUT = 419
#     MISDIRECTED_REQUEST = 421
#     UNPROCESSABLE_ENTITY = 422
#     LOCKED = 423
# 
#     # Server Error
#     INTERNAL_SERVER_ERROR = 500
#     NOT_IMPLEMENTED = 501
#     BAD_GATEWAY = 502
#     SERVICE_UNAVAILABLE = 503
#     GATEWAY_TIMEOUT = 504
#     HTTP_VERSION_NOT_SUPPORTED = 505
#     VARIANT_ALSO_NEGOTIATES = 506
#     INSUFFICIENT_STORAGE = 507
#     LOOP_DETECTED = 508
#     NOT_EXTENDED = 510
#     NETWORK_AUTHENTICATION_REQUIRED = 511


# Path: prestans/exception.py
from prestans.http import STATUS
        from prestans.types import Model


    def __init__(self, message="Bad Request", response_model=None):
        _code = STATUS.BAD_REQUEST
        super(BadRequest, self).__init__(_code, message, response_model)


class Conflict(ResponseException):

    def __init__(self, message="Conflict", response_model=None):
        _code = STATUS.CONFLICT
        super(Conflict, self).__init__(_code, message, response_model)


class NotFound(ResponseException):

    def __init__(self, message="Not Found", response_model=None):
        _code = STATUS.NOT_FOUND
        super(NotFound, self).__init__(_code, message, response_model)


class Unauthorized(ResponseException):

    def __init__(self, message="Unauthorized", response_model=None):
        _code = STATUS.UNAUTHORIZED
        super(Unauthorized, self).__init__(_code, message, response_model)


class MovedPermanently(ResponseException):

    def __init__(self, message="Moved Permanently", response_model=None):

        _code = STATUS.MOVED_PERMANENTLY