<?php 
 
namespace HttpStatusCodes; 
 
enum StatusCode: int 
{ 
    // 1xx informational response 
    case CONTINUE = 100; 
    case SWITCHING_PROTOCOLS = 101; 
    case PROCESSING = 102; 
    case EARLY_HINTS = 103; 
 
    // 2xx success 
    case OK = 200; 
    case CREATED = 201; 
    case ACCEPTED = 202; 
    case NON_AUTHORITATIVE_INFORMATION = 203; 
    case NO_CONTENT = 204; 
    case RESET_CONTENT = 205; 
    case PARTIAL_CONTENT = 206; 
    case MULTI_STATUS = 207; 
    case ALREADY_REPORTED = 208; 
    case IM_USED = 226; 
 
    // 3xx redirection 
    case MULTIPLE_CHOICES = 300; 
    case MOVED_PERMANENTLY = 301; 
    case FOUND = 302; 
    case SEE_OTHER = 303; 
    case NOT_MODIFIED = 304; 
    case USE_PROXY = 305; 
    case SWITCH_PROXY = 306; 
    case TEMPORARY_REDIRECT = 307; 
    case PERMANENT_REDIRECT = 308; 
 
    // 4xx client errors 
    case BAD_REQUEST = 400; 
    case UNAUTHORIZED = 401; 
    case PAYMENT_REQUIRED = 402; 
    case FORBIDDEN = 403; 
    case NOT_FOUND = 404; 
    case METHOD_NOT_ALLOWED = 405; 
    case NOT_ACCEPTABLE = 406; 
    case PROXY_AUTHENTICATION_REQUIRED = 407; 
    case REQUEST_TIMEOUT = 408; 
    case CONFLICT = 409; 
    case GONE = 410; 
    case LENGTH_REQUIRED = 411; 
    case PRECONDITION_FAILED = 412; 
    case PAYLOAD_TOO_LARGE = 413; 
    case URI_TOO_LONG = 414; 
    case UNSUPPORTED_MEDIA_TYPE = 415; 
    case RANGE_NOT_SATISFIABLE = 416; 
    case EXPECTATION_FAILED = 417; 
    case IM_A_TEAPOT = 418; 
    case MISDIRECTED_REQUEST = 421; 
    case UNPROCESSABLE_ENTITY = 422; 
    case LOCKED = 423; 
    case FAILED_DEPENDENCY = 424; 
    case TOO_EARLY = 425; 
    case UPGRADE_REQUIRED = 426; 
    case PRECONDITION_REQUIRED = 428; 
    case TOO_MANY_REQUESTS = 429; 
    case REQUEST_HEADER_FIELDS_TOO_LARGE = 431; 
    case UNAVAILABLE_FOR_LEGAL_REASONS = 451; 
 
    // 5xx server errors 
    case INTERNAL_SERVER_ERROR = 500; 
    case NOT_IMPLEMENTED = 501; 
    case BAD_GATEWAY = 502; 
    case SERVICE_UNAVAILABLE = 503; 
    case GATEWAY_TIMEOUT = 504; 
    case HTTP_VERSION_NOT_SUPPORTED = 505; 
    case VARIANT_ALSO_NEGOTIATES = 506; 
    case INSUFFICIENT_STORAGE = 507; 
    case LOOP_DETECTED = 508; 
    case NOT_EXTENDED = 510; 
    case NETWORK_AUTHENTICATION_REQUIRED = 511; 
 
 
    public function describe(): StatusDetail 
    { 
        return Description::describe($this); 
    } 
}
 
 |