streams.json 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema#",
  3. "$id": "endpoints/streams",
  4. "title": "Streams",
  5. "description": "Endpoints relating to Streams",
  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. "incoming_port": {
  19. "type": "integer",
  20. "minimum": 1,
  21. "maximum": 65535
  22. },
  23. "forwarding_host": {
  24. "anyOf": [
  25. {
  26. "$ref": "../definitions.json#/definitions/domain_name"
  27. },
  28. {
  29. "type": "string",
  30. "format": "ipv4"
  31. },
  32. {
  33. "type": "string",
  34. "format": "ipv6"
  35. }
  36. ]
  37. },
  38. "forwarding_port": {
  39. "type": "integer",
  40. "minimum": 1,
  41. "maximum": 65535
  42. },
  43. "tcp_forwarding": {
  44. "type": "boolean"
  45. },
  46. "udp_forwarding": {
  47. "type": "boolean"
  48. },
  49. "enabled": {
  50. "$ref": "../definitions.json#/definitions/enabled"
  51. },
  52. "meta": {
  53. "type": "object"
  54. }
  55. },
  56. "properties": {
  57. "id": {
  58. "$ref": "#/definitions/id"
  59. },
  60. "created_on": {
  61. "$ref": "#/definitions/created_on"
  62. },
  63. "modified_on": {
  64. "$ref": "#/definitions/modified_on"
  65. },
  66. "incoming_port": {
  67. "$ref": "#/definitions/incoming_port"
  68. },
  69. "forwarding_host": {
  70. "$ref": "#/definitions/forwarding_host"
  71. },
  72. "forwarding_port": {
  73. "$ref": "#/definitions/forwarding_port"
  74. },
  75. "tcp_forwarding": {
  76. "$ref": "#/definitions/tcp_forwarding"
  77. },
  78. "udp_forwarding": {
  79. "$ref": "#/definitions/udp_forwarding"
  80. },
  81. "enabled": {
  82. "$ref": "#/definitions/enabled"
  83. },
  84. "meta": {
  85. "$ref": "#/definitions/meta"
  86. }
  87. },
  88. "links": [
  89. {
  90. "title": "List",
  91. "description": "Returns a list of Steams",
  92. "href": "/nginx/streams",
  93. "access": "private",
  94. "method": "GET",
  95. "rel": "self",
  96. "http_header": {
  97. "$ref": "../examples.json#/definitions/auth_header"
  98. },
  99. "targetSchema": {
  100. "type": "array",
  101. "items": {
  102. "$ref": "#/properties"
  103. }
  104. }
  105. },
  106. {
  107. "title": "Create",
  108. "description": "Creates a new Stream",
  109. "href": "/nginx/streams",
  110. "access": "private",
  111. "method": "POST",
  112. "rel": "create",
  113. "http_header": {
  114. "$ref": "../examples.json#/definitions/auth_header"
  115. },
  116. "schema": {
  117. "type": "object",
  118. "additionalProperties": false,
  119. "required": [
  120. "incoming_port",
  121. "forwarding_host",
  122. "forwarding_port"
  123. ],
  124. "properties": {
  125. "incoming_port": {
  126. "$ref": "#/definitions/incoming_port"
  127. },
  128. "forwarding_host": {
  129. "$ref": "#/definitions/forwarding_host"
  130. },
  131. "forwarding_port": {
  132. "$ref": "#/definitions/forwarding_port"
  133. },
  134. "tcp_forwarding": {
  135. "$ref": "#/definitions/tcp_forwarding"
  136. },
  137. "udp_forwarding": {
  138. "$ref": "#/definitions/udp_forwarding"
  139. },
  140. "meta": {
  141. "$ref": "#/definitions/meta"
  142. }
  143. }
  144. },
  145. "targetSchema": {
  146. "properties": {
  147. "$ref": "#/properties"
  148. }
  149. }
  150. },
  151. {
  152. "title": "Update",
  153. "description": "Updates a existing Stream",
  154. "href": "/nginx/streams/{definitions.identity.example}",
  155. "access": "private",
  156. "method": "PUT",
  157. "rel": "update",
  158. "http_header": {
  159. "$ref": "../examples.json#/definitions/auth_header"
  160. },
  161. "schema": {
  162. "type": "object",
  163. "additionalProperties": false,
  164. "properties": {
  165. "incoming_port": {
  166. "$ref": "#/definitions/incoming_port"
  167. },
  168. "forwarding_host": {
  169. "$ref": "#/definitions/forwarding_host"
  170. },
  171. "forwarding_port": {
  172. "$ref": "#/definitions/forwarding_port"
  173. },
  174. "tcp_forwarding": {
  175. "$ref": "#/definitions/tcp_forwarding"
  176. },
  177. "udp_forwarding": {
  178. "$ref": "#/definitions/udp_forwarding"
  179. },
  180. "meta": {
  181. "$ref": "#/definitions/meta"
  182. }
  183. }
  184. },
  185. "targetSchema": {
  186. "properties": {
  187. "$ref": "#/properties"
  188. }
  189. }
  190. },
  191. {
  192. "title": "Delete",
  193. "description": "Deletes a existing Stream",
  194. "href": "/nginx/streams/{definitions.identity.example}",
  195. "access": "private",
  196. "method": "DELETE",
  197. "rel": "delete",
  198. "http_header": {
  199. "$ref": "../examples.json#/definitions/auth_header"
  200. },
  201. "targetSchema": {
  202. "type": "boolean"
  203. }
  204. },
  205. {
  206. "title": "Enable",
  207. "description": "Enables a existing Stream",
  208. "href": "/nginx/streams/{definitions.identity.example}/enable",
  209. "access": "private",
  210. "method": "POST",
  211. "rel": "update",
  212. "http_header": {
  213. "$ref": "../examples.json#/definitions/auth_header"
  214. },
  215. "targetSchema": {
  216. "type": "boolean"
  217. }
  218. },
  219. {
  220. "title": "Disable",
  221. "description": "Disables a existing Stream",
  222. "href": "/nginx/streams/{definitions.identity.example}/disable",
  223. "access": "private",
  224. "method": "POST",
  225. "rel": "update",
  226. "http_header": {
  227. "$ref": "../examples.json#/definitions/auth_header"
  228. },
  229. "targetSchema": {
  230. "type": "boolean"
  231. }
  232. }
  233. ]
  234. }