proxy-hosts.json 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema#",
  3. "$id": "endpoints/proxy-hosts",
  4. "title": "Proxy Hosts",
  5. "description": "Endpoints relating to Proxy Hosts",
  6. "stability": "stable",
  7. "type": "object",
  8. "definitions": {
  9. "id": {
  10. "$ref": "../definitions.json#/definitions/id"
  11. },
  12. "created_on": {
  13. "$ref": "../definitions.json#/definitions/created_on"
  14. },
  15. "modified_on": {
  16. "$ref": "../definitions.json#/definitions/modified_on"
  17. },
  18. "domain_names": {
  19. "$ref": "../definitions.json#/definitions/domain_names"
  20. },
  21. "forward_scheme": {
  22. "type": "string",
  23. "enum": ["http", "https"]
  24. },
  25. "forward_host": {
  26. "type": "string",
  27. "minLength": 1,
  28. "maxLength": 255
  29. },
  30. "forward_port": {
  31. "type": "integer",
  32. "minimum": 1,
  33. "maximum": 65535
  34. },
  35. "certificate_id": {
  36. "$ref": "../definitions.json#/definitions/certificate_id"
  37. },
  38. "ssl_forced": {
  39. "$ref": "../definitions.json#/definitions/ssl_forced"
  40. },
  41. "hsts_enabled": {
  42. "$ref": "../definitions.json#/definitions/hsts_enabled"
  43. },
  44. "hsts_subdomains": {
  45. "$ref": "../definitions.json#/definitions/hsts_subdomains"
  46. },
  47. "http2_support": {
  48. "$ref": "../definitions.json#/definitions/http2_support"
  49. },
  50. "block_exploits": {
  51. "$ref": "../definitions.json#/definitions/block_exploits"
  52. },
  53. "caching_enabled": {
  54. "$ref": "../definitions.json#/definitions/caching_enabled"
  55. },
  56. "allow_websocket_upgrade": {
  57. "description": "Allow Websocket Upgrade for all paths",
  58. "example": true,
  59. "type": "boolean"
  60. },
  61. "access_list_id": {
  62. "$ref": "../definitions.json#/definitions/access_list_id"
  63. },
  64. "advanced_config": {
  65. "type": "string"
  66. },
  67. "enabled": {
  68. "$ref": "../definitions.json#/definitions/enabled"
  69. },
  70. "meta": {
  71. "type": "object"
  72. },
  73. "locations": {
  74. "type": "array",
  75. "minItems": 0,
  76. "items": {
  77. "type": "object",
  78. "required": [
  79. "forward_scheme",
  80. "forward_host",
  81. "forward_port",
  82. "path"
  83. ],
  84. "additionalProperties": false,
  85. "properties": {
  86. "id": {
  87. "type": ["integer", "null"]
  88. },
  89. "path": {
  90. "type": "string",
  91. "minLength": 1
  92. },
  93. "forward_scheme": {
  94. "$ref": "#/definitions/forward_scheme"
  95. },
  96. "forward_host": {
  97. "$ref": "#/definitions/forward_host"
  98. },
  99. "forward_port": {
  100. "$ref": "#/definitions/forward_port"
  101. },
  102. "forward_path": {
  103. "type": "string"
  104. },
  105. "advanced_config": {
  106. "type": "string"
  107. }
  108. }
  109. }
  110. }
  111. },
  112. "properties": {
  113. "id": {
  114. "$ref": "#/definitions/id"
  115. },
  116. "created_on": {
  117. "$ref": "#/definitions/created_on"
  118. },
  119. "modified_on": {
  120. "$ref": "#/definitions/modified_on"
  121. },
  122. "domain_names": {
  123. "$ref": "#/definitions/domain_names"
  124. },
  125. "forward_scheme": {
  126. "$ref": "#/definitions/forward_scheme"
  127. },
  128. "forward_host": {
  129. "$ref": "#/definitions/forward_host"
  130. },
  131. "forward_port": {
  132. "$ref": "#/definitions/forward_port"
  133. },
  134. "certificate_id": {
  135. "$ref": "#/definitions/certificate_id"
  136. },
  137. "ssl_forced": {
  138. "$ref": "#/definitions/ssl_forced"
  139. },
  140. "hsts_enabled": {
  141. "$ref": "#/definitions/hsts_enabled"
  142. },
  143. "hsts_subdomains": {
  144. "$ref": "#/definitions/hsts_subdomains"
  145. },
  146. "http2_support": {
  147. "$ref": "#/definitions/http2_support"
  148. },
  149. "block_exploits": {
  150. "$ref": "#/definitions/block_exploits"
  151. },
  152. "caching_enabled": {
  153. "$ref": "#/definitions/caching_enabled"
  154. },
  155. "allow_websocket_upgrade": {
  156. "$ref": "#/definitions/allow_websocket_upgrade"
  157. },
  158. "access_list_id": {
  159. "$ref": "#/definitions/access_list_id"
  160. },
  161. "advanced_config": {
  162. "$ref": "#/definitions/advanced_config"
  163. },
  164. "enabled": {
  165. "$ref": "#/definitions/enabled"
  166. },
  167. "meta": {
  168. "$ref": "#/definitions/meta"
  169. },
  170. "locations": {
  171. "$ref": "#/definitions/locations"
  172. }
  173. },
  174. "links": [
  175. {
  176. "title": "List",
  177. "description": "Returns a list of Proxy Hosts",
  178. "href": "/nginx/proxy-hosts",
  179. "access": "private",
  180. "method": "GET",
  181. "rel": "self",
  182. "http_header": {
  183. "$ref": "../examples.json#/definitions/auth_header"
  184. },
  185. "targetSchema": {
  186. "type": "array",
  187. "items": {
  188. "$ref": "#/properties"
  189. }
  190. }
  191. },
  192. {
  193. "title": "Create",
  194. "description": "Creates a new Proxy Host",
  195. "href": "/nginx/proxy-hosts",
  196. "access": "private",
  197. "method": "POST",
  198. "rel": "create",
  199. "http_header": {
  200. "$ref": "../examples.json#/definitions/auth_header"
  201. },
  202. "schema": {
  203. "type": "object",
  204. "additionalProperties": false,
  205. "required": [
  206. "domain_names",
  207. "forward_scheme",
  208. "forward_host",
  209. "forward_port"
  210. ],
  211. "properties": {
  212. "domain_names": {
  213. "$ref": "#/definitions/domain_names"
  214. },
  215. "forward_scheme": {
  216. "$ref": "#/definitions/forward_scheme"
  217. },
  218. "forward_host": {
  219. "$ref": "#/definitions/forward_host"
  220. },
  221. "forward_port": {
  222. "$ref": "#/definitions/forward_port"
  223. },
  224. "certificate_id": {
  225. "$ref": "#/definitions/certificate_id"
  226. },
  227. "ssl_forced": {
  228. "$ref": "#/definitions/ssl_forced"
  229. },
  230. "hsts_enabled": {
  231. "$ref": "#/definitions/hsts_enabled"
  232. },
  233. "hsts_subdomains": {
  234. "$ref": "#/definitions/hsts_enabled"
  235. },
  236. "http2_support": {
  237. "$ref": "#/definitions/http2_support"
  238. },
  239. "block_exploits": {
  240. "$ref": "#/definitions/block_exploits"
  241. },
  242. "caching_enabled": {
  243. "$ref": "#/definitions/caching_enabled"
  244. },
  245. "allow_websocket_upgrade": {
  246. "$ref": "#/definitions/allow_websocket_upgrade"
  247. },
  248. "access_list_id": {
  249. "$ref": "#/definitions/access_list_id"
  250. },
  251. "advanced_config": {
  252. "$ref": "#/definitions/advanced_config"
  253. },
  254. "enabled": {
  255. "$ref": "#/definitions/enabled"
  256. },
  257. "meta": {
  258. "$ref": "#/definitions/meta"
  259. },
  260. "locations": {
  261. "$ref": "#/definitions/locations"
  262. }
  263. }
  264. },
  265. "targetSchema": {
  266. "properties": {
  267. "$ref": "#/properties"
  268. }
  269. }
  270. },
  271. {
  272. "title": "Update",
  273. "description": "Updates a existing Proxy Host",
  274. "href": "/nginx/proxy-hosts/{definitions.identity.example}",
  275. "access": "private",
  276. "method": "PUT",
  277. "rel": "update",
  278. "http_header": {
  279. "$ref": "../examples.json#/definitions/auth_header"
  280. },
  281. "schema": {
  282. "type": "object",
  283. "additionalProperties": false,
  284. "properties": {
  285. "domain_names": {
  286. "$ref": "#/definitions/domain_names"
  287. },
  288. "forward_scheme": {
  289. "$ref": "#/definitions/forward_scheme"
  290. },
  291. "forward_host": {
  292. "$ref": "#/definitions/forward_host"
  293. },
  294. "forward_port": {
  295. "$ref": "#/definitions/forward_port"
  296. },
  297. "certificate_id": {
  298. "$ref": "#/definitions/certificate_id"
  299. },
  300. "ssl_forced": {
  301. "$ref": "#/definitions/ssl_forced"
  302. },
  303. "hsts_enabled": {
  304. "$ref": "#/definitions/hsts_enabled"
  305. },
  306. "hsts_subdomains": {
  307. "$ref": "#/definitions/hsts_enabled"
  308. },
  309. "http2_support": {
  310. "$ref": "#/definitions/http2_support"
  311. },
  312. "block_exploits": {
  313. "$ref": "#/definitions/block_exploits"
  314. },
  315. "caching_enabled": {
  316. "$ref": "#/definitions/caching_enabled"
  317. },
  318. "allow_websocket_upgrade": {
  319. "$ref": "#/definitions/allow_websocket_upgrade"
  320. },
  321. "access_list_id": {
  322. "$ref": "#/definitions/access_list_id"
  323. },
  324. "advanced_config": {
  325. "$ref": "#/definitions/advanced_config"
  326. },
  327. "enabled": {
  328. "$ref": "#/definitions/enabled"
  329. },
  330. "meta": {
  331. "$ref": "#/definitions/meta"
  332. },
  333. "locations": {
  334. "$ref": "#/definitions/locations"
  335. }
  336. }
  337. },
  338. "targetSchema": {
  339. "properties": {
  340. "$ref": "#/properties"
  341. }
  342. }
  343. },
  344. {
  345. "title": "Delete",
  346. "description": "Deletes a existing Proxy Host",
  347. "href": "/nginx/proxy-hosts/{definitions.identity.example}",
  348. "access": "private",
  349. "method": "DELETE",
  350. "rel": "delete",
  351. "http_header": {
  352. "$ref": "../examples.json#/definitions/auth_header"
  353. },
  354. "targetSchema": {
  355. "type": "boolean"
  356. }
  357. },
  358. {
  359. "title": "Enable",
  360. "description": "Enables a existing Proxy Host",
  361. "href": "/nginx/proxy-hosts/{definitions.identity.example}/enable",
  362. "access": "private",
  363. "method": "POST",
  364. "rel": "update",
  365. "http_header": {
  366. "$ref": "../examples.json#/definitions/auth_header"
  367. },
  368. "targetSchema": {
  369. "type": "boolean"
  370. }
  371. },
  372. {
  373. "title": "Disable",
  374. "description": "Disables a existing Proxy Host",
  375. "href": "/nginx/proxy-hosts/{definitions.identity.example}/disable",
  376. "access": "private",
  377. "method": "POST",
  378. "rel": "update",
  379. "http_header": {
  380. "$ref": "../examples.json#/definitions/auth_header"
  381. },
  382. "targetSchema": {
  383. "type": "boolean"
  384. }
  385. }
  386. ]
  387. }