With auto increment
defmodule MyApp.StaticEnums do
use Enumex.Static,
components: [
Enumex.Static.Components.AbsinthePhase,
Enumex.Static.Components.Constant,
Enumex.Static.Components.EctoType,
Enumex.Static.Components.Guards,
Enumex.Static.Components.Index,
Enumex.Static.Components.List,
Enumex.Static.Components.Sort,
Enumex.Static.Components.Typespecs
]
enum :http_status_codes do
value :continue, 100, name: "Continue"
value :switching_protocols, name: "Switching Protocols"
value :processing, name: "Processing"
value :early_hints, name: "Early Hints"
value :ok, 200, name: "OK"
value :created, name: "Created"
value :accepted, name: "Accepted"
value :non_authoritative_information, name: "Non-Authoritative Information"
value :no_content, name: "No Content"
value :reset_content, name: "Reset Content"
value :partial_content, name: "Partial Content"
value :multi_status, name: "Multi-Status"
value :already_reported, name: "Already Reported"
value :im_used, 226, name: "IM Used"
value :multiple_choices, 300, name: "Multiple Choices"
value :moved_permanently, name: "Moved Permanently"
value :found, name: "Found"
value :see_other, name: "See Other"
value :not_modified, name: "Not Modified"
value :use_proxy, name: "Use Proxy"
value :switch_proxy, name: "Switch Proxy"
value :temporary_redirect, name: "Temporary Redirect"
value :permanent_redirect, name: "Permanent Redirect"
value :bad_request, 400, name: "Bad Request"
value :unauthorized, name: "Unauthorized"
value :payment_required, name: "Payment Required"
value :forbidden, name: "Forbidden"
value :not_found, name: "Not Found"
value :method_not_allowed, name: "Method Not Allowed"
value :not_acceptable, name: "Not Acceptable"
value :proxy_authentication_required, name: "Proxy Authentication Required"
value :request_timeout, name: "Request Timeout"
value :conflict, name: "Conflict"
value :gone, name: "Gone"
value :length_required, name: "Length Required"
value :precondition_failed, name: "Precondition Failed"
value :payload_too_large, name: "Payload Too Large"
value :uri_too_long, name: "URI Too Long"
value :unsupported_media_type, name: "Unsupported Media Type"
value :range_not_satisfiable, name: "Range Not Satisfiable"
value :expectation_failed, name: "Expectation Failed"
value :i_am_a_teapot, name: "I am a teapot"
value :misdirected_request, 421, name: "Misdirected Request"
value :unprocessable_content, name: "Unprocessable Content"
value :locked, name: "Locked"
value :failed_dependency, name: "Failed Dependency"
value :too_early, name: "Too Early"
value :upgrade_required, name: "Upgrade Required"
value :precondition_required, 428, name: "Precondition Required"
value :too_many_requests, name: "Too Many Requests"
value :request_header_fields_too_large, 431, name: "Request Header Fields Too Large"
value :unavailable_for_legal_reasons, 451, name: "Unavailable For Legal Reasons"
value :internal_server_error, 500, name: "Internal Server Error"
value :not_implemented, name: "Not Implemented"
value :bad_gateway, name: "Bad Gateway"
value :service_unavailable, name: "Service Unavailable"
value :gateway_timeout, name: "Gateway Timeout"
value :http_version_not_supported, name: "HTTP Version Not Supported"
value :variant_also_negotiates, name: "Variant Also Negotiates"
value :insufficient_storage, name: "Insufficient Storage"
value :loop_detected, name: "Loop Detected"
value :not_extended, 510, name: "Not Extended"
value :network_authentication_required, name: "Network Authentication Required"
end
end
Manually
defmodule MyApp.StaticEnums do
use Enumex.Static,
components: [
Enumex.Static.Components.AbsinthePhase,
Enumex.Static.Components.Constant,
Enumex.Static.Components.EctoQuery,
Enumex.Static.Components.EctoType,
Enumex.Static.Components.Guards,
Enumex.Static.Components.Index,
Enumex.Static.Components.List,
Enumex.Static.Components.Sort,
Enumex.Static.Components.Typespecs
]
enum :http_status_codes do
value :continue, 100, name: "Continue"
value :switching_protocols, 101, name: "Switching Protocols"
value :processing, 102, name: "Processing"
value :early_hints, 103, name: "Early Hints"
value :ok, 200, name: "OK"
value :created, 201, name: "Created"
value :accepted, 202, name: "Accepted"
value :non_authoritative_information, 203, name: "Non-Authoritative Information"
value :no_content, 204, name: "No Content"
value :reset_content, 205, name: "Reset Content"
value :partial_content, 206, name: "Partial Content"
value :multi_status, 207, name: "Multi-Status"
value :already_reported, 208, name: "Already Reported"
value :im_used, 226, name: "IM Used"
value :multiple_choices, 300, name: "Multiple Choices"
value :moved_permanently, 301, name: "Moved Permanently"
value :found, 302, name: "Found"
value :see_other, 303, name: "See Other"
value :not_modified, 304, name: "Not Modified"
value :use_proxy, 305, name: "Use Proxy"
value :switch_proxy, 306, name: "Switch Proxy"
value :temporary_redirect, 307, name: "Temporary Redirect"
value :permanent_redirect, 308, name: "Permanent Redirect"
value :bad_request, 400, name: "Bad Request"
value :unauthorized, 401, name: "Unauthorized"
value :payment_required, 402, name: "Payment Required"
value :forbidden, 403, name: "Forbidden"
value :not_found, 404, name: "Not Found"
value :method_not_allowed, 405, name: "Method Not Allowed"
value :not_acceptable, 406, name: "Not Acceptable"
value :proxy_authentication_required, 407, name: "Proxy Authentication Required"
value :request_timeout, 408, name: "Request Timeout"
value :conflict, 409, name: "Conflict"
value :gone, 410, name: "Gone"
value :length_required, 411, name: "Length Required"
value :precondition_failed, 412, name: "Precondition Failed"
value :payload_too_large, 413, name: "Payload Too Large"
value :uri_too_long, 414, name: "URI Too Long"
value :unsupported_media_type, 415, name: "Unsupported Media Type"
value :range_not_satisfiable, 416, name: "Range Not Satisfiable"
value :expectation_failed, 417, name: "Expectation Failed"
value :i_am_a_teapot, 418, name: "I am a teapot"
value :misdirected_request, 421, name: "Misdirected Request"
value :unprocessable_content, 422, name: "Unprocessable Content"
value :locked, 423, name: "Locked"
value :failed_dependency, 424, name: "Failed Dependency"
value :too_early, 425, name: "Too Early"
value :upgrade_required, 426, name: "Upgrade Required"
value :precondition_required, 428, name: "Precondition Required"
value :too_many_requests, 429, name: "Too Many Requests"
value :request_header_fields_too_large, 431, name: "Request Header Fields Too Large"
value :unavailable_for_legal_reasons, 451, name: "Unavailable For Legal Reasons"
value :internal_server_error, 500, name: "Internal Server Error"
value :not_implemented, 501, name: "Not Implemented"
value :bad_gateway, 502, name: "Bad Gateway"
value :service_unavailable, 503, name: "Service Unavailable"
value :gateway_timeout, 504, name: "Gateway Timeout"
value :http_version_not_supported, 505, name: "HTTP Version Not Supported"
value :variant_also_negotiates, 506, name: "Variant Also Negotiates"
value :insufficient_storage, 507, name: "Insufficient Storage"
value :loop_detected, 508, name: "Loop Detected"
value :not_extended, 510, name: "Not Extended"
value :network_authentication_required, 511, name: "Network Authentication Required"
end
end