1
+ /**
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for
4
+ * license information.
5
+ */
6
+
7
+ package com .microsoft .azure .functions ;
8
+
9
+ /**
10
+ * Enum to represent HTTP Status codes.
11
+ *
12
+ * @author Bruno Borges
13
+ * @since 1.0
14
+ */
15
+ public enum HttpStatus {
16
+
17
+ // HTTP Status 100+
18
+ CONTINUE (100 ), SWITCHING_PROTOCOLS (101 ), PROCESSING (102 ), CHECKPOINT (103 ),
19
+
20
+ // HTTP Status 200+
21
+ OK (200 ), CREATED (201 ), ACCEPTED (202 ), NON_AUTHORITATIVE_INFORMATION (203 ), NO_CONTENT (204 ), RESET_CONTENT (205 ),
22
+ PARTIAL_CONTENT (206 ), MULTI_STATUS (207 ), ALREADY_REPORTED (208 ), IM_USED (226 ),
23
+
24
+ // HTTP Status 300+
25
+ MULTIPLE_CHOICES (300 ), MOVED_PERMANENTLY (301 ), FOUND (302 ), SEE_OTHER (303 ), NOT_MODIFIED (304 ),
26
+ TEMPORARY_REDIRECT (307 ), PERMANENT_REDIRECT (308 ),
27
+
28
+ // HTTP Status 400+
29
+ BAD_REQUEST (400 ), UNAUTHORIZED (401 ), PAYMENT_REQUIRED (402 ), FORBIDDEN (403 ), NOT_FOUND (404 ), METHOD_NOT_ALLOWED (405 ),
30
+ NOT_ACCEPTABLE (406 ), PROXY_AUTHENTICATION_REQUIRED (407 ), REQUEST_TIMEOUT (408 ), CONFLICT (409 ), GONE (410 ),
31
+ LENGTH_REQUIRED (411 ), PRECONDITION_FAILED (412 ), PAYLOAD_TOO_LARGE (413 ), URI_TOO_LONG (414 ),
32
+ UNSUPPORTED_MEDIA_TYPE (415 ), REQUESTED_RANGE_NOT_SATISFIABLE (416 ), EXPECTATION_FAILED (417 ), I_AM_A_TEAPOT (418 ),
33
+ UNPROCESSABLE_ENTITY (422 ), LOCKED (423 ), FAILED_DEPENDENCY (424 ), UPGRADE_REQUIRED (426 ), PRECONDITION_REQUIRED (428 ),
34
+ TOO_MANY_REQUESTS (429 ), REQUEST_HEADER_FIELDS_TOO_LARGE (431 ), UNAVAILABLE_FOR_LEGAL_REASONS (451 ),
35
+
36
+ // HTTP Status 500+
37
+ INTERNAL_SERVER_ERROR (500 ), NOT_IMPLEMENTED (501 ), BAD_GATEWAY (502 ), SERVICE_UNAVAILABLE (503 ), GATEWAY_TIMEOUT (504 ),
38
+ HTTP_VERSION_NOT_SUPPORTED (505 ), VARIANT_ALSO_NEGOTIATES (506 ), INSUFFICIENT_STORAGE (507 ), LOOP_DETECTED (508 ),
39
+ BANDWIDTH_LIMIT_EXCEEDED (509 ), NOT_EXTENDED (510 ), NETWORK_AUTHENTICATION_REQUIRED (511 );
40
+
41
+ private final int value ;
42
+
43
+ HttpStatus (int value ) {
44
+ this .value = value ;
45
+ }
46
+
47
+ /**
48
+ * Returns the code of this HTTPStatus enum.
49
+ *
50
+ * @return int value for this http status
51
+ */
52
+ public int value () {
53
+ return this .value ;
54
+ }
55
+
56
+ /**
57
+ * Maps the int code to an HttpStatus enum.
58
+ *
59
+ * @param value for http code
60
+ * @return HttpStatus enum
61
+ */
62
+ public static HttpStatus valueOf (int value ) {
63
+ for (HttpStatus status : HttpStatus .values ()) {
64
+ if (value == status .value )
65
+ return status ;
66
+ }
67
+
68
+ throw new IllegalArgumentException ("HTTP Status code unknown: " + value );
69
+ }
70
+ }
0 commit comments