streams.json 5.3 KB

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