proxy-hosts.json 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  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. "openidc_enabled": {
  68. "$ref": "../definitions.json#/definitions/openidc_enabled"
  69. },
  70. "openidc_redirect_uri": {
  71. "$ref": "../definitions.json#/definitions/openidc_redirect_uri"
  72. },
  73. "openidc_discovery": {
  74. "$ref": "../definitions.json#/definitions/openidc_discovery"
  75. },
  76. "openidc_auth_method": {
  77. "$ref": "../definitions.json#/definitions/openidc_auth_method"
  78. },
  79. "openidc_client_id": {
  80. "$ref": "../definitions.json#/definitions/openidc_client_id"
  81. },
  82. "openidc_client_secret": {
  83. "$ref": "../definitions.json#/definitions/openidc_client_secret"
  84. },
  85. "openidc_restrict_users_enabled": {
  86. "$ref": "../definitions.json#/definitions/openidc_restrict_users_enabled"
  87. },
  88. "openidc_allowed_users": {
  89. "$ref": "../definitions.json#/definitions/openidc_allowed_users"
  90. },
  91. "enabled": {
  92. "$ref": "../definitions.json#/definitions/enabled"
  93. },
  94. "meta": {
  95. "type": "object"
  96. },
  97. "locations": {
  98. "type": "array",
  99. "minItems": 0,
  100. "items": {
  101. "type": "object",
  102. "required": [
  103. "forward_scheme",
  104. "forward_host",
  105. "forward_port",
  106. "path"
  107. ],
  108. "additionalProperties": false,
  109. "properties": {
  110. "id": {
  111. "type": ["integer", "null"]
  112. },
  113. "path": {
  114. "type": "string",
  115. "minLength": 1
  116. },
  117. "forward_scheme": {
  118. "$ref": "#/definitions/forward_scheme"
  119. },
  120. "forward_host": {
  121. "$ref": "#/definitions/forward_host"
  122. },
  123. "forward_port": {
  124. "$ref": "#/definitions/forward_port"
  125. },
  126. "forward_path": {
  127. "type": "string"
  128. },
  129. "advanced_config": {
  130. "type": "string"
  131. }
  132. }
  133. }
  134. }
  135. },
  136. "properties": {
  137. "id": {
  138. "$ref": "#/definitions/id"
  139. },
  140. "created_on": {
  141. "$ref": "#/definitions/created_on"
  142. },
  143. "modified_on": {
  144. "$ref": "#/definitions/modified_on"
  145. },
  146. "domain_names": {
  147. "$ref": "#/definitions/domain_names"
  148. },
  149. "forward_scheme": {
  150. "$ref": "#/definitions/forward_scheme"
  151. },
  152. "forward_host": {
  153. "$ref": "#/definitions/forward_host"
  154. },
  155. "forward_port": {
  156. "$ref": "#/definitions/forward_port"
  157. },
  158. "certificate_id": {
  159. "$ref": "#/definitions/certificate_id"
  160. },
  161. "ssl_forced": {
  162. "$ref": "#/definitions/ssl_forced"
  163. },
  164. "hsts_enabled": {
  165. "$ref": "#/definitions/hsts_enabled"
  166. },
  167. "hsts_subdomains": {
  168. "$ref": "#/definitions/hsts_subdomains"
  169. },
  170. "http2_support": {
  171. "$ref": "#/definitions/http2_support"
  172. },
  173. "block_exploits": {
  174. "$ref": "#/definitions/block_exploits"
  175. },
  176. "caching_enabled": {
  177. "$ref": "#/definitions/caching_enabled"
  178. },
  179. "allow_websocket_upgrade": {
  180. "$ref": "#/definitions/allow_websocket_upgrade"
  181. },
  182. "access_list_id": {
  183. "$ref": "#/definitions/access_list_id"
  184. },
  185. "advanced_config": {
  186. "$ref": "#/definitions/advanced_config"
  187. },
  188. "openidc_enabled": {
  189. "$ref": "#/definitions/openidc_enabled"
  190. },
  191. "openidc_redirect_uri": {
  192. "$ref": "#/definitions/openidc_redirect_uri"
  193. },
  194. "openidc_discovery": {
  195. "$ref": "#/definitions/openidc_discovery"
  196. },
  197. "openidc_auth_method": {
  198. "$ref": "#/definitions/openidc_auth_method"
  199. },
  200. "openidc_client_id": {
  201. "$ref": "#/definitions/openidc_client_id"
  202. },
  203. "openidc_client_secret": {
  204. "$ref": "#/definitions/openidc_client_secret"
  205. },
  206. "openidc_restrict_users_enabled": {
  207. "$ref": "#/definitions/openidc_restrict_users_enabled"
  208. },
  209. "openidc_allowed_users": {
  210. "$ref": "#/definitions/openidc_allowed_users"
  211. },
  212. "enabled": {
  213. "$ref": "#/definitions/enabled"
  214. },
  215. "meta": {
  216. "$ref": "#/definitions/meta"
  217. },
  218. "locations": {
  219. "$ref": "#/definitions/locations"
  220. }
  221. },
  222. "links": [
  223. {
  224. "title": "List",
  225. "description": "Returns a list of Proxy Hosts",
  226. "href": "/nginx/proxy-hosts",
  227. "access": "private",
  228. "method": "GET",
  229. "rel": "self",
  230. "http_header": {
  231. "$ref": "../examples.json#/definitions/auth_header"
  232. },
  233. "targetSchema": {
  234. "type": "array",
  235. "items": {
  236. "$ref": "#/properties"
  237. }
  238. }
  239. },
  240. {
  241. "title": "Create",
  242. "description": "Creates a new Proxy Host",
  243. "href": "/nginx/proxy-hosts",
  244. "access": "private",
  245. "method": "POST",
  246. "rel": "create",
  247. "http_header": {
  248. "$ref": "../examples.json#/definitions/auth_header"
  249. },
  250. "schema": {
  251. "type": "object",
  252. "additionalProperties": false,
  253. "required": [
  254. "domain_names",
  255. "forward_scheme",
  256. "forward_host",
  257. "forward_port"
  258. ],
  259. "properties": {
  260. "domain_names": {
  261. "$ref": "#/definitions/domain_names"
  262. },
  263. "forward_scheme": {
  264. "$ref": "#/definitions/forward_scheme"
  265. },
  266. "forward_host": {
  267. "$ref": "#/definitions/forward_host"
  268. },
  269. "forward_port": {
  270. "$ref": "#/definitions/forward_port"
  271. },
  272. "certificate_id": {
  273. "$ref": "#/definitions/certificate_id"
  274. },
  275. "ssl_forced": {
  276. "$ref": "#/definitions/ssl_forced"
  277. },
  278. "hsts_enabled": {
  279. "$ref": "#/definitions/hsts_enabled"
  280. },
  281. "hsts_subdomains": {
  282. "$ref": "#/definitions/hsts_enabled"
  283. },
  284. "http2_support": {
  285. "$ref": "#/definitions/http2_support"
  286. },
  287. "block_exploits": {
  288. "$ref": "#/definitions/block_exploits"
  289. },
  290. "caching_enabled": {
  291. "$ref": "#/definitions/caching_enabled"
  292. },
  293. "allow_websocket_upgrade": {
  294. "$ref": "#/definitions/allow_websocket_upgrade"
  295. },
  296. "access_list_id": {
  297. "$ref": "#/definitions/access_list_id"
  298. },
  299. "advanced_config": {
  300. "$ref": "#/definitions/advanced_config"
  301. },
  302. "openidc_enabled": {
  303. "$ref": "#/definitions/openidc_enabled"
  304. },
  305. "openidc_redirect_uri": {
  306. "$ref": "#/definitions/openidc_redirect_uri"
  307. },
  308. "openidc_discovery": {
  309. "$ref": "#/definitions/openidc_discovery"
  310. },
  311. "openidc_auth_method": {
  312. "$ref": "#/definitions/openidc_auth_method"
  313. },
  314. "openidc_client_id": {
  315. "$ref": "#/definitions/openidc_client_id"
  316. },
  317. "openidc_client_secret": {
  318. "$ref": "#/definitions/openidc_client_secret"
  319. },
  320. "openidc_restrict_users_enabled": {
  321. "$ref": "#/definitions/openidc_restrict_users_enabled"
  322. },
  323. "openidc_allowed_users": {
  324. "$ref": "#/definitions/openidc_allowed_users"
  325. },
  326. "enabled": {
  327. "$ref": "#/definitions/enabled"
  328. },
  329. "meta": {
  330. "$ref": "#/definitions/meta"
  331. },
  332. "locations": {
  333. "$ref": "#/definitions/locations"
  334. }
  335. }
  336. },
  337. "targetSchema": {
  338. "properties": {
  339. "$ref": "#/properties"
  340. }
  341. }
  342. },
  343. {
  344. "title": "Update",
  345. "description": "Updates a existing Proxy Host",
  346. "href": "/nginx/proxy-hosts/{definitions.identity.example}",
  347. "access": "private",
  348. "method": "PUT",
  349. "rel": "update",
  350. "http_header": {
  351. "$ref": "../examples.json#/definitions/auth_header"
  352. },
  353. "schema": {
  354. "type": "object",
  355. "additionalProperties": false,
  356. "properties": {
  357. "domain_names": {
  358. "$ref": "#/definitions/domain_names"
  359. },
  360. "forward_scheme": {
  361. "$ref": "#/definitions/forward_scheme"
  362. },
  363. "forward_host": {
  364. "$ref": "#/definitions/forward_host"
  365. },
  366. "forward_port": {
  367. "$ref": "#/definitions/forward_port"
  368. },
  369. "certificate_id": {
  370. "$ref": "#/definitions/certificate_id"
  371. },
  372. "ssl_forced": {
  373. "$ref": "#/definitions/ssl_forced"
  374. },
  375. "hsts_enabled": {
  376. "$ref": "#/definitions/hsts_enabled"
  377. },
  378. "hsts_subdomains": {
  379. "$ref": "#/definitions/hsts_enabled"
  380. },
  381. "http2_support": {
  382. "$ref": "#/definitions/http2_support"
  383. },
  384. "block_exploits": {
  385. "$ref": "#/definitions/block_exploits"
  386. },
  387. "caching_enabled": {
  388. "$ref": "#/definitions/caching_enabled"
  389. },
  390. "allow_websocket_upgrade": {
  391. "$ref": "#/definitions/allow_websocket_upgrade"
  392. },
  393. "access_list_id": {
  394. "$ref": "#/definitions/access_list_id"
  395. },
  396. "advanced_config": {
  397. "$ref": "#/definitions/advanced_config"
  398. },
  399. "openidc_enabled": {
  400. "$ref": "#/definitions/openidc_enabled"
  401. },
  402. "openidc_redirect_uri": {
  403. "$ref": "#/definitions/openidc_redirect_uri"
  404. },
  405. "openidc_discovery": {
  406. "$ref": "#/definitions/openidc_discovery"
  407. },
  408. "openidc_auth_method": {
  409. "$ref": "#/definitions/openidc_auth_method"
  410. },
  411. "openidc_client_id": {
  412. "$ref": "#/definitions/openidc_client_id"
  413. },
  414. "openidc_client_secret": {
  415. "$ref": "#/definitions/openidc_client_secret"
  416. },
  417. "openidc_restrict_users_enabled": {
  418. "$ref": "#/definitions/openidc_restrict_users_enabled"
  419. },
  420. "openidc_allowed_users": {
  421. "$ref": "#/definitions/openidc_allowed_users"
  422. },
  423. "enabled": {
  424. "$ref": "#/definitions/enabled"
  425. },
  426. "meta": {
  427. "$ref": "#/definitions/meta"
  428. },
  429. "locations": {
  430. "$ref": "#/definitions/locations"
  431. }
  432. }
  433. },
  434. "targetSchema": {
  435. "properties": {
  436. "$ref": "#/properties"
  437. }
  438. }
  439. },
  440. {
  441. "title": "Delete",
  442. "description": "Deletes a existing Proxy Host",
  443. "href": "/nginx/proxy-hosts/{definitions.identity.example}",
  444. "access": "private",
  445. "method": "DELETE",
  446. "rel": "delete",
  447. "http_header": {
  448. "$ref": "../examples.json#/definitions/auth_header"
  449. },
  450. "targetSchema": {
  451. "type": "boolean"
  452. }
  453. },
  454. {
  455. "title": "Enable",
  456. "description": "Enables a existing Proxy Host",
  457. "href": "/nginx/proxy-hosts/{definitions.identity.example}/enable",
  458. "access": "private",
  459. "method": "POST",
  460. "rel": "update",
  461. "http_header": {
  462. "$ref": "../examples.json#/definitions/auth_header"
  463. },
  464. "targetSchema": {
  465. "type": "boolean"
  466. }
  467. },
  468. {
  469. "title": "Disable",
  470. "description": "Disables a existing Proxy Host",
  471. "href": "/nginx/proxy-hosts/{definitions.identity.example}/disable",
  472. "access": "private",
  473. "method": "POST",
  474. "rel": "update",
  475. "http_header": {
  476. "$ref": "../examples.json#/definitions/auth_header"
  477. },
  478. "targetSchema": {
  479. "type": "boolean"
  480. }
  481. }
  482. ]
  483. }