class AgvdException(BaseException):
    pass

HTTP_STATUS_CODES = {
    100: { 'code': 100, 'message': "Continue - The server has received the request headers and you should proceed to send the request body." },
    101: { 'code': 101, 'message': "Switching Protocols - The server is switching protocols according to the Upgrade header field you sent." },
    102: { 'code': 102, 'message': "Processing - The server has received and is processing your request, but no response is available yet." },
    103: { 'code': 103, 'message': "Early Hints - We are returning some response headers before the final HTTP message." },
    200: { 'code': 200, 'message': "OK - Your request has succeeded." },
    201: { 'code': 201, 'message': "Created - Your request has been fulfilled, resulting in the creation of a new resource." },
    202: { 'code': 202, 'message': "Accepted - Your request has been accepted for processing, but the processing has not been completed." },
    203: { 'code': 203, 'message': "Non-Authoritative Information - We are a transforming proxy that received a 200 OK from our origin." },
    204: { 'code': 204, 'message': "No Content - We have successfully processed your request and are not returning any content." },
    205: { 'code': 205, 'message': "Reset Content - We have successfully processed your request, but are not returning any content." },
    206: { 'code': 206, 'message': "Partial Content - We are delivering only part of the resource due to a range header you sent." },
    207: { 'code': 207, 'message': "Multi-Status - The message body that follows is an XML message and can contain a number of separate response codes." },
    208: { 'code': 208, 'message': "Already Reported - The members of a DAV binding have already been enumerated in a previous reply to this request." },
    226: { 'code': 226, 'message': "IM Used - We have fulfilled your request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance." },
    300: { 'code': 300, 'message': "Multiple Choices - Your request has more than one possible response." },
    301: { 'code': 301, 'message': "Moved Permanently - The URL of the requested resource has been changed permanently." },
    302: { 'code': 302, 'message': "Found - The URL of the requested resource has been changed temporarily." },
    303: { 'code': 303, 'message': "See Other - The response to your request can be found under another URL using a GET method." },
    304: { 'code': 304, 'message': "Not Modified - The resource has not been modified since your last request." },
    305: { 'code': 305, 'message': "Use Proxy - The requested resource is available only through a proxy." },
    307: { 'code': 307, 'message': "Temporary Redirect - You should repeat the request with another URI, but future requests should still use the original URI." },
    308: { 'code': 308, 'message': "Permanent Redirect - You should repeat the request and all future requests using another URI." },
    400: { 'code': 400, 'message': "Bad Request - We cannot or will not process your request due to an apparent client error." },
    401: { 'code': 401, 'message': "Unauthorized - Your request requires user authentication." },
    402: { 'code': 402, 'message': "Payment Required - Reserved for future use." },
    403: { 'code': 403, 'message': "Forbidden - We understood your request, but are refusing to fulfill it." },
    404: { 'code': 404, 'message': "Not Found - We have not found anything matching the request URI." },
    405: { 'code': 405, 'message': "Method Not Allowed - The method specified in your request is not allowed for the resource identified by the request URI." },
    406: { 'code': 406, 'message': "Not Acceptable - We can only generate a response that is not accepted by you." },
    407: { 'code': 407, 'message': "Proxy Authentication Required - You must first authenticate yourself with the proxy." },
    408: { 'code': 408, 'message': "Request Timeout - We timed out waiting for your request." },
    409: { 'code': 409, 'message': "Conflict - Your request could not be completed due to a conflict with the current state of the target resource." },
    410: { 'code': 410, 'message': "Gone - The target resource is no longer available at the origin server and this condition is likely to be permanent." },
    411: { 'code': 411, 'message': "Length Required - We refuse to accept your request without a defined Content-Length." },
    412: { 'code': 412, 'message': "Precondition Failed - One or more conditions given in your request header fields evaluated to false when tested on the server." },
    413: { 'code': 413, 'message': "Payload Too Large - We are refusing to process your request because the request payload is larger than we are willing or able to process." },
    414: { 'code': 414, 'message': "URI Too Long - We are refusing to service your request because the request-target is longer than we are willing to interpret." },
    415: { 'code': 415, 'message': "Unsupported Media Type - We are refusing to service your request because the payload is in a format not supported by this method on the target resource." },
    416: { 'code': 416, 'message': "Range Not Satisfiable - None of the ranges in your request's Range header field overlap the current extent of the selected resource." },
    417: { 'code': 417, 'message': "Expectation Failed - The expectation given in your request's Expect header field could not be met by at least one of the inbound servers." },
    418: { 'code': 418, 'message': "I'm a teapot - Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot." },
    421: { 'code': 421, 'message': "Misdirected Request - Your request was directed at a server that is not able to produce a response." },
    422: { 'code': 422, 'message': "Unprocessable Entity - We understand the content type of your request entity, and the syntax of the request entity is correct, but we were unable to process the contained instructions." },
    423: { 'code': 423, 'message': "Locked - The source or destination resource of a method is locked." },
    424: { 'code': 424, 'message': "Failed Dependency - The method could not be performed on the resource because the requested action depended on another action and that action failed." },
    425: { 'code': 425, 'message': "Too Early - We are unwilling to risk processing a request that might be replayed." },
    426: { 'code': 426, 'message': "Upgrade Required - We refuse to perform your request using the current protocol but might be willing to do so after you upgrade to a different protocol." },
    428: { 'code': 428, 'message': "Precondition Required - We require your request to be conditional." },
    429: { 'code': 429, 'message': "Too Many Requests - You have sent too many requests in a given amount of time." },
    431: { 'code': 431, 'message': "Request Header Fields Too Large - We are unwilling to process your request because your header fields are too large." },
    451: { 'code': 451, 'message': "Unavailable For Legal Reasons - We are denying access to the resource as a consequence of a legal demand." },
    500: { 'code': 500, 'message': "Internal Server Error - We encountered an unexpected condition that prevented us from fulfilling your request." },
    501: { 'code': 501, 'message': "Not Implemented - We do not support the functionality required to fulfill your request." },
    502: { 'code': 502, 'message': "Bad Gateway - We, while acting as a gateway or proxy, received an invalid response from an inbound server we accessed while attempting to fulfill your request." },
    503: { 'code': 503, 'message': "Service Unavailable - We are currently unable to handle your request due to a temporary overload or scheduled maintenance." },
    504: { 'code': 504, 'message': "Gateway Timeout - We, while acting as a gateway or proxy, did not receive a timely response from an upstream server we needed to access in order to complete your request." },
    505: { 'code': 505, 'message': "HTTP Version Not Supported - We do not support, or refuse to support, the major version of HTTP that was used in your request message." },
    506: { 'code': 506, 'message': "Variant Also Negotiates - Transparent content negotiation for your request results in a circular reference." },
    507: { 'code': 507, 'message': "Insufficient Storage - The method could not be performed on the resource because we are unable to store the representation needed to successfully complete your request." },
    508: { 'code': 508, 'message': "Loop Detected - We detected an infinite loop while processing your request." },
    510: { 'code': 510, 'message': "Not Extended - Further extensions to your request are required for us to fulfill it." },
    511: { 'code': 511, 'message': "Network Authentication Required - You need to authenticate to gain network access." },
}
