1
0

openapi.json 41 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054
  1. {
  2. "openapi": "3.0.3",
  3. "info": {
  4. "title": "user_status",
  5. "version": "0.0.1",
  6. "description": "User status",
  7. "license": {
  8. "name": "agpl"
  9. }
  10. },
  11. "components": {
  12. "securitySchemes": {
  13. "basic_auth": {
  14. "type": "http",
  15. "scheme": "basic"
  16. },
  17. "bearer_auth": {
  18. "type": "http",
  19. "scheme": "bearer"
  20. }
  21. },
  22. "schemas": {
  23. "Capabilities": {
  24. "type": "object",
  25. "required": [
  26. "user_status"
  27. ],
  28. "properties": {
  29. "user_status": {
  30. "type": "object",
  31. "required": [
  32. "enabled",
  33. "restore",
  34. "supports_emoji"
  35. ],
  36. "properties": {
  37. "enabled": {
  38. "type": "boolean"
  39. },
  40. "restore": {
  41. "type": "boolean"
  42. },
  43. "supports_emoji": {
  44. "type": "boolean"
  45. }
  46. }
  47. }
  48. }
  49. },
  50. "ClearAt": {
  51. "type": "object",
  52. "required": [
  53. "type",
  54. "time"
  55. ],
  56. "properties": {
  57. "type": {
  58. "type": "string",
  59. "enum": [
  60. "period",
  61. "end-of"
  62. ]
  63. },
  64. "time": {
  65. "oneOf": [
  66. {
  67. "type": "integer",
  68. "format": "int64"
  69. },
  70. {
  71. "$ref": "#/components/schemas/ClearAtTimeType"
  72. }
  73. ]
  74. }
  75. }
  76. },
  77. "ClearAtTimeType": {
  78. "type": "string",
  79. "enum": [
  80. "day",
  81. "week"
  82. ]
  83. },
  84. "OCSMeta": {
  85. "type": "object",
  86. "required": [
  87. "status",
  88. "statuscode"
  89. ],
  90. "properties": {
  91. "status": {
  92. "type": "string"
  93. },
  94. "statuscode": {
  95. "type": "integer"
  96. },
  97. "message": {
  98. "type": "string"
  99. },
  100. "totalitems": {
  101. "type": "string"
  102. },
  103. "itemsperpage": {
  104. "type": "string"
  105. }
  106. }
  107. },
  108. "Predefined": {
  109. "type": "object",
  110. "required": [
  111. "id",
  112. "icon",
  113. "message",
  114. "clearAt",
  115. "visible"
  116. ],
  117. "properties": {
  118. "id": {
  119. "type": "string"
  120. },
  121. "icon": {
  122. "type": "string"
  123. },
  124. "message": {
  125. "type": "string"
  126. },
  127. "clearAt": {
  128. "$ref": "#/components/schemas/ClearAt",
  129. "nullable": true
  130. },
  131. "visible": {
  132. "type": "boolean",
  133. "nullable": true
  134. }
  135. }
  136. },
  137. "Private": {
  138. "allOf": [
  139. {
  140. "$ref": "#/components/schemas/Public"
  141. },
  142. {
  143. "type": "object",
  144. "required": [
  145. "messageId",
  146. "messageIsPredefined",
  147. "statusIsUserDefined"
  148. ],
  149. "properties": {
  150. "messageId": {
  151. "type": "string",
  152. "nullable": true
  153. },
  154. "messageIsPredefined": {
  155. "type": "boolean"
  156. },
  157. "statusIsUserDefined": {
  158. "type": "boolean"
  159. }
  160. }
  161. }
  162. ]
  163. },
  164. "Public": {
  165. "type": "object",
  166. "required": [
  167. "userId",
  168. "message",
  169. "icon",
  170. "clearAt",
  171. "status"
  172. ],
  173. "properties": {
  174. "userId": {
  175. "type": "string"
  176. },
  177. "message": {
  178. "type": "string",
  179. "nullable": true
  180. },
  181. "icon": {
  182. "type": "string",
  183. "nullable": true
  184. },
  185. "clearAt": {
  186. "type": "integer",
  187. "format": "int64",
  188. "nullable": true
  189. },
  190. "status": {
  191. "type": "string"
  192. }
  193. }
  194. }
  195. }
  196. },
  197. "paths": {
  198. "/ocs/v2.php/apps/user_status/api/v1/statuses": {
  199. "get": {
  200. "operationId": "statuses-find-all",
  201. "summary": "Find statuses of users",
  202. "tags": [
  203. "statuses"
  204. ],
  205. "security": [
  206. {
  207. "bearer_auth": []
  208. },
  209. {
  210. "basic_auth": []
  211. }
  212. ],
  213. "parameters": [
  214. {
  215. "name": "limit",
  216. "in": "query",
  217. "description": "Maximum number of statuses to find",
  218. "schema": {
  219. "type": "integer",
  220. "format": "int64",
  221. "nullable": true
  222. }
  223. },
  224. {
  225. "name": "offset",
  226. "in": "query",
  227. "description": "Offset for finding statuses",
  228. "schema": {
  229. "type": "integer",
  230. "format": "int64",
  231. "nullable": true
  232. }
  233. },
  234. {
  235. "name": "OCS-APIRequest",
  236. "in": "header",
  237. "required": true,
  238. "schema": {
  239. "type": "string",
  240. "default": "true"
  241. }
  242. }
  243. ],
  244. "responses": {
  245. "200": {
  246. "description": "",
  247. "content": {
  248. "application/json": {
  249. "schema": {
  250. "type": "object",
  251. "required": [
  252. "ocs"
  253. ],
  254. "properties": {
  255. "ocs": {
  256. "type": "object",
  257. "required": [
  258. "meta",
  259. "data"
  260. ],
  261. "properties": {
  262. "meta": {
  263. "$ref": "#/components/schemas/OCSMeta"
  264. },
  265. "data": {
  266. "type": "array",
  267. "items": {
  268. "$ref": "#/components/schemas/Public"
  269. }
  270. }
  271. }
  272. }
  273. }
  274. }
  275. }
  276. }
  277. }
  278. }
  279. }
  280. },
  281. "/ocs/v2.php/apps/user_status/api/v1/statuses/{userId}": {
  282. "get": {
  283. "operationId": "statuses-find",
  284. "summary": "Find the status of a user",
  285. "tags": [
  286. "statuses"
  287. ],
  288. "security": [
  289. {
  290. "bearer_auth": []
  291. },
  292. {
  293. "basic_auth": []
  294. }
  295. ],
  296. "parameters": [
  297. {
  298. "name": "userId",
  299. "in": "path",
  300. "description": "ID of the user",
  301. "required": true,
  302. "schema": {
  303. "type": "string"
  304. }
  305. },
  306. {
  307. "name": "OCS-APIRequest",
  308. "in": "header",
  309. "required": true,
  310. "schema": {
  311. "type": "string",
  312. "default": "true"
  313. }
  314. }
  315. ],
  316. "responses": {
  317. "200": {
  318. "description": "The status was found successfully",
  319. "content": {
  320. "application/json": {
  321. "schema": {
  322. "type": "object",
  323. "required": [
  324. "ocs"
  325. ],
  326. "properties": {
  327. "ocs": {
  328. "type": "object",
  329. "required": [
  330. "meta",
  331. "data"
  332. ],
  333. "properties": {
  334. "meta": {
  335. "$ref": "#/components/schemas/OCSMeta"
  336. },
  337. "data": {
  338. "$ref": "#/components/schemas/Public"
  339. }
  340. }
  341. }
  342. }
  343. }
  344. }
  345. }
  346. },
  347. "404": {
  348. "description": "The user was not found",
  349. "content": {
  350. "text/plain": {
  351. "schema": {
  352. "type": "string"
  353. }
  354. }
  355. }
  356. }
  357. }
  358. }
  359. },
  360. "/ocs/v2.php/apps/user_status/api/v1/user_status": {
  361. "get": {
  362. "operationId": "user_status-get-status",
  363. "summary": "Get the status of the current user",
  364. "tags": [
  365. "user_status"
  366. ],
  367. "security": [
  368. {
  369. "bearer_auth": []
  370. },
  371. {
  372. "basic_auth": []
  373. }
  374. ],
  375. "parameters": [
  376. {
  377. "name": "OCS-APIRequest",
  378. "in": "header",
  379. "required": true,
  380. "schema": {
  381. "type": "string",
  382. "default": "true"
  383. }
  384. }
  385. ],
  386. "responses": {
  387. "200": {
  388. "description": "The status was found successfully",
  389. "content": {
  390. "application/json": {
  391. "schema": {
  392. "type": "object",
  393. "required": [
  394. "ocs"
  395. ],
  396. "properties": {
  397. "ocs": {
  398. "type": "object",
  399. "required": [
  400. "meta",
  401. "data"
  402. ],
  403. "properties": {
  404. "meta": {
  405. "$ref": "#/components/schemas/OCSMeta"
  406. },
  407. "data": {
  408. "$ref": "#/components/schemas/Private"
  409. }
  410. }
  411. }
  412. }
  413. }
  414. }
  415. }
  416. },
  417. "404": {
  418. "description": "The user was not found",
  419. "content": {
  420. "text/plain": {
  421. "schema": {
  422. "type": "string"
  423. }
  424. }
  425. }
  426. }
  427. }
  428. }
  429. },
  430. "/ocs/v2.php/apps/user_status/api/v1/user_status/status": {
  431. "put": {
  432. "operationId": "user_status-set-status",
  433. "summary": "Update the status type of the current user",
  434. "tags": [
  435. "user_status"
  436. ],
  437. "security": [
  438. {
  439. "bearer_auth": []
  440. },
  441. {
  442. "basic_auth": []
  443. }
  444. ],
  445. "parameters": [
  446. {
  447. "name": "statusType",
  448. "in": "query",
  449. "description": "The new status type",
  450. "required": true,
  451. "schema": {
  452. "type": "string"
  453. }
  454. },
  455. {
  456. "name": "OCS-APIRequest",
  457. "in": "header",
  458. "required": true,
  459. "schema": {
  460. "type": "string",
  461. "default": "true"
  462. }
  463. }
  464. ],
  465. "responses": {
  466. "200": {
  467. "description": "The status was updated successfully",
  468. "content": {
  469. "application/json": {
  470. "schema": {
  471. "type": "object",
  472. "required": [
  473. "ocs"
  474. ],
  475. "properties": {
  476. "ocs": {
  477. "type": "object",
  478. "required": [
  479. "meta",
  480. "data"
  481. ],
  482. "properties": {
  483. "meta": {
  484. "$ref": "#/components/schemas/OCSMeta"
  485. },
  486. "data": {
  487. "$ref": "#/components/schemas/Private"
  488. }
  489. }
  490. }
  491. }
  492. }
  493. }
  494. }
  495. },
  496. "400": {
  497. "description": "The status type is invalid",
  498. "content": {
  499. "text/plain": {
  500. "schema": {
  501. "type": "string"
  502. }
  503. }
  504. }
  505. }
  506. }
  507. }
  508. },
  509. "/ocs/v2.php/apps/user_status/api/v1/user_status/message/predefined": {
  510. "put": {
  511. "operationId": "user_status-set-predefined-message",
  512. "summary": "Set the message to a predefined message for the current user",
  513. "tags": [
  514. "user_status"
  515. ],
  516. "security": [
  517. {
  518. "bearer_auth": []
  519. },
  520. {
  521. "basic_auth": []
  522. }
  523. ],
  524. "parameters": [
  525. {
  526. "name": "messageId",
  527. "in": "query",
  528. "description": "ID of the predefined message",
  529. "required": true,
  530. "schema": {
  531. "type": "string"
  532. }
  533. },
  534. {
  535. "name": "clearAt",
  536. "in": "query",
  537. "description": "When the message should be cleared",
  538. "schema": {
  539. "type": "integer",
  540. "format": "int64",
  541. "nullable": true
  542. }
  543. },
  544. {
  545. "name": "OCS-APIRequest",
  546. "in": "header",
  547. "required": true,
  548. "schema": {
  549. "type": "string",
  550. "default": "true"
  551. }
  552. }
  553. ],
  554. "responses": {
  555. "200": {
  556. "description": "The message was updated successfully",
  557. "content": {
  558. "application/json": {
  559. "schema": {
  560. "type": "object",
  561. "required": [
  562. "ocs"
  563. ],
  564. "properties": {
  565. "ocs": {
  566. "type": "object",
  567. "required": [
  568. "meta",
  569. "data"
  570. ],
  571. "properties": {
  572. "meta": {
  573. "$ref": "#/components/schemas/OCSMeta"
  574. },
  575. "data": {
  576. "$ref": "#/components/schemas/Private"
  577. }
  578. }
  579. }
  580. }
  581. }
  582. }
  583. }
  584. },
  585. "400": {
  586. "description": "The clearAt or message-id is invalid",
  587. "content": {
  588. "text/plain": {
  589. "schema": {
  590. "type": "string"
  591. }
  592. }
  593. }
  594. }
  595. }
  596. }
  597. },
  598. "/ocs/v2.php/apps/user_status/api/v1/user_status/message/custom": {
  599. "put": {
  600. "operationId": "user_status-set-custom-message",
  601. "summary": "Set the message to a custom message for the current user",
  602. "tags": [
  603. "user_status"
  604. ],
  605. "security": [
  606. {
  607. "bearer_auth": []
  608. },
  609. {
  610. "basic_auth": []
  611. }
  612. ],
  613. "parameters": [
  614. {
  615. "name": "statusIcon",
  616. "in": "query",
  617. "description": "Icon of the status",
  618. "schema": {
  619. "type": "string",
  620. "nullable": true
  621. }
  622. },
  623. {
  624. "name": "message",
  625. "in": "query",
  626. "description": "Message of the status",
  627. "schema": {
  628. "type": "string",
  629. "nullable": true
  630. }
  631. },
  632. {
  633. "name": "clearAt",
  634. "in": "query",
  635. "description": "When the message should be cleared",
  636. "schema": {
  637. "type": "integer",
  638. "format": "int64",
  639. "nullable": true
  640. }
  641. },
  642. {
  643. "name": "OCS-APIRequest",
  644. "in": "header",
  645. "required": true,
  646. "schema": {
  647. "type": "string",
  648. "default": "true"
  649. }
  650. }
  651. ],
  652. "responses": {
  653. "200": {
  654. "description": "The message was updated successfully",
  655. "content": {
  656. "application/json": {
  657. "schema": {
  658. "type": "object",
  659. "required": [
  660. "ocs"
  661. ],
  662. "properties": {
  663. "ocs": {
  664. "type": "object",
  665. "required": [
  666. "meta",
  667. "data"
  668. ],
  669. "properties": {
  670. "meta": {
  671. "$ref": "#/components/schemas/OCSMeta"
  672. },
  673. "data": {
  674. "$ref": "#/components/schemas/Private"
  675. }
  676. }
  677. }
  678. }
  679. }
  680. }
  681. }
  682. },
  683. "400": {
  684. "description": "The clearAt or icon is invalid or the message is too long",
  685. "content": {
  686. "text/plain": {
  687. "schema": {
  688. "type": "string"
  689. }
  690. }
  691. }
  692. }
  693. }
  694. }
  695. },
  696. "/ocs/v2.php/apps/user_status/api/v1/user_status/message": {
  697. "delete": {
  698. "operationId": "user_status-clear-message",
  699. "summary": "Clear the message of the current user",
  700. "tags": [
  701. "user_status"
  702. ],
  703. "security": [
  704. {
  705. "bearer_auth": []
  706. },
  707. {
  708. "basic_auth": []
  709. }
  710. ],
  711. "parameters": [
  712. {
  713. "name": "OCS-APIRequest",
  714. "in": "header",
  715. "required": true,
  716. "schema": {
  717. "type": "string",
  718. "default": "true"
  719. }
  720. }
  721. ],
  722. "responses": {
  723. "200": {
  724. "description": "",
  725. "content": {
  726. "application/json": {
  727. "schema": {
  728. "type": "object",
  729. "required": [
  730. "ocs"
  731. ],
  732. "properties": {
  733. "ocs": {
  734. "type": "object",
  735. "required": [
  736. "meta",
  737. "data"
  738. ],
  739. "properties": {
  740. "meta": {
  741. "$ref": "#/components/schemas/OCSMeta"
  742. },
  743. "data": {
  744. "type": "object",
  745. "additionalProperties": true
  746. }
  747. }
  748. }
  749. }
  750. }
  751. }
  752. }
  753. }
  754. }
  755. }
  756. },
  757. "/ocs/v2.php/apps/user_status/api/v1/user_status/revert/{messageId}": {
  758. "delete": {
  759. "operationId": "user_status-revert-status",
  760. "summary": "Revert the status to the previous status",
  761. "tags": [
  762. "user_status"
  763. ],
  764. "security": [
  765. {
  766. "bearer_auth": []
  767. },
  768. {
  769. "basic_auth": []
  770. }
  771. ],
  772. "parameters": [
  773. {
  774. "name": "messageId",
  775. "in": "path",
  776. "description": "ID of the message to delete",
  777. "required": true,
  778. "schema": {
  779. "type": "string"
  780. }
  781. },
  782. {
  783. "name": "OCS-APIRequest",
  784. "in": "header",
  785. "required": true,
  786. "schema": {
  787. "type": "string",
  788. "default": "true"
  789. }
  790. }
  791. ],
  792. "responses": {
  793. "200": {
  794. "description": "Status reverted",
  795. "content": {
  796. "application/json": {
  797. "schema": {
  798. "type": "object",
  799. "required": [
  800. "ocs"
  801. ],
  802. "properties": {
  803. "ocs": {
  804. "type": "object",
  805. "required": [
  806. "meta",
  807. "data"
  808. ],
  809. "properties": {
  810. "meta": {
  811. "$ref": "#/components/schemas/OCSMeta"
  812. },
  813. "data": {
  814. "$ref": "#/components/schemas/Private",
  815. "nullable": true
  816. }
  817. }
  818. }
  819. }
  820. }
  821. }
  822. }
  823. }
  824. }
  825. }
  826. },
  827. "/ocs/v2.php/apps/user_status/api/v1/predefined_statuses": {
  828. "get": {
  829. "operationId": "predefined_status-find-all",
  830. "summary": "Get all predefined messages",
  831. "tags": [
  832. "predefined_status"
  833. ],
  834. "security": [
  835. {
  836. "bearer_auth": []
  837. },
  838. {
  839. "basic_auth": []
  840. }
  841. ],
  842. "parameters": [
  843. {
  844. "name": "OCS-APIRequest",
  845. "in": "header",
  846. "required": true,
  847. "schema": {
  848. "type": "string",
  849. "default": "true"
  850. }
  851. }
  852. ],
  853. "responses": {
  854. "200": {
  855. "description": "",
  856. "content": {
  857. "application/json": {
  858. "schema": {
  859. "type": "object",
  860. "required": [
  861. "ocs"
  862. ],
  863. "properties": {
  864. "ocs": {
  865. "type": "object",
  866. "required": [
  867. "meta",
  868. "data"
  869. ],
  870. "properties": {
  871. "meta": {
  872. "$ref": "#/components/schemas/OCSMeta"
  873. },
  874. "data": {
  875. "type": "array",
  876. "items": {
  877. "$ref": "#/components/schemas/Predefined"
  878. }
  879. }
  880. }
  881. }
  882. }
  883. }
  884. }
  885. }
  886. }
  887. }
  888. }
  889. },
  890. "/ocs/v2.php/apps/user_status/api/v1/heartbeat": {
  891. "put": {
  892. "operationId": "heartbeat-heartbeat",
  893. "summary": "Keep the current status alive",
  894. "tags": [
  895. "heartbeat"
  896. ],
  897. "security": [
  898. {
  899. "bearer_auth": []
  900. },
  901. {
  902. "basic_auth": []
  903. }
  904. ],
  905. "parameters": [
  906. {
  907. "name": "status",
  908. "in": "query",
  909. "description": "Only online, away",
  910. "required": true,
  911. "schema": {
  912. "type": "string"
  913. }
  914. },
  915. {
  916. "name": "OCS-APIRequest",
  917. "in": "header",
  918. "required": true,
  919. "schema": {
  920. "type": "string",
  921. "default": "true"
  922. }
  923. }
  924. ],
  925. "responses": {
  926. "200": {
  927. "description": "Status successfully updated",
  928. "content": {
  929. "application/json": {
  930. "schema": {
  931. "type": "object",
  932. "required": [
  933. "ocs"
  934. ],
  935. "properties": {
  936. "ocs": {
  937. "type": "object",
  938. "required": [
  939. "meta",
  940. "data"
  941. ],
  942. "properties": {
  943. "meta": {
  944. "$ref": "#/components/schemas/OCSMeta"
  945. },
  946. "data": {
  947. "$ref": "#/components/schemas/Private"
  948. }
  949. }
  950. }
  951. }
  952. }
  953. }
  954. }
  955. },
  956. "400": {
  957. "description": "Invalid status to update",
  958. "content": {
  959. "application/json": {
  960. "schema": {
  961. "type": "object",
  962. "required": [
  963. "ocs"
  964. ],
  965. "properties": {
  966. "ocs": {
  967. "type": "object",
  968. "required": [
  969. "meta",
  970. "data"
  971. ],
  972. "properties": {
  973. "meta": {
  974. "$ref": "#/components/schemas/OCSMeta"
  975. },
  976. "data": {
  977. "type": "object",
  978. "additionalProperties": true
  979. }
  980. }
  981. }
  982. }
  983. }
  984. }
  985. }
  986. },
  987. "500": {
  988. "description": "",
  989. "content": {
  990. "application/json": {
  991. "schema": {
  992. "type": "object",
  993. "required": [
  994. "ocs"
  995. ],
  996. "properties": {
  997. "ocs": {
  998. "type": "object",
  999. "required": [
  1000. "meta",
  1001. "data"
  1002. ],
  1003. "properties": {
  1004. "meta": {
  1005. "$ref": "#/components/schemas/OCSMeta"
  1006. },
  1007. "data": {
  1008. "type": "object",
  1009. "additionalProperties": true
  1010. }
  1011. }
  1012. }
  1013. }
  1014. }
  1015. }
  1016. }
  1017. },
  1018. "204": {
  1019. "description": "User has no status to keep alive",
  1020. "content": {
  1021. "application/json": {
  1022. "schema": {
  1023. "type": "object",
  1024. "required": [
  1025. "ocs"
  1026. ],
  1027. "properties": {
  1028. "ocs": {
  1029. "type": "object",
  1030. "required": [
  1031. "meta",
  1032. "data"
  1033. ],
  1034. "properties": {
  1035. "meta": {
  1036. "$ref": "#/components/schemas/OCSMeta"
  1037. },
  1038. "data": {
  1039. "type": "object",
  1040. "additionalProperties": true
  1041. }
  1042. }
  1043. }
  1044. }
  1045. }
  1046. }
  1047. }
  1048. }
  1049. }
  1050. }
  1051. }
  1052. },
  1053. "tags": []
  1054. }