proxy-host-object.json 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. {
  2. "type": "object",
  3. "description": "Proxy Host object",
  4. "required": [
  5. "id",
  6. "created_on",
  7. "modified_on",
  8. "owner_user_id",
  9. "domain_names",
  10. "forward_host",
  11. "forward_port",
  12. "access_list_id",
  13. "certificate_id",
  14. "ssl_forced",
  15. "caching_enabled",
  16. "block_exploits",
  17. "advanced_config",
  18. "meta",
  19. "allow_websocket_upgrade",
  20. "http2_support",
  21. "forward_scheme",
  22. "enabled",
  23. "locations",
  24. "hsts_enabled",
  25. "hsts_subdomains",
  26. "certificate"
  27. ],
  28. "additionalProperties": false,
  29. "properties": {
  30. "id": {
  31. "$ref": "../common.json#/properties/id"
  32. },
  33. "created_on": {
  34. "$ref": "../common.json#/properties/created_on"
  35. },
  36. "modified_on": {
  37. "$ref": "../common.json#/properties/modified_on"
  38. },
  39. "owner_user_id": {
  40. "$ref": "../common.json#/properties/user_id"
  41. },
  42. "domain_names": {
  43. "$ref": "../common.json#/properties/domain_names"
  44. },
  45. "forward_host": {
  46. "type": "string",
  47. "minLength": 1,
  48. "maxLength": 255
  49. },
  50. "forward_port": {
  51. "type": "integer",
  52. "minimum": 1,
  53. "maximum": 65535
  54. },
  55. "access_list_id": {
  56. "$ref": "../common.json#/properties/access_list_id"
  57. },
  58. "certificate_id": {
  59. "$ref": "../common.json#/properties/certificate_id"
  60. },
  61. "ssl_forced": {
  62. "$ref": "../common.json#/properties/ssl_forced"
  63. },
  64. "caching_enabled": {
  65. "$ref": "../common.json#/properties/caching_enabled"
  66. },
  67. "block_exploits": {
  68. "$ref": "../common.json#/properties/block_exploits"
  69. },
  70. "advanced_config": {
  71. "type": "string"
  72. },
  73. "meta": {
  74. "type": "object"
  75. },
  76. "allow_websocket_upgrade": {
  77. "description": "Allow Websocket Upgrade for all paths",
  78. "example": true,
  79. "type": "boolean"
  80. },
  81. "http2_support": {
  82. "$ref": "../common.json#/properties/http2_support"
  83. },
  84. "forward_scheme": {
  85. "type": "string",
  86. "enum": ["http", "https"]
  87. },
  88. "enabled": {
  89. "$ref": "../common.json#/properties/enabled"
  90. },
  91. "locations": {
  92. "type": "array",
  93. "minItems": 0,
  94. "items": {
  95. "type": "object",
  96. "required": ["forward_scheme", "forward_host", "forward_port", "path"],
  97. "additionalProperties": false,
  98. "properties": {
  99. "id": {
  100. "type": ["integer", "null"]
  101. },
  102. "path": {
  103. "type": "string",
  104. "minLength": 1
  105. },
  106. "forward_scheme": {
  107. "$ref": "#/properties/forward_scheme"
  108. },
  109. "forward_host": {
  110. "$ref": "#/properties/forward_host"
  111. },
  112. "forward_port": {
  113. "$ref": "#/properties/forward_port"
  114. },
  115. "forward_path": {
  116. "type": "string"
  117. },
  118. "advanced_config": {
  119. "type": "string"
  120. }
  121. }
  122. }
  123. },
  124. "hsts_enabled": {
  125. "$ref": "../common.json#/properties/hsts_enabled"
  126. },
  127. "hsts_subdomains": {
  128. "$ref": "../common.json#/properties/hsts_subdomains"
  129. },
  130. "certificate": {
  131. "oneOf": [
  132. {
  133. "type": "null"
  134. },
  135. {
  136. "$ref": "./certificate-object.json"
  137. }
  138. ]
  139. },
  140. "owner": {
  141. "$ref": "./user-object.json"
  142. },
  143. "access_list": {
  144. "oneOf": [
  145. {
  146. "type": "null"
  147. },
  148. {
  149. "$ref": "./access-list-object.json"
  150. }
  151. ]
  152. }
  153. }
  154. }