You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

19042 lines
832 KiB

  1. {
  2. "openapi": "3.0.3",
  3. "info": {
  4. "title": "spreed",
  5. "version": "0.0.1",
  6. "description": "Chat, video & audio-conferencing using WebRTC",
  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. "ActorTypes": {
  24. "type": "string",
  25. "enum": [
  26. "users",
  27. "groups",
  28. "guests",
  29. "emails",
  30. "circles",
  31. "bridged",
  32. "bots",
  33. "federated_users",
  34. "phones"
  35. ]
  36. },
  37. "Ban": {
  38. "type": "object",
  39. "required": [
  40. "id",
  41. "moderatorActorType",
  42. "moderatorActorId",
  43. "moderatorDisplayName",
  44. "bannedActorType",
  45. "bannedActorId",
  46. "bannedDisplayName",
  47. "bannedTime",
  48. "internalNote"
  49. ],
  50. "properties": {
  51. "id": {
  52. "type": "integer",
  53. "format": "int64"
  54. },
  55. "moderatorActorType": {
  56. "type": "string"
  57. },
  58. "moderatorActorId": {
  59. "type": "string"
  60. },
  61. "moderatorDisplayName": {
  62. "type": "string"
  63. },
  64. "bannedActorType": {
  65. "type": "string"
  66. },
  67. "bannedActorId": {
  68. "type": "string"
  69. },
  70. "bannedDisplayName": {
  71. "type": "string"
  72. },
  73. "bannedTime": {
  74. "type": "integer",
  75. "format": "int64"
  76. },
  77. "internalNote": {
  78. "type": "string"
  79. }
  80. }
  81. },
  82. "BaseMessage": {
  83. "type": "object",
  84. "required": [
  85. "actorDisplayName",
  86. "actorId",
  87. "actorType",
  88. "expirationTimestamp",
  89. "message",
  90. "messageParameters",
  91. "messageType",
  92. "systemMessage"
  93. ],
  94. "properties": {
  95. "actorDisplayName": {
  96. "type": "string"
  97. },
  98. "actorId": {
  99. "type": "string"
  100. },
  101. "actorType": {
  102. "type": "string"
  103. },
  104. "expirationTimestamp": {
  105. "type": "integer",
  106. "format": "int64"
  107. },
  108. "message": {
  109. "type": "string"
  110. },
  111. "messageParameters": {
  112. "type": "object",
  113. "additionalProperties": {
  114. "$ref": "#/components/schemas/RichObjectParameter"
  115. }
  116. },
  117. "messageType": {
  118. "type": "string"
  119. },
  120. "systemMessage": {
  121. "type": "string"
  122. }
  123. }
  124. },
  125. "Bot": {
  126. "type": "object",
  127. "required": [
  128. "description",
  129. "id",
  130. "name",
  131. "state"
  132. ],
  133. "properties": {
  134. "description": {
  135. "type": "string",
  136. "nullable": true
  137. },
  138. "id": {
  139. "type": "integer",
  140. "format": "int64"
  141. },
  142. "name": {
  143. "type": "string"
  144. },
  145. "state": {
  146. "type": "integer",
  147. "format": "int64"
  148. }
  149. }
  150. },
  151. "CallPeer": {
  152. "type": "object",
  153. "required": [
  154. "actorId",
  155. "actorType",
  156. "displayName",
  157. "lastPing",
  158. "sessionId",
  159. "token"
  160. ],
  161. "properties": {
  162. "actorId": {
  163. "type": "string"
  164. },
  165. "actorType": {
  166. "type": "string"
  167. },
  168. "displayName": {
  169. "type": "string"
  170. },
  171. "lastPing": {
  172. "type": "integer",
  173. "format": "int64"
  174. },
  175. "sessionId": {
  176. "type": "string"
  177. },
  178. "token": {
  179. "type": "string"
  180. }
  181. }
  182. },
  183. "Capabilities": {
  184. "type": "object",
  185. "required": [
  186. "features",
  187. "features-local",
  188. "config",
  189. "config-local",
  190. "version"
  191. ],
  192. "properties": {
  193. "features": {
  194. "type": "array",
  195. "items": {
  196. "type": "string"
  197. }
  198. },
  199. "features-local": {
  200. "type": "array",
  201. "items": {
  202. "type": "string"
  203. }
  204. },
  205. "config": {
  206. "type": "object",
  207. "required": [
  208. "attachments",
  209. "call",
  210. "chat",
  211. "conversations",
  212. "federation",
  213. "previews",
  214. "signaling"
  215. ],
  216. "properties": {
  217. "attachments": {
  218. "type": "object",
  219. "required": [
  220. "allowed"
  221. ],
  222. "properties": {
  223. "allowed": {
  224. "type": "boolean"
  225. },
  226. "folder": {
  227. "type": "string"
  228. }
  229. }
  230. },
  231. "call": {
  232. "type": "object",
  233. "required": [
  234. "enabled",
  235. "breakout-rooms",
  236. "recording",
  237. "recording-consent",
  238. "supported-reactions",
  239. "predefined-backgrounds",
  240. "can-upload-background",
  241. "sip-enabled",
  242. "sip-dialout-enabled",
  243. "can-enable-sip",
  244. "start-without-media",
  245. "max-duration",
  246. "blur-virtual-background",
  247. "end-to-end-encryption"
  248. ],
  249. "properties": {
  250. "enabled": {
  251. "type": "boolean"
  252. },
  253. "breakout-rooms": {
  254. "type": "boolean"
  255. },
  256. "recording": {
  257. "type": "boolean"
  258. },
  259. "recording-consent": {
  260. "type": "integer",
  261. "format": "int64"
  262. },
  263. "supported-reactions": {
  264. "type": "array",
  265. "items": {
  266. "type": "string"
  267. }
  268. },
  269. "predefined-backgrounds": {
  270. "type": "array",
  271. "items": {
  272. "type": "string"
  273. }
  274. },
  275. "can-upload-background": {
  276. "type": "boolean"
  277. },
  278. "sip-enabled": {
  279. "type": "boolean"
  280. },
  281. "sip-dialout-enabled": {
  282. "type": "boolean"
  283. },
  284. "can-enable-sip": {
  285. "type": "boolean"
  286. },
  287. "start-without-media": {
  288. "type": "boolean"
  289. },
  290. "max-duration": {
  291. "type": "integer",
  292. "format": "int64"
  293. },
  294. "blur-virtual-background": {
  295. "type": "boolean"
  296. },
  297. "end-to-end-encryption": {
  298. "type": "boolean"
  299. }
  300. }
  301. },
  302. "chat": {
  303. "type": "object",
  304. "required": [
  305. "max-length",
  306. "read-privacy",
  307. "has-translation-providers",
  308. "has-translation-task-providers",
  309. "typing-privacy",
  310. "summary-threshold"
  311. ],
  312. "properties": {
  313. "max-length": {
  314. "type": "integer",
  315. "format": "int64"
  316. },
  317. "read-privacy": {
  318. "type": "integer",
  319. "format": "int64"
  320. },
  321. "has-translation-providers": {
  322. "type": "boolean"
  323. },
  324. "has-translation-task-providers": {
  325. "type": "boolean"
  326. },
  327. "typing-privacy": {
  328. "type": "integer",
  329. "format": "int64"
  330. },
  331. "summary-threshold": {
  332. "type": "integer",
  333. "format": "int64",
  334. "minimum": 1
  335. }
  336. }
  337. },
  338. "conversations": {
  339. "type": "object",
  340. "required": [
  341. "can-create",
  342. "force-passwords",
  343. "list-style",
  344. "description-length"
  345. ],
  346. "properties": {
  347. "can-create": {
  348. "type": "boolean"
  349. },
  350. "force-passwords": {
  351. "type": "boolean"
  352. },
  353. "list-style": {
  354. "type": "string",
  355. "enum": [
  356. "two-lines",
  357. "compact"
  358. ]
  359. },
  360. "description-length": {
  361. "type": "integer",
  362. "format": "int64",
  363. "minimum": 1
  364. }
  365. }
  366. },
  367. "federation": {
  368. "type": "object",
  369. "required": [
  370. "enabled",
  371. "incoming-enabled",
  372. "outgoing-enabled",
  373. "only-trusted-servers"
  374. ],
  375. "properties": {
  376. "enabled": {
  377. "type": "boolean"
  378. },
  379. "incoming-enabled": {
  380. "type": "boolean"
  381. },
  382. "outgoing-enabled": {
  383. "type": "boolean"
  384. },
  385. "only-trusted-servers": {
  386. "type": "boolean"
  387. }
  388. }
  389. },
  390. "previews": {
  391. "type": "object",
  392. "required": [
  393. "max-gif-size"
  394. ],
  395. "properties": {
  396. "max-gif-size": {
  397. "type": "integer",
  398. "format": "int64"
  399. }
  400. }
  401. },
  402. "signaling": {
  403. "type": "object",
  404. "required": [
  405. "session-ping-limit"
  406. ],
  407. "properties": {
  408. "session-ping-limit": {
  409. "type": "integer",
  410. "format": "int64"
  411. },
  412. "hello-v2-token-key": {
  413. "type": "string"
  414. }
  415. }
  416. }
  417. }
  418. },
  419. "config-local": {
  420. "type": "object",
  421. "additionalProperties": {
  422. "type": "array",
  423. "items": {
  424. "type": "string"
  425. }
  426. }
  427. },
  428. "version": {
  429. "type": "string"
  430. }
  431. }
  432. },
  433. "ChatMentionSuggestion": {
  434. "type": "object",
  435. "required": [
  436. "id",
  437. "label",
  438. "source",
  439. "mentionId"
  440. ],
  441. "properties": {
  442. "id": {
  443. "type": "string"
  444. },
  445. "label": {
  446. "type": "string"
  447. },
  448. "source": {
  449. "type": "string"
  450. },
  451. "mentionId": {
  452. "type": "string"
  453. },
  454. "details": {
  455. "type": "string"
  456. },
  457. "status": {
  458. "type": "string"
  459. },
  460. "statusClearAt": {
  461. "type": "integer",
  462. "format": "int64",
  463. "nullable": true
  464. },
  465. "statusIcon": {
  466. "type": "string",
  467. "nullable": true
  468. },
  469. "statusMessage": {
  470. "type": "string",
  471. "nullable": true
  472. }
  473. }
  474. },
  475. "ChatMessage": {
  476. "allOf": [
  477. {
  478. "$ref": "#/components/schemas/BaseMessage"
  479. },
  480. {
  481. "type": "object",
  482. "required": [
  483. "id",
  484. "isReplyable",
  485. "markdown",
  486. "reactions",
  487. "referenceId",
  488. "timestamp",
  489. "token"
  490. ],
  491. "properties": {
  492. "deleted": {
  493. "type": "boolean",
  494. "enum": [
  495. true
  496. ]
  497. },
  498. "id": {
  499. "type": "integer",
  500. "format": "int64"
  501. },
  502. "isReplyable": {
  503. "type": "boolean"
  504. },
  505. "markdown": {
  506. "type": "boolean"
  507. },
  508. "reactions": {
  509. "type": "object",
  510. "additionalProperties": {
  511. "type": "integer",
  512. "format": "int64"
  513. }
  514. },
  515. "reactionsSelf": {
  516. "type": "array",
  517. "items": {
  518. "type": "string"
  519. }
  520. },
  521. "referenceId": {
  522. "type": "string"
  523. },
  524. "timestamp": {
  525. "type": "integer",
  526. "format": "int64"
  527. },
  528. "token": {
  529. "type": "string"
  530. },
  531. "lastEditActorDisplayName": {
  532. "type": "string"
  533. },
  534. "lastEditActorId": {
  535. "type": "string"
  536. },
  537. "lastEditActorType": {
  538. "type": "string"
  539. },
  540. "lastEditTimestamp": {
  541. "type": "integer",
  542. "format": "int64"
  543. },
  544. "silent": {
  545. "type": "boolean"
  546. }
  547. }
  548. }
  549. ]
  550. },
  551. "ChatMessageWithParent": {
  552. "allOf": [
  553. {
  554. "$ref": "#/components/schemas/ChatMessage"
  555. },
  556. {
  557. "type": "object",
  558. "properties": {
  559. "parent": {
  560. "anyOf": [
  561. {
  562. "$ref": "#/components/schemas/ChatMessage"
  563. },
  564. {
  565. "$ref": "#/components/schemas/DeletedChatMessage"
  566. }
  567. ]
  568. }
  569. }
  570. }
  571. ]
  572. },
  573. "ChatProxyMessage": {
  574. "$ref": "#/components/schemas/BaseMessage"
  575. },
  576. "ChatReminder": {
  577. "type": "object",
  578. "required": [
  579. "messageId",
  580. "timestamp",
  581. "token",
  582. "userId"
  583. ],
  584. "properties": {
  585. "messageId": {
  586. "type": "integer",
  587. "format": "int64"
  588. },
  589. "timestamp": {
  590. "type": "integer",
  591. "format": "int64"
  592. },
  593. "token": {
  594. "type": "string"
  595. },
  596. "userId": {
  597. "type": "string"
  598. }
  599. }
  600. },
  601. "DeletedChatMessage": {
  602. "type": "object",
  603. "required": [
  604. "id",
  605. "deleted"
  606. ],
  607. "properties": {
  608. "id": {
  609. "type": "integer",
  610. "format": "int64"
  611. },
  612. "deleted": {
  613. "type": "boolean",
  614. "enum": [
  615. true
  616. ]
  617. }
  618. }
  619. },
  620. "Matterbridge": {
  621. "type": "object",
  622. "required": [
  623. "enabled",
  624. "parts",
  625. "pid"
  626. ],
  627. "properties": {
  628. "enabled": {
  629. "type": "boolean"
  630. },
  631. "parts": {
  632. "$ref": "#/components/schemas/MatterbridgeConfigFields"
  633. },
  634. "pid": {
  635. "type": "integer",
  636. "format": "int64"
  637. }
  638. }
  639. },
  640. "MatterbridgeConfigFields": {
  641. "type": "array",
  642. "items": {
  643. "type": "object",
  644. "additionalProperties": {
  645. "type": "object"
  646. }
  647. }
  648. },
  649. "MatterbridgeProcessState": {
  650. "type": "object",
  651. "required": [
  652. "log",
  653. "running"
  654. ],
  655. "properties": {
  656. "log": {
  657. "type": "string"
  658. },
  659. "running": {
  660. "type": "boolean"
  661. }
  662. }
  663. },
  664. "MatterbridgeWithProcessState": {
  665. "allOf": [
  666. {
  667. "$ref": "#/components/schemas/Matterbridge"
  668. },
  669. {
  670. "$ref": "#/components/schemas/MatterbridgeProcessState"
  671. }
  672. ]
  673. },
  674. "OCSMeta": {
  675. "type": "object",
  676. "required": [
  677. "status",
  678. "statuscode"
  679. ],
  680. "properties": {
  681. "status": {
  682. "type": "string"
  683. },
  684. "statuscode": {
  685. "type": "integer"
  686. },
  687. "message": {
  688. "type": "string"
  689. },
  690. "totalitems": {
  691. "type": "string"
  692. },
  693. "itemsperpage": {
  694. "type": "string"
  695. }
  696. }
  697. },
  698. "Participant": {
  699. "type": "object",
  700. "required": [
  701. "actorId",
  702. "actorType",
  703. "attendeeId",
  704. "attendeePermissions",
  705. "attendeePin",
  706. "displayName",
  707. "inCall",
  708. "lastPing",
  709. "participantType",
  710. "permissions",
  711. "roomToken",
  712. "sessionIds"
  713. ],
  714. "properties": {
  715. "actorId": {
  716. "type": "string"
  717. },
  718. "invitedActorId": {
  719. "type": "string"
  720. },
  721. "actorType": {
  722. "type": "string"
  723. },
  724. "attendeeId": {
  725. "type": "integer",
  726. "format": "int64"
  727. },
  728. "attendeePermissions": {
  729. "type": "integer",
  730. "format": "int64"
  731. },
  732. "attendeePin": {
  733. "type": "string"
  734. },
  735. "displayName": {
  736. "type": "string"
  737. },
  738. "inCall": {
  739. "type": "integer",
  740. "format": "int64"
  741. },
  742. "lastPing": {
  743. "type": "integer",
  744. "format": "int64"
  745. },
  746. "participantType": {
  747. "type": "integer",
  748. "format": "int64"
  749. },
  750. "permissions": {
  751. "type": "integer",
  752. "format": "int64"
  753. },
  754. "roomToken": {
  755. "type": "string"
  756. },
  757. "sessionIds": {
  758. "type": "array",
  759. "items": {
  760. "type": "string"
  761. }
  762. },
  763. "status": {
  764. "type": "string"
  765. },
  766. "statusClearAt": {
  767. "type": "integer",
  768. "format": "int64",
  769. "nullable": true
  770. },
  771. "statusIcon": {
  772. "type": "string",
  773. "nullable": true
  774. },
  775. "statusMessage": {
  776. "type": "string",
  777. "nullable": true
  778. },
  779. "phoneNumber": {
  780. "type": "string",
  781. "nullable": true
  782. },
  783. "callId": {
  784. "type": "string",
  785. "nullable": true
  786. }
  787. }
  788. },
  789. "Poll": {
  790. "allOf": [
  791. {
  792. "$ref": "#/components/schemas/PollDraft"
  793. },
  794. {
  795. "type": "object",
  796. "properties": {
  797. "details": {
  798. "type": "array",
  799. "items": {
  800. "$ref": "#/components/schemas/PollVote"
  801. }
  802. },
  803. "numVoters": {
  804. "type": "integer",
  805. "format": "int64",
  806. "minimum": 0
  807. },
  808. "votedSelf": {
  809. "type": "array",
  810. "items": {
  811. "type": "integer",
  812. "format": "int64"
  813. }
  814. },
  815. "votes": {
  816. "type": "object",
  817. "additionalProperties": {
  818. "type": "integer",
  819. "format": "int64"
  820. }
  821. }
  822. }
  823. }
  824. ]
  825. },
  826. "PollDraft": {
  827. "type": "object",
  828. "required": [
  829. "actorDisplayName",
  830. "actorId",
  831. "actorType",
  832. "id",
  833. "maxVotes",
  834. "options",
  835. "question",
  836. "resultMode",
  837. "status"
  838. ],
  839. "properties": {
  840. "actorDisplayName": {
  841. "type": "string"
  842. },
  843. "actorId": {
  844. "type": "string",
  845. "minLength": 1
  846. },
  847. "actorType": {
  848. "$ref": "#/components/schemas/ActorTypes"
  849. },
  850. "id": {
  851. "type": "integer",
  852. "format": "int64",
  853. "minimum": 1
  854. },
  855. "maxVotes": {
  856. "type": "integer",
  857. "format": "int64",
  858. "minimum": 0
  859. },
  860. "options": {
  861. "type": "array",
  862. "items": {
  863. "type": "string"
  864. }
  865. },
  866. "question": {
  867. "type": "string",
  868. "minLength": 1
  869. },
  870. "resultMode": {
  871. "type": "integer",
  872. "format": "int64",
  873. "enum": [
  874. 0,
  875. 1
  876. ]
  877. },
  878. "status": {
  879. "type": "integer",
  880. "format": "int64",
  881. "enum": [
  882. 0,
  883. 1,
  884. 2
  885. ]
  886. }
  887. }
  888. },
  889. "PollVote": {
  890. "type": "object",
  891. "required": [
  892. "actorDisplayName",
  893. "actorId",
  894. "actorType",
  895. "optionId"
  896. ],
  897. "properties": {
  898. "actorDisplayName": {
  899. "type": "string"
  900. },
  901. "actorId": {
  902. "type": "string"
  903. },
  904. "actorType": {
  905. "type": "string"
  906. },
  907. "optionId": {
  908. "type": "integer",
  909. "format": "int64"
  910. }
  911. }
  912. },
  913. "PublicCapabilities": {
  914. "type": "object",
  915. "properties": {
  916. "spreed": {
  917. "$ref": "#/components/schemas/Capabilities"
  918. }
  919. }
  920. },
  921. "Reaction": {
  922. "type": "object",
  923. "required": [
  924. "actorDisplayName",
  925. "actorId",
  926. "actorType",
  927. "timestamp"
  928. ],
  929. "properties": {
  930. "actorDisplayName": {
  931. "type": "string"
  932. },
  933. "actorId": {
  934. "type": "string"
  935. },
  936. "actorType": {
  937. "type": "string"
  938. },
  939. "timestamp": {
  940. "type": "integer",
  941. "format": "int64"
  942. }
  943. }
  944. },
  945. "RichObjectParameter": {
  946. "type": "object",
  947. "required": [
  948. "type",
  949. "id",
  950. "name"
  951. ],
  952. "properties": {
  953. "type": {
  954. "type": "string"
  955. },
  956. "id": {
  957. "type": "string"
  958. },
  959. "name": {
  960. "type": "string"
  961. },
  962. "server": {
  963. "type": "string"
  964. },
  965. "link": {
  966. "type": "string"
  967. },
  968. "call-type": {
  969. "type": "string",
  970. "enum": [
  971. "one2one",
  972. "group",
  973. "public"
  974. ]
  975. },
  976. "icon-url": {
  977. "type": "string"
  978. },
  979. "message-id": {
  980. "type": "string"
  981. },
  982. "boardname": {
  983. "type": "string"
  984. },
  985. "stackname": {
  986. "type": "string"
  987. },
  988. "size": {
  989. "type": "string"
  990. },
  991. "path": {
  992. "type": "string"
  993. },
  994. "mimetype": {
  995. "type": "string"
  996. },
  997. "preview-available": {
  998. "type": "string",
  999. "enum": [
  1000. "yes",
  1001. "no"
  1002. ]
  1003. },
  1004. "mtime": {
  1005. "type": "string"
  1006. },
  1007. "latitude": {
  1008. "type": "string"
  1009. },
  1010. "longitude": {
  1011. "type": "string"
  1012. },
  1013. "description": {
  1014. "type": "string"
  1015. },
  1016. "thumb": {
  1017. "type": "string"
  1018. },
  1019. "website": {
  1020. "type": "string"
  1021. },
  1022. "visibility": {
  1023. "type": "string",
  1024. "enum": [
  1025. "0",
  1026. "1"
  1027. ]
  1028. },
  1029. "assignable": {
  1030. "type": "string",
  1031. "enum": [
  1032. "0",
  1033. "1"
  1034. ]
  1035. },
  1036. "conversation": {
  1037. "type": "string"
  1038. },
  1039. "etag": {
  1040. "type": "string"
  1041. },
  1042. "permissions": {
  1043. "type": "string"
  1044. },
  1045. "width": {
  1046. "type": "string"
  1047. },
  1048. "height": {
  1049. "type": "string"
  1050. },
  1051. "blurhash": {
  1052. "type": "string"
  1053. }
  1054. }
  1055. },
  1056. "Room": {
  1057. "type": "object",
  1058. "required": [
  1059. "actorId",
  1060. "actorType",
  1061. "attendeeId",
  1062. "attendeePermissions",
  1063. "attendeePin",
  1064. "avatarVersion",
  1065. "breakoutRoomMode",
  1066. "breakoutRoomStatus",
  1067. "callFlag",
  1068. "callPermissions",
  1069. "callRecording",
  1070. "callStartTime",
  1071. "canDeleteConversation",
  1072. "canEnableSIP",
  1073. "canLeaveConversation",
  1074. "canStartCall",
  1075. "defaultPermissions",
  1076. "description",
  1077. "displayName",
  1078. "hasCall",
  1079. "hasPassword",
  1080. "id",
  1081. "isCustomAvatar",
  1082. "isFavorite",
  1083. "lastActivity",
  1084. "lastCommonReadMessage",
  1085. "lastPing",
  1086. "lastReadMessage",
  1087. "listable",
  1088. "lobbyState",
  1089. "lobbyTimer",
  1090. "mentionPermissions",
  1091. "messageExpiration",
  1092. "name",
  1093. "notificationCalls",
  1094. "notificationLevel",
  1095. "objectId",
  1096. "objectType",
  1097. "participantFlags",
  1098. "participantType",
  1099. "permissions",
  1100. "readOnly",
  1101. "recordingConsent",
  1102. "sessionId",
  1103. "sipEnabled",
  1104. "token",
  1105. "type",
  1106. "unreadMention",
  1107. "unreadMentionDirect",
  1108. "unreadMessages",
  1109. "isArchived"
  1110. ],
  1111. "properties": {
  1112. "actorId": {
  1113. "type": "string"
  1114. },
  1115. "invitedActorId": {
  1116. "type": "string"
  1117. },
  1118. "actorType": {
  1119. "type": "string"
  1120. },
  1121. "attendeeId": {
  1122. "type": "integer",
  1123. "format": "int64"
  1124. },
  1125. "attendeePermissions": {
  1126. "type": "integer",
  1127. "format": "int64"
  1128. },
  1129. "attendeePin": {
  1130. "type": "string",
  1131. "nullable": true
  1132. },
  1133. "avatarVersion": {
  1134. "type": "string"
  1135. },
  1136. "breakoutRoomMode": {
  1137. "type": "integer",
  1138. "format": "int64"
  1139. },
  1140. "breakoutRoomStatus": {
  1141. "type": "integer",
  1142. "format": "int64"
  1143. },
  1144. "callFlag": {
  1145. "type": "integer",
  1146. "format": "int64"
  1147. },
  1148. "callPermissions": {
  1149. "type": "integer",
  1150. "format": "int64"
  1151. },
  1152. "callRecording": {
  1153. "type": "integer",
  1154. "format": "int64"
  1155. },
  1156. "callStartTime": {
  1157. "type": "integer",
  1158. "format": "int64"
  1159. },
  1160. "canDeleteConversation": {
  1161. "type": "boolean"
  1162. },
  1163. "canEnableSIP": {
  1164. "type": "boolean"
  1165. },
  1166. "canLeaveConversation": {
  1167. "type": "boolean"
  1168. },
  1169. "canStartCall": {
  1170. "type": "boolean"
  1171. },
  1172. "defaultPermissions": {
  1173. "type": "integer",
  1174. "format": "int64"
  1175. },
  1176. "description": {
  1177. "type": "string"
  1178. },
  1179. "displayName": {
  1180. "type": "string"
  1181. },
  1182. "hasCall": {
  1183. "type": "boolean"
  1184. },
  1185. "hasPassword": {
  1186. "type": "boolean"
  1187. },
  1188. "id": {
  1189. "type": "integer",
  1190. "format": "int64"
  1191. },
  1192. "isCustomAvatar": {
  1193. "type": "boolean"
  1194. },
  1195. "isFavorite": {
  1196. "type": "boolean"
  1197. },
  1198. "lastActivity": {
  1199. "type": "integer",
  1200. "format": "int64"
  1201. },
  1202. "lastCommonReadMessage": {
  1203. "type": "integer",
  1204. "format": "int64"
  1205. },
  1206. "lastMessage": {
  1207. "$ref": "#/components/schemas/RoomLastMessage"
  1208. },
  1209. "lastPing": {
  1210. "type": "integer",
  1211. "format": "int64"
  1212. },
  1213. "lastReadMessage": {
  1214. "type": "integer",
  1215. "format": "int64"
  1216. },
  1217. "listable": {
  1218. "type": "integer",
  1219. "format": "int64"
  1220. },
  1221. "lobbyState": {
  1222. "type": "integer",
  1223. "format": "int64"
  1224. },
  1225. "lobbyTimer": {
  1226. "type": "integer",
  1227. "format": "int64"
  1228. },
  1229. "mentionPermissions": {
  1230. "type": "integer",
  1231. "format": "int64"
  1232. },
  1233. "messageExpiration": {
  1234. "type": "integer",
  1235. "format": "int64"
  1236. },
  1237. "name": {
  1238. "type": "string"
  1239. },
  1240. "notificationCalls": {
  1241. "type": "integer",
  1242. "format": "int64"
  1243. },
  1244. "notificationLevel": {
  1245. "type": "integer",
  1246. "format": "int64"
  1247. },
  1248. "objectId": {
  1249. "type": "string"
  1250. },
  1251. "objectType": {
  1252. "type": "string"
  1253. },
  1254. "participantFlags": {
  1255. "type": "integer",
  1256. "format": "int64"
  1257. },
  1258. "participantType": {
  1259. "type": "integer",
  1260. "format": "int64"
  1261. },
  1262. "permissions": {
  1263. "type": "integer",
  1264. "format": "int64"
  1265. },
  1266. "readOnly": {
  1267. "type": "integer",
  1268. "format": "int64"
  1269. },
  1270. "recordingConsent": {
  1271. "type": "integer",
  1272. "format": "int64"
  1273. },
  1274. "remoteServer": {
  1275. "type": "string"
  1276. },
  1277. "remoteToken": {
  1278. "type": "string"
  1279. },
  1280. "sessionId": {
  1281. "type": "string"
  1282. },
  1283. "sipEnabled": {
  1284. "type": "integer",
  1285. "format": "int64"
  1286. },
  1287. "status": {
  1288. "type": "string"
  1289. },
  1290. "statusClearAt": {
  1291. "type": "integer",
  1292. "format": "int64",
  1293. "nullable": true
  1294. },
  1295. "statusIcon": {
  1296. "type": "string",
  1297. "nullable": true
  1298. },
  1299. "statusMessage": {
  1300. "type": "string",
  1301. "nullable": true
  1302. },
  1303. "token": {
  1304. "type": "string"
  1305. },
  1306. "type": {
  1307. "type": "integer",
  1308. "format": "int64"
  1309. },
  1310. "unreadMention": {
  1311. "type": "boolean"
  1312. },
  1313. "unreadMentionDirect": {
  1314. "type": "boolean"
  1315. },
  1316. "unreadMessages": {
  1317. "type": "integer",
  1318. "format": "int64"
  1319. },
  1320. "isArchived": {
  1321. "type": "boolean"
  1322. }
  1323. }
  1324. },
  1325. "RoomLastMessage": {
  1326. "anyOf": [
  1327. {
  1328. "$ref": "#/components/schemas/ChatMessage"
  1329. },
  1330. {
  1331. "$ref": "#/components/schemas/ChatProxyMessage"
  1332. }
  1333. ]
  1334. },
  1335. "SignalingFederationSettings": {
  1336. "type": "object",
  1337. "required": [
  1338. "server",
  1339. "nextcloudServer",
  1340. "helloAuthParams",
  1341. "roomId"
  1342. ],
  1343. "properties": {
  1344. "server": {
  1345. "type": "string"
  1346. },
  1347. "nextcloudServer": {
  1348. "type": "string"
  1349. },
  1350. "helloAuthParams": {
  1351. "type": "object",
  1352. "required": [
  1353. "token"
  1354. ],
  1355. "properties": {
  1356. "token": {
  1357. "type": "string"
  1358. }
  1359. }
  1360. },
  1361. "roomId": {
  1362. "type": "string"
  1363. }
  1364. }
  1365. },
  1366. "SignalingSession": {
  1367. "type": "object",
  1368. "required": [
  1369. "actorId",
  1370. "actorType",
  1371. "inCall",
  1372. "lastPing",
  1373. "participantPermissions",
  1374. "roomId",
  1375. "sessionId",
  1376. "userId"
  1377. ],
  1378. "properties": {
  1379. "actorId": {
  1380. "type": "string"
  1381. },
  1382. "actorType": {
  1383. "type": "string"
  1384. },
  1385. "inCall": {
  1386. "type": "integer",
  1387. "format": "int64"
  1388. },
  1389. "lastPing": {
  1390. "type": "integer",
  1391. "format": "int64"
  1392. },
  1393. "participantPermissions": {
  1394. "type": "integer",
  1395. "format": "int64"
  1396. },
  1397. "roomId": {
  1398. "type": "integer",
  1399. "format": "int64"
  1400. },
  1401. "sessionId": {
  1402. "type": "string"
  1403. },
  1404. "userId": {
  1405. "type": "string"
  1406. }
  1407. }
  1408. },
  1409. "SignalingSettings": {
  1410. "type": "object",
  1411. "required": [
  1412. "federation",
  1413. "helloAuthParams",
  1414. "hideWarning",
  1415. "server",
  1416. "signalingMode",
  1417. "sipDialinInfo",
  1418. "stunservers",
  1419. "ticket",
  1420. "turnservers",
  1421. "userId"
  1422. ],
  1423. "properties": {
  1424. "federation": {
  1425. "$ref": "#/components/schemas/SignalingFederationSettings",
  1426. "nullable": true
  1427. },
  1428. "helloAuthParams": {
  1429. "type": "object",
  1430. "required": [
  1431. "1.0",
  1432. "2.0"
  1433. ],
  1434. "properties": {
  1435. "1.0": {
  1436. "type": "object",
  1437. "required": [
  1438. "userid",
  1439. "ticket"
  1440. ],
  1441. "properties": {
  1442. "userid": {
  1443. "type": "string",
  1444. "nullable": true
  1445. },
  1446. "ticket": {
  1447. "type": "string"
  1448. }
  1449. }
  1450. },
  1451. "2.0": {
  1452. "type": "object",
  1453. "required": [
  1454. "token"
  1455. ],
  1456. "properties": {
  1457. "token": {
  1458. "type": "string"
  1459. }
  1460. }
  1461. }
  1462. }
  1463. },
  1464. "hideWarning": {
  1465. "type": "boolean"
  1466. },
  1467. "server": {
  1468. "type": "string"
  1469. },
  1470. "signalingMode": {
  1471. "type": "string"
  1472. },
  1473. "sipDialinInfo": {
  1474. "type": "string"
  1475. },
  1476. "stunservers": {
  1477. "type": "array",
  1478. "items": {
  1479. "type": "object",
  1480. "required": [
  1481. "urls"
  1482. ],
  1483. "properties": {
  1484. "urls": {
  1485. "type": "array",
  1486. "items": {
  1487. "type": "string"
  1488. }
  1489. }
  1490. }
  1491. }
  1492. },
  1493. "ticket": {
  1494. "type": "string"
  1495. },
  1496. "turnservers": {
  1497. "type": "array",
  1498. "items": {
  1499. "type": "object",
  1500. "required": [
  1501. "urls",
  1502. "username",
  1503. "credential"
  1504. ],
  1505. "properties": {
  1506. "urls": {
  1507. "type": "array",
  1508. "items": {
  1509. "type": "string"
  1510. }
  1511. },
  1512. "username": {
  1513. "type": "string"
  1514. },
  1515. "credential": {
  1516. "type": "object"
  1517. }
  1518. }
  1519. }
  1520. },
  1521. "userId": {
  1522. "type": "string",
  1523. "nullable": true
  1524. }
  1525. }
  1526. }
  1527. }
  1528. },
  1529. "paths": {
  1530. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/avatar": {
  1531. "post": {
  1532. "operationId": "avatar-upload-avatar",
  1533. "summary": "Upload an avatar for a room",
  1534. "tags": [
  1535. "avatar"
  1536. ],
  1537. "security": [
  1538. {},
  1539. {
  1540. "bearer_auth": []
  1541. },
  1542. {
  1543. "basic_auth": []
  1544. }
  1545. ],
  1546. "parameters": [
  1547. {
  1548. "name": "apiVersion",
  1549. "in": "path",
  1550. "required": true,
  1551. "schema": {
  1552. "type": "string",
  1553. "enum": [
  1554. "v1"
  1555. ],
  1556. "default": "v1"
  1557. }
  1558. },
  1559. {
  1560. "name": "token",
  1561. "in": "path",
  1562. "required": true,
  1563. "schema": {
  1564. "type": "string",
  1565. "pattern": "^[a-z0-9]{4,30}$"
  1566. }
  1567. },
  1568. {
  1569. "name": "OCS-APIRequest",
  1570. "in": "header",
  1571. "description": "Required to be true for the API request to pass",
  1572. "required": true,
  1573. "schema": {
  1574. "type": "boolean",
  1575. "default": true
  1576. }
  1577. }
  1578. ],
  1579. "responses": {
  1580. "200": {
  1581. "description": "Avatar uploaded successfully",
  1582. "content": {
  1583. "application/json": {
  1584. "schema": {
  1585. "type": "object",
  1586. "required": [
  1587. "ocs"
  1588. ],
  1589. "properties": {
  1590. "ocs": {
  1591. "type": "object",
  1592. "required": [
  1593. "meta",
  1594. "data"
  1595. ],
  1596. "properties": {
  1597. "meta": {
  1598. "$ref": "#/components/schemas/OCSMeta"
  1599. },
  1600. "data": {
  1601. "$ref": "#/components/schemas/Room"
  1602. }
  1603. }
  1604. }
  1605. }
  1606. }
  1607. }
  1608. }
  1609. },
  1610. "400": {
  1611. "description": "Avatar invalid",
  1612. "content": {
  1613. "application/json": {
  1614. "schema": {
  1615. "type": "object",
  1616. "required": [
  1617. "ocs"
  1618. ],
  1619. "properties": {
  1620. "ocs": {
  1621. "type": "object",
  1622. "required": [
  1623. "meta",
  1624. "data"
  1625. ],
  1626. "properties": {
  1627. "meta": {
  1628. "$ref": "#/components/schemas/OCSMeta"
  1629. },
  1630. "data": {
  1631. "type": "object",
  1632. "required": [
  1633. "message"
  1634. ],
  1635. "properties": {
  1636. "message": {
  1637. "type": "string"
  1638. }
  1639. }
  1640. }
  1641. }
  1642. }
  1643. }
  1644. }
  1645. }
  1646. }
  1647. }
  1648. }
  1649. },
  1650. "get": {
  1651. "operationId": "avatar-get-avatar",
  1652. "summary": "Get the avatar of a room",
  1653. "tags": [
  1654. "avatar"
  1655. ],
  1656. "security": [
  1657. {},
  1658. {
  1659. "bearer_auth": []
  1660. },
  1661. {
  1662. "basic_auth": []
  1663. }
  1664. ],
  1665. "parameters": [
  1666. {
  1667. "name": "apiVersion",
  1668. "in": "path",
  1669. "required": true,
  1670. "schema": {
  1671. "type": "string",
  1672. "enum": [
  1673. "v1"
  1674. ],
  1675. "default": "v1"
  1676. }
  1677. },
  1678. {
  1679. "name": "token",
  1680. "in": "path",
  1681. "required": true,
  1682. "schema": {
  1683. "type": "string",
  1684. "pattern": "^[a-z0-9]{4,30}$"
  1685. }
  1686. },
  1687. {
  1688. "name": "darkTheme",
  1689. "in": "query",
  1690. "description": "Theme used for background",
  1691. "schema": {
  1692. "type": "integer",
  1693. "default": 0,
  1694. "enum": [
  1695. 0,
  1696. 1
  1697. ]
  1698. }
  1699. },
  1700. {
  1701. "name": "OCS-APIRequest",
  1702. "in": "header",
  1703. "description": "Required to be true for the API request to pass",
  1704. "required": true,
  1705. "schema": {
  1706. "type": "boolean",
  1707. "default": true
  1708. }
  1709. }
  1710. ],
  1711. "responses": {
  1712. "200": {
  1713. "description": "Room avatar returned",
  1714. "content": {
  1715. "*/*": {
  1716. "schema": {
  1717. "type": "string",
  1718. "format": "binary"
  1719. }
  1720. }
  1721. }
  1722. }
  1723. }
  1724. },
  1725. "delete": {
  1726. "operationId": "avatar-delete-avatar",
  1727. "summary": "Delete the avatar of a room",
  1728. "tags": [
  1729. "avatar"
  1730. ],
  1731. "security": [
  1732. {},
  1733. {
  1734. "bearer_auth": []
  1735. },
  1736. {
  1737. "basic_auth": []
  1738. }
  1739. ],
  1740. "parameters": [
  1741. {
  1742. "name": "apiVersion",
  1743. "in": "path",
  1744. "required": true,
  1745. "schema": {
  1746. "type": "string",
  1747. "enum": [
  1748. "v1"
  1749. ],
  1750. "default": "v1"
  1751. }
  1752. },
  1753. {
  1754. "name": "token",
  1755. "in": "path",
  1756. "required": true,
  1757. "schema": {
  1758. "type": "string",
  1759. "pattern": "^[a-z0-9]{4,30}$"
  1760. }
  1761. },
  1762. {
  1763. "name": "OCS-APIRequest",
  1764. "in": "header",
  1765. "description": "Required to be true for the API request to pass",
  1766. "required": true,
  1767. "schema": {
  1768. "type": "boolean",
  1769. "default": true
  1770. }
  1771. }
  1772. ],
  1773. "responses": {
  1774. "200": {
  1775. "description": "Avatar removed successfully",
  1776. "content": {
  1777. "application/json": {
  1778. "schema": {
  1779. "type": "object",
  1780. "required": [
  1781. "ocs"
  1782. ],
  1783. "properties": {
  1784. "ocs": {
  1785. "type": "object",
  1786. "required": [
  1787. "meta",
  1788. "data"
  1789. ],
  1790. "properties": {
  1791. "meta": {
  1792. "$ref": "#/components/schemas/OCSMeta"
  1793. },
  1794. "data": {
  1795. "$ref": "#/components/schemas/Room"
  1796. }
  1797. }
  1798. }
  1799. }
  1800. }
  1801. }
  1802. }
  1803. }
  1804. }
  1805. }
  1806. },
  1807. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/avatar/emoji": {
  1808. "post": {
  1809. "operationId": "avatar-emoji-avatar",
  1810. "summary": "Set an emoji as avatar",
  1811. "tags": [
  1812. "avatar"
  1813. ],
  1814. "security": [
  1815. {},
  1816. {
  1817. "bearer_auth": []
  1818. },
  1819. {
  1820. "basic_auth": []
  1821. }
  1822. ],
  1823. "requestBody": {
  1824. "required": true,
  1825. "content": {
  1826. "application/json": {
  1827. "schema": {
  1828. "type": "object",
  1829. "required": [
  1830. "emoji"
  1831. ],
  1832. "properties": {
  1833. "emoji": {
  1834. "type": "string",
  1835. "description": "Emoji"
  1836. },
  1837. "color": {
  1838. "type": "string",
  1839. "nullable": true,
  1840. "description": "Color of the emoji"
  1841. }
  1842. }
  1843. }
  1844. }
  1845. }
  1846. },
  1847. "parameters": [
  1848. {
  1849. "name": "apiVersion",
  1850. "in": "path",
  1851. "required": true,
  1852. "schema": {
  1853. "type": "string",
  1854. "enum": [
  1855. "v1"
  1856. ],
  1857. "default": "v1"
  1858. }
  1859. },
  1860. {
  1861. "name": "token",
  1862. "in": "path",
  1863. "required": true,
  1864. "schema": {
  1865. "type": "string",
  1866. "pattern": "^[a-z0-9]{4,30}$"
  1867. }
  1868. },
  1869. {
  1870. "name": "OCS-APIRequest",
  1871. "in": "header",
  1872. "description": "Required to be true for the API request to pass",
  1873. "required": true,
  1874. "schema": {
  1875. "type": "boolean",
  1876. "default": true
  1877. }
  1878. }
  1879. ],
  1880. "responses": {
  1881. "200": {
  1882. "description": "Avatar set successfully",
  1883. "content": {
  1884. "application/json": {
  1885. "schema": {
  1886. "type": "object",
  1887. "required": [
  1888. "ocs"
  1889. ],
  1890. "properties": {
  1891. "ocs": {
  1892. "type": "object",
  1893. "required": [
  1894. "meta",
  1895. "data"
  1896. ],
  1897. "properties": {
  1898. "meta": {
  1899. "$ref": "#/components/schemas/OCSMeta"
  1900. },
  1901. "data": {
  1902. "$ref": "#/components/schemas/Room"
  1903. }
  1904. }
  1905. }
  1906. }
  1907. }
  1908. }
  1909. }
  1910. },
  1911. "400": {
  1912. "description": "Setting emoji avatar is not possible",
  1913. "content": {
  1914. "application/json": {
  1915. "schema": {
  1916. "type": "object",
  1917. "required": [
  1918. "ocs"
  1919. ],
  1920. "properties": {
  1921. "ocs": {
  1922. "type": "object",
  1923. "required": [
  1924. "meta",
  1925. "data"
  1926. ],
  1927. "properties": {
  1928. "meta": {
  1929. "$ref": "#/components/schemas/OCSMeta"
  1930. },
  1931. "data": {
  1932. "type": "object",
  1933. "required": [
  1934. "message"
  1935. ],
  1936. "properties": {
  1937. "message": {
  1938. "type": "string"
  1939. }
  1940. }
  1941. }
  1942. }
  1943. }
  1944. }
  1945. }
  1946. }
  1947. }
  1948. }
  1949. }
  1950. }
  1951. },
  1952. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/avatar/dark": {
  1953. "get": {
  1954. "operationId": "avatar-get-avatar-dark",
  1955. "summary": "Get the dark mode avatar of a room",
  1956. "tags": [
  1957. "avatar"
  1958. ],
  1959. "security": [
  1960. {},
  1961. {
  1962. "bearer_auth": []
  1963. },
  1964. {
  1965. "basic_auth": []
  1966. }
  1967. ],
  1968. "parameters": [
  1969. {
  1970. "name": "apiVersion",
  1971. "in": "path",
  1972. "required": true,
  1973. "schema": {
  1974. "type": "string",
  1975. "enum": [
  1976. "v1"
  1977. ],
  1978. "default": "v1"
  1979. }
  1980. },
  1981. {
  1982. "name": "token",
  1983. "in": "path",
  1984. "required": true,
  1985. "schema": {
  1986. "type": "string",
  1987. "pattern": "^[a-z0-9]{4,30}$"
  1988. }
  1989. },
  1990. {
  1991. "name": "OCS-APIRequest",
  1992. "in": "header",
  1993. "description": "Required to be true for the API request to pass",
  1994. "required": true,
  1995. "schema": {
  1996. "type": "boolean",
  1997. "default": true
  1998. }
  1999. }
  2000. ],
  2001. "responses": {
  2002. "200": {
  2003. "description": "Room avatar returned",
  2004. "content": {
  2005. "*/*": {
  2006. "schema": {
  2007. "type": "string",
  2008. "format": "binary"
  2009. }
  2010. }
  2011. }
  2012. }
  2013. }
  2014. }
  2015. },
  2016. "/ocs/v2.php/apps/spreed/api/{apiVersion}/ban/{token}": {
  2017. "post": {
  2018. "operationId": "ban-ban-actor",
  2019. "summary": "Ban an actor or IP address",
  2020. "description": "Required capability: `ban-v1`",
  2021. "tags": [
  2022. "ban"
  2023. ],
  2024. "security": [
  2025. {},
  2026. {
  2027. "bearer_auth": []
  2028. },
  2029. {
  2030. "basic_auth": []
  2031. }
  2032. ],
  2033. "requestBody": {
  2034. "required": true,
  2035. "content": {
  2036. "application/json": {
  2037. "schema": {
  2038. "type": "object",
  2039. "required": [
  2040. "actorType",
  2041. "actorId"
  2042. ],
  2043. "properties": {
  2044. "actorType": {
  2045. "type": "string",
  2046. "enum": [
  2047. "users",
  2048. "guests",
  2049. "emails",
  2050. "ip"
  2051. ],
  2052. "description": "Type of actor to ban, or `ip` when banning a clients remote address"
  2053. },
  2054. "actorId": {
  2055. "type": "string",
  2056. "description": "Actor ID or the IP address or range in case of type `ip`"
  2057. },
  2058. "internalNote": {
  2059. "type": "string",
  2060. "default": "",
  2061. "description": "Optional internal note (max. 4000 characters)"
  2062. }
  2063. }
  2064. }
  2065. }
  2066. }
  2067. },
  2068. "parameters": [
  2069. {
  2070. "name": "apiVersion",
  2071. "in": "path",
  2072. "required": true,
  2073. "schema": {
  2074. "type": "string",
  2075. "enum": [
  2076. "v1"
  2077. ],
  2078. "default": "v1"
  2079. }
  2080. },
  2081. {
  2082. "name": "token",
  2083. "in": "path",
  2084. "required": true,
  2085. "schema": {
  2086. "type": "string",
  2087. "pattern": "^[a-z0-9]{4,30}$"
  2088. }
  2089. },
  2090. {
  2091. "name": "OCS-APIRequest",
  2092. "in": "header",
  2093. "description": "Required to be true for the API request to pass",
  2094. "required": true,
  2095. "schema": {
  2096. "type": "boolean",
  2097. "default": true
  2098. }
  2099. }
  2100. ],
  2101. "responses": {
  2102. "200": {
  2103. "description": "Ban successfully",
  2104. "content": {
  2105. "application/json": {
  2106. "schema": {
  2107. "type": "object",
  2108. "required": [
  2109. "ocs"
  2110. ],
  2111. "properties": {
  2112. "ocs": {
  2113. "type": "object",
  2114. "required": [
  2115. "meta",
  2116. "data"
  2117. ],
  2118. "properties": {
  2119. "meta": {
  2120. "$ref": "#/components/schemas/OCSMeta"
  2121. },
  2122. "data": {
  2123. "$ref": "#/components/schemas/Ban"
  2124. }
  2125. }
  2126. }
  2127. }
  2128. }
  2129. }
  2130. }
  2131. },
  2132. "400": {
  2133. "description": "Actor information is invalid",
  2134. "content": {
  2135. "application/json": {
  2136. "schema": {
  2137. "type": "object",
  2138. "required": [
  2139. "ocs"
  2140. ],
  2141. "properties": {
  2142. "ocs": {
  2143. "type": "object",
  2144. "required": [
  2145. "meta",
  2146. "data"
  2147. ],
  2148. "properties": {
  2149. "meta": {
  2150. "$ref": "#/components/schemas/OCSMeta"
  2151. },
  2152. "data": {
  2153. "type": "object",
  2154. "required": [
  2155. "error"
  2156. ],
  2157. "properties": {
  2158. "error": {
  2159. "type": "string",
  2160. "enum": [
  2161. "bannedActor",
  2162. "internalNote",
  2163. "moderator",
  2164. "self",
  2165. "room"
  2166. ]
  2167. }
  2168. }
  2169. }
  2170. }
  2171. }
  2172. }
  2173. }
  2174. }
  2175. }
  2176. }
  2177. }
  2178. },
  2179. "get": {
  2180. "operationId": "ban-list-bans",
  2181. "summary": "List the bans of a conversation",
  2182. "description": "Required capability: `ban-v1`",
  2183. "tags": [
  2184. "ban"
  2185. ],
  2186. "security": [
  2187. {},
  2188. {
  2189. "bearer_auth": []
  2190. },
  2191. {
  2192. "basic_auth": []
  2193. }
  2194. ],
  2195. "parameters": [
  2196. {
  2197. "name": "apiVersion",
  2198. "in": "path",
  2199. "required": true,
  2200. "schema": {
  2201. "type": "string",
  2202. "enum": [
  2203. "v1"
  2204. ],
  2205. "default": "v1"
  2206. }
  2207. },
  2208. {
  2209. "name": "token",
  2210. "in": "path",
  2211. "required": true,
  2212. "schema": {
  2213. "type": "string",
  2214. "pattern": "^[a-z0-9]{4,30}$"
  2215. }
  2216. },
  2217. {
  2218. "name": "OCS-APIRequest",
  2219. "in": "header",
  2220. "description": "Required to be true for the API request to pass",
  2221. "required": true,
  2222. "schema": {
  2223. "type": "boolean",
  2224. "default": true
  2225. }
  2226. }
  2227. ],
  2228. "responses": {
  2229. "200": {
  2230. "description": "List all bans",
  2231. "content": {
  2232. "application/json": {
  2233. "schema": {
  2234. "type": "object",
  2235. "required": [
  2236. "ocs"
  2237. ],
  2238. "properties": {
  2239. "ocs": {
  2240. "type": "object",
  2241. "required": [
  2242. "meta",
  2243. "data"
  2244. ],
  2245. "properties": {
  2246. "meta": {
  2247. "$ref": "#/components/schemas/OCSMeta"
  2248. },
  2249. "data": {
  2250. "type": "array",
  2251. "items": {
  2252. "$ref": "#/components/schemas/Ban"
  2253. }
  2254. }
  2255. }
  2256. }
  2257. }
  2258. }
  2259. }
  2260. }
  2261. }
  2262. }
  2263. }
  2264. },
  2265. "/ocs/v2.php/apps/spreed/api/{apiVersion}/ban/{token}/{banId}": {
  2266. "delete": {
  2267. "operationId": "ban-unban-actor",
  2268. "summary": "Unban an actor or IP address",
  2269. "description": "Required capability: `ban-v1`",
  2270. "tags": [
  2271. "ban"
  2272. ],
  2273. "security": [
  2274. {},
  2275. {
  2276. "bearer_auth": []
  2277. },
  2278. {
  2279. "basic_auth": []
  2280. }
  2281. ],
  2282. "parameters": [
  2283. {
  2284. "name": "apiVersion",
  2285. "in": "path",
  2286. "required": true,
  2287. "schema": {
  2288. "type": "string",
  2289. "enum": [
  2290. "v1"
  2291. ],
  2292. "default": "v1"
  2293. }
  2294. },
  2295. {
  2296. "name": "token",
  2297. "in": "path",
  2298. "required": true,
  2299. "schema": {
  2300. "type": "string",
  2301. "pattern": "^[a-z0-9]{4,30}$"
  2302. }
  2303. },
  2304. {
  2305. "name": "banId",
  2306. "in": "path",
  2307. "description": "ID of the ban to be removed",
  2308. "required": true,
  2309. "schema": {
  2310. "type": "integer",
  2311. "format": "int64"
  2312. }
  2313. },
  2314. {
  2315. "name": "OCS-APIRequest",
  2316. "in": "header",
  2317. "description": "Required to be true for the API request to pass",
  2318. "required": true,
  2319. "schema": {
  2320. "type": "boolean",
  2321. "default": true
  2322. }
  2323. }
  2324. ],
  2325. "responses": {
  2326. "200": {
  2327. "description": "Unban successfully or not found",
  2328. "content": {
  2329. "application/json": {
  2330. "schema": {
  2331. "type": "object",
  2332. "required": [
  2333. "ocs"
  2334. ],
  2335. "properties": {
  2336. "ocs": {
  2337. "type": "object",
  2338. "required": [
  2339. "meta",
  2340. "data"
  2341. ],
  2342. "properties": {
  2343. "meta": {
  2344. "$ref": "#/components/schemas/OCSMeta"
  2345. },
  2346. "data": {
  2347. "nullable": true
  2348. }
  2349. }
  2350. }
  2351. }
  2352. }
  2353. }
  2354. }
  2355. }
  2356. }
  2357. }
  2358. },
  2359. "/ocs/v2.php/apps/spreed/api/{apiVersion}/bot/{token}": {
  2360. "get": {
  2361. "operationId": "bot-list-bots",
  2362. "summary": "List bots",
  2363. "tags": [
  2364. "bot"
  2365. ],
  2366. "security": [
  2367. {
  2368. "bearer_auth": []
  2369. },
  2370. {
  2371. "basic_auth": []
  2372. }
  2373. ],
  2374. "parameters": [
  2375. {
  2376. "name": "apiVersion",
  2377. "in": "path",
  2378. "required": true,
  2379. "schema": {
  2380. "type": "string",
  2381. "enum": [
  2382. "v1"
  2383. ],
  2384. "default": "v1"
  2385. }
  2386. },
  2387. {
  2388. "name": "token",
  2389. "in": "path",
  2390. "required": true,
  2391. "schema": {
  2392. "type": "string",
  2393. "pattern": "^[a-z0-9]{4,30}$"
  2394. }
  2395. },
  2396. {
  2397. "name": "OCS-APIRequest",
  2398. "in": "header",
  2399. "description": "Required to be true for the API request to pass",
  2400. "required": true,
  2401. "schema": {
  2402. "type": "boolean",
  2403. "default": true
  2404. }
  2405. }
  2406. ],
  2407. "responses": {
  2408. "200": {
  2409. "description": "Bot list returned",
  2410. "content": {
  2411. "application/json": {
  2412. "schema": {
  2413. "type": "object",
  2414. "required": [
  2415. "ocs"
  2416. ],
  2417. "properties": {
  2418. "ocs": {
  2419. "type": "object",
  2420. "required": [
  2421. "meta",
  2422. "data"
  2423. ],
  2424. "properties": {
  2425. "meta": {
  2426. "$ref": "#/components/schemas/OCSMeta"
  2427. },
  2428. "data": {
  2429. "type": "array",
  2430. "items": {
  2431. "$ref": "#/components/schemas/Bot"
  2432. }
  2433. }
  2434. }
  2435. }
  2436. }
  2437. }
  2438. }
  2439. }
  2440. }
  2441. }
  2442. }
  2443. },
  2444. "/ocs/v2.php/apps/spreed/api/{apiVersion}/bot/{token}/{botId}": {
  2445. "post": {
  2446. "operationId": "bot-enable-bot",
  2447. "summary": "Enables a bot",
  2448. "tags": [
  2449. "bot"
  2450. ],
  2451. "security": [
  2452. {
  2453. "bearer_auth": []
  2454. },
  2455. {
  2456. "basic_auth": []
  2457. }
  2458. ],
  2459. "parameters": [
  2460. {
  2461. "name": "apiVersion",
  2462. "in": "path",
  2463. "required": true,
  2464. "schema": {
  2465. "type": "string",
  2466. "enum": [
  2467. "v1"
  2468. ],
  2469. "default": "v1"
  2470. }
  2471. },
  2472. {
  2473. "name": "token",
  2474. "in": "path",
  2475. "required": true,
  2476. "schema": {
  2477. "type": "string",
  2478. "pattern": "^[a-z0-9]{4,30}$"
  2479. }
  2480. },
  2481. {
  2482. "name": "botId",
  2483. "in": "path",
  2484. "description": "ID of the bot",
  2485. "required": true,
  2486. "schema": {
  2487. "type": "integer",
  2488. "format": "int64"
  2489. }
  2490. },
  2491. {
  2492. "name": "OCS-APIRequest",
  2493. "in": "header",
  2494. "description": "Required to be true for the API request to pass",
  2495. "required": true,
  2496. "schema": {
  2497. "type": "boolean",
  2498. "default": true
  2499. }
  2500. }
  2501. ],
  2502. "responses": {
  2503. "200": {
  2504. "description": "Bot already enabled",
  2505. "content": {
  2506. "application/json": {
  2507. "schema": {
  2508. "type": "object",
  2509. "required": [
  2510. "ocs"
  2511. ],
  2512. "properties": {
  2513. "ocs": {
  2514. "type": "object",
  2515. "required": [
  2516. "meta",
  2517. "data"
  2518. ],
  2519. "properties": {
  2520. "meta": {
  2521. "$ref": "#/components/schemas/OCSMeta"
  2522. },
  2523. "data": {
  2524. "$ref": "#/components/schemas/Bot",
  2525. "nullable": true
  2526. }
  2527. }
  2528. }
  2529. }
  2530. }
  2531. }
  2532. }
  2533. },
  2534. "201": {
  2535. "description": "Bot enabled successfully",
  2536. "content": {
  2537. "application/json": {
  2538. "schema": {
  2539. "type": "object",
  2540. "required": [
  2541. "ocs"
  2542. ],
  2543. "properties": {
  2544. "ocs": {
  2545. "type": "object",
  2546. "required": [
  2547. "meta",
  2548. "data"
  2549. ],
  2550. "properties": {
  2551. "meta": {
  2552. "$ref": "#/components/schemas/OCSMeta"
  2553. },
  2554. "data": {
  2555. "$ref": "#/components/schemas/Bot",
  2556. "nullable": true
  2557. }
  2558. }
  2559. }
  2560. }
  2561. }
  2562. }
  2563. }
  2564. },
  2565. "400": {
  2566. "description": "Enabling bot errored",
  2567. "content": {
  2568. "application/json": {
  2569. "schema": {
  2570. "type": "object",
  2571. "required": [
  2572. "ocs"
  2573. ],
  2574. "properties": {
  2575. "ocs": {
  2576. "type": "object",
  2577. "required": [
  2578. "meta",
  2579. "data"
  2580. ],
  2581. "properties": {
  2582. "meta": {
  2583. "$ref": "#/components/schemas/OCSMeta"
  2584. },
  2585. "data": {
  2586. "type": "object",
  2587. "required": [
  2588. "error"
  2589. ],
  2590. "properties": {
  2591. "error": {
  2592. "type": "string"
  2593. }
  2594. }
  2595. }
  2596. }
  2597. }
  2598. }
  2599. }
  2600. }
  2601. }
  2602. }
  2603. }
  2604. },
  2605. "delete": {
  2606. "operationId": "bot-disable-bot",
  2607. "summary": "Disables a bot",
  2608. "tags": [
  2609. "bot"
  2610. ],
  2611. "security": [
  2612. {
  2613. "bearer_auth": []
  2614. },
  2615. {
  2616. "basic_auth": []
  2617. }
  2618. ],
  2619. "parameters": [
  2620. {
  2621. "name": "apiVersion",
  2622. "in": "path",
  2623. "required": true,
  2624. "schema": {
  2625. "type": "string",
  2626. "enum": [
  2627. "v1"
  2628. ],
  2629. "default": "v1"
  2630. }
  2631. },
  2632. {
  2633. "name": "token",
  2634. "in": "path",
  2635. "required": true,
  2636. "schema": {
  2637. "type": "string",
  2638. "pattern": "^[a-z0-9]{4,30}$"
  2639. }
  2640. },
  2641. {
  2642. "name": "botId",
  2643. "in": "path",
  2644. "description": "ID of the bot",
  2645. "required": true,
  2646. "schema": {
  2647. "type": "integer",
  2648. "format": "int64"
  2649. }
  2650. },
  2651. {
  2652. "name": "OCS-APIRequest",
  2653. "in": "header",
  2654. "description": "Required to be true for the API request to pass",
  2655. "required": true,
  2656. "schema": {
  2657. "type": "boolean",
  2658. "default": true
  2659. }
  2660. }
  2661. ],
  2662. "responses": {
  2663. "200": {
  2664. "description": "Bot disabled successfully",
  2665. "content": {
  2666. "application/json": {
  2667. "schema": {
  2668. "type": "object",
  2669. "required": [
  2670. "ocs"
  2671. ],
  2672. "properties": {
  2673. "ocs": {
  2674. "type": "object",
  2675. "required": [
  2676. "meta",
  2677. "data"
  2678. ],
  2679. "properties": {
  2680. "meta": {
  2681. "$ref": "#/components/schemas/OCSMeta"
  2682. },
  2683. "data": {
  2684. "$ref": "#/components/schemas/Bot",
  2685. "nullable": true
  2686. }
  2687. }
  2688. }
  2689. }
  2690. }
  2691. }
  2692. }
  2693. },
  2694. "400": {
  2695. "description": "Disabling bot errored",
  2696. "content": {
  2697. "application/json": {
  2698. "schema": {
  2699. "type": "object",
  2700. "required": [
  2701. "ocs"
  2702. ],
  2703. "properties": {
  2704. "ocs": {
  2705. "type": "object",
  2706. "required": [
  2707. "meta",
  2708. "data"
  2709. ],
  2710. "properties": {
  2711. "meta": {
  2712. "$ref": "#/components/schemas/OCSMeta"
  2713. },
  2714. "data": {
  2715. "type": "object",
  2716. "required": [
  2717. "error"
  2718. ],
  2719. "properties": {
  2720. "error": {
  2721. "type": "string"
  2722. }
  2723. }
  2724. }
  2725. }
  2726. }
  2727. }
  2728. }
  2729. }
  2730. }
  2731. }
  2732. }
  2733. }
  2734. },
  2735. "/ocs/v2.php/apps/spreed/api/{apiVersion}/breakout-rooms/{token}": {
  2736. "post": {
  2737. "operationId": "breakout_room-configure-breakout-rooms",
  2738. "summary": "Configure the breakout rooms",
  2739. "tags": [
  2740. "breakout_room"
  2741. ],
  2742. "security": [
  2743. {
  2744. "bearer_auth": []
  2745. },
  2746. {
  2747. "basic_auth": []
  2748. }
  2749. ],
  2750. "requestBody": {
  2751. "required": true,
  2752. "content": {
  2753. "application/json": {
  2754. "schema": {
  2755. "type": "object",
  2756. "required": [
  2757. "mode",
  2758. "amount"
  2759. ],
  2760. "properties": {
  2761. "mode": {
  2762. "type": "integer",
  2763. "format": "int64",
  2764. "enum": [
  2765. 0,
  2766. 1,
  2767. 2,
  2768. 3
  2769. ],
  2770. "description": "Mode of the breakout rooms"
  2771. },
  2772. "amount": {
  2773. "type": "integer",
  2774. "format": "int64",
  2775. "description": "Number of breakout rooms - Constants {@see BreakoutRoom::MINIMUM_ROOM_AMOUNT} and {@see BreakoutRoom::MAXIMUM_ROOM_AMOUNT}",
  2776. "minimum": 1,
  2777. "maximum": 20
  2778. },
  2779. "attendeeMap": {
  2780. "type": "string",
  2781. "default": "[]",
  2782. "description": "Mapping of the attendees to breakout rooms"
  2783. }
  2784. }
  2785. }
  2786. }
  2787. }
  2788. },
  2789. "parameters": [
  2790. {
  2791. "name": "apiVersion",
  2792. "in": "path",
  2793. "required": true,
  2794. "schema": {
  2795. "type": "string",
  2796. "enum": [
  2797. "v1"
  2798. ],
  2799. "default": "v1"
  2800. }
  2801. },
  2802. {
  2803. "name": "token",
  2804. "in": "path",
  2805. "required": true,
  2806. "schema": {
  2807. "type": "string",
  2808. "pattern": "^[a-z0-9]{4,30}$"
  2809. }
  2810. },
  2811. {
  2812. "name": "OCS-APIRequest",
  2813. "in": "header",
  2814. "description": "Required to be true for the API request to pass",
  2815. "required": true,
  2816. "schema": {
  2817. "type": "boolean",
  2818. "default": true
  2819. }
  2820. }
  2821. ],
  2822. "responses": {
  2823. "200": {
  2824. "description": "Breakout rooms configured successfully",
  2825. "content": {
  2826. "application/json": {
  2827. "schema": {
  2828. "type": "object",
  2829. "required": [
  2830. "ocs"
  2831. ],
  2832. "properties": {
  2833. "ocs": {
  2834. "type": "object",
  2835. "required": [
  2836. "meta",
  2837. "data"
  2838. ],
  2839. "properties": {
  2840. "meta": {
  2841. "$ref": "#/components/schemas/OCSMeta"
  2842. },
  2843. "data": {
  2844. "type": "array",
  2845. "items": {
  2846. "$ref": "#/components/schemas/Room"
  2847. }
  2848. }
  2849. }
  2850. }
  2851. }
  2852. }
  2853. }
  2854. }
  2855. },
  2856. "400": {
  2857. "description": "Configuring breakout rooms errored",
  2858. "content": {
  2859. "application/json": {
  2860. "schema": {
  2861. "type": "object",
  2862. "required": [
  2863. "ocs"
  2864. ],
  2865. "properties": {
  2866. "ocs": {
  2867. "type": "object",
  2868. "required": [
  2869. "meta",
  2870. "data"
  2871. ],
  2872. "properties": {
  2873. "meta": {
  2874. "$ref": "#/components/schemas/OCSMeta"
  2875. },
  2876. "data": {
  2877. "type": "object",
  2878. "required": [
  2879. "error"
  2880. ],
  2881. "properties": {
  2882. "error": {
  2883. "type": "string"
  2884. }
  2885. }
  2886. }
  2887. }
  2888. }
  2889. }
  2890. }
  2891. }
  2892. }
  2893. }
  2894. }
  2895. },
  2896. "delete": {
  2897. "operationId": "breakout_room-remove-breakout-rooms",
  2898. "summary": "Remove the breakout rooms",
  2899. "tags": [
  2900. "breakout_room"
  2901. ],
  2902. "security": [
  2903. {
  2904. "bearer_auth": []
  2905. },
  2906. {
  2907. "basic_auth": []
  2908. }
  2909. ],
  2910. "parameters": [
  2911. {
  2912. "name": "apiVersion",
  2913. "in": "path",
  2914. "required": true,
  2915. "schema": {
  2916. "type": "string",
  2917. "enum": [
  2918. "v1"
  2919. ],
  2920. "default": "v1"
  2921. }
  2922. },
  2923. {
  2924. "name": "token",
  2925. "in": "path",
  2926. "required": true,
  2927. "schema": {
  2928. "type": "string",
  2929. "pattern": "^[a-z0-9]{4,30}$"
  2930. }
  2931. },
  2932. {
  2933. "name": "OCS-APIRequest",
  2934. "in": "header",
  2935. "description": "Required to be true for the API request to pass",
  2936. "required": true,
  2937. "schema": {
  2938. "type": "boolean",
  2939. "default": true
  2940. }
  2941. }
  2942. ],
  2943. "responses": {
  2944. "200": {
  2945. "description": "Breakout rooms removed successfully",
  2946. "content": {
  2947. "application/json": {
  2948. "schema": {
  2949. "type": "object",
  2950. "required": [
  2951. "ocs"
  2952. ],
  2953. "properties": {
  2954. "ocs": {
  2955. "type": "object",
  2956. "required": [
  2957. "meta",
  2958. "data"
  2959. ],
  2960. "properties": {
  2961. "meta": {
  2962. "$ref": "#/components/schemas/OCSMeta"
  2963. },
  2964. "data": {
  2965. "$ref": "#/components/schemas/Room"
  2966. }
  2967. }
  2968. }
  2969. }
  2970. }
  2971. }
  2972. }
  2973. }
  2974. }
  2975. }
  2976. },
  2977. "/ocs/v2.php/apps/spreed/api/{apiVersion}/breakout-rooms/{token}/broadcast": {
  2978. "post": {
  2979. "operationId": "breakout_room-broadcast-chat-message",
  2980. "summary": "Broadcast a chat message to all breakout rooms",
  2981. "tags": [
  2982. "breakout_room"
  2983. ],
  2984. "security": [
  2985. {
  2986. "bearer_auth": []
  2987. },
  2988. {
  2989. "basic_auth": []
  2990. }
  2991. ],
  2992. "requestBody": {
  2993. "required": true,
  2994. "content": {
  2995. "application/json": {
  2996. "schema": {
  2997. "type": "object",
  2998. "required": [
  2999. "message"
  3000. ],
  3001. "properties": {
  3002. "message": {
  3003. "type": "string",
  3004. "description": "Message to broadcast"
  3005. }
  3006. }
  3007. }
  3008. }
  3009. }
  3010. },
  3011. "parameters": [
  3012. {
  3013. "name": "apiVersion",
  3014. "in": "path",
  3015. "required": true,
  3016. "schema": {
  3017. "type": "string",
  3018. "enum": [
  3019. "v1"
  3020. ],
  3021. "default": "v1"
  3022. }
  3023. },
  3024. {
  3025. "name": "token",
  3026. "in": "path",
  3027. "required": true,
  3028. "schema": {
  3029. "type": "string",
  3030. "pattern": "^[a-z0-9]{4,30}$"
  3031. }
  3032. },
  3033. {
  3034. "name": "OCS-APIRequest",
  3035. "in": "header",
  3036. "description": "Required to be true for the API request to pass",
  3037. "required": true,
  3038. "schema": {
  3039. "type": "boolean",
  3040. "default": true
  3041. }
  3042. }
  3043. ],
  3044. "responses": {
  3045. "201": {
  3046. "description": "Chat message broadcasted successfully",
  3047. "content": {
  3048. "application/json": {
  3049. "schema": {
  3050. "type": "object",
  3051. "required": [
  3052. "ocs"
  3053. ],
  3054. "properties": {
  3055. "ocs": {
  3056. "type": "object",
  3057. "required": [
  3058. "meta",
  3059. "data"
  3060. ],
  3061. "properties": {
  3062. "meta": {
  3063. "$ref": "#/components/schemas/OCSMeta"
  3064. },
  3065. "data": {
  3066. "type": "array",
  3067. "items": {
  3068. "$ref": "#/components/schemas/Room"
  3069. }
  3070. }
  3071. }
  3072. }
  3073. }
  3074. }
  3075. }
  3076. }
  3077. },
  3078. "400": {
  3079. "description": "Broadcasting chat message is not possible",
  3080. "content": {
  3081. "application/json": {
  3082. "schema": {
  3083. "type": "object",
  3084. "required": [
  3085. "ocs"
  3086. ],
  3087. "properties": {
  3088. "ocs": {
  3089. "type": "object",
  3090. "required": [
  3091. "meta",
  3092. "data"
  3093. ],
  3094. "properties": {
  3095. "meta": {
  3096. "$ref": "#/components/schemas/OCSMeta"
  3097. },
  3098. "data": {
  3099. "type": "object",
  3100. "required": [
  3101. "error"
  3102. ],
  3103. "properties": {
  3104. "error": {
  3105. "type": "string"
  3106. }
  3107. }
  3108. }
  3109. }
  3110. }
  3111. }
  3112. }
  3113. }
  3114. }
  3115. },
  3116. "413": {
  3117. "description": "Chat message too long",
  3118. "content": {
  3119. "application/json": {
  3120. "schema": {
  3121. "type": "object",
  3122. "required": [
  3123. "ocs"
  3124. ],
  3125. "properties": {
  3126. "ocs": {
  3127. "type": "object",
  3128. "required": [
  3129. "meta",
  3130. "data"
  3131. ],
  3132. "properties": {
  3133. "meta": {
  3134. "$ref": "#/components/schemas/OCSMeta"
  3135. },
  3136. "data": {
  3137. "type": "object",
  3138. "required": [
  3139. "error"
  3140. ],
  3141. "properties": {
  3142. "error": {
  3143. "type": "string"
  3144. }
  3145. }
  3146. }
  3147. }
  3148. }
  3149. }
  3150. }
  3151. }
  3152. }
  3153. }
  3154. }
  3155. }
  3156. },
  3157. "/ocs/v2.php/apps/spreed/api/{apiVersion}/breakout-rooms/{token}/attendees": {
  3158. "post": {
  3159. "operationId": "breakout_room-apply-attendee-map",
  3160. "summary": "Apply an attendee map to the breakout rooms",
  3161. "tags": [
  3162. "breakout_room"
  3163. ],
  3164. "security": [
  3165. {
  3166. "bearer_auth": []
  3167. },
  3168. {
  3169. "basic_auth": []
  3170. }
  3171. ],
  3172. "requestBody": {
  3173. "required": true,
  3174. "content": {
  3175. "application/json": {
  3176. "schema": {
  3177. "type": "object",
  3178. "required": [
  3179. "attendeeMap"
  3180. ],
  3181. "properties": {
  3182. "attendeeMap": {
  3183. "type": "string",
  3184. "description": "JSON encoded mapping of the attendees to breakout rooms `array<int, int>`"
  3185. }
  3186. }
  3187. }
  3188. }
  3189. }
  3190. },
  3191. "parameters": [
  3192. {
  3193. "name": "apiVersion",
  3194. "in": "path",
  3195. "required": true,
  3196. "schema": {
  3197. "type": "string",
  3198. "enum": [
  3199. "v1"
  3200. ],
  3201. "default": "v1"
  3202. }
  3203. },
  3204. {
  3205. "name": "token",
  3206. "in": "path",
  3207. "required": true,
  3208. "schema": {
  3209. "type": "string",
  3210. "pattern": "^[a-z0-9]{4,30}$"
  3211. }
  3212. },
  3213. {
  3214. "name": "OCS-APIRequest",
  3215. "in": "header",
  3216. "description": "Required to be true for the API request to pass",
  3217. "required": true,
  3218. "schema": {
  3219. "type": "boolean",
  3220. "default": true
  3221. }
  3222. }
  3223. ],
  3224. "responses": {
  3225. "200": {
  3226. "description": "Attendee map applied successfully",
  3227. "content": {
  3228. "application/json": {
  3229. "schema": {
  3230. "type": "object",
  3231. "required": [
  3232. "ocs"
  3233. ],
  3234. "properties": {
  3235. "ocs": {
  3236. "type": "object",
  3237. "required": [
  3238. "meta",
  3239. "data"
  3240. ],
  3241. "properties": {
  3242. "meta": {
  3243. "$ref": "#/components/schemas/OCSMeta"
  3244. },
  3245. "data": {
  3246. "type": "array",
  3247. "items": {
  3248. "$ref": "#/components/schemas/Room"
  3249. }
  3250. }
  3251. }
  3252. }
  3253. }
  3254. }
  3255. }
  3256. }
  3257. },
  3258. "400": {
  3259. "description": "Applying attendee map is not possible",
  3260. "content": {
  3261. "application/json": {
  3262. "schema": {
  3263. "type": "object",
  3264. "required": [
  3265. "ocs"
  3266. ],
  3267. "properties": {
  3268. "ocs": {
  3269. "type": "object",
  3270. "required": [
  3271. "meta",
  3272. "data"
  3273. ],
  3274. "properties": {
  3275. "meta": {
  3276. "$ref": "#/components/schemas/OCSMeta"
  3277. },
  3278. "data": {
  3279. "type": "object",
  3280. "required": [
  3281. "error"
  3282. ],
  3283. "properties": {
  3284. "error": {
  3285. "type": "string"
  3286. }
  3287. }
  3288. }
  3289. }
  3290. }
  3291. }
  3292. }
  3293. }
  3294. }
  3295. }
  3296. }
  3297. }
  3298. },
  3299. "/ocs/v2.php/apps/spreed/api/{apiVersion}/breakout-rooms/{token}/request-assistance": {
  3300. "post": {
  3301. "operationId": "breakout_room-request-assistance",
  3302. "summary": "Request assistance",
  3303. "tags": [
  3304. "breakout_room"
  3305. ],
  3306. "security": [
  3307. {
  3308. "bearer_auth": []
  3309. },
  3310. {
  3311. "basic_auth": []
  3312. }
  3313. ],
  3314. "parameters": [
  3315. {
  3316. "name": "apiVersion",
  3317. "in": "path",
  3318. "required": true,
  3319. "schema": {
  3320. "type": "string",
  3321. "enum": [
  3322. "v1"
  3323. ],
  3324. "default": "v1"
  3325. }
  3326. },
  3327. {
  3328. "name": "token",
  3329. "in": "path",
  3330. "required": true,
  3331. "schema": {
  3332. "type": "string",
  3333. "pattern": "^[a-z0-9]{4,30}$"
  3334. }
  3335. },
  3336. {
  3337. "name": "OCS-APIRequest",
  3338. "in": "header",
  3339. "description": "Required to be true for the API request to pass",
  3340. "required": true,
  3341. "schema": {
  3342. "type": "boolean",
  3343. "default": true
  3344. }
  3345. }
  3346. ],
  3347. "responses": {
  3348. "200": {
  3349. "description": "Assistance requested successfully",
  3350. "content": {
  3351. "application/json": {
  3352. "schema": {
  3353. "type": "object",
  3354. "required": [
  3355. "ocs"
  3356. ],
  3357. "properties": {
  3358. "ocs": {
  3359. "type": "object",
  3360. "required": [
  3361. "meta",
  3362. "data"
  3363. ],
  3364. "properties": {
  3365. "meta": {
  3366. "$ref": "#/components/schemas/OCSMeta"
  3367. },
  3368. "data": {
  3369. "$ref": "#/components/schemas/Room"
  3370. }
  3371. }
  3372. }
  3373. }
  3374. }
  3375. }
  3376. }
  3377. },
  3378. "400": {
  3379. "description": "Requesting assistance is not possible",
  3380. "content": {
  3381. "application/json": {
  3382. "schema": {
  3383. "type": "object",
  3384. "required": [
  3385. "ocs"
  3386. ],
  3387. "properties": {
  3388. "ocs": {
  3389. "type": "object",
  3390. "required": [
  3391. "meta",
  3392. "data"
  3393. ],
  3394. "properties": {
  3395. "meta": {
  3396. "$ref": "#/components/schemas/OCSMeta"
  3397. },
  3398. "data": {
  3399. "type": "object",
  3400. "required": [
  3401. "error"
  3402. ],
  3403. "properties": {
  3404. "error": {
  3405. "type": "string"
  3406. }
  3407. }
  3408. }
  3409. }
  3410. }
  3411. }
  3412. }
  3413. }
  3414. }
  3415. }
  3416. }
  3417. },
  3418. "delete": {
  3419. "operationId": "breakout_room-reset-request-for-assistance",
  3420. "summary": "Reset the request for assistance",
  3421. "tags": [
  3422. "breakout_room"
  3423. ],
  3424. "security": [
  3425. {
  3426. "bearer_auth": []
  3427. },
  3428. {
  3429. "basic_auth": []
  3430. }
  3431. ],
  3432. "parameters": [
  3433. {
  3434. "name": "apiVersion",
  3435. "in": "path",
  3436. "required": true,
  3437. "schema": {
  3438. "type": "string",
  3439. "enum": [
  3440. "v1"
  3441. ],
  3442. "default": "v1"
  3443. }
  3444. },
  3445. {
  3446. "name": "token",
  3447. "in": "path",
  3448. "required": true,
  3449. "schema": {
  3450. "type": "string",
  3451. "pattern": "^[a-z0-9]{4,30}$"
  3452. }
  3453. },
  3454. {
  3455. "name": "OCS-APIRequest",
  3456. "in": "header",
  3457. "description": "Required to be true for the API request to pass",
  3458. "required": true,
  3459. "schema": {
  3460. "type": "boolean",
  3461. "default": true
  3462. }
  3463. }
  3464. ],
  3465. "responses": {
  3466. "200": {
  3467. "description": "Request for assistance reset successfully",
  3468. "content": {
  3469. "application/json": {
  3470. "schema": {
  3471. "type": "object",
  3472. "required": [
  3473. "ocs"
  3474. ],
  3475. "properties": {
  3476. "ocs": {
  3477. "type": "object",
  3478. "required": [
  3479. "meta",
  3480. "data"
  3481. ],
  3482. "properties": {
  3483. "meta": {
  3484. "$ref": "#/components/schemas/OCSMeta"
  3485. },
  3486. "data": {
  3487. "$ref": "#/components/schemas/Room"
  3488. }
  3489. }
  3490. }
  3491. }
  3492. }
  3493. }
  3494. }
  3495. },
  3496. "400": {
  3497. "description": "Resetting the request for assistance is not possible",
  3498. "content": {
  3499. "application/json": {
  3500. "schema": {
  3501. "type": "object",
  3502. "required": [
  3503. "ocs"
  3504. ],
  3505. "properties": {
  3506. "ocs": {
  3507. "type": "object",
  3508. "required": [
  3509. "meta",
  3510. "data"
  3511. ],
  3512. "properties": {
  3513. "meta": {
  3514. "$ref": "#/components/schemas/OCSMeta"
  3515. },
  3516. "data": {
  3517. "type": "object",
  3518. "required": [
  3519. "error"
  3520. ],
  3521. "properties": {
  3522. "error": {
  3523. "type": "string"
  3524. }
  3525. }
  3526. }
  3527. }
  3528. }
  3529. }
  3530. }
  3531. }
  3532. }
  3533. }
  3534. }
  3535. }
  3536. },
  3537. "/ocs/v2.php/apps/spreed/api/{apiVersion}/breakout-rooms/{token}/rooms": {
  3538. "post": {
  3539. "operationId": "breakout_room-start-breakout-rooms",
  3540. "summary": "Start the breakout rooms",
  3541. "tags": [
  3542. "breakout_room"
  3543. ],
  3544. "security": [
  3545. {
  3546. "bearer_auth": []
  3547. },
  3548. {
  3549. "basic_auth": []
  3550. }
  3551. ],
  3552. "parameters": [
  3553. {
  3554. "name": "apiVersion",
  3555. "in": "path",
  3556. "required": true,
  3557. "schema": {
  3558. "type": "string",
  3559. "enum": [
  3560. "v1"
  3561. ],
  3562. "default": "v1"
  3563. }
  3564. },
  3565. {
  3566. "name": "token",
  3567. "in": "path",
  3568. "required": true,
  3569. "schema": {
  3570. "type": "string",
  3571. "pattern": "^[a-z0-9]{4,30}$"
  3572. }
  3573. },
  3574. {
  3575. "name": "OCS-APIRequest",
  3576. "in": "header",
  3577. "description": "Required to be true for the API request to pass",
  3578. "required": true,
  3579. "schema": {
  3580. "type": "boolean",
  3581. "default": true
  3582. }
  3583. }
  3584. ],
  3585. "responses": {
  3586. "200": {
  3587. "description": "Breakout rooms started successfully",
  3588. "content": {
  3589. "application/json": {
  3590. "schema": {
  3591. "type": "object",
  3592. "required": [
  3593. "ocs"
  3594. ],
  3595. "properties": {
  3596. "ocs": {
  3597. "type": "object",
  3598. "required": [
  3599. "meta",
  3600. "data"
  3601. ],
  3602. "properties": {
  3603. "meta": {
  3604. "$ref": "#/components/schemas/OCSMeta"
  3605. },
  3606. "data": {
  3607. "type": "array",
  3608. "items": {
  3609. "$ref": "#/components/schemas/Room"
  3610. }
  3611. }
  3612. }
  3613. }
  3614. }
  3615. }
  3616. }
  3617. }
  3618. },
  3619. "400": {
  3620. "description": "Starting breakout rooms is not possible",
  3621. "content": {
  3622. "application/json": {
  3623. "schema": {
  3624. "type": "object",
  3625. "required": [
  3626. "ocs"
  3627. ],
  3628. "properties": {
  3629. "ocs": {
  3630. "type": "object",
  3631. "required": [
  3632. "meta",
  3633. "data"
  3634. ],
  3635. "properties": {
  3636. "meta": {
  3637. "$ref": "#/components/schemas/OCSMeta"
  3638. },
  3639. "data": {
  3640. "type": "object",
  3641. "required": [
  3642. "error"
  3643. ],
  3644. "properties": {
  3645. "error": {
  3646. "type": "string"
  3647. }
  3648. }
  3649. }
  3650. }
  3651. }
  3652. }
  3653. }
  3654. }
  3655. }
  3656. }
  3657. }
  3658. },
  3659. "delete": {
  3660. "operationId": "breakout_room-stop-breakout-rooms",
  3661. "summary": "Stop the breakout rooms",
  3662. "tags": [
  3663. "breakout_room"
  3664. ],
  3665. "security": [
  3666. {
  3667. "bearer_auth": []
  3668. },
  3669. {
  3670. "basic_auth": []
  3671. }
  3672. ],
  3673. "parameters": [
  3674. {
  3675. "name": "apiVersion",
  3676. "in": "path",
  3677. "required": true,
  3678. "schema": {
  3679. "type": "string",
  3680. "enum": [
  3681. "v1"
  3682. ],
  3683. "default": "v1"
  3684. }
  3685. },
  3686. {
  3687. "name": "token",
  3688. "in": "path",
  3689. "required": true,
  3690. "schema": {
  3691. "type": "string",
  3692. "pattern": "^[a-z0-9]{4,30}$"
  3693. }
  3694. },
  3695. {
  3696. "name": "OCS-APIRequest",
  3697. "in": "header",
  3698. "description": "Required to be true for the API request to pass",
  3699. "required": true,
  3700. "schema": {
  3701. "type": "boolean",
  3702. "default": true
  3703. }
  3704. }
  3705. ],
  3706. "responses": {
  3707. "200": {
  3708. "description": "Breakout rooms stopped successfully",
  3709. "content": {
  3710. "application/json": {
  3711. "schema": {
  3712. "type": "object",
  3713. "required": [
  3714. "ocs"
  3715. ],
  3716. "properties": {
  3717. "ocs": {
  3718. "type": "object",
  3719. "required": [
  3720. "meta",
  3721. "data"
  3722. ],
  3723. "properties": {
  3724. "meta": {
  3725. "$ref": "#/components/schemas/OCSMeta"
  3726. },
  3727. "data": {
  3728. "type": "array",
  3729. "items": {
  3730. "$ref": "#/components/schemas/Room"
  3731. }
  3732. }
  3733. }
  3734. }
  3735. }
  3736. }
  3737. }
  3738. }
  3739. },
  3740. "400": {
  3741. "description": "Stopping breakout rooms is not possible",
  3742. "content": {
  3743. "application/json": {
  3744. "schema": {
  3745. "type": "object",
  3746. "required": [
  3747. "ocs"
  3748. ],
  3749. "properties": {
  3750. "ocs": {
  3751. "type": "object",
  3752. "required": [
  3753. "meta",
  3754. "data"
  3755. ],
  3756. "properties": {
  3757. "meta": {
  3758. "$ref": "#/components/schemas/OCSMeta"
  3759. },
  3760. "data": {
  3761. "type": "object",
  3762. "required": [
  3763. "error"
  3764. ],
  3765. "properties": {
  3766. "error": {
  3767. "type": "string"
  3768. }
  3769. }
  3770. }
  3771. }
  3772. }
  3773. }
  3774. }
  3775. }
  3776. }
  3777. }
  3778. }
  3779. }
  3780. },
  3781. "/ocs/v2.php/apps/spreed/api/{apiVersion}/breakout-rooms/{token}/switch": {
  3782. "post": {
  3783. "operationId": "breakout_room-switch-breakout-room",
  3784. "summary": "Switch to another breakout room",
  3785. "tags": [
  3786. "breakout_room"
  3787. ],
  3788. "security": [
  3789. {
  3790. "bearer_auth": []
  3791. },
  3792. {
  3793. "basic_auth": []
  3794. }
  3795. ],
  3796. "requestBody": {
  3797. "required": true,
  3798. "content": {
  3799. "application/json": {
  3800. "schema": {
  3801. "type": "object",
  3802. "required": [
  3803. "target"
  3804. ],
  3805. "properties": {
  3806. "target": {
  3807. "type": "string",
  3808. "description": "Target breakout room"
  3809. }
  3810. }
  3811. }
  3812. }
  3813. }
  3814. },
  3815. "parameters": [
  3816. {
  3817. "name": "apiVersion",
  3818. "in": "path",
  3819. "required": true,
  3820. "schema": {
  3821. "type": "string",
  3822. "enum": [
  3823. "v1"
  3824. ],
  3825. "default": "v1"
  3826. }
  3827. },
  3828. {
  3829. "name": "token",
  3830. "in": "path",
  3831. "required": true,
  3832. "schema": {
  3833. "type": "string",
  3834. "pattern": "^[a-z0-9]{4,30}$"
  3835. }
  3836. },
  3837. {
  3838. "name": "OCS-APIRequest",
  3839. "in": "header",
  3840. "description": "Required to be true for the API request to pass",
  3841. "required": true,
  3842. "schema": {
  3843. "type": "boolean",
  3844. "default": true
  3845. }
  3846. }
  3847. ],
  3848. "responses": {
  3849. "200": {
  3850. "description": "Switched to breakout room successfully",
  3851. "content": {
  3852. "application/json": {
  3853. "schema": {
  3854. "type": "object",
  3855. "required": [
  3856. "ocs"
  3857. ],
  3858. "properties": {
  3859. "ocs": {
  3860. "type": "object",
  3861. "required": [
  3862. "meta",
  3863. "data"
  3864. ],
  3865. "properties": {
  3866. "meta": {
  3867. "$ref": "#/components/schemas/OCSMeta"
  3868. },
  3869. "data": {
  3870. "$ref": "#/components/schemas/Room"
  3871. }
  3872. }
  3873. }
  3874. }
  3875. }
  3876. }
  3877. }
  3878. },
  3879. "400": {
  3880. "description": "Switching to breakout room is not possible",
  3881. "content": {
  3882. "application/json": {
  3883. "schema": {
  3884. "type": "object",
  3885. "required": [
  3886. "ocs"
  3887. ],
  3888. "properties": {
  3889. "ocs": {
  3890. "type": "object",
  3891. "required": [
  3892. "meta",
  3893. "data"
  3894. ],
  3895. "properties": {
  3896. "meta": {
  3897. "$ref": "#/components/schemas/OCSMeta"
  3898. },
  3899. "data": {
  3900. "type": "object",
  3901. "required": [
  3902. "error"
  3903. ],
  3904. "properties": {
  3905. "error": {
  3906. "type": "string"
  3907. }
  3908. }
  3909. }
  3910. }
  3911. }
  3912. }
  3913. }
  3914. }
  3915. }
  3916. }
  3917. }
  3918. }
  3919. },
  3920. "/ocs/v2.php/apps/spreed/api/{apiVersion}/call/{token}": {
  3921. "get": {
  3922. "operationId": "call-get-peers-for-call",
  3923. "summary": "Get the peers for a call",
  3924. "tags": [
  3925. "call"
  3926. ],
  3927. "security": [
  3928. {},
  3929. {
  3930. "bearer_auth": []
  3931. },
  3932. {
  3933. "basic_auth": []
  3934. }
  3935. ],
  3936. "parameters": [
  3937. {
  3938. "name": "apiVersion",
  3939. "in": "path",
  3940. "required": true,
  3941. "schema": {
  3942. "type": "string",
  3943. "enum": [
  3944. "v4"
  3945. ],
  3946. "default": "v4"
  3947. }
  3948. },
  3949. {
  3950. "name": "token",
  3951. "in": "path",
  3952. "required": true,
  3953. "schema": {
  3954. "type": "string",
  3955. "pattern": "^[a-z0-9]{4,30}$"
  3956. }
  3957. },
  3958. {
  3959. "name": "OCS-APIRequest",
  3960. "in": "header",
  3961. "description": "Required to be true for the API request to pass",
  3962. "required": true,
  3963. "schema": {
  3964. "type": "boolean",
  3965. "default": true
  3966. }
  3967. }
  3968. ],
  3969. "responses": {
  3970. "200": {
  3971. "description": "List of peers in the call returned",
  3972. "content": {
  3973. "application/json": {
  3974. "schema": {
  3975. "type": "object",
  3976. "required": [
  3977. "ocs"
  3978. ],
  3979. "properties": {
  3980. "ocs": {
  3981. "type": "object",
  3982. "required": [
  3983. "meta",
  3984. "data"
  3985. ],
  3986. "properties": {
  3987. "meta": {
  3988. "$ref": "#/components/schemas/OCSMeta"
  3989. },
  3990. "data": {
  3991. "type": "array",
  3992. "items": {
  3993. "$ref": "#/components/schemas/CallPeer"
  3994. }
  3995. }
  3996. }
  3997. }
  3998. }
  3999. }
  4000. }
  4001. }
  4002. }
  4003. }
  4004. },
  4005. "post": {
  4006. "operationId": "call-join-call",
  4007. "summary": "Join a call",
  4008. "tags": [
  4009. "call"
  4010. ],
  4011. "security": [
  4012. {},
  4013. {
  4014. "bearer_auth": []
  4015. },
  4016. {
  4017. "basic_auth": []
  4018. }
  4019. ],
  4020. "requestBody": {
  4021. "required": false,
  4022. "content": {
  4023. "application/json": {
  4024. "schema": {
  4025. "type": "object",
  4026. "properties": {
  4027. "flags": {
  4028. "type": "integer",
  4029. "format": "int64",
  4030. "nullable": true,
  4031. "description": "In-Call flags",
  4032. "minimum": 0,
  4033. "maximum": 15
  4034. },
  4035. "silent": {
  4036. "type": "boolean",
  4037. "default": false,
  4038. "description": "Join the call silently"
  4039. },
  4040. "recordingConsent": {
  4041. "type": "boolean",
  4042. "default": false,
  4043. "description": "When the user ticked a checkbox and agreed with being recorded (Only needed when the `config => call => recording-consent` capability is set to {@see RecordingService::CONSENT_REQUIRED_YES} or the capability is {@see RecordingService::CONSENT_REQUIRED_OPTIONAL} and the conversation `recordingConsent` value is {@see RecordingService::CONSENT_REQUIRED_YES} )"
  4044. }
  4045. }
  4046. }
  4047. }
  4048. }
  4049. },
  4050. "parameters": [
  4051. {
  4052. "name": "apiVersion",
  4053. "in": "path",
  4054. "required": true,
  4055. "schema": {
  4056. "type": "string",
  4057. "enum": [
  4058. "v4"
  4059. ],
  4060. "default": "v4"
  4061. }
  4062. },
  4063. {
  4064. "name": "token",
  4065. "in": "path",
  4066. "required": true,
  4067. "schema": {
  4068. "type": "string",
  4069. "pattern": "^[a-z0-9]{4,30}$"
  4070. }
  4071. },
  4072. {
  4073. "name": "OCS-APIRequest",
  4074. "in": "header",
  4075. "description": "Required to be true for the API request to pass",
  4076. "required": true,
  4077. "schema": {
  4078. "type": "boolean",
  4079. "default": true
  4080. }
  4081. }
  4082. ],
  4083. "responses": {
  4084. "200": {
  4085. "description": "Call joined successfully",
  4086. "content": {
  4087. "application/json": {
  4088. "schema": {
  4089. "type": "object",
  4090. "required": [
  4091. "ocs"
  4092. ],
  4093. "properties": {
  4094. "ocs": {
  4095. "type": "object",
  4096. "required": [
  4097. "meta",
  4098. "data"
  4099. ],
  4100. "properties": {
  4101. "meta": {
  4102. "$ref": "#/components/schemas/OCSMeta"
  4103. },
  4104. "data": {
  4105. "nullable": true
  4106. }
  4107. }
  4108. }
  4109. }
  4110. }
  4111. }
  4112. }
  4113. },
  4114. "404": {
  4115. "description": "Call not found",
  4116. "content": {
  4117. "application/json": {
  4118. "schema": {
  4119. "type": "object",
  4120. "required": [
  4121. "ocs"
  4122. ],
  4123. "properties": {
  4124. "ocs": {
  4125. "type": "object",
  4126. "required": [
  4127. "meta",
  4128. "data"
  4129. ],
  4130. "properties": {
  4131. "meta": {
  4132. "$ref": "#/components/schemas/OCSMeta"
  4133. },
  4134. "data": {
  4135. "nullable": true
  4136. }
  4137. }
  4138. }
  4139. }
  4140. }
  4141. }
  4142. }
  4143. },
  4144. "400": {
  4145. "description": "No recording consent was given",
  4146. "content": {
  4147. "application/json": {
  4148. "schema": {
  4149. "type": "object",
  4150. "required": [
  4151. "ocs"
  4152. ],
  4153. "properties": {
  4154. "ocs": {
  4155. "type": "object",
  4156. "required": [
  4157. "meta",
  4158. "data"
  4159. ],
  4160. "properties": {
  4161. "meta": {
  4162. "$ref": "#/components/schemas/OCSMeta"
  4163. },
  4164. "data": {
  4165. "type": "object",
  4166. "required": [
  4167. "error"
  4168. ],
  4169. "properties": {
  4170. "error": {
  4171. "type": "string"
  4172. }
  4173. }
  4174. }
  4175. }
  4176. }
  4177. }
  4178. }
  4179. }
  4180. }
  4181. }
  4182. }
  4183. },
  4184. "put": {
  4185. "operationId": "call-update-call-flags",
  4186. "summary": "Update the in-call flags",
  4187. "tags": [
  4188. "call"
  4189. ],
  4190. "security": [
  4191. {},
  4192. {
  4193. "bearer_auth": []
  4194. },
  4195. {
  4196. "basic_auth": []
  4197. }
  4198. ],
  4199. "requestBody": {
  4200. "required": true,
  4201. "content": {
  4202. "application/json": {
  4203. "schema": {
  4204. "type": "object",
  4205. "required": [
  4206. "flags"
  4207. ],
  4208. "properties": {
  4209. "flags": {
  4210. "type": "integer",
  4211. "format": "int64",
  4212. "description": "New flags",
  4213. "minimum": 0,
  4214. "maximum": 15
  4215. }
  4216. }
  4217. }
  4218. }
  4219. }
  4220. },
  4221. "parameters": [
  4222. {
  4223. "name": "apiVersion",
  4224. "in": "path",
  4225. "required": true,
  4226. "schema": {
  4227. "type": "string",
  4228. "enum": [
  4229. "v4"
  4230. ],
  4231. "default": "v4"
  4232. }
  4233. },
  4234. {
  4235. "name": "token",
  4236. "in": "path",
  4237. "required": true,
  4238. "schema": {
  4239. "type": "string",
  4240. "pattern": "^[a-z0-9]{4,30}$"
  4241. }
  4242. },
  4243. {
  4244. "name": "OCS-APIRequest",
  4245. "in": "header",
  4246. "description": "Required to be true for the API request to pass",
  4247. "required": true,
  4248. "schema": {
  4249. "type": "boolean",
  4250. "default": true
  4251. }
  4252. }
  4253. ],
  4254. "responses": {
  4255. "200": {
  4256. "description": "In-call flags updated successfully",
  4257. "content": {
  4258. "application/json": {
  4259. "schema": {
  4260. "type": "object",
  4261. "required": [
  4262. "ocs"
  4263. ],
  4264. "properties": {
  4265. "ocs": {
  4266. "type": "object",
  4267. "required": [
  4268. "meta",
  4269. "data"
  4270. ],
  4271. "properties": {
  4272. "meta": {
  4273. "$ref": "#/components/schemas/OCSMeta"
  4274. },
  4275. "data": {
  4276. "nullable": true
  4277. }
  4278. }
  4279. }
  4280. }
  4281. }
  4282. }
  4283. }
  4284. },
  4285. "400": {
  4286. "description": "Updating in-call flags is not possible",
  4287. "content": {
  4288. "application/json": {
  4289. "schema": {
  4290. "type": "object",
  4291. "required": [
  4292. "ocs"
  4293. ],
  4294. "properties": {
  4295. "ocs": {
  4296. "type": "object",
  4297. "required": [
  4298. "meta",
  4299. "data"
  4300. ],
  4301. "properties": {
  4302. "meta": {
  4303. "$ref": "#/components/schemas/OCSMeta"
  4304. },
  4305. "data": {
  4306. "nullable": true
  4307. }
  4308. }
  4309. }
  4310. }
  4311. }
  4312. }
  4313. }
  4314. },
  4315. "404": {
  4316. "description": "Call session not found",
  4317. "content": {
  4318. "application/json": {
  4319. "schema": {
  4320. "type": "object",
  4321. "required": [
  4322. "ocs"
  4323. ],
  4324. "properties": {
  4325. "ocs": {
  4326. "type": "object",
  4327. "required": [
  4328. "meta",
  4329. "data"
  4330. ],
  4331. "properties": {
  4332. "meta": {
  4333. "$ref": "#/components/schemas/OCSMeta"
  4334. },
  4335. "data": {
  4336. "nullable": true
  4337. }
  4338. }
  4339. }
  4340. }
  4341. }
  4342. }
  4343. }
  4344. }
  4345. }
  4346. },
  4347. "delete": {
  4348. "operationId": "call-leave-call",
  4349. "summary": "Leave a call",
  4350. "tags": [
  4351. "call"
  4352. ],
  4353. "security": [
  4354. {},
  4355. {
  4356. "bearer_auth": []
  4357. },
  4358. {
  4359. "basic_auth": []
  4360. }
  4361. ],
  4362. "parameters": [
  4363. {
  4364. "name": "apiVersion",
  4365. "in": "path",
  4366. "required": true,
  4367. "schema": {
  4368. "type": "string",
  4369. "enum": [
  4370. "v4"
  4371. ],
  4372. "default": "v4"
  4373. }
  4374. },
  4375. {
  4376. "name": "token",
  4377. "in": "path",
  4378. "required": true,
  4379. "schema": {
  4380. "type": "string",
  4381. "pattern": "^[a-z0-9]{4,30}$"
  4382. }
  4383. },
  4384. {
  4385. "name": "all",
  4386. "in": "query",
  4387. "description": "whether to also terminate the call for all participants",
  4388. "schema": {
  4389. "type": "integer",
  4390. "default": 0,
  4391. "enum": [
  4392. 0,
  4393. 1
  4394. ]
  4395. }
  4396. },
  4397. {
  4398. "name": "OCS-APIRequest",
  4399. "in": "header",
  4400. "description": "Required to be true for the API request to pass",
  4401. "required": true,
  4402. "schema": {
  4403. "type": "boolean",
  4404. "default": true
  4405. }
  4406. }
  4407. ],
  4408. "responses": {
  4409. "200": {
  4410. "description": "Call left successfully",
  4411. "content": {
  4412. "application/json": {
  4413. "schema": {
  4414. "type": "object",
  4415. "required": [
  4416. "ocs"
  4417. ],
  4418. "properties": {
  4419. "ocs": {
  4420. "type": "object",
  4421. "required": [
  4422. "meta",
  4423. "data"
  4424. ],
  4425. "properties": {
  4426. "meta": {
  4427. "$ref": "#/components/schemas/OCSMeta"
  4428. },
  4429. "data": {
  4430. "nullable": true
  4431. }
  4432. }
  4433. }
  4434. }
  4435. }
  4436. }
  4437. }
  4438. },
  4439. "404": {
  4440. "description": "Call session not found",
  4441. "content": {
  4442. "application/json": {
  4443. "schema": {
  4444. "type": "object",
  4445. "required": [
  4446. "ocs"
  4447. ],
  4448. "properties": {
  4449. "ocs": {
  4450. "type": "object",
  4451. "required": [
  4452. "meta",
  4453. "data"
  4454. ],
  4455. "properties": {
  4456. "meta": {
  4457. "$ref": "#/components/schemas/OCSMeta"
  4458. },
  4459. "data": {
  4460. "nullable": true
  4461. }
  4462. }
  4463. }
  4464. }
  4465. }
  4466. }
  4467. }
  4468. }
  4469. }
  4470. }
  4471. },
  4472. "/ocs/v2.php/apps/spreed/api/{apiVersion}/call/{token}/notification-state": {
  4473. "get": {
  4474. "operationId": "call_notification-state",
  4475. "summary": "Check the expected state of a call notification",
  4476. "description": "Required capability: `call-notification-state-api`",
  4477. "tags": [
  4478. "call"
  4479. ],
  4480. "security": [
  4481. {
  4482. "bearer_auth": []
  4483. },
  4484. {
  4485. "basic_auth": []
  4486. }
  4487. ],
  4488. "parameters": [
  4489. {
  4490. "name": "apiVersion",
  4491. "in": "path",
  4492. "required": true,
  4493. "schema": {
  4494. "type": "string",
  4495. "enum": [
  4496. "v4"
  4497. ],
  4498. "default": "v4"
  4499. }
  4500. },
  4501. {
  4502. "name": "token",
  4503. "in": "path",
  4504. "description": "Conversation token to check",
  4505. "required": true,
  4506. "schema": {
  4507. "type": "string",
  4508. "pattern": "^[a-z0-9]{4,30}$"
  4509. }
  4510. },
  4511. {
  4512. "name": "OCS-APIRequest",
  4513. "in": "header",
  4514. "description": "Required to be true for the API request to pass",
  4515. "required": true,
  4516. "schema": {
  4517. "type": "boolean",
  4518. "default": true
  4519. }
  4520. }
  4521. ],
  4522. "responses": {
  4523. "200": {
  4524. "description": "Notification should be kept alive",
  4525. "content": {
  4526. "application/json": {
  4527. "schema": {
  4528. "type": "object",
  4529. "required": [
  4530. "ocs"
  4531. ],
  4532. "properties": {
  4533. "ocs": {
  4534. "type": "object",
  4535. "required": [
  4536. "meta",
  4537. "data"
  4538. ],
  4539. "properties": {
  4540. "meta": {
  4541. "$ref": "#/components/schemas/OCSMeta"
  4542. },
  4543. "data": {
  4544. "nullable": true
  4545. }
  4546. }
  4547. }
  4548. }
  4549. }
  4550. }
  4551. }
  4552. },
  4553. "201": {
  4554. "description": "Dismiss call notification and show \"Missed call\"-notification instead",
  4555. "content": {
  4556. "application/json": {
  4557. "schema": {
  4558. "type": "object",
  4559. "required": [
  4560. "ocs"
  4561. ],
  4562. "properties": {
  4563. "ocs": {
  4564. "type": "object",
  4565. "required": [
  4566. "meta",
  4567. "data"
  4568. ],
  4569. "properties": {
  4570. "meta": {
  4571. "$ref": "#/components/schemas/OCSMeta"
  4572. },
  4573. "data": {
  4574. "nullable": true
  4575. }
  4576. }
  4577. }
  4578. }
  4579. }
  4580. }
  4581. }
  4582. },
  4583. "403": {
  4584. "description": "Not logged in, try again with auth data sent",
  4585. "content": {
  4586. "application/json": {
  4587. "schema": {
  4588. "type": "object",
  4589. "required": [
  4590. "ocs"
  4591. ],
  4592. "properties": {
  4593. "ocs": {
  4594. "type": "object",
  4595. "required": [
  4596. "meta",
  4597. "data"
  4598. ],
  4599. "properties": {
  4600. "meta": {
  4601. "$ref": "#/components/schemas/OCSMeta"
  4602. },
  4603. "data": {
  4604. "nullable": true
  4605. }
  4606. }
  4607. }
  4608. }
  4609. }
  4610. }
  4611. }
  4612. },
  4613. "404": {
  4614. "description": "Dismiss call notification",
  4615. "content": {
  4616. "application/json": {
  4617. "schema": {
  4618. "type": "object",
  4619. "required": [
  4620. "ocs"
  4621. ],
  4622. "properties": {
  4623. "ocs": {
  4624. "type": "object",
  4625. "required": [
  4626. "meta",
  4627. "data"
  4628. ],
  4629. "properties": {
  4630. "meta": {
  4631. "$ref": "#/components/schemas/OCSMeta"
  4632. },
  4633. "data": {
  4634. "nullable": true
  4635. }
  4636. }
  4637. }
  4638. }
  4639. }
  4640. }
  4641. }
  4642. }
  4643. }
  4644. }
  4645. },
  4646. "/ocs/v2.php/apps/spreed/api/{apiVersion}/call/{token}/download": {
  4647. "get": {
  4648. "operationId": "call-download-participants-for-call",
  4649. "summary": "Download the list of current call participants",
  4650. "description": "Required capability: `download-call-participants`",
  4651. "tags": [
  4652. "call"
  4653. ],
  4654. "security": [
  4655. {},
  4656. {
  4657. "bearer_auth": []
  4658. },
  4659. {
  4660. "basic_auth": []
  4661. }
  4662. ],
  4663. "parameters": [
  4664. {
  4665. "name": "apiVersion",
  4666. "in": "path",
  4667. "required": true,
  4668. "schema": {
  4669. "type": "string",
  4670. "enum": [
  4671. "v4"
  4672. ],
  4673. "default": "v4"
  4674. }
  4675. },
  4676. {
  4677. "name": "token",
  4678. "in": "path",
  4679. "required": true,
  4680. "schema": {
  4681. "type": "string",
  4682. "pattern": "^[a-z0-9]{4,30}$"
  4683. }
  4684. },
  4685. {
  4686. "name": "format",
  4687. "in": "query",
  4688. "description": "Download format",
  4689. "schema": {
  4690. "type": "string",
  4691. "default": "csv",
  4692. "enum": [
  4693. "csv",
  4694. "pdf"
  4695. ]
  4696. }
  4697. },
  4698. {
  4699. "name": "OCS-APIRequest",
  4700. "in": "header",
  4701. "description": "Required to be true for the API request to pass",
  4702. "required": true,
  4703. "schema": {
  4704. "type": "boolean",
  4705. "default": true
  4706. }
  4707. }
  4708. ],
  4709. "responses": {
  4710. "200": {
  4711. "description": "List of participants in the call downloaded in the requested format",
  4712. "content": {
  4713. "text/csv": {
  4714. "schema": {
  4715. "type": "string",
  4716. "format": "binary"
  4717. }
  4718. },
  4719. "application/pdf": {
  4720. "schema": {
  4721. "type": "string",
  4722. "format": "binary"
  4723. }
  4724. }
  4725. }
  4726. },
  4727. "400": {
  4728. "description": "No call in progress"
  4729. }
  4730. }
  4731. }
  4732. },
  4733. "/ocs/v2.php/apps/spreed/api/{apiVersion}/call/{token}/federation": {
  4734. "post": {
  4735. "operationId": "call-join-federated-call",
  4736. "summary": "Join call on the host server using the session id of the federated user",
  4737. "tags": [
  4738. "call"
  4739. ],
  4740. "security": [
  4741. {},
  4742. {
  4743. "bearer_auth": []
  4744. },
  4745. {
  4746. "basic_auth": []
  4747. }
  4748. ],
  4749. "requestBody": {
  4750. "required": true,
  4751. "content": {
  4752. "application/json": {
  4753. "schema": {
  4754. "type": "object",
  4755. "required": [
  4756. "sessionId"
  4757. ],
  4758. "properties": {
  4759. "sessionId": {
  4760. "type": "string",
  4761. "description": "Federated session id to join with"
  4762. },
  4763. "flags": {
  4764. "type": "integer",
  4765. "format": "int64",
  4766. "nullable": true,
  4767. "description": "In-Call flags",
  4768. "minimum": 0,
  4769. "maximum": 15
  4770. },
  4771. "silent": {
  4772. "type": "boolean",
  4773. "default": false,
  4774. "description": "Join the call silently"
  4775. },
  4776. "recordingConsent": {
  4777. "type": "boolean",
  4778. "default": false,
  4779. "description": "Agreement to be recorded"
  4780. }
  4781. }
  4782. }
  4783. }
  4784. }
  4785. },
  4786. "parameters": [
  4787. {
  4788. "name": "apiVersion",
  4789. "in": "path",
  4790. "required": true,
  4791. "schema": {
  4792. "type": "string",
  4793. "enum": [
  4794. "v4"
  4795. ],
  4796. "default": "v4"
  4797. }
  4798. },
  4799. {
  4800. "name": "token",
  4801. "in": "path",
  4802. "required": true,
  4803. "schema": {
  4804. "type": "string",
  4805. "pattern": "^[a-z0-9]{4,30}$"
  4806. }
  4807. },
  4808. {
  4809. "name": "OCS-APIRequest",
  4810. "in": "header",
  4811. "description": "Required to be true for the API request to pass",
  4812. "required": true,
  4813. "schema": {
  4814. "type": "boolean",
  4815. "default": true
  4816. }
  4817. }
  4818. ],
  4819. "responses": {
  4820. "200": {
  4821. "description": "Call joined successfully",
  4822. "content": {
  4823. "application/json": {
  4824. "schema": {
  4825. "type": "object",
  4826. "required": [
  4827. "ocs"
  4828. ],
  4829. "properties": {
  4830. "ocs": {
  4831. "type": "object",
  4832. "required": [
  4833. "meta",
  4834. "data"
  4835. ],
  4836. "properties": {
  4837. "meta": {
  4838. "$ref": "#/components/schemas/OCSMeta"
  4839. },
  4840. "data": {
  4841. "nullable": true
  4842. }
  4843. }
  4844. }
  4845. }
  4846. }
  4847. }
  4848. }
  4849. },
  4850. "404": {
  4851. "description": "Call not found",
  4852. "content": {
  4853. "application/json": {
  4854. "schema": {
  4855. "type": "object",
  4856. "required": [
  4857. "ocs"
  4858. ],
  4859. "properties": {
  4860. "ocs": {
  4861. "type": "object",
  4862. "required": [
  4863. "meta",
  4864. "data"
  4865. ],
  4866. "properties": {
  4867. "meta": {
  4868. "$ref": "#/components/schemas/OCSMeta"
  4869. },
  4870. "data": {
  4871. "nullable": true
  4872. }
  4873. }
  4874. }
  4875. }
  4876. }
  4877. }
  4878. }
  4879. },
  4880. "400": {
  4881. "description": "Conditions to join not met",
  4882. "content": {
  4883. "application/json": {
  4884. "schema": {
  4885. "type": "object",
  4886. "required": [
  4887. "ocs"
  4888. ],
  4889. "properties": {
  4890. "ocs": {
  4891. "type": "object",
  4892. "required": [
  4893. "meta",
  4894. "data"
  4895. ],
  4896. "properties": {
  4897. "meta": {
  4898. "$ref": "#/components/schemas/OCSMeta"
  4899. },
  4900. "data": {
  4901. "type": "object",
  4902. "required": [
  4903. "error"
  4904. ],
  4905. "properties": {
  4906. "error": {
  4907. "type": "string"
  4908. }
  4909. }
  4910. }
  4911. }
  4912. }
  4913. }
  4914. }
  4915. }
  4916. }
  4917. }
  4918. }
  4919. },
  4920. "put": {
  4921. "operationId": "call-update-federated-call-flags",
  4922. "summary": "Update the in-call flags on the host server using the session id of the federated user",
  4923. "tags": [
  4924. "call"
  4925. ],
  4926. "security": [
  4927. {},
  4928. {
  4929. "bearer_auth": []
  4930. },
  4931. {
  4932. "basic_auth": []
  4933. }
  4934. ],
  4935. "requestBody": {
  4936. "required": true,
  4937. "content": {
  4938. "application/json": {
  4939. "schema": {
  4940. "type": "object",
  4941. "required": [
  4942. "sessionId",
  4943. "flags"
  4944. ],
  4945. "properties": {
  4946. "sessionId": {
  4947. "type": "string",
  4948. "description": "Federated session id to update the flags with"
  4949. },
  4950. "flags": {
  4951. "type": "integer",
  4952. "format": "int64",
  4953. "description": "New flags",
  4954. "minimum": 0,
  4955. "maximum": 15
  4956. }
  4957. }
  4958. }
  4959. }
  4960. }
  4961. },
  4962. "parameters": [
  4963. {
  4964. "name": "apiVersion",
  4965. "in": "path",
  4966. "required": true,
  4967. "schema": {
  4968. "type": "string",
  4969. "enum": [
  4970. "v4"
  4971. ],
  4972. "default": "v4"
  4973. }
  4974. },
  4975. {
  4976. "name": "token",
  4977. "in": "path",
  4978. "required": true,
  4979. "schema": {
  4980. "type": "string",
  4981. "pattern": "^[a-z0-9]{4,30}$"
  4982. }
  4983. },
  4984. {
  4985. "name": "OCS-APIRequest",
  4986. "in": "header",
  4987. "description": "Required to be true for the API request to pass",
  4988. "required": true,
  4989. "schema": {
  4990. "type": "boolean",
  4991. "default": true
  4992. }
  4993. }
  4994. ],
  4995. "responses": {
  4996. "200": {
  4997. "description": "In-call flags updated successfully",
  4998. "content": {
  4999. "application/json": {
  5000. "schema": {
  5001. "type": "object",
  5002. "required": [
  5003. "ocs"
  5004. ],
  5005. "properties": {
  5006. "ocs": {
  5007. "type": "object",
  5008. "required": [
  5009. "meta",
  5010. "data"
  5011. ],
  5012. "properties": {
  5013. "meta": {
  5014. "$ref": "#/components/schemas/OCSMeta"
  5015. },
  5016. "data": {
  5017. "nullable": true
  5018. }
  5019. }
  5020. }
  5021. }
  5022. }
  5023. }
  5024. }
  5025. },
  5026. "400": {
  5027. "description": "Updating in-call flags is not possible",
  5028. "content": {
  5029. "application/json": {
  5030. "schema": {
  5031. "type": "object",
  5032. "required": [
  5033. "ocs"
  5034. ],
  5035. "properties": {
  5036. "ocs": {
  5037. "type": "object",
  5038. "required": [
  5039. "meta",
  5040. "data"
  5041. ],
  5042. "properties": {
  5043. "meta": {
  5044. "$ref": "#/components/schemas/OCSMeta"
  5045. },
  5046. "data": {
  5047. "nullable": true
  5048. }
  5049. }
  5050. }
  5051. }
  5052. }
  5053. }
  5054. }
  5055. },
  5056. "404": {
  5057. "description": "Call session not found",
  5058. "content": {
  5059. "application/json": {
  5060. "schema": {
  5061. "type": "object",
  5062. "required": [
  5063. "ocs"
  5064. ],
  5065. "properties": {
  5066. "ocs": {
  5067. "type": "object",
  5068. "required": [
  5069. "meta",
  5070. "data"
  5071. ],
  5072. "properties": {
  5073. "meta": {
  5074. "$ref": "#/components/schemas/OCSMeta"
  5075. },
  5076. "data": {
  5077. "nullable": true
  5078. }
  5079. }
  5080. }
  5081. }
  5082. }
  5083. }
  5084. }
  5085. }
  5086. }
  5087. },
  5088. "delete": {
  5089. "operationId": "call-leave-federated-call",
  5090. "summary": "Leave a call on the host server using the session id of the federated user",
  5091. "tags": [
  5092. "call"
  5093. ],
  5094. "security": [
  5095. {},
  5096. {
  5097. "bearer_auth": []
  5098. },
  5099. {
  5100. "basic_auth": []
  5101. }
  5102. ],
  5103. "parameters": [
  5104. {
  5105. "name": "apiVersion",
  5106. "in": "path",
  5107. "required": true,
  5108. "schema": {
  5109. "type": "string",
  5110. "enum": [
  5111. "v4"
  5112. ],
  5113. "default": "v4"
  5114. }
  5115. },
  5116. {
  5117. "name": "token",
  5118. "in": "path",
  5119. "required": true,
  5120. "schema": {
  5121. "type": "string",
  5122. "pattern": "^[a-z0-9]{4,30}$"
  5123. }
  5124. },
  5125. {
  5126. "name": "sessionId",
  5127. "in": "query",
  5128. "description": "Federated session id to leave with",
  5129. "required": true,
  5130. "schema": {
  5131. "type": "string"
  5132. }
  5133. },
  5134. {
  5135. "name": "OCS-APIRequest",
  5136. "in": "header",
  5137. "description": "Required to be true for the API request to pass",
  5138. "required": true,
  5139. "schema": {
  5140. "type": "boolean",
  5141. "default": true
  5142. }
  5143. }
  5144. ],
  5145. "responses": {
  5146. "200": {
  5147. "description": "Call left successfully",
  5148. "content": {
  5149. "application/json": {
  5150. "schema": {
  5151. "type": "object",
  5152. "required": [
  5153. "ocs"
  5154. ],
  5155. "properties": {
  5156. "ocs": {
  5157. "type": "object",
  5158. "required": [
  5159. "meta",
  5160. "data"
  5161. ],
  5162. "properties": {
  5163. "meta": {
  5164. "$ref": "#/components/schemas/OCSMeta"
  5165. },
  5166. "data": {
  5167. "nullable": true
  5168. }
  5169. }
  5170. }
  5171. }
  5172. }
  5173. }
  5174. }
  5175. },
  5176. "404": {
  5177. "description": "Call session not found",
  5178. "content": {
  5179. "application/json": {
  5180. "schema": {
  5181. "type": "object",
  5182. "required": [
  5183. "ocs"
  5184. ],
  5185. "properties": {
  5186. "ocs": {
  5187. "type": "object",
  5188. "required": [
  5189. "meta",
  5190. "data"
  5191. ],
  5192. "properties": {
  5193. "meta": {
  5194. "$ref": "#/components/schemas/OCSMeta"
  5195. },
  5196. "data": {
  5197. "nullable": true
  5198. }
  5199. }
  5200. }
  5201. }
  5202. }
  5203. }
  5204. }
  5205. }
  5206. }
  5207. }
  5208. },
  5209. "/ocs/v2.php/apps/spreed/api/{apiVersion}/call/{token}/ring/{attendeeId}": {
  5210. "post": {
  5211. "operationId": "call-ring-attendee",
  5212. "summary": "Ring an attendee",
  5213. "tags": [
  5214. "call"
  5215. ],
  5216. "security": [
  5217. {},
  5218. {
  5219. "bearer_auth": []
  5220. },
  5221. {
  5222. "basic_auth": []
  5223. }
  5224. ],
  5225. "parameters": [
  5226. {
  5227. "name": "apiVersion",
  5228. "in": "path",
  5229. "required": true,
  5230. "schema": {
  5231. "type": "string",
  5232. "enum": [
  5233. "v4"
  5234. ],
  5235. "default": "v4"
  5236. }
  5237. },
  5238. {
  5239. "name": "token",
  5240. "in": "path",
  5241. "required": true,
  5242. "schema": {
  5243. "type": "string",
  5244. "pattern": "^[a-z0-9]{4,30}$"
  5245. }
  5246. },
  5247. {
  5248. "name": "attendeeId",
  5249. "in": "path",
  5250. "description": "ID of the attendee to ring",
  5251. "required": true,
  5252. "schema": {
  5253. "type": "integer",
  5254. "format": "int64"
  5255. }
  5256. },
  5257. {
  5258. "name": "OCS-APIRequest",
  5259. "in": "header",
  5260. "description": "Required to be true for the API request to pass",
  5261. "required": true,
  5262. "schema": {
  5263. "type": "boolean",
  5264. "default": true
  5265. }
  5266. }
  5267. ],
  5268. "responses": {
  5269. "200": {
  5270. "description": "Attendee rang successfully",
  5271. "content": {
  5272. "application/json": {
  5273. "schema": {
  5274. "type": "object",
  5275. "required": [
  5276. "ocs"
  5277. ],
  5278. "properties": {
  5279. "ocs": {
  5280. "type": "object",
  5281. "required": [
  5282. "meta",
  5283. "data"
  5284. ],
  5285. "properties": {
  5286. "meta": {
  5287. "$ref": "#/components/schemas/OCSMeta"
  5288. },
  5289. "data": {
  5290. "nullable": true
  5291. }
  5292. }
  5293. }
  5294. }
  5295. }
  5296. }
  5297. }
  5298. },
  5299. "404": {
  5300. "description": "Attendee could not be found",
  5301. "content": {
  5302. "application/json": {
  5303. "schema": {
  5304. "type": "object",
  5305. "required": [
  5306. "ocs"
  5307. ],
  5308. "properties": {
  5309. "ocs": {
  5310. "type": "object",
  5311. "required": [
  5312. "meta",
  5313. "data"
  5314. ],
  5315. "properties": {
  5316. "meta": {
  5317. "$ref": "#/components/schemas/OCSMeta"
  5318. },
  5319. "data": {
  5320. "nullable": true
  5321. }
  5322. }
  5323. }
  5324. }
  5325. }
  5326. }
  5327. }
  5328. },
  5329. "400": {
  5330. "description": "Ringing attendee is not possible",
  5331. "content": {
  5332. "application/json": {
  5333. "schema": {
  5334. "type": "object",
  5335. "required": [
  5336. "ocs"
  5337. ],
  5338. "properties": {
  5339. "ocs": {
  5340. "type": "object",
  5341. "required": [
  5342. "meta",
  5343. "data"
  5344. ],
  5345. "properties": {
  5346. "meta": {
  5347. "$ref": "#/components/schemas/OCSMeta"
  5348. },
  5349. "data": {
  5350. "type": "object",
  5351. "required": [
  5352. "error"
  5353. ],
  5354. "properties": {
  5355. "error": {
  5356. "type": "string"
  5357. }
  5358. }
  5359. }
  5360. }
  5361. }
  5362. }
  5363. }
  5364. }
  5365. }
  5366. }
  5367. }
  5368. }
  5369. },
  5370. "/ocs/v2.php/apps/spreed/api/{apiVersion}/call/{token}/dialout/{attendeeId}": {
  5371. "post": {
  5372. "operationId": "call-sip-dial-out",
  5373. "summary": "Call a SIP dial-out attendee",
  5374. "tags": [
  5375. "call"
  5376. ],
  5377. "security": [
  5378. {},
  5379. {
  5380. "bearer_auth": []
  5381. },
  5382. {
  5383. "basic_auth": []
  5384. }
  5385. ],
  5386. "parameters": [
  5387. {
  5388. "name": "apiVersion",
  5389. "in": "path",
  5390. "required": true,
  5391. "schema": {
  5392. "type": "string",
  5393. "enum": [
  5394. "v4"
  5395. ],
  5396. "default": "v4"
  5397. }
  5398. },
  5399. {
  5400. "name": "token",
  5401. "in": "path",
  5402. "required": true,
  5403. "schema": {
  5404. "type": "string",
  5405. "pattern": "^[a-z0-9]{4,30}$"
  5406. }
  5407. },
  5408. {
  5409. "name": "attendeeId",
  5410. "in": "path",
  5411. "description": "ID of the attendee to call",
  5412. "required": true,
  5413. "schema": {
  5414. "type": "integer",
  5415. "format": "int64"
  5416. }
  5417. },
  5418. {
  5419. "name": "OCS-APIRequest",
  5420. "in": "header",
  5421. "description": "Required to be true for the API request to pass",
  5422. "required": true,
  5423. "schema": {
  5424. "type": "boolean",
  5425. "default": true
  5426. }
  5427. }
  5428. ],
  5429. "responses": {
  5430. "201": {
  5431. "description": "Dial-out initiated successfully",
  5432. "content": {
  5433. "application/json": {
  5434. "schema": {
  5435. "type": "object",
  5436. "required": [
  5437. "ocs"
  5438. ],
  5439. "properties": {
  5440. "ocs": {
  5441. "type": "object",
  5442. "required": [
  5443. "meta",
  5444. "data"
  5445. ],
  5446. "properties": {
  5447. "meta": {
  5448. "$ref": "#/components/schemas/OCSMeta"
  5449. },
  5450. "data": {
  5451. "nullable": true
  5452. }
  5453. }
  5454. }
  5455. }
  5456. }
  5457. }
  5458. }
  5459. },
  5460. "400": {
  5461. "description": "SIP dial-out not possible",
  5462. "content": {
  5463. "application/json": {
  5464. "schema": {
  5465. "type": "object",
  5466. "required": [
  5467. "ocs"
  5468. ],
  5469. "properties": {
  5470. "ocs": {
  5471. "type": "object",
  5472. "required": [
  5473. "meta",
  5474. "data"
  5475. ],
  5476. "properties": {
  5477. "meta": {
  5478. "$ref": "#/components/schemas/OCSMeta"
  5479. },
  5480. "data": {
  5481. "nullable": true
  5482. }
  5483. }
  5484. }
  5485. }
  5486. }
  5487. }
  5488. }
  5489. },
  5490. "404": {
  5491. "description": "Participant could not be found or is a wrong type",
  5492. "content": {
  5493. "application/json": {
  5494. "schema": {
  5495. "type": "object",
  5496. "required": [
  5497. "ocs"
  5498. ],
  5499. "properties": {
  5500. "ocs": {
  5501. "type": "object",
  5502. "required": [
  5503. "meta",
  5504. "data"
  5505. ],
  5506. "properties": {
  5507. "meta": {
  5508. "$ref": "#/components/schemas/OCSMeta"
  5509. },
  5510. "data": {
  5511. "nullable": true
  5512. }
  5513. }
  5514. }
  5515. }
  5516. }
  5517. }
  5518. }
  5519. },
  5520. "501": {
  5521. "description": "SIP dial-out is not configured on the server",
  5522. "content": {
  5523. "application/json": {
  5524. "schema": {
  5525. "type": "object",
  5526. "required": [
  5527. "ocs"
  5528. ],
  5529. "properties": {
  5530. "ocs": {
  5531. "type": "object",
  5532. "required": [
  5533. "meta",
  5534. "data"
  5535. ],
  5536. "properties": {
  5537. "meta": {
  5538. "$ref": "#/components/schemas/OCSMeta"
  5539. },
  5540. "data": {
  5541. "type": "object",
  5542. "required": [
  5543. "error"
  5544. ],
  5545. "properties": {
  5546. "error": {
  5547. "type": "string"
  5548. },
  5549. "message": {
  5550. "type": "string"
  5551. }
  5552. }
  5553. }
  5554. }
  5555. }
  5556. }
  5557. }
  5558. }
  5559. }
  5560. }
  5561. }
  5562. }
  5563. },
  5564. "/ocs/v2.php/apps/spreed/api/{apiVersion}/chat/{token}": {
  5565. "get": {
  5566. "operationId": "chat-receive-messages",
  5567. "summary": "Receives chat messages from the given room",
  5568. "description": "- Receiving the history ($lookIntoFuture=0): The next $limit messages after $lastKnownMessageId will be returned. The new $lastKnownMessageId for the follow up query is available as `X-Chat-Last-Given` header.\n- Looking into the future ($lookIntoFuture=1): If there are currently no messages the response will not be sent immediately. Instead, HTTP connection will be kept open waiting for new messages to arrive and, when they do, then the response will be sent. The connection will not be kept open indefinitely, though; the number of seconds to wait for new messages to arrive can be set using the timeout parameter; the default timeout is 30 seconds, maximum timeout is 60 seconds. If the timeout ends a successful but empty response will be sent. If messages have been returned (status=200) the new $lastKnownMessageId for the follow up query is available as `X-Chat-Last-Given` header.\nThe limit specifies the maximum number of messages that will be returned, although the actual number of returned messages could be lower if some messages are not visible to the participant. Note that if none of the messages are visible to the participant the returned number of messages will be 0, yet the status will still be 200. Also note that `X-Chat-Last-Given` may reference a message not visible and thus not returned, but it should be used nevertheless as the $lastKnownMessageId for the follow-up query.",
  5569. "tags": [
  5570. "chat"
  5571. ],
  5572. "security": [
  5573. {},
  5574. {
  5575. "bearer_auth": []
  5576. },
  5577. {
  5578. "basic_auth": []
  5579. }
  5580. ],
  5581. "parameters": [
  5582. {
  5583. "name": "apiVersion",
  5584. "in": "path",
  5585. "required": true,
  5586. "schema": {
  5587. "type": "string",
  5588. "enum": [
  5589. "v1"
  5590. ],
  5591. "default": "v1"
  5592. }
  5593. },
  5594. {
  5595. "name": "token",
  5596. "in": "path",
  5597. "required": true,
  5598. "schema": {
  5599. "type": "string",
  5600. "pattern": "^[a-z0-9]{4,30}$"
  5601. }
  5602. },
  5603. {
  5604. "name": "lookIntoFuture",
  5605. "in": "query",
  5606. "description": "Polling for new messages (1) or getting the history of the chat (0)",
  5607. "required": true,
  5608. "schema": {
  5609. "type": "integer",
  5610. "format": "int64",
  5611. "enum": [
  5612. 0,
  5613. 1
  5614. ]
  5615. }
  5616. },
  5617. {
  5618. "name": "limit",
  5619. "in": "query",
  5620. "description": "Number of chat messages to receive (100 by default, 200 at most)",
  5621. "schema": {
  5622. "type": "integer",
  5623. "format": "int64",
  5624. "default": 100
  5625. }
  5626. },
  5627. {
  5628. "name": "lastKnownMessageId",
  5629. "in": "query",
  5630. "description": "The last known message (serves as offset)",
  5631. "schema": {
  5632. "type": "integer",
  5633. "format": "int64",
  5634. "default": 0,
  5635. "minimum": 0
  5636. }
  5637. },
  5638. {
  5639. "name": "lastCommonReadId",
  5640. "in": "query",
  5641. "description": "The last known common read message (so the response is 200 instead of 304 when it changes even when there are no messages)",
  5642. "schema": {
  5643. "type": "integer",
  5644. "format": "int64",
  5645. "default": 0,
  5646. "minimum": 0
  5647. }
  5648. },
  5649. {
  5650. "name": "timeout",
  5651. "in": "query",
  5652. "description": "Number of seconds to wait for new messages (30 by default, 30 at most)",
  5653. "schema": {
  5654. "type": "integer",
  5655. "format": "int64",
  5656. "default": 30,
  5657. "minimum": 0,
  5658. "maximum": 30
  5659. }
  5660. },
  5661. {
  5662. "name": "setReadMarker",
  5663. "in": "query",
  5664. "description": "Automatically set the last read marker when 1, if your client does this itself via chat/{token}/read set to 0",
  5665. "schema": {
  5666. "type": "integer",
  5667. "format": "int64",
  5668. "default": 1,
  5669. "enum": [
  5670. 0,
  5671. 1
  5672. ]
  5673. }
  5674. },
  5675. {
  5676. "name": "includeLastKnown",
  5677. "in": "query",
  5678. "description": "Include the $lastKnownMessageId in the messages when 1 (default 0)",
  5679. "schema": {
  5680. "type": "integer",
  5681. "format": "int64",
  5682. "default": 0,
  5683. "enum": [
  5684. 0,
  5685. 1
  5686. ]
  5687. }
  5688. },
  5689. {
  5690. "name": "noStatusUpdate",
  5691. "in": "query",
  5692. "description": "When the user status should not be automatically set to online set to 1 (default 0)",
  5693. "schema": {
  5694. "type": "integer",
  5695. "format": "int64",
  5696. "default": 0,
  5697. "enum": [
  5698. 0,
  5699. 1
  5700. ]
  5701. }
  5702. },
  5703. {
  5704. "name": "markNotificationsAsRead",
  5705. "in": "query",
  5706. "description": "Set to 0 when notifications should not be marked as read (default 1)",
  5707. "schema": {
  5708. "type": "integer",
  5709. "format": "int64",
  5710. "default": 1,
  5711. "enum": [
  5712. 0,
  5713. 1
  5714. ]
  5715. }
  5716. },
  5717. {
  5718. "name": "OCS-APIRequest",
  5719. "in": "header",
  5720. "description": "Required to be true for the API request to pass",
  5721. "required": true,
  5722. "schema": {
  5723. "type": "boolean",
  5724. "default": true
  5725. }
  5726. }
  5727. ],
  5728. "responses": {
  5729. "200": {
  5730. "description": "Messages returned",
  5731. "headers": {
  5732. "X-Chat-Last-Common-Read": {
  5733. "schema": {
  5734. "type": "string"
  5735. }
  5736. },
  5737. "X-Chat-Last-Given": {
  5738. "schema": {
  5739. "type": "string"
  5740. }
  5741. }
  5742. },
  5743. "content": {
  5744. "application/json": {
  5745. "schema": {
  5746. "type": "object",
  5747. "required": [
  5748. "ocs"
  5749. ],
  5750. "properties": {
  5751. "ocs": {
  5752. "type": "object",
  5753. "required": [
  5754. "meta",
  5755. "data"
  5756. ],
  5757. "properties": {
  5758. "meta": {
  5759. "$ref": "#/components/schemas/OCSMeta"
  5760. },
  5761. "data": {
  5762. "type": "array",
  5763. "items": {
  5764. "$ref": "#/components/schemas/ChatMessageWithParent"
  5765. }
  5766. }
  5767. }
  5768. }
  5769. }
  5770. }
  5771. }
  5772. }
  5773. },
  5774. "304": {
  5775. "description": "No messages"
  5776. }
  5777. }
  5778. },
  5779. "post": {
  5780. "operationId": "chat-send-message",
  5781. "summary": "Sends a new chat message to the given room",
  5782. "description": "The author and timestamp are automatically set to the current user/guest and time.",
  5783. "tags": [
  5784. "chat"
  5785. ],
  5786. "security": [
  5787. {},
  5788. {
  5789. "bearer_auth": []
  5790. },
  5791. {
  5792. "basic_auth": []
  5793. }
  5794. ],
  5795. "requestBody": {
  5796. "required": true,
  5797. "content": {
  5798. "application/json": {
  5799. "schema": {
  5800. "type": "object",
  5801. "required": [
  5802. "message"
  5803. ],
  5804. "properties": {
  5805. "message": {
  5806. "type": "string",
  5807. "description": "the message to send"
  5808. },
  5809. "actorDisplayName": {
  5810. "type": "string",
  5811. "default": "",
  5812. "description": "for guests"
  5813. },
  5814. "referenceId": {
  5815. "type": "string",
  5816. "default": "",
  5817. "description": "for the message to be able to later identify it again"
  5818. },
  5819. "replyTo": {
  5820. "type": "integer",
  5821. "format": "int64",
  5822. "default": 0,
  5823. "description": "Parent id which this message is a reply to",
  5824. "minimum": 0
  5825. },
  5826. "silent": {
  5827. "type": "boolean",
  5828. "default": false,
  5829. "description": "If sent silent the chat message will not create any notifications"
  5830. }
  5831. }
  5832. }
  5833. }
  5834. }
  5835. },
  5836. "parameters": [
  5837. {
  5838. "name": "apiVersion",
  5839. "in": "path",
  5840. "required": true,
  5841. "schema": {
  5842. "type": "string",
  5843. "enum": [
  5844. "v1"
  5845. ],
  5846. "default": "v1"
  5847. }
  5848. },
  5849. {
  5850. "name": "token",
  5851. "in": "path",
  5852. "required": true,
  5853. "schema": {
  5854. "type": "string",
  5855. "pattern": "^[a-z0-9]{4,30}$"
  5856. }
  5857. },
  5858. {
  5859. "name": "OCS-APIRequest",
  5860. "in": "header",
  5861. "description": "Required to be true for the API request to pass",
  5862. "required": true,
  5863. "schema": {
  5864. "type": "boolean",
  5865. "default": true
  5866. }
  5867. }
  5868. ],
  5869. "responses": {
  5870. "201": {
  5871. "description": "Message sent successfully",
  5872. "headers": {
  5873. "X-Chat-Last-Common-Read": {
  5874. "schema": {
  5875. "type": "string"
  5876. }
  5877. }
  5878. },
  5879. "content": {
  5880. "application/json": {
  5881. "schema": {
  5882. "type": "object",
  5883. "required": [
  5884. "ocs"
  5885. ],
  5886. "properties": {
  5887. "ocs": {
  5888. "type": "object",
  5889. "required": [
  5890. "meta",
  5891. "data"
  5892. ],
  5893. "properties": {
  5894. "meta": {
  5895. "$ref": "#/components/schemas/OCSMeta"
  5896. },
  5897. "data": {
  5898. "$ref": "#/components/schemas/ChatMessageWithParent",
  5899. "nullable": true
  5900. }
  5901. }
  5902. }
  5903. }
  5904. }
  5905. }
  5906. }
  5907. },
  5908. "400": {
  5909. "description": "Sending message is not possible",
  5910. "content": {
  5911. "application/json": {
  5912. "schema": {
  5913. "type": "object",
  5914. "required": [
  5915. "ocs"
  5916. ],
  5917. "properties": {
  5918. "ocs": {
  5919. "type": "object",
  5920. "required": [
  5921. "meta",
  5922. "data"
  5923. ],
  5924. "properties": {
  5925. "meta": {
  5926. "$ref": "#/components/schemas/OCSMeta"
  5927. },
  5928. "data": {
  5929. "type": "object",
  5930. "required": [
  5931. "error"
  5932. ],
  5933. "properties": {
  5934. "error": {
  5935. "type": "string"
  5936. }
  5937. }
  5938. }
  5939. }
  5940. }
  5941. }
  5942. }
  5943. }
  5944. }
  5945. },
  5946. "404": {
  5947. "description": "Actor not found",
  5948. "content": {
  5949. "application/json": {
  5950. "schema": {
  5951. "type": "object",
  5952. "required": [
  5953. "ocs"
  5954. ],
  5955. "properties": {
  5956. "ocs": {
  5957. "type": "object",
  5958. "required": [
  5959. "meta",
  5960. "data"
  5961. ],
  5962. "properties": {
  5963. "meta": {
  5964. "$ref": "#/components/schemas/OCSMeta"
  5965. },
  5966. "data": {
  5967. "type": "object",
  5968. "required": [
  5969. "error"
  5970. ],
  5971. "properties": {
  5972. "error": {
  5973. "type": "string"
  5974. }
  5975. }
  5976. }
  5977. }
  5978. }
  5979. }
  5980. }
  5981. }
  5982. }
  5983. },
  5984. "413": {
  5985. "description": "Message too long",
  5986. "content": {
  5987. "application/json": {
  5988. "schema": {
  5989. "type": "object",
  5990. "required": [
  5991. "ocs"
  5992. ],
  5993. "properties": {
  5994. "ocs": {
  5995. "type": "object",
  5996. "required": [
  5997. "meta",
  5998. "data"
  5999. ],
  6000. "properties": {
  6001. "meta": {
  6002. "$ref": "#/components/schemas/OCSMeta"
  6003. },
  6004. "data": {
  6005. "type": "object",
  6006. "required": [
  6007. "error"
  6008. ],
  6009. "properties": {
  6010. "error": {
  6011. "type": "string"
  6012. }
  6013. }
  6014. }
  6015. }
  6016. }
  6017. }
  6018. }
  6019. }
  6020. }
  6021. },
  6022. "429": {
  6023. "description": "Mention rate limit exceeded (guests only)",
  6024. "content": {
  6025. "application/json": {
  6026. "schema": {
  6027. "type": "object",
  6028. "required": [
  6029. "ocs"
  6030. ],
  6031. "properties": {
  6032. "ocs": {
  6033. "type": "object",
  6034. "required": [
  6035. "meta",
  6036. "data"
  6037. ],
  6038. "properties": {
  6039. "meta": {
  6040. "$ref": "#/components/schemas/OCSMeta"
  6041. },
  6042. "data": {
  6043. "type": "object",
  6044. "required": [
  6045. "error"
  6046. ],
  6047. "properties": {
  6048. "error": {
  6049. "type": "string"
  6050. }
  6051. }
  6052. }
  6053. }
  6054. }
  6055. }
  6056. }
  6057. }
  6058. }
  6059. }
  6060. }
  6061. },
  6062. "delete": {
  6063. "operationId": "chat-clear-history",
  6064. "summary": "Clear the chat history",
  6065. "tags": [
  6066. "chat"
  6067. ],
  6068. "security": [
  6069. {
  6070. "bearer_auth": []
  6071. },
  6072. {
  6073. "basic_auth": []
  6074. }
  6075. ],
  6076. "parameters": [
  6077. {
  6078. "name": "apiVersion",
  6079. "in": "path",
  6080. "required": true,
  6081. "schema": {
  6082. "type": "string",
  6083. "enum": [
  6084. "v1"
  6085. ],
  6086. "default": "v1"
  6087. }
  6088. },
  6089. {
  6090. "name": "token",
  6091. "in": "path",
  6092. "required": true,
  6093. "schema": {
  6094. "type": "string",
  6095. "pattern": "^[a-z0-9]{4,30}$"
  6096. }
  6097. },
  6098. {
  6099. "name": "OCS-APIRequest",
  6100. "in": "header",
  6101. "description": "Required to be true for the API request to pass",
  6102. "required": true,
  6103. "schema": {
  6104. "type": "boolean",
  6105. "default": true
  6106. }
  6107. }
  6108. ],
  6109. "responses": {
  6110. "200": {
  6111. "description": "History cleared successfully",
  6112. "headers": {
  6113. "X-Chat-Last-Common-Read": {
  6114. "schema": {
  6115. "type": "string"
  6116. }
  6117. }
  6118. },
  6119. "content": {
  6120. "application/json": {
  6121. "schema": {
  6122. "type": "object",
  6123. "required": [
  6124. "ocs"
  6125. ],
  6126. "properties": {
  6127. "ocs": {
  6128. "type": "object",
  6129. "required": [
  6130. "meta",
  6131. "data"
  6132. ],
  6133. "properties": {
  6134. "meta": {
  6135. "$ref": "#/components/schemas/OCSMeta"
  6136. },
  6137. "data": {
  6138. "$ref": "#/components/schemas/ChatMessage"
  6139. }
  6140. }
  6141. }
  6142. }
  6143. }
  6144. }
  6145. }
  6146. },
  6147. "202": {
  6148. "description": "History cleared successfully, but Federation or Matterbridge is configured, so the information can be replicated elsewhere",
  6149. "headers": {
  6150. "X-Chat-Last-Common-Read": {
  6151. "schema": {
  6152. "type": "string"
  6153. }
  6154. }
  6155. },
  6156. "content": {
  6157. "application/json": {
  6158. "schema": {
  6159. "type": "object",
  6160. "required": [
  6161. "ocs"
  6162. ],
  6163. "properties": {
  6164. "ocs": {
  6165. "type": "object",
  6166. "required": [
  6167. "meta",
  6168. "data"
  6169. ],
  6170. "properties": {
  6171. "meta": {
  6172. "$ref": "#/components/schemas/OCSMeta"
  6173. },
  6174. "data": {
  6175. "$ref": "#/components/schemas/ChatMessage"
  6176. }
  6177. }
  6178. }
  6179. }
  6180. }
  6181. }
  6182. }
  6183. },
  6184. "403": {
  6185. "description": "Missing permissions to clear history",
  6186. "content": {
  6187. "application/json": {
  6188. "schema": {
  6189. "type": "object",
  6190. "required": [
  6191. "ocs"
  6192. ],
  6193. "properties": {
  6194. "ocs": {
  6195. "type": "object",
  6196. "required": [
  6197. "meta",
  6198. "data"
  6199. ],
  6200. "properties": {
  6201. "meta": {
  6202. "$ref": "#/components/schemas/OCSMeta"
  6203. },
  6204. "data": {
  6205. "nullable": true
  6206. }
  6207. }
  6208. }
  6209. }
  6210. }
  6211. }
  6212. }
  6213. }
  6214. }
  6215. }
  6216. },
  6217. "/ocs/v2.php/apps/spreed/api/{apiVersion}/chat/{token}/summarize": {
  6218. "post": {
  6219. "operationId": "chat-summarize-chat",
  6220. "summary": "Summarize the next bunch of chat messages from a given offset",
  6221. "description": "Required capability: `chat-summary-api`",
  6222. "tags": [
  6223. "chat"
  6224. ],
  6225. "security": [
  6226. {},
  6227. {
  6228. "bearer_auth": []
  6229. },
  6230. {
  6231. "basic_auth": []
  6232. }
  6233. ],
  6234. "requestBody": {
  6235. "required": true,
  6236. "content": {
  6237. "application/json": {
  6238. "schema": {
  6239. "type": "object",
  6240. "required": [
  6241. "fromMessageId"
  6242. ],
  6243. "properties": {
  6244. "fromMessageId": {
  6245. "type": "integer",
  6246. "format": "int64",
  6247. "description": "Offset from where on the summary should be generated",
  6248. "minimum": 1
  6249. }
  6250. }
  6251. }
  6252. }
  6253. }
  6254. },
  6255. "parameters": [
  6256. {
  6257. "name": "apiVersion",
  6258. "in": "path",
  6259. "required": true,
  6260. "schema": {
  6261. "type": "string",
  6262. "enum": [
  6263. "v1"
  6264. ],
  6265. "default": "v1"
  6266. }
  6267. },
  6268. {
  6269. "name": "token",
  6270. "in": "path",
  6271. "required": true,
  6272. "schema": {
  6273. "type": "string",
  6274. "pattern": "^[a-z0-9]{4,30}$"
  6275. }
  6276. },
  6277. {
  6278. "name": "OCS-APIRequest",
  6279. "in": "header",
  6280. "description": "Required to be true for the API request to pass",
  6281. "required": true,
  6282. "schema": {
  6283. "type": "boolean",
  6284. "default": true
  6285. }
  6286. }
  6287. ],
  6288. "responses": {
  6289. "201": {
  6290. "description": "Summary was scheduled, use the returned taskId to get the status information and output from the TaskProcessing API: https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-taskprocessing-api.html#fetch-a-task-by-id If the response data contains nextOffset, not all messages could be handled in a single request. After receiving the response a second summary should be requested with the provided nextOffset.",
  6291. "content": {
  6292. "application/json": {
  6293. "schema": {
  6294. "type": "object",
  6295. "required": [
  6296. "ocs"
  6297. ],
  6298. "properties": {
  6299. "ocs": {
  6300. "type": "object",
  6301. "required": [
  6302. "meta",
  6303. "data"
  6304. ],
  6305. "properties": {
  6306. "meta": {
  6307. "$ref": "#/components/schemas/OCSMeta"
  6308. },
  6309. "data": {
  6310. "type": "object",
  6311. "required": [
  6312. "taskId"
  6313. ],
  6314. "properties": {
  6315. "taskId": {
  6316. "type": "integer",
  6317. "format": "int64"
  6318. },
  6319. "nextOffset": {
  6320. "type": "integer",
  6321. "format": "int64"
  6322. }
  6323. }
  6324. }
  6325. }
  6326. }
  6327. }
  6328. }
  6329. }
  6330. }
  6331. },
  6332. "400": {
  6333. "description": "No AI provider available or summarizing failed",
  6334. "content": {
  6335. "application/json": {
  6336. "schema": {
  6337. "type": "object",
  6338. "required": [
  6339. "ocs"
  6340. ],
  6341. "properties": {
  6342. "ocs": {
  6343. "type": "object",
  6344. "required": [
  6345. "meta",
  6346. "data"
  6347. ],
  6348. "properties": {
  6349. "meta": {
  6350. "$ref": "#/components/schemas/OCSMeta"
  6351. },
  6352. "data": {
  6353. "type": "object",
  6354. "required": [
  6355. "error"
  6356. ],
  6357. "properties": {
  6358. "error": {
  6359. "type": "string",
  6360. "enum": [
  6361. "ai-no-provider",
  6362. "ai-error"
  6363. ]
  6364. }
  6365. }
  6366. }
  6367. }
  6368. }
  6369. }
  6370. }
  6371. }
  6372. }
  6373. },
  6374. "204": {
  6375. "description": "No messages found to summarize"
  6376. },
  6377. "500": {
  6378. "description": "",
  6379. "content": {
  6380. "text/plain": {
  6381. "schema": {
  6382. "type": "string"
  6383. }
  6384. }
  6385. }
  6386. }
  6387. }
  6388. }
  6389. },
  6390. "/ocs/v2.php/apps/spreed/api/{apiVersion}/chat/{token}/{messageId}": {
  6391. "delete": {
  6392. "operationId": "chat-delete-message",
  6393. "summary": "Delete a chat message",
  6394. "tags": [
  6395. "chat"
  6396. ],
  6397. "security": [
  6398. {},
  6399. {
  6400. "bearer_auth": []
  6401. },
  6402. {
  6403. "basic_auth": []
  6404. }
  6405. ],
  6406. "parameters": [
  6407. {
  6408. "name": "apiVersion",
  6409. "in": "path",
  6410. "required": true,
  6411. "schema": {
  6412. "type": "string",
  6413. "enum": [
  6414. "v1"
  6415. ],
  6416. "default": "v1"
  6417. }
  6418. },
  6419. {
  6420. "name": "token",
  6421. "in": "path",
  6422. "required": true,
  6423. "schema": {
  6424. "type": "string",
  6425. "pattern": "^[a-z0-9]{4,30}$"
  6426. }
  6427. },
  6428. {
  6429. "name": "messageId",
  6430. "in": "path",
  6431. "description": "ID of the message",
  6432. "required": true,
  6433. "schema": {
  6434. "type": "integer",
  6435. "format": "int64",
  6436. "minimum": 0
  6437. }
  6438. },
  6439. {
  6440. "name": "OCS-APIRequest",
  6441. "in": "header",
  6442. "description": "Required to be true for the API request to pass",
  6443. "required": true,
  6444. "schema": {
  6445. "type": "boolean",
  6446. "default": true
  6447. }
  6448. }
  6449. ],
  6450. "responses": {
  6451. "200": {
  6452. "description": "Message deleted successfully",
  6453. "headers": {
  6454. "X-Chat-Last-Common-Read": {
  6455. "schema": {
  6456. "type": "string"
  6457. }
  6458. }
  6459. },
  6460. "content": {
  6461. "application/json": {
  6462. "schema": {
  6463. "type": "object",
  6464. "required": [
  6465. "ocs"
  6466. ],
  6467. "properties": {
  6468. "ocs": {
  6469. "type": "object",
  6470. "required": [
  6471. "meta",
  6472. "data"
  6473. ],
  6474. "properties": {
  6475. "meta": {
  6476. "$ref": "#/components/schemas/OCSMeta"
  6477. },
  6478. "data": {
  6479. "$ref": "#/components/schemas/ChatMessageWithParent"
  6480. }
  6481. }
  6482. }
  6483. }
  6484. }
  6485. }
  6486. }
  6487. },
  6488. "202": {
  6489. "description": "Message deleted successfully, but a bot or Matterbridge is configured, so the information can be replicated elsewhere",
  6490. "headers": {
  6491. "X-Chat-Last-Common-Read": {
  6492. "schema": {
  6493. "type": "string"
  6494. }
  6495. }
  6496. },
  6497. "content": {
  6498. "application/json": {
  6499. "schema": {
  6500. "type": "object",
  6501. "required": [
  6502. "ocs"
  6503. ],
  6504. "properties": {
  6505. "ocs": {
  6506. "type": "object",
  6507. "required": [
  6508. "meta",
  6509. "data"
  6510. ],
  6511. "properties": {
  6512. "meta": {
  6513. "$ref": "#/components/schemas/OCSMeta"
  6514. },
  6515. "data": {
  6516. "$ref": "#/components/schemas/ChatMessageWithParent"
  6517. }
  6518. }
  6519. }
  6520. }
  6521. }
  6522. }
  6523. }
  6524. },
  6525. "400": {
  6526. "description": "Deleting message is not possible",
  6527. "content": {
  6528. "application/json": {
  6529. "schema": {
  6530. "type": "object",
  6531. "required": [
  6532. "ocs"
  6533. ],
  6534. "properties": {
  6535. "ocs": {
  6536. "type": "object",
  6537. "required": [
  6538. "meta",
  6539. "data"
  6540. ],
  6541. "properties": {
  6542. "meta": {
  6543. "$ref": "#/components/schemas/OCSMeta"
  6544. },
  6545. "data": {
  6546. "type": "object",
  6547. "required": [
  6548. "error"
  6549. ],
  6550. "properties": {
  6551. "error": {
  6552. "type": "string"
  6553. }
  6554. }
  6555. }
  6556. }
  6557. }
  6558. }
  6559. }
  6560. }
  6561. }
  6562. },
  6563. "403": {
  6564. "description": "Missing permissions to delete message",
  6565. "content": {
  6566. "application/json": {
  6567. "schema": {
  6568. "type": "object",
  6569. "required": [
  6570. "ocs"
  6571. ],
  6572. "properties": {
  6573. "ocs": {
  6574. "type": "object",
  6575. "required": [
  6576. "meta",
  6577. "data"
  6578. ],
  6579. "properties": {
  6580. "meta": {
  6581. "$ref": "#/components/schemas/OCSMeta"
  6582. },
  6583. "data": {
  6584. "type": "object",
  6585. "required": [
  6586. "error"
  6587. ],
  6588. "properties": {
  6589. "error": {
  6590. "type": "string"
  6591. }
  6592. }
  6593. }
  6594. }
  6595. }
  6596. }
  6597. }
  6598. }
  6599. }
  6600. },
  6601. "404": {
  6602. "description": "Message not found",
  6603. "content": {
  6604. "application/json": {
  6605. "schema": {
  6606. "type": "object",
  6607. "required": [
  6608. "ocs"
  6609. ],
  6610. "properties": {
  6611. "ocs": {
  6612. "type": "object",
  6613. "required": [
  6614. "meta",
  6615. "data"
  6616. ],
  6617. "properties": {
  6618. "meta": {
  6619. "$ref": "#/components/schemas/OCSMeta"
  6620. },
  6621. "data": {
  6622. "type": "object",
  6623. "required": [
  6624. "error"
  6625. ],
  6626. "properties": {
  6627. "error": {
  6628. "type": "string"
  6629. }
  6630. }
  6631. }
  6632. }
  6633. }
  6634. }
  6635. }
  6636. }
  6637. }
  6638. },
  6639. "405": {
  6640. "description": "Deleting this message type is not allowed",
  6641. "content": {
  6642. "application/json": {
  6643. "schema": {
  6644. "type": "object",
  6645. "required": [
  6646. "ocs"
  6647. ],
  6648. "properties": {
  6649. "ocs": {
  6650. "type": "object",
  6651. "required": [
  6652. "meta",
  6653. "data"
  6654. ],
  6655. "properties": {
  6656. "meta": {
  6657. "$ref": "#/components/schemas/OCSMeta"
  6658. },
  6659. "data": {
  6660. "type": "object",
  6661. "required": [
  6662. "error"
  6663. ],
  6664. "properties": {
  6665. "error": {
  6666. "type": "string"
  6667. }
  6668. }
  6669. }
  6670. }
  6671. }
  6672. }
  6673. }
  6674. }
  6675. }
  6676. }
  6677. }
  6678. },
  6679. "put": {
  6680. "operationId": "chat-edit-message",
  6681. "summary": "Edit a chat message",
  6682. "tags": [
  6683. "chat"
  6684. ],
  6685. "security": [
  6686. {},
  6687. {
  6688. "bearer_auth": []
  6689. },
  6690. {
  6691. "basic_auth": []
  6692. }
  6693. ],
  6694. "requestBody": {
  6695. "required": true,
  6696. "content": {
  6697. "application/json": {
  6698. "schema": {
  6699. "type": "object",
  6700. "required": [
  6701. "message"
  6702. ],
  6703. "properties": {
  6704. "message": {
  6705. "type": "string",
  6706. "description": "the message to send"
  6707. }
  6708. }
  6709. }
  6710. }
  6711. }
  6712. },
  6713. "parameters": [
  6714. {
  6715. "name": "apiVersion",
  6716. "in": "path",
  6717. "required": true,
  6718. "schema": {
  6719. "type": "string",
  6720. "enum": [
  6721. "v1"
  6722. ],
  6723. "default": "v1"
  6724. }
  6725. },
  6726. {
  6727. "name": "token",
  6728. "in": "path",
  6729. "required": true,
  6730. "schema": {
  6731. "type": "string",
  6732. "pattern": "^[a-z0-9]{4,30}$"
  6733. }
  6734. },
  6735. {
  6736. "name": "messageId",
  6737. "in": "path",
  6738. "description": "ID of the message",
  6739. "required": true,
  6740. "schema": {
  6741. "type": "integer",
  6742. "format": "int64",
  6743. "minimum": 0
  6744. }
  6745. },
  6746. {
  6747. "name": "OCS-APIRequest",
  6748. "in": "header",
  6749. "description": "Required to be true for the API request to pass",
  6750. "required": true,
  6751. "schema": {
  6752. "type": "boolean",
  6753. "default": true
  6754. }
  6755. }
  6756. ],
  6757. "responses": {
  6758. "200": {
  6759. "description": "Message edited successfully",
  6760. "headers": {
  6761. "X-Chat-Last-Common-Read": {
  6762. "schema": {
  6763. "type": "string"
  6764. }
  6765. }
  6766. },
  6767. "content": {
  6768. "application/json": {
  6769. "schema": {
  6770. "type": "object",
  6771. "required": [
  6772. "ocs"
  6773. ],
  6774. "properties": {
  6775. "ocs": {
  6776. "type": "object",
  6777. "required": [
  6778. "meta",
  6779. "data"
  6780. ],
  6781. "properties": {
  6782. "meta": {
  6783. "$ref": "#/components/schemas/OCSMeta"
  6784. },
  6785. "data": {
  6786. "$ref": "#/components/schemas/ChatMessageWithParent"
  6787. }
  6788. }
  6789. }
  6790. }
  6791. }
  6792. }
  6793. }
  6794. },
  6795. "202": {
  6796. "description": "Message edited successfully, but a bot or Matterbridge is configured, so the information can be replicated to other services",
  6797. "headers": {
  6798. "X-Chat-Last-Common-Read": {
  6799. "schema": {
  6800. "type": "string"
  6801. }
  6802. }
  6803. },
  6804. "content": {
  6805. "application/json": {
  6806. "schema": {
  6807. "type": "object",
  6808. "required": [
  6809. "ocs"
  6810. ],
  6811. "properties": {
  6812. "ocs": {
  6813. "type": "object",
  6814. "required": [
  6815. "meta",
  6816. "data"
  6817. ],
  6818. "properties": {
  6819. "meta": {
  6820. "$ref": "#/components/schemas/OCSMeta"
  6821. },
  6822. "data": {
  6823. "$ref": "#/components/schemas/ChatMessageWithParent"
  6824. }
  6825. }
  6826. }
  6827. }
  6828. }
  6829. }
  6830. }
  6831. },
  6832. "400": {
  6833. "description": "Editing message is not possible, e.g. when the new message is empty or the message is too old",
  6834. "content": {
  6835. "application/json": {
  6836. "schema": {
  6837. "type": "object",
  6838. "required": [
  6839. "ocs"
  6840. ],
  6841. "properties": {
  6842. "ocs": {
  6843. "type": "object",
  6844. "required": [
  6845. "meta",
  6846. "data"
  6847. ],
  6848. "properties": {
  6849. "meta": {
  6850. "$ref": "#/components/schemas/OCSMeta"
  6851. },
  6852. "data": {
  6853. "type": "object",
  6854. "required": [
  6855. "error"
  6856. ],
  6857. "properties": {
  6858. "error": {
  6859. "type": "string"
  6860. }
  6861. }
  6862. }
  6863. }
  6864. }
  6865. }
  6866. }
  6867. }
  6868. }
  6869. },
  6870. "403": {
  6871. "description": "Missing permissions to edit message",
  6872. "content": {
  6873. "application/json": {
  6874. "schema": {
  6875. "type": "object",
  6876. "required": [
  6877. "ocs"
  6878. ],
  6879. "properties": {
  6880. "ocs": {
  6881. "type": "object",
  6882. "required": [
  6883. "meta",
  6884. "data"
  6885. ],
  6886. "properties": {
  6887. "meta": {
  6888. "$ref": "#/components/schemas/OCSMeta"
  6889. },
  6890. "data": {
  6891. "type": "object",
  6892. "required": [
  6893. "error"
  6894. ],
  6895. "properties": {
  6896. "error": {
  6897. "type": "string"
  6898. }
  6899. }
  6900. }
  6901. }
  6902. }
  6903. }
  6904. }
  6905. }
  6906. }
  6907. },
  6908. "404": {
  6909. "description": "Message not found",
  6910. "content": {
  6911. "application/json": {
  6912. "schema": {
  6913. "type": "object",
  6914. "required": [
  6915. "ocs"
  6916. ],
  6917. "properties": {
  6918. "ocs": {
  6919. "type": "object",
  6920. "required": [
  6921. "meta",
  6922. "data"
  6923. ],
  6924. "properties": {
  6925. "meta": {
  6926. "$ref": "#/components/schemas/OCSMeta"
  6927. },
  6928. "data": {
  6929. "type": "object",
  6930. "required": [
  6931. "error"
  6932. ],
  6933. "properties": {
  6934. "error": {
  6935. "type": "string"
  6936. }
  6937. }
  6938. }
  6939. }
  6940. }
  6941. }
  6942. }
  6943. }
  6944. }
  6945. },
  6946. "405": {
  6947. "description": "Editing this message type is not allowed",
  6948. "content": {
  6949. "application/json": {
  6950. "schema": {
  6951. "type": "object",
  6952. "required": [
  6953. "ocs"
  6954. ],
  6955. "properties": {
  6956. "ocs": {
  6957. "type": "object",
  6958. "required": [
  6959. "meta",
  6960. "data"
  6961. ],
  6962. "properties": {
  6963. "meta": {
  6964. "$ref": "#/components/schemas/OCSMeta"
  6965. },
  6966. "data": {
  6967. "type": "object",
  6968. "required": [
  6969. "error"
  6970. ],
  6971. "properties": {
  6972. "error": {
  6973. "type": "string"
  6974. }
  6975. }
  6976. }
  6977. }
  6978. }
  6979. }
  6980. }
  6981. }
  6982. }
  6983. },
  6984. "413": {
  6985. "description": "Message too long",
  6986. "content": {
  6987. "application/json": {
  6988. "schema": {
  6989. "type": "object",
  6990. "required": [
  6991. "ocs"
  6992. ],
  6993. "properties": {
  6994. "ocs": {
  6995. "type": "object",
  6996. "required": [
  6997. "meta",
  6998. "data"
  6999. ],
  7000. "properties": {
  7001. "meta": {
  7002. "$ref": "#/components/schemas/OCSMeta"
  7003. },
  7004. "data": {
  7005. "type": "object",
  7006. "required": [
  7007. "error"
  7008. ],
  7009. "properties": {
  7010. "error": {
  7011. "type": "string"
  7012. }
  7013. }
  7014. }
  7015. }
  7016. }
  7017. }
  7018. }
  7019. }
  7020. }
  7021. }
  7022. }
  7023. }
  7024. },
  7025. "/ocs/v2.php/apps/spreed/api/{apiVersion}/chat/{token}/{messageId}/context": {
  7026. "get": {
  7027. "operationId": "chat-get-message-context",
  7028. "summary": "Get the context of a message",
  7029. "tags": [
  7030. "chat"
  7031. ],
  7032. "security": [
  7033. {},
  7034. {
  7035. "bearer_auth": []
  7036. },
  7037. {
  7038. "basic_auth": []
  7039. }
  7040. ],
  7041. "parameters": [
  7042. {
  7043. "name": "apiVersion",
  7044. "in": "path",
  7045. "required": true,
  7046. "schema": {
  7047. "type": "string",
  7048. "enum": [
  7049. "v1"
  7050. ],
  7051. "default": "v1"
  7052. }
  7053. },
  7054. {
  7055. "name": "token",
  7056. "in": "path",
  7057. "required": true,
  7058. "schema": {
  7059. "type": "string",
  7060. "pattern": "^[a-z0-9]{4,30}$"
  7061. }
  7062. },
  7063. {
  7064. "name": "messageId",
  7065. "in": "path",
  7066. "description": "The focused message which should be in the \"middle\" of the returned context",
  7067. "required": true,
  7068. "schema": {
  7069. "type": "integer",
  7070. "format": "int64",
  7071. "minimum": 0
  7072. }
  7073. },
  7074. {
  7075. "name": "limit",
  7076. "in": "query",
  7077. "description": "Number of chat messages to receive in both directions (50 by default, 100 at most, might return 201 messages)",
  7078. "schema": {
  7079. "type": "integer",
  7080. "format": "int64",
  7081. "default": 50,
  7082. "minimum": 1,
  7083. "maximum": 100
  7084. }
  7085. },
  7086. {
  7087. "name": "OCS-APIRequest",
  7088. "in": "header",
  7089. "description": "Required to be true for the API request to pass",
  7090. "required": true,
  7091. "schema": {
  7092. "type": "boolean",
  7093. "default": true
  7094. }
  7095. }
  7096. ],
  7097. "responses": {
  7098. "200": {
  7099. "description": "Message context returned",
  7100. "headers": {
  7101. "X-Chat-Last-Common-Read": {
  7102. "schema": {
  7103. "type": "string"
  7104. }
  7105. },
  7106. "X-Chat-Last-Given": {
  7107. "schema": {
  7108. "type": "string"
  7109. }
  7110. }
  7111. },
  7112. "content": {
  7113. "application/json": {
  7114. "schema": {
  7115. "type": "object",
  7116. "required": [
  7117. "ocs"
  7118. ],
  7119. "properties": {
  7120. "ocs": {
  7121. "type": "object",
  7122. "required": [
  7123. "meta",
  7124. "data"
  7125. ],
  7126. "properties": {
  7127. "meta": {
  7128. "$ref": "#/components/schemas/OCSMeta"
  7129. },
  7130. "data": {
  7131. "type": "array",
  7132. "items": {
  7133. "$ref": "#/components/schemas/ChatMessageWithParent"
  7134. }
  7135. }
  7136. }
  7137. }
  7138. }
  7139. }
  7140. }
  7141. }
  7142. },
  7143. "304": {
  7144. "description": "No messages"
  7145. }
  7146. }
  7147. }
  7148. },
  7149. "/ocs/v2.php/apps/spreed/api/{apiVersion}/chat/{token}/{messageId}/reminder": {
  7150. "post": {
  7151. "operationId": "chat-set-reminder",
  7152. "summary": "Set a reminder for a chat message",
  7153. "tags": [
  7154. "chat"
  7155. ],
  7156. "security": [
  7157. {
  7158. "bearer_auth": []
  7159. },
  7160. {
  7161. "basic_auth": []
  7162. }
  7163. ],
  7164. "requestBody": {
  7165. "required": true,
  7166. "content": {
  7167. "application/json": {
  7168. "schema": {
  7169. "type": "object",
  7170. "required": [
  7171. "timestamp"
  7172. ],
  7173. "properties": {
  7174. "timestamp": {
  7175. "type": "integer",
  7176. "format": "int64",
  7177. "description": "Timestamp of the reminder",
  7178. "minimum": 0
  7179. }
  7180. }
  7181. }
  7182. }
  7183. }
  7184. },
  7185. "parameters": [
  7186. {
  7187. "name": "apiVersion",
  7188. "in": "path",
  7189. "required": true,
  7190. "schema": {
  7191. "type": "string",
  7192. "enum": [
  7193. "v1"
  7194. ],
  7195. "default": "v1"
  7196. }
  7197. },
  7198. {
  7199. "name": "token",
  7200. "in": "path",
  7201. "required": true,
  7202. "schema": {
  7203. "type": "string",
  7204. "pattern": "^[a-z0-9]{4,30}$"
  7205. }
  7206. },
  7207. {
  7208. "name": "messageId",
  7209. "in": "path",
  7210. "description": "ID of the message",
  7211. "required": true,
  7212. "schema": {
  7213. "type": "integer",
  7214. "format": "int64",
  7215. "minimum": 0
  7216. }
  7217. },
  7218. {
  7219. "name": "OCS-APIRequest",
  7220. "in": "header",
  7221. "description": "Required to be true for the API request to pass",
  7222. "required": true,
  7223. "schema": {
  7224. "type": "boolean",
  7225. "default": true
  7226. }
  7227. }
  7228. ],
  7229. "responses": {
  7230. "201": {
  7231. "description": "Reminder created successfully",
  7232. "content": {
  7233. "application/json": {
  7234. "schema": {
  7235. "type": "object",
  7236. "required": [
  7237. "ocs"
  7238. ],
  7239. "properties": {
  7240. "ocs": {
  7241. "type": "object",
  7242. "required": [
  7243. "meta",
  7244. "data"
  7245. ],
  7246. "properties": {
  7247. "meta": {
  7248. "$ref": "#/components/schemas/OCSMeta"
  7249. },
  7250. "data": {
  7251. "$ref": "#/components/schemas/ChatReminder"
  7252. }
  7253. }
  7254. }
  7255. }
  7256. }
  7257. }
  7258. }
  7259. },
  7260. "404": {
  7261. "description": "Message not found",
  7262. "content": {
  7263. "application/json": {
  7264. "schema": {
  7265. "type": "object",
  7266. "required": [
  7267. "ocs"
  7268. ],
  7269. "properties": {
  7270. "ocs": {
  7271. "type": "object",
  7272. "required": [
  7273. "meta",
  7274. "data"
  7275. ],
  7276. "properties": {
  7277. "meta": {
  7278. "$ref": "#/components/schemas/OCSMeta"
  7279. },
  7280. "data": {
  7281. "type": "object",
  7282. "properties": {
  7283. "error": {
  7284. "type": "string"
  7285. }
  7286. }
  7287. }
  7288. }
  7289. }
  7290. }
  7291. }
  7292. }
  7293. }
  7294. }
  7295. }
  7296. },
  7297. "get": {
  7298. "operationId": "chat-get-reminder",
  7299. "summary": "Get the reminder for a chat message",
  7300. "tags": [
  7301. "chat"
  7302. ],
  7303. "security": [
  7304. {
  7305. "bearer_auth": []
  7306. },
  7307. {
  7308. "basic_auth": []
  7309. }
  7310. ],
  7311. "parameters": [
  7312. {
  7313. "name": "apiVersion",
  7314. "in": "path",
  7315. "required": true,
  7316. "schema": {
  7317. "type": "string",
  7318. "enum": [
  7319. "v1"
  7320. ],
  7321. "default": "v1"
  7322. }
  7323. },
  7324. {
  7325. "name": "token",
  7326. "in": "path",
  7327. "required": true,
  7328. "schema": {
  7329. "type": "string",
  7330. "pattern": "^[a-z0-9]{4,30}$"
  7331. }
  7332. },
  7333. {
  7334. "name": "messageId",
  7335. "in": "path",
  7336. "description": "ID of the message",
  7337. "required": true,
  7338. "schema": {
  7339. "type": "integer",
  7340. "format": "int64",
  7341. "minimum": 0
  7342. }
  7343. },
  7344. {
  7345. "name": "OCS-APIRequest",
  7346. "in": "header",
  7347. "description": "Required to be true for the API request to pass",
  7348. "required": true,
  7349. "schema": {
  7350. "type": "boolean",
  7351. "default": true
  7352. }
  7353. }
  7354. ],
  7355. "responses": {
  7356. "200": {
  7357. "description": "Reminder returned",
  7358. "content": {
  7359. "application/json": {
  7360. "schema": {
  7361. "type": "object",
  7362. "required": [
  7363. "ocs"
  7364. ],
  7365. "properties": {
  7366. "ocs": {
  7367. "type": "object",
  7368. "required": [
  7369. "meta",
  7370. "data"
  7371. ],
  7372. "properties": {
  7373. "meta": {
  7374. "$ref": "#/components/schemas/OCSMeta"
  7375. },
  7376. "data": {
  7377. "$ref": "#/components/schemas/ChatReminder"
  7378. }
  7379. }
  7380. }
  7381. }
  7382. }
  7383. }
  7384. }
  7385. },
  7386. "404": {
  7387. "description": "Message not found",
  7388. "content": {
  7389. "application/json": {
  7390. "schema": {
  7391. "type": "object",
  7392. "required": [
  7393. "ocs"
  7394. ],
  7395. "properties": {
  7396. "ocs": {
  7397. "type": "object",
  7398. "required": [
  7399. "meta",
  7400. "data"
  7401. ],
  7402. "properties": {
  7403. "meta": {
  7404. "$ref": "#/components/schemas/OCSMeta"
  7405. },
  7406. "data": {
  7407. "type": "object",
  7408. "properties": {
  7409. "error": {
  7410. "type": "string"
  7411. }
  7412. }
  7413. }
  7414. }
  7415. }
  7416. }
  7417. }
  7418. }
  7419. }
  7420. }
  7421. }
  7422. },
  7423. "delete": {
  7424. "operationId": "chat-delete-reminder",
  7425. "summary": "Delete a chat reminder",
  7426. "tags": [
  7427. "chat"
  7428. ],
  7429. "security": [
  7430. {
  7431. "bearer_auth": []
  7432. },
  7433. {
  7434. "basic_auth": []
  7435. }
  7436. ],
  7437. "parameters": [
  7438. {
  7439. "name": "apiVersion",
  7440. "in": "path",
  7441. "required": true,
  7442. "schema": {
  7443. "type": "string",
  7444. "enum": [
  7445. "v1"
  7446. ],
  7447. "default": "v1"
  7448. }
  7449. },
  7450. {
  7451. "name": "token",
  7452. "in": "path",
  7453. "required": true,
  7454. "schema": {
  7455. "type": "string",
  7456. "pattern": "^[a-z0-9]{4,30}$"
  7457. }
  7458. },
  7459. {
  7460. "name": "messageId",
  7461. "in": "path",
  7462. "description": "ID of the message",
  7463. "required": true,
  7464. "schema": {
  7465. "type": "integer",
  7466. "format": "int64",
  7467. "minimum": 0
  7468. }
  7469. },
  7470. {
  7471. "name": "OCS-APIRequest",
  7472. "in": "header",
  7473. "description": "Required to be true for the API request to pass",
  7474. "required": true,
  7475. "schema": {
  7476. "type": "boolean",
  7477. "default": true
  7478. }
  7479. }
  7480. ],
  7481. "responses": {
  7482. "200": {
  7483. "description": "Reminder deleted successfully",
  7484. "content": {
  7485. "application/json": {
  7486. "schema": {
  7487. "type": "object",
  7488. "required": [
  7489. "ocs"
  7490. ],
  7491. "properties": {
  7492. "ocs": {
  7493. "type": "object",
  7494. "required": [
  7495. "meta",
  7496. "data"
  7497. ],
  7498. "properties": {
  7499. "meta": {
  7500. "$ref": "#/components/schemas/OCSMeta"
  7501. },
  7502. "data": {
  7503. "type": "object",
  7504. "properties": {
  7505. "error": {
  7506. "type": "string"
  7507. }
  7508. }
  7509. }
  7510. }
  7511. }
  7512. }
  7513. }
  7514. }
  7515. }
  7516. },
  7517. "404": {
  7518. "description": "Message not found",
  7519. "content": {
  7520. "application/json": {
  7521. "schema": {
  7522. "type": "object",
  7523. "required": [
  7524. "ocs"
  7525. ],
  7526. "properties": {
  7527. "ocs": {
  7528. "type": "object",
  7529. "required": [
  7530. "meta",
  7531. "data"
  7532. ],
  7533. "properties": {
  7534. "meta": {
  7535. "$ref": "#/components/schemas/OCSMeta"
  7536. },
  7537. "data": {
  7538. "type": "object",
  7539. "properties": {
  7540. "error": {
  7541. "type": "string"
  7542. }
  7543. }
  7544. }
  7545. }
  7546. }
  7547. }
  7548. }
  7549. }
  7550. }
  7551. }
  7552. }
  7553. }
  7554. },
  7555. "/ocs/v2.php/apps/spreed/api/{apiVersion}/chat/{token}/read": {
  7556. "post": {
  7557. "operationId": "chat-set-read-marker",
  7558. "summary": "Set the read marker to a specific message",
  7559. "tags": [
  7560. "chat"
  7561. ],
  7562. "security": [
  7563. {},
  7564. {
  7565. "bearer_auth": []
  7566. },
  7567. {
  7568. "basic_auth": []
  7569. }
  7570. ],
  7571. "requestBody": {
  7572. "required": false,
  7573. "content": {
  7574. "application/json": {
  7575. "schema": {
  7576. "type": "object",
  7577. "properties": {
  7578. "lastReadMessage": {
  7579. "type": "integer",
  7580. "format": "int64",
  7581. "nullable": true,
  7582. "description": "ID if the last read message (Optional only with `chat-read-last` capability)",
  7583. "minimum": -2
  7584. }
  7585. }
  7586. }
  7587. }
  7588. }
  7589. },
  7590. "parameters": [
  7591. {
  7592. "name": "apiVersion",
  7593. "in": "path",
  7594. "required": true,
  7595. "schema": {
  7596. "type": "string",
  7597. "enum": [
  7598. "v1"
  7599. ],
  7600. "default": "v1"
  7601. }
  7602. },
  7603. {
  7604. "name": "token",
  7605. "in": "path",
  7606. "required": true,
  7607. "schema": {
  7608. "type": "string",
  7609. "pattern": "^[a-z0-9]{4,30}$"
  7610. }
  7611. },
  7612. {
  7613. "name": "OCS-APIRequest",
  7614. "in": "header",
  7615. "description": "Required to be true for the API request to pass",
  7616. "required": true,
  7617. "schema": {
  7618. "type": "boolean",
  7619. "default": true
  7620. }
  7621. }
  7622. ],
  7623. "responses": {
  7624. "200": {
  7625. "description": "Read marker set successfully",
  7626. "headers": {
  7627. "X-Chat-Last-Common-Read": {
  7628. "schema": {
  7629. "type": "string"
  7630. }
  7631. }
  7632. },
  7633. "content": {
  7634. "application/json": {
  7635. "schema": {
  7636. "type": "object",
  7637. "required": [
  7638. "ocs"
  7639. ],
  7640. "properties": {
  7641. "ocs": {
  7642. "type": "object",
  7643. "required": [
  7644. "meta",
  7645. "data"
  7646. ],
  7647. "properties": {
  7648. "meta": {
  7649. "$ref": "#/components/schemas/OCSMeta"
  7650. },
  7651. "data": {
  7652. "$ref": "#/components/schemas/Room"
  7653. }
  7654. }
  7655. }
  7656. }
  7657. }
  7658. }
  7659. }
  7660. }
  7661. }
  7662. },
  7663. "delete": {
  7664. "operationId": "chat-mark-unread",
  7665. "summary": "Mark a chat as unread",
  7666. "tags": [
  7667. "chat"
  7668. ],
  7669. "security": [
  7670. {},
  7671. {
  7672. "bearer_auth": []
  7673. },
  7674. {
  7675. "basic_auth": []
  7676. }
  7677. ],
  7678. "parameters": [
  7679. {
  7680. "name": "apiVersion",
  7681. "in": "path",
  7682. "required": true,
  7683. "schema": {
  7684. "type": "string",
  7685. "enum": [
  7686. "v1"
  7687. ],
  7688. "default": "v1"
  7689. }
  7690. },
  7691. {
  7692. "name": "token",
  7693. "in": "path",
  7694. "required": true,
  7695. "schema": {
  7696. "type": "string",
  7697. "pattern": "^[a-z0-9]{4,30}$"
  7698. }
  7699. },
  7700. {
  7701. "name": "OCS-APIRequest",
  7702. "in": "header",
  7703. "description": "Required to be true for the API request to pass",
  7704. "required": true,
  7705. "schema": {
  7706. "type": "boolean",
  7707. "default": true
  7708. }
  7709. }
  7710. ],
  7711. "responses": {
  7712. "200": {
  7713. "description": "Read marker set successfully",
  7714. "headers": {
  7715. "X-Chat-Last-Common-Read": {
  7716. "schema": {
  7717. "type": "string"
  7718. }
  7719. }
  7720. },
  7721. "content": {
  7722. "application/json": {
  7723. "schema": {
  7724. "type": "object",
  7725. "required": [
  7726. "ocs"
  7727. ],
  7728. "properties": {
  7729. "ocs": {
  7730. "type": "object",
  7731. "required": [
  7732. "meta",
  7733. "data"
  7734. ],
  7735. "properties": {
  7736. "meta": {
  7737. "$ref": "#/components/schemas/OCSMeta"
  7738. },
  7739. "data": {
  7740. "$ref": "#/components/schemas/Room"
  7741. }
  7742. }
  7743. }
  7744. }
  7745. }
  7746. }
  7747. }
  7748. }
  7749. }
  7750. }
  7751. },
  7752. "/ocs/v2.php/apps/spreed/api/{apiVersion}/chat/{token}/mentions": {
  7753. "get": {
  7754. "operationId": "chat-mentions",
  7755. "summary": "Search for mentions",
  7756. "tags": [
  7757. "chat"
  7758. ],
  7759. "security": [
  7760. {},
  7761. {
  7762. "bearer_auth": []
  7763. },
  7764. {
  7765. "basic_auth": []
  7766. }
  7767. ],
  7768. "parameters": [
  7769. {
  7770. "name": "apiVersion",
  7771. "in": "path",
  7772. "required": true,
  7773. "schema": {
  7774. "type": "string",
  7775. "enum": [
  7776. "v1"
  7777. ],
  7778. "default": "v1"
  7779. }
  7780. },
  7781. {
  7782. "name": "token",
  7783. "in": "path",
  7784. "required": true,
  7785. "schema": {
  7786. "type": "string",
  7787. "pattern": "^[a-z0-9]{4,30}$"
  7788. }
  7789. },
  7790. {
  7791. "name": "search",
  7792. "in": "query",
  7793. "description": "Text to search for",
  7794. "required": true,
  7795. "schema": {
  7796. "type": "string"
  7797. }
  7798. },
  7799. {
  7800. "name": "limit",
  7801. "in": "query",
  7802. "description": "Maximum number of results",
  7803. "schema": {
  7804. "type": "integer",
  7805. "format": "int64",
  7806. "default": 20
  7807. }
  7808. },
  7809. {
  7810. "name": "includeStatus",
  7811. "in": "query",
  7812. "description": "Include the user statuses",
  7813. "schema": {
  7814. "type": "integer",
  7815. "default": 0,
  7816. "enum": [
  7817. 0,
  7818. 1
  7819. ]
  7820. }
  7821. },
  7822. {
  7823. "name": "OCS-APIRequest",
  7824. "in": "header",
  7825. "description": "Required to be true for the API request to pass",
  7826. "required": true,
  7827. "schema": {
  7828. "type": "boolean",
  7829. "default": true
  7830. }
  7831. }
  7832. ],
  7833. "responses": {
  7834. "200": {
  7835. "description": "List of mention suggestions returned",
  7836. "content": {
  7837. "application/json": {
  7838. "schema": {
  7839. "type": "object",
  7840. "required": [
  7841. "ocs"
  7842. ],
  7843. "properties": {
  7844. "ocs": {
  7845. "type": "object",
  7846. "required": [
  7847. "meta",
  7848. "data"
  7849. ],
  7850. "properties": {
  7851. "meta": {
  7852. "$ref": "#/components/schemas/OCSMeta"
  7853. },
  7854. "data": {
  7855. "type": "array",
  7856. "items": {
  7857. "$ref": "#/components/schemas/ChatMentionSuggestion"
  7858. }
  7859. }
  7860. }
  7861. }
  7862. }
  7863. }
  7864. }
  7865. }
  7866. }
  7867. }
  7868. }
  7869. },
  7870. "/ocs/v2.php/apps/spreed/api/{apiVersion}/chat/{token}/share": {
  7871. "post": {
  7872. "operationId": "chat-share-object-to-chat",
  7873. "summary": "Sends a rich-object to the given room",
  7874. "description": "The author and timestamp are automatically set to the current user/guest and time.",
  7875. "tags": [
  7876. "chat"
  7877. ],
  7878. "security": [
  7879. {},
  7880. {
  7881. "bearer_auth": []
  7882. },
  7883. {
  7884. "basic_auth": []
  7885. }
  7886. ],
  7887. "requestBody": {
  7888. "required": true,
  7889. "content": {
  7890. "application/json": {
  7891. "schema": {
  7892. "type": "object",
  7893. "required": [
  7894. "objectType",
  7895. "objectId"
  7896. ],
  7897. "properties": {
  7898. "objectType": {
  7899. "type": "string",
  7900. "description": "Type of the object"
  7901. },
  7902. "objectId": {
  7903. "type": "string",
  7904. "description": "ID of the object"
  7905. },
  7906. "metaData": {
  7907. "type": "string",
  7908. "default": "",
  7909. "description": "Additional metadata"
  7910. },
  7911. "actorDisplayName": {
  7912. "type": "string",
  7913. "default": "",
  7914. "description": "Guest name"
  7915. },
  7916. "referenceId": {
  7917. "type": "string",
  7918. "default": "",
  7919. "description": "Reference ID"
  7920. }
  7921. }
  7922. }
  7923. }
  7924. }
  7925. },
  7926. "parameters": [
  7927. {
  7928. "name": "apiVersion",
  7929. "in": "path",
  7930. "required": true,
  7931. "schema": {
  7932. "type": "string",
  7933. "enum": [
  7934. "v1"
  7935. ],
  7936. "default": "v1"
  7937. }
  7938. },
  7939. {
  7940. "name": "token",
  7941. "in": "path",
  7942. "required": true,
  7943. "schema": {
  7944. "type": "string",
  7945. "pattern": "^[a-z0-9]{4,30}$"
  7946. }
  7947. },
  7948. {
  7949. "name": "OCS-APIRequest",
  7950. "in": "header",
  7951. "description": "Required to be true for the API request to pass",
  7952. "required": true,
  7953. "schema": {
  7954. "type": "boolean",
  7955. "default": true
  7956. }
  7957. }
  7958. ],
  7959. "responses": {
  7960. "201": {
  7961. "description": "Object shared successfully",
  7962. "headers": {
  7963. "X-Chat-Last-Common-Read": {
  7964. "schema": {
  7965. "type": "string"
  7966. }
  7967. }
  7968. },
  7969. "content": {
  7970. "application/json": {
  7971. "schema": {
  7972. "type": "object",
  7973. "required": [
  7974. "ocs"
  7975. ],
  7976. "properties": {
  7977. "ocs": {
  7978. "type": "object",
  7979. "required": [
  7980. "meta",
  7981. "data"
  7982. ],
  7983. "properties": {
  7984. "meta": {
  7985. "$ref": "#/components/schemas/OCSMeta"
  7986. },
  7987. "data": {
  7988. "$ref": "#/components/schemas/ChatMessageWithParent",
  7989. "nullable": true
  7990. }
  7991. }
  7992. }
  7993. }
  7994. }
  7995. }
  7996. }
  7997. },
  7998. "400": {
  7999. "description": "Sharing object is not possible",
  8000. "content": {
  8001. "application/json": {
  8002. "schema": {
  8003. "type": "object",
  8004. "required": [
  8005. "ocs"
  8006. ],
  8007. "properties": {
  8008. "ocs": {
  8009. "type": "object",
  8010. "required": [
  8011. "meta",
  8012. "data"
  8013. ],
  8014. "properties": {
  8015. "meta": {
  8016. "$ref": "#/components/schemas/OCSMeta"
  8017. },
  8018. "data": {
  8019. "type": "object",
  8020. "required": [
  8021. "error"
  8022. ],
  8023. "properties": {
  8024. "error": {
  8025. "type": "string"
  8026. }
  8027. }
  8028. }
  8029. }
  8030. }
  8031. }
  8032. }
  8033. }
  8034. }
  8035. },
  8036. "404": {
  8037. "description": "Actor not found",
  8038. "content": {
  8039. "application/json": {
  8040. "schema": {
  8041. "type": "object",
  8042. "required": [
  8043. "ocs"
  8044. ],
  8045. "properties": {
  8046. "ocs": {
  8047. "type": "object",
  8048. "required": [
  8049. "meta",
  8050. "data"
  8051. ],
  8052. "properties": {
  8053. "meta": {
  8054. "$ref": "#/components/schemas/OCSMeta"
  8055. },
  8056. "data": {
  8057. "type": "object",
  8058. "required": [
  8059. "error"
  8060. ],
  8061. "properties": {
  8062. "error": {
  8063. "type": "string"
  8064. }
  8065. }
  8066. }
  8067. }
  8068. }
  8069. }
  8070. }
  8071. }
  8072. }
  8073. },
  8074. "413": {
  8075. "description": "Message too long",
  8076. "content": {
  8077. "application/json": {
  8078. "schema": {
  8079. "type": "object",
  8080. "required": [
  8081. "ocs"
  8082. ],
  8083. "properties": {
  8084. "ocs": {
  8085. "type": "object",
  8086. "required": [
  8087. "meta",
  8088. "data"
  8089. ],
  8090. "properties": {
  8091. "meta": {
  8092. "$ref": "#/components/schemas/OCSMeta"
  8093. },
  8094. "data": {
  8095. "type": "object",
  8096. "required": [
  8097. "error"
  8098. ],
  8099. "properties": {
  8100. "error": {
  8101. "type": "string"
  8102. }
  8103. }
  8104. }
  8105. }
  8106. }
  8107. }
  8108. }
  8109. }
  8110. }
  8111. }
  8112. }
  8113. },
  8114. "get": {
  8115. "operationId": "chat-get-objects-shared-in-room",
  8116. "summary": "Get objects that are shared in the room",
  8117. "tags": [
  8118. "chat"
  8119. ],
  8120. "security": [
  8121. {},
  8122. {
  8123. "bearer_auth": []
  8124. },
  8125. {
  8126. "basic_auth": []
  8127. }
  8128. ],
  8129. "parameters": [
  8130. {
  8131. "name": "apiVersion",
  8132. "in": "path",
  8133. "required": true,
  8134. "schema": {
  8135. "type": "string",
  8136. "enum": [
  8137. "v1"
  8138. ],
  8139. "default": "v1"
  8140. }
  8141. },
  8142. {
  8143. "name": "token",
  8144. "in": "path",
  8145. "required": true,
  8146. "schema": {
  8147. "type": "string",
  8148. "pattern": "^[a-z0-9]{4,30}$"
  8149. }
  8150. },
  8151. {
  8152. "name": "objectType",
  8153. "in": "query",
  8154. "description": "Type of the objects",
  8155. "required": true,
  8156. "schema": {
  8157. "type": "string"
  8158. }
  8159. },
  8160. {
  8161. "name": "lastKnownMessageId",
  8162. "in": "query",
  8163. "description": "ID of the last known message",
  8164. "schema": {
  8165. "type": "integer",
  8166. "format": "int64",
  8167. "default": 0,
  8168. "minimum": 0
  8169. }
  8170. },
  8171. {
  8172. "name": "limit",
  8173. "in": "query",
  8174. "description": "Maximum number of objects",
  8175. "schema": {
  8176. "type": "integer",
  8177. "format": "int64",
  8178. "default": 100,
  8179. "minimum": 1,
  8180. "maximum": 200
  8181. }
  8182. },
  8183. {
  8184. "name": "OCS-APIRequest",
  8185. "in": "header",
  8186. "description": "Required to be true for the API request to pass",
  8187. "required": true,
  8188. "schema": {
  8189. "type": "boolean",
  8190. "default": true
  8191. }
  8192. }
  8193. ],
  8194. "responses": {
  8195. "200": {
  8196. "description": "List of shared objects messages returned",
  8197. "headers": {
  8198. "X-Chat-Last-Given": {
  8199. "schema": {
  8200. "type": "string"
  8201. }
  8202. }
  8203. },
  8204. "content": {
  8205. "application/json": {
  8206. "schema": {
  8207. "type": "object",
  8208. "required": [
  8209. "ocs"
  8210. ],
  8211. "properties": {
  8212. "ocs": {
  8213. "type": "object",
  8214. "required": [
  8215. "meta",
  8216. "data"
  8217. ],
  8218. "properties": {
  8219. "meta": {
  8220. "$ref": "#/components/schemas/OCSMeta"
  8221. },
  8222. "data": {
  8223. "type": "object",
  8224. "additionalProperties": {
  8225. "$ref": "#/components/schemas/ChatMessage"
  8226. }
  8227. }
  8228. }
  8229. }
  8230. }
  8231. }
  8232. }
  8233. }
  8234. }
  8235. }
  8236. }
  8237. },
  8238. "/ocs/v2.php/apps/spreed/api/{apiVersion}/chat/{token}/share/overview": {
  8239. "get": {
  8240. "operationId": "chat-get-objects-shared-in-room-overview",
  8241. "summary": "Get objects that are shared in the room overview",
  8242. "tags": [
  8243. "chat"
  8244. ],
  8245. "security": [
  8246. {},
  8247. {
  8248. "bearer_auth": []
  8249. },
  8250. {
  8251. "basic_auth": []
  8252. }
  8253. ],
  8254. "parameters": [
  8255. {
  8256. "name": "apiVersion",
  8257. "in": "path",
  8258. "required": true,
  8259. "schema": {
  8260. "type": "string",
  8261. "enum": [
  8262. "v1"
  8263. ],
  8264. "default": "v1"
  8265. }
  8266. },
  8267. {
  8268. "name": "token",
  8269. "in": "path",
  8270. "required": true,
  8271. "schema": {
  8272. "type": "string",
  8273. "pattern": "^[a-z0-9]{4,30}$"
  8274. }
  8275. },
  8276. {
  8277. "name": "limit",
  8278. "in": "query",
  8279. "description": "Maximum number of objects",
  8280. "schema": {
  8281. "type": "integer",
  8282. "format": "int64",
  8283. "default": 7,
  8284. "minimum": 1,
  8285. "maximum": 20
  8286. }
  8287. },
  8288. {
  8289. "name": "OCS-APIRequest",
  8290. "in": "header",
  8291. "description": "Required to be true for the API request to pass",
  8292. "required": true,
  8293. "schema": {
  8294. "type": "boolean",
  8295. "default": true
  8296. }
  8297. }
  8298. ],
  8299. "responses": {
  8300. "200": {
  8301. "description": "List of shared objects messages of each type returned",
  8302. "content": {
  8303. "application/json": {
  8304. "schema": {
  8305. "type": "object",
  8306. "required": [
  8307. "ocs"
  8308. ],
  8309. "properties": {
  8310. "ocs": {
  8311. "type": "object",
  8312. "required": [
  8313. "meta",
  8314. "data"
  8315. ],
  8316. "properties": {
  8317. "meta": {
  8318. "$ref": "#/components/schemas/OCSMeta"
  8319. },
  8320. "data": {
  8321. "type": "object",
  8322. "additionalProperties": {
  8323. "type": "array",
  8324. "items": {
  8325. "$ref": "#/components/schemas/ChatMessage"
  8326. }
  8327. }
  8328. }
  8329. }
  8330. }
  8331. }
  8332. }
  8333. }
  8334. }
  8335. }
  8336. }
  8337. }
  8338. },
  8339. "/ocs/v2.php/apps/spreed/api/{apiVersion}/file/{fileId}": {
  8340. "get": {
  8341. "operationId": "files_integration-get-room-by-file-id",
  8342. "summary": "Get the token of the room associated to the given file id",
  8343. "description": "This is the counterpart of self::getRoomByShareToken() for file ids instead of share tokens, although both return the same room token if the given file id and share token refer to the same file.\nIf there is no room associated to the given file id a new room is created; the new room is a public room associated with a \"file\" object with the given file id. Unlike normal rooms in which the owner is the user that created the room these are special rooms without owner (although self joined users with direct access to the file become persistent participants automatically when they join until they explicitly leave or no longer have access to the file).\nIn any case, to create or even get the token of the room, the file must be shared and the user must be the owner of a public share of the file (like a link share, for example) or have direct access to that file; an error is returned otherwise. A user has direct access to a file if they have access to it (or to an ancestor) through a user, group, circle or room share (but not through a link share, for example), or if they are the owner of such a file.",
  8344. "tags": [
  8345. "files_integration"
  8346. ],
  8347. "security": [
  8348. {
  8349. "bearer_auth": []
  8350. },
  8351. {
  8352. "basic_auth": []
  8353. }
  8354. ],
  8355. "parameters": [
  8356. {
  8357. "name": "apiVersion",
  8358. "in": "path",
  8359. "required": true,
  8360. "schema": {
  8361. "type": "string",
  8362. "enum": [
  8363. "v1"
  8364. ],
  8365. "default": "v1"
  8366. }
  8367. },
  8368. {
  8369. "name": "fileId",
  8370. "in": "path",
  8371. "description": "ID of the file",
  8372. "required": true,
  8373. "schema": {
  8374. "type": "string",
  8375. "pattern": "^.+$"
  8376. }
  8377. },
  8378. {
  8379. "name": "OCS-APIRequest",
  8380. "in": "header",
  8381. "description": "Required to be true for the API request to pass",
  8382. "required": true,
  8383. "schema": {
  8384. "type": "boolean",
  8385. "default": true
  8386. }
  8387. }
  8388. ],
  8389. "responses": {
  8390. "200": {
  8391. "description": "Room token returned",
  8392. "content": {
  8393. "application/json": {
  8394. "schema": {
  8395. "type": "object",
  8396. "required": [
  8397. "ocs"
  8398. ],
  8399. "properties": {
  8400. "ocs": {
  8401. "type": "object",
  8402. "required": [
  8403. "meta",
  8404. "data"
  8405. ],
  8406. "properties": {
  8407. "meta": {
  8408. "$ref": "#/components/schemas/OCSMeta"
  8409. },
  8410. "data": {
  8411. "type": "object",
  8412. "required": [
  8413. "token"
  8414. ],
  8415. "properties": {
  8416. "token": {
  8417. "type": "string"
  8418. }
  8419. }
  8420. }
  8421. }
  8422. }
  8423. }
  8424. }
  8425. }
  8426. }
  8427. },
  8428. "400": {
  8429. "description": "Rooms not allowed for shares",
  8430. "content": {
  8431. "application/json": {
  8432. "schema": {
  8433. "type": "object",
  8434. "required": [
  8435. "ocs"
  8436. ],
  8437. "properties": {
  8438. "ocs": {
  8439. "type": "object",
  8440. "required": [
  8441. "meta",
  8442. "data"
  8443. ],
  8444. "properties": {
  8445. "meta": {
  8446. "$ref": "#/components/schemas/OCSMeta"
  8447. },
  8448. "data": {
  8449. "nullable": true
  8450. }
  8451. }
  8452. }
  8453. }
  8454. }
  8455. }
  8456. }
  8457. },
  8458. "404": {
  8459. "description": "Share not found",
  8460. "content": {
  8461. "application/json": {
  8462. "schema": {
  8463. "type": "object",
  8464. "required": [
  8465. "ocs"
  8466. ],
  8467. "properties": {
  8468. "ocs": {
  8469. "type": "object",
  8470. "required": [
  8471. "meta",
  8472. "data"
  8473. ],
  8474. "properties": {
  8475. "meta": {
  8476. "$ref": "#/components/schemas/OCSMeta"
  8477. },
  8478. "data": {}
  8479. }
  8480. }
  8481. }
  8482. }
  8483. }
  8484. }
  8485. }
  8486. }
  8487. }
  8488. },
  8489. "/ocs/v2.php/apps/spreed/api/{apiVersion}/publicshare/{shareToken}": {
  8490. "get": {
  8491. "operationId": "files_integration-get-room-by-share-token",
  8492. "summary": "Returns the token of the room associated to the file of the given share token",
  8493. "description": "This is the counterpart of self::getRoomByFileId() for share tokens instead of file ids, although both return the same room token if the given file id and share token refer to the same file.\nIf there is no room associated to the file id of the given share token a new room is created; the new room is a public room associated with a \"file\" object with the file id of the given share token. Unlike normal rooms in which the owner is the user that created the room these are special rooms without owner (although self joined users with direct access to the file become persistent participants automatically when they join until they explicitly leave or no longer have access to the file).\nIn any case, to create or even get the token of the room, the file must be publicly shared (like a link share, for example); an error is returned otherwise.\nBesides the token of the room this also returns the current user ID and display name, if any; this is needed by the Talk sidebar to know the actual current user, as the public share page uses the incognito mode and thus logged-in users as seen as guests.",
  8494. "tags": [
  8495. "files_integration"
  8496. ],
  8497. "security": [
  8498. {},
  8499. {
  8500. "bearer_auth": []
  8501. },
  8502. {
  8503. "basic_auth": []
  8504. }
  8505. ],
  8506. "parameters": [
  8507. {
  8508. "name": "apiVersion",
  8509. "in": "path",
  8510. "required": true,
  8511. "schema": {
  8512. "type": "string",
  8513. "enum": [
  8514. "v1"
  8515. ],
  8516. "default": "v1"
  8517. }
  8518. },
  8519. {
  8520. "name": "shareToken",
  8521. "in": "path",
  8522. "description": "Token of the file share",
  8523. "required": true,
  8524. "schema": {
  8525. "type": "string",
  8526. "pattern": "^.+$"
  8527. }
  8528. },
  8529. {
  8530. "name": "OCS-APIRequest",
  8531. "in": "header",
  8532. "description": "Required to be true for the API request to pass",
  8533. "required": true,
  8534. "schema": {
  8535. "type": "boolean",
  8536. "default": true
  8537. }
  8538. }
  8539. ],
  8540. "responses": {
  8541. "200": {
  8542. "description": "Room token and user info returned",
  8543. "content": {
  8544. "application/json": {
  8545. "schema": {
  8546. "type": "object",
  8547. "required": [
  8548. "ocs"
  8549. ],
  8550. "properties": {
  8551. "ocs": {
  8552. "type": "object",
  8553. "required": [
  8554. "meta",
  8555. "data"
  8556. ],
  8557. "properties": {
  8558. "meta": {
  8559. "$ref": "#/components/schemas/OCSMeta"
  8560. },
  8561. "data": {
  8562. "type": "object",
  8563. "required": [
  8564. "token",
  8565. "userId",
  8566. "userDisplayName"
  8567. ],
  8568. "properties": {
  8569. "token": {
  8570. "type": "string"
  8571. },
  8572. "userId": {
  8573. "type": "string"
  8574. },
  8575. "userDisplayName": {
  8576. "type": "string"
  8577. }
  8578. }
  8579. }
  8580. }
  8581. }
  8582. }
  8583. }
  8584. }
  8585. }
  8586. },
  8587. "400": {
  8588. "description": "Rooms not allowed for shares",
  8589. "content": {
  8590. "application/json": {
  8591. "schema": {
  8592. "type": "object",
  8593. "required": [
  8594. "ocs"
  8595. ],
  8596. "properties": {
  8597. "ocs": {
  8598. "type": "object",
  8599. "required": [
  8600. "meta",
  8601. "data"
  8602. ],
  8603. "properties": {
  8604. "meta": {
  8605. "$ref": "#/components/schemas/OCSMeta"
  8606. },
  8607. "data": {
  8608. "nullable": true
  8609. }
  8610. }
  8611. }
  8612. }
  8613. }
  8614. }
  8615. }
  8616. },
  8617. "404": {
  8618. "description": "Share not found",
  8619. "content": {
  8620. "application/json": {
  8621. "schema": {
  8622. "type": "object",
  8623. "required": [
  8624. "ocs"
  8625. ],
  8626. "properties": {
  8627. "ocs": {
  8628. "type": "object",
  8629. "required": [
  8630. "meta",
  8631. "data"
  8632. ],
  8633. "properties": {
  8634. "meta": {
  8635. "$ref": "#/components/schemas/OCSMeta"
  8636. },
  8637. "data": {
  8638. "nullable": true
  8639. }
  8640. }
  8641. }
  8642. }
  8643. }
  8644. }
  8645. }
  8646. }
  8647. }
  8648. }
  8649. },
  8650. "/ocs/v2.php/apps/spreed/api/{apiVersion}/guest/{token}/name": {
  8651. "post": {
  8652. "operationId": "guest-set-display-name",
  8653. "summary": "Set the display name as a guest",
  8654. "tags": [
  8655. "guest"
  8656. ],
  8657. "security": [
  8658. {},
  8659. {
  8660. "bearer_auth": []
  8661. },
  8662. {
  8663. "basic_auth": []
  8664. }
  8665. ],
  8666. "requestBody": {
  8667. "required": true,
  8668. "content": {
  8669. "application/json": {
  8670. "schema": {
  8671. "type": "object",
  8672. "required": [
  8673. "displayName"
  8674. ],
  8675. "properties": {
  8676. "displayName": {
  8677. "type": "string",
  8678. "description": "New display name"
  8679. }
  8680. }
  8681. }
  8682. }
  8683. }
  8684. },
  8685. "parameters": [
  8686. {
  8687. "name": "apiVersion",
  8688. "in": "path",
  8689. "required": true,
  8690. "schema": {
  8691. "type": "string",
  8692. "enum": [
  8693. "v1"
  8694. ],
  8695. "default": "v1"
  8696. }
  8697. },
  8698. {
  8699. "name": "token",
  8700. "in": "path",
  8701. "required": true,
  8702. "schema": {
  8703. "type": "string",
  8704. "pattern": "^[a-z0-9]{4,30}$"
  8705. }
  8706. },
  8707. {
  8708. "name": "OCS-APIRequest",
  8709. "in": "header",
  8710. "description": "Required to be true for the API request to pass",
  8711. "required": true,
  8712. "schema": {
  8713. "type": "boolean",
  8714. "default": true
  8715. }
  8716. }
  8717. ],
  8718. "responses": {
  8719. "200": {
  8720. "description": "Display name updated successfully",
  8721. "content": {
  8722. "application/json": {
  8723. "schema": {
  8724. "type": "object",
  8725. "required": [
  8726. "ocs"
  8727. ],
  8728. "properties": {
  8729. "ocs": {
  8730. "type": "object",
  8731. "required": [
  8732. "meta",
  8733. "data"
  8734. ],
  8735. "properties": {
  8736. "meta": {
  8737. "$ref": "#/components/schemas/OCSMeta"
  8738. },
  8739. "data": {
  8740. "nullable": true
  8741. }
  8742. }
  8743. }
  8744. }
  8745. }
  8746. }
  8747. }
  8748. },
  8749. "403": {
  8750. "description": "Not a guest",
  8751. "content": {
  8752. "application/json": {
  8753. "schema": {
  8754. "type": "object",
  8755. "required": [
  8756. "ocs"
  8757. ],
  8758. "properties": {
  8759. "ocs": {
  8760. "type": "object",
  8761. "required": [
  8762. "meta",
  8763. "data"
  8764. ],
  8765. "properties": {
  8766. "meta": {
  8767. "$ref": "#/components/schemas/OCSMeta"
  8768. },
  8769. "data": {
  8770. "nullable": true
  8771. }
  8772. }
  8773. }
  8774. }
  8775. }
  8776. }
  8777. }
  8778. },
  8779. "404": {
  8780. "description": "Not a participant",
  8781. "content": {
  8782. "application/json": {
  8783. "schema": {
  8784. "type": "object",
  8785. "required": [
  8786. "ocs"
  8787. ],
  8788. "properties": {
  8789. "ocs": {
  8790. "type": "object",
  8791. "required": [
  8792. "meta",
  8793. "data"
  8794. ],
  8795. "properties": {
  8796. "meta": {
  8797. "$ref": "#/components/schemas/OCSMeta"
  8798. },
  8799. "data": {
  8800. "nullable": true
  8801. }
  8802. }
  8803. }
  8804. }
  8805. }
  8806. }
  8807. }
  8808. }
  8809. }
  8810. }
  8811. },
  8812. "/ocs/v2.php/apps/spreed/api/{apiVersion}/bridge/{token}": {
  8813. "get": {
  8814. "operationId": "matterbridge-get-bridge-of-room",
  8815. "summary": "Get bridge information of one room",
  8816. "tags": [
  8817. "matterbridge"
  8818. ],
  8819. "security": [
  8820. {
  8821. "bearer_auth": []
  8822. },
  8823. {
  8824. "basic_auth": []
  8825. }
  8826. ],
  8827. "parameters": [
  8828. {
  8829. "name": "apiVersion",
  8830. "in": "path",
  8831. "required": true,
  8832. "schema": {
  8833. "type": "string",
  8834. "enum": [
  8835. "v1"
  8836. ],
  8837. "default": "v1"
  8838. }
  8839. },
  8840. {
  8841. "name": "token",
  8842. "in": "path",
  8843. "required": true,
  8844. "schema": {
  8845. "type": "string",
  8846. "pattern": "^[a-z0-9]{4,30}$"
  8847. }
  8848. },
  8849. {
  8850. "name": "OCS-APIRequest",
  8851. "in": "header",
  8852. "description": "Required to be true for the API request to pass",
  8853. "required": true,
  8854. "schema": {
  8855. "type": "boolean",
  8856. "default": true
  8857. }
  8858. }
  8859. ],
  8860. "responses": {
  8861. "200": {
  8862. "description": "Return list of configured bridges",
  8863. "content": {
  8864. "application/json": {
  8865. "schema": {
  8866. "type": "object",
  8867. "required": [
  8868. "ocs"
  8869. ],
  8870. "properties": {
  8871. "ocs": {
  8872. "type": "object",
  8873. "required": [
  8874. "meta",
  8875. "data"
  8876. ],
  8877. "properties": {
  8878. "meta": {
  8879. "$ref": "#/components/schemas/OCSMeta"
  8880. },
  8881. "data": {
  8882. "$ref": "#/components/schemas/MatterbridgeWithProcessState"
  8883. }
  8884. }
  8885. }
  8886. }
  8887. }
  8888. }
  8889. }
  8890. }
  8891. }
  8892. },
  8893. "put": {
  8894. "operationId": "matterbridge-edit-bridge-of-room",
  8895. "summary": "Edit bridge information of one room",
  8896. "tags": [
  8897. "matterbridge"
  8898. ],
  8899. "security": [
  8900. {
  8901. "bearer_auth": []
  8902. },
  8903. {
  8904. "basic_auth": []
  8905. }
  8906. ],
  8907. "requestBody": {
  8908. "required": true,
  8909. "content": {
  8910. "application/json": {
  8911. "schema": {
  8912. "type": "object",
  8913. "required": [
  8914. "enabled"
  8915. ],
  8916. "properties": {
  8917. "enabled": {
  8918. "type": "boolean",
  8919. "description": "If the bridge should be enabled"
  8920. },
  8921. "parts": {
  8922. "$ref": "#/components/schemas/MatterbridgeConfigFields",
  8923. "default": [],
  8924. "description": "New parts"
  8925. }
  8926. }
  8927. }
  8928. }
  8929. }
  8930. },
  8931. "parameters": [
  8932. {
  8933. "name": "apiVersion",
  8934. "in": "path",
  8935. "required": true,
  8936. "schema": {
  8937. "type": "string",
  8938. "enum": [
  8939. "v1"
  8940. ],
  8941. "default": "v1"
  8942. }
  8943. },
  8944. {
  8945. "name": "token",
  8946. "in": "path",
  8947. "required": true,
  8948. "schema": {
  8949. "type": "string",
  8950. "pattern": "^[a-z0-9]{4,30}$"
  8951. }
  8952. },
  8953. {
  8954. "name": "OCS-APIRequest",
  8955. "in": "header",
  8956. "description": "Required to be true for the API request to pass",
  8957. "required": true,
  8958. "schema": {
  8959. "type": "boolean",
  8960. "default": true
  8961. }
  8962. }
  8963. ],
  8964. "responses": {
  8965. "200": {
  8966. "description": "Bridge edited successfully",
  8967. "content": {
  8968. "application/json": {
  8969. "schema": {
  8970. "type": "object",
  8971. "required": [
  8972. "ocs"
  8973. ],
  8974. "properties": {
  8975. "ocs": {
  8976. "type": "object",
  8977. "required": [
  8978. "meta",
  8979. "data"
  8980. ],
  8981. "properties": {
  8982. "meta": {
  8983. "$ref": "#/components/schemas/OCSMeta"
  8984. },
  8985. "data": {
  8986. "$ref": "#/components/schemas/MatterbridgeProcessState"
  8987. }
  8988. }
  8989. }
  8990. }
  8991. }
  8992. }
  8993. }
  8994. },
  8995. "406": {
  8996. "description": "Editing bridge is not possible",
  8997. "content": {
  8998. "application/json": {
  8999. "schema": {
  9000. "type": "object",
  9001. "required": [
  9002. "ocs"
  9003. ],
  9004. "properties": {
  9005. "ocs": {
  9006. "type": "object",
  9007. "required": [
  9008. "meta",
  9009. "data"
  9010. ],
  9011. "properties": {
  9012. "meta": {
  9013. "$ref": "#/components/schemas/OCSMeta"
  9014. },
  9015. "data": {
  9016. "type": "object",
  9017. "required": [
  9018. "error"
  9019. ],
  9020. "properties": {
  9021. "error": {
  9022. "type": "string"
  9023. }
  9024. }
  9025. }
  9026. }
  9027. }
  9028. }
  9029. }
  9030. }
  9031. }
  9032. }
  9033. }
  9034. },
  9035. "delete": {
  9036. "operationId": "matterbridge-delete-bridge-of-room",
  9037. "summary": "Delete bridge of one room",
  9038. "tags": [
  9039. "matterbridge"
  9040. ],
  9041. "security": [
  9042. {
  9043. "bearer_auth": []
  9044. },
  9045. {
  9046. "basic_auth": []
  9047. }
  9048. ],
  9049. "parameters": [
  9050. {
  9051. "name": "apiVersion",
  9052. "in": "path",
  9053. "required": true,
  9054. "schema": {
  9055. "type": "string",
  9056. "enum": [
  9057. "v1"
  9058. ],
  9059. "default": "v1"
  9060. }
  9061. },
  9062. {
  9063. "name": "token",
  9064. "in": "path",
  9065. "required": true,
  9066. "schema": {
  9067. "type": "string",
  9068. "pattern": "^[a-z0-9]{4,30}$"
  9069. }
  9070. },
  9071. {
  9072. "name": "OCS-APIRequest",
  9073. "in": "header",
  9074. "description": "Required to be true for the API request to pass",
  9075. "required": true,
  9076. "schema": {
  9077. "type": "boolean",
  9078. "default": true
  9079. }
  9080. }
  9081. ],
  9082. "responses": {
  9083. "200": {
  9084. "description": "Bridge deleted successfully",
  9085. "content": {
  9086. "application/json": {
  9087. "schema": {
  9088. "type": "object",
  9089. "required": [
  9090. "ocs"
  9091. ],
  9092. "properties": {
  9093. "ocs": {
  9094. "type": "object",
  9095. "required": [
  9096. "meta",
  9097. "data"
  9098. ],
  9099. "properties": {
  9100. "meta": {
  9101. "$ref": "#/components/schemas/OCSMeta"
  9102. },
  9103. "data": {
  9104. "type": "boolean"
  9105. }
  9106. }
  9107. }
  9108. }
  9109. }
  9110. }
  9111. }
  9112. },
  9113. "406": {
  9114. "description": "Deleting bridge is not possible",
  9115. "content": {
  9116. "application/json": {
  9117. "schema": {
  9118. "type": "object",
  9119. "required": [
  9120. "ocs"
  9121. ],
  9122. "properties": {
  9123. "ocs": {
  9124. "type": "object",
  9125. "required": [
  9126. "meta",
  9127. "data"
  9128. ],
  9129. "properties": {
  9130. "meta": {
  9131. "$ref": "#/components/schemas/OCSMeta"
  9132. },
  9133. "data": {
  9134. "type": "object",
  9135. "required": [
  9136. "error"
  9137. ],
  9138. "properties": {
  9139. "error": {
  9140. "type": "string"
  9141. }
  9142. }
  9143. }
  9144. }
  9145. }
  9146. }
  9147. }
  9148. }
  9149. }
  9150. }
  9151. }
  9152. }
  9153. },
  9154. "/ocs/v2.php/apps/spreed/api/{apiVersion}/bridge/{token}/process": {
  9155. "get": {
  9156. "operationId": "matterbridge-get-bridge-process-state",
  9157. "summary": "Get bridge process information",
  9158. "tags": [
  9159. "matterbridge"
  9160. ],
  9161. "security": [
  9162. {
  9163. "bearer_auth": []
  9164. },
  9165. {
  9166. "basic_auth": []
  9167. }
  9168. ],
  9169. "parameters": [
  9170. {
  9171. "name": "apiVersion",
  9172. "in": "path",
  9173. "required": true,
  9174. "schema": {
  9175. "type": "string",
  9176. "enum": [
  9177. "v1"
  9178. ],
  9179. "default": "v1"
  9180. }
  9181. },
  9182. {
  9183. "name": "token",
  9184. "in": "path",
  9185. "required": true,
  9186. "schema": {
  9187. "type": "string",
  9188. "pattern": "^[a-z0-9]{4,30}$"
  9189. }
  9190. },
  9191. {
  9192. "name": "OCS-APIRequest",
  9193. "in": "header",
  9194. "description": "Required to be true for the API request to pass",
  9195. "required": true,
  9196. "schema": {
  9197. "type": "boolean",
  9198. "default": true
  9199. }
  9200. }
  9201. ],
  9202. "responses": {
  9203. "200": {
  9204. "description": "Return list of running processes",
  9205. "content": {
  9206. "application/json": {
  9207. "schema": {
  9208. "type": "object",
  9209. "required": [
  9210. "ocs"
  9211. ],
  9212. "properties": {
  9213. "ocs": {
  9214. "type": "object",
  9215. "required": [
  9216. "meta",
  9217. "data"
  9218. ],
  9219. "properties": {
  9220. "meta": {
  9221. "$ref": "#/components/schemas/OCSMeta"
  9222. },
  9223. "data": {
  9224. "$ref": "#/components/schemas/MatterbridgeProcessState"
  9225. }
  9226. }
  9227. }
  9228. }
  9229. }
  9230. }
  9231. }
  9232. }
  9233. }
  9234. }
  9235. },
  9236. "/ocs/v2.php/apps/spreed/api/{apiVersion}/poll/{token}": {
  9237. "post": {
  9238. "operationId": "poll-create-poll",
  9239. "summary": "Create a poll",
  9240. "tags": [
  9241. "poll"
  9242. ],
  9243. "security": [
  9244. {},
  9245. {
  9246. "bearer_auth": []
  9247. },
  9248. {
  9249. "basic_auth": []
  9250. }
  9251. ],
  9252. "requestBody": {
  9253. "required": true,
  9254. "content": {
  9255. "application/json": {
  9256. "schema": {
  9257. "type": "object",
  9258. "required": [
  9259. "question",
  9260. "options",
  9261. "resultMode",
  9262. "maxVotes"
  9263. ],
  9264. "properties": {
  9265. "question": {
  9266. "type": "string",
  9267. "description": "Question of the poll"
  9268. },
  9269. "options": {
  9270. "type": "array",
  9271. "description": "Options of the poll",
  9272. "items": {
  9273. "type": "string"
  9274. }
  9275. },
  9276. "resultMode": {
  9277. "type": "integer",
  9278. "format": "int64",
  9279. "enum": [
  9280. 0,
  9281. 1
  9282. ],
  9283. "description": "Mode how the results will be shown"
  9284. },
  9285. "maxVotes": {
  9286. "type": "integer",
  9287. "format": "int64",
  9288. "description": "Number of maximum votes per voter"
  9289. },
  9290. "draft": {
  9291. "type": "boolean",
  9292. "default": false,
  9293. "description": "Whether the poll should be saved as a draft (only allowed for moderators and with `talk-polls-drafts` capability)"
  9294. }
  9295. }
  9296. }
  9297. }
  9298. }
  9299. },
  9300. "parameters": [
  9301. {
  9302. "name": "apiVersion",
  9303. "in": "path",
  9304. "required": true,
  9305. "schema": {
  9306. "type": "string",
  9307. "enum": [
  9308. "v1"
  9309. ],
  9310. "default": "v1"
  9311. }
  9312. },
  9313. {
  9314. "name": "token",
  9315. "in": "path",
  9316. "required": true,
  9317. "schema": {
  9318. "type": "string",
  9319. "pattern": "^[a-z0-9]{4,30}$"
  9320. }
  9321. },
  9322. {
  9323. "name": "OCS-APIRequest",
  9324. "in": "header",
  9325. "description": "Required to be true for the API request to pass",
  9326. "required": true,
  9327. "schema": {
  9328. "type": "boolean",
  9329. "default": true
  9330. }
  9331. }
  9332. ],
  9333. "responses": {
  9334. "200": {
  9335. "description": "Draft created successfully",
  9336. "content": {
  9337. "application/json": {
  9338. "schema": {
  9339. "type": "object",
  9340. "required": [
  9341. "ocs"
  9342. ],
  9343. "properties": {
  9344. "ocs": {
  9345. "type": "object",
  9346. "required": [
  9347. "meta",
  9348. "data"
  9349. ],
  9350. "properties": {
  9351. "meta": {
  9352. "$ref": "#/components/schemas/OCSMeta"
  9353. },
  9354. "data": {
  9355. "$ref": "#/components/schemas/PollDraft"
  9356. }
  9357. }
  9358. }
  9359. }
  9360. }
  9361. }
  9362. }
  9363. },
  9364. "201": {
  9365. "description": "Poll created successfully",
  9366. "content": {
  9367. "application/json": {
  9368. "schema": {
  9369. "type": "object",
  9370. "required": [
  9371. "ocs"
  9372. ],
  9373. "properties": {
  9374. "ocs": {
  9375. "type": "object",
  9376. "required": [
  9377. "meta",
  9378. "data"
  9379. ],
  9380. "properties": {
  9381. "meta": {
  9382. "$ref": "#/components/schemas/OCSMeta"
  9383. },
  9384. "data": {
  9385. "$ref": "#/components/schemas/Poll"
  9386. }
  9387. }
  9388. }
  9389. }
  9390. }
  9391. }
  9392. }
  9393. },
  9394. "400": {
  9395. "description": "Creating poll is not possible",
  9396. "content": {
  9397. "application/json": {
  9398. "schema": {
  9399. "type": "object",
  9400. "required": [
  9401. "ocs"
  9402. ],
  9403. "properties": {
  9404. "ocs": {
  9405. "type": "object",
  9406. "required": [
  9407. "meta",
  9408. "data"
  9409. ],
  9410. "properties": {
  9411. "meta": {
  9412. "$ref": "#/components/schemas/OCSMeta"
  9413. },
  9414. "data": {
  9415. "type": "object",
  9416. "required": [
  9417. "error"
  9418. ],
  9419. "properties": {
  9420. "error": {
  9421. "type": "string",
  9422. "enum": [
  9423. "draft",
  9424. "options",
  9425. "poll",
  9426. "question",
  9427. "room"
  9428. ]
  9429. }
  9430. }
  9431. }
  9432. }
  9433. }
  9434. }
  9435. }
  9436. }
  9437. }
  9438. }
  9439. }
  9440. }
  9441. },
  9442. "/ocs/v2.php/apps/spreed/api/{apiVersion}/poll/{token}/draft/{pollId}": {
  9443. "post": {
  9444. "operationId": "poll-update-draft-poll",
  9445. "summary": "Modify a draft poll",
  9446. "description": "Required capability: `edit-draft-poll`",
  9447. "tags": [
  9448. "poll"
  9449. ],
  9450. "security": [
  9451. {},
  9452. {
  9453. "bearer_auth": []
  9454. },
  9455. {
  9456. "basic_auth": []
  9457. }
  9458. ],
  9459. "requestBody": {
  9460. "required": true,
  9461. "content": {
  9462. "application/json": {
  9463. "schema": {
  9464. "type": "object",
  9465. "required": [
  9466. "question",
  9467. "options",
  9468. "resultMode",
  9469. "maxVotes"
  9470. ],
  9471. "properties": {
  9472. "question": {
  9473. "type": "string",
  9474. "description": "Question of the poll"
  9475. },
  9476. "options": {
  9477. "type": "array",
  9478. "description": "Options of the poll",
  9479. "items": {
  9480. "type": "string"
  9481. }
  9482. },
  9483. "resultMode": {
  9484. "type": "integer",
  9485. "format": "int64",
  9486. "enum": [
  9487. 0,
  9488. 1
  9489. ],
  9490. "description": "Mode how the results will be shown"
  9491. },
  9492. "maxVotes": {
  9493. "type": "integer",
  9494. "format": "int64",
  9495. "description": "Number of maximum votes per voter"
  9496. }
  9497. }
  9498. }
  9499. }
  9500. }
  9501. },
  9502. "parameters": [
  9503. {
  9504. "name": "apiVersion",
  9505. "in": "path",
  9506. "required": true,
  9507. "schema": {
  9508. "type": "string",
  9509. "enum": [
  9510. "v1"
  9511. ],
  9512. "default": "v1"
  9513. }
  9514. },
  9515. {
  9516. "name": "token",
  9517. "in": "path",
  9518. "required": true,
  9519. "schema": {
  9520. "type": "string",
  9521. "pattern": "^[a-z0-9]{4,30}$"
  9522. }
  9523. },
  9524. {
  9525. "name": "pollId",
  9526. "in": "path",
  9527. "description": "The poll id",
  9528. "required": true,
  9529. "schema": {
  9530. "type": "integer",
  9531. "format": "int64"
  9532. }
  9533. },
  9534. {
  9535. "name": "OCS-APIRequest",
  9536. "in": "header",
  9537. "description": "Required to be true for the API request to pass",
  9538. "required": true,
  9539. "schema": {
  9540. "type": "boolean",
  9541. "default": true
  9542. }
  9543. }
  9544. ],
  9545. "responses": {
  9546. "200": {
  9547. "description": "Draft modified successfully",
  9548. "content": {
  9549. "application/json": {
  9550. "schema": {
  9551. "type": "object",
  9552. "required": [
  9553. "ocs"
  9554. ],
  9555. "properties": {
  9556. "ocs": {
  9557. "type": "object",
  9558. "required": [
  9559. "meta",
  9560. "data"
  9561. ],
  9562. "properties": {
  9563. "meta": {
  9564. "$ref": "#/components/schemas/OCSMeta"
  9565. },
  9566. "data": {
  9567. "$ref": "#/components/schemas/PollDraft"
  9568. }
  9569. }
  9570. }
  9571. }
  9572. }
  9573. }
  9574. }
  9575. },
  9576. "400": {
  9577. "description": "Modifying poll is not possible",
  9578. "content": {
  9579. "application/json": {
  9580. "schema": {
  9581. "type": "object",
  9582. "required": [
  9583. "ocs"
  9584. ],
  9585. "properties": {
  9586. "ocs": {
  9587. "type": "object",
  9588. "required": [
  9589. "meta",
  9590. "data"
  9591. ],
  9592. "properties": {
  9593. "meta": {
  9594. "$ref": "#/components/schemas/OCSMeta"
  9595. },
  9596. "data": {
  9597. "type": "object",
  9598. "required": [
  9599. "error"
  9600. ],
  9601. "properties": {
  9602. "error": {
  9603. "type": "string",
  9604. "enum": [
  9605. "draft",
  9606. "options",
  9607. "poll",
  9608. "question",
  9609. "room"
  9610. ]
  9611. }
  9612. }
  9613. }
  9614. }
  9615. }
  9616. }
  9617. }
  9618. }
  9619. }
  9620. },
  9621. "403": {
  9622. "description": "No permission to modify this poll",
  9623. "content": {
  9624. "application/json": {
  9625. "schema": {
  9626. "type": "object",
  9627. "required": [
  9628. "ocs"
  9629. ],
  9630. "properties": {
  9631. "ocs": {
  9632. "type": "object",
  9633. "required": [
  9634. "meta",
  9635. "data"
  9636. ],
  9637. "properties": {
  9638. "meta": {
  9639. "$ref": "#/components/schemas/OCSMeta"
  9640. },
  9641. "data": {
  9642. "type": "object",
  9643. "required": [
  9644. "error"
  9645. ],
  9646. "properties": {
  9647. "error": {
  9648. "type": "string",
  9649. "enum": [
  9650. "draft",
  9651. "options",
  9652. "poll",
  9653. "question",
  9654. "room"
  9655. ]
  9656. }
  9657. }
  9658. }
  9659. }
  9660. }
  9661. }
  9662. }
  9663. }
  9664. }
  9665. },
  9666. "404": {
  9667. "description": "No draft poll exists",
  9668. "content": {
  9669. "application/json": {
  9670. "schema": {
  9671. "type": "object",
  9672. "required": [
  9673. "ocs"
  9674. ],
  9675. "properties": {
  9676. "ocs": {
  9677. "type": "object",
  9678. "required": [
  9679. "meta",
  9680. "data"
  9681. ],
  9682. "properties": {
  9683. "meta": {
  9684. "$ref": "#/components/schemas/OCSMeta"
  9685. },
  9686. "data": {
  9687. "type": "object",
  9688. "required": [
  9689. "error"
  9690. ],
  9691. "properties": {
  9692. "error": {
  9693. "type": "string",
  9694. "enum": [
  9695. "draft",
  9696. "options",
  9697. "poll",
  9698. "question",
  9699. "room"
  9700. ]
  9701. }
  9702. }
  9703. }
  9704. }
  9705. }
  9706. }
  9707. }
  9708. }
  9709. }
  9710. }
  9711. }
  9712. }
  9713. },
  9714. "/ocs/v2.php/apps/spreed/api/{apiVersion}/poll/{token}/drafts": {
  9715. "get": {
  9716. "operationId": "poll-get-all-draft-polls",
  9717. "summary": "Get all drafted polls",
  9718. "description": "Required capability: `talk-polls-drafts`",
  9719. "tags": [
  9720. "poll"
  9721. ],
  9722. "security": [
  9723. {},
  9724. {
  9725. "bearer_auth": []
  9726. },
  9727. {
  9728. "basic_auth": []
  9729. }
  9730. ],
  9731. "parameters": [
  9732. {
  9733. "name": "apiVersion",
  9734. "in": "path",
  9735. "required": true,
  9736. "schema": {
  9737. "type": "string",
  9738. "enum": [
  9739. "v1"
  9740. ],
  9741. "default": "v1"
  9742. }
  9743. },
  9744. {
  9745. "name": "token",
  9746. "in": "path",
  9747. "required": true,
  9748. "schema": {
  9749. "type": "string",
  9750. "pattern": "^[a-z0-9]{4,30}$"
  9751. }
  9752. },
  9753. {
  9754. "name": "OCS-APIRequest",
  9755. "in": "header",
  9756. "description": "Required to be true for the API request to pass",
  9757. "required": true,
  9758. "schema": {
  9759. "type": "boolean",
  9760. "default": true
  9761. }
  9762. }
  9763. ],
  9764. "responses": {
  9765. "200": {
  9766. "description": "Poll returned",
  9767. "content": {
  9768. "application/json": {
  9769. "schema": {
  9770. "type": "object",
  9771. "required": [
  9772. "ocs"
  9773. ],
  9774. "properties": {
  9775. "ocs": {
  9776. "type": "object",
  9777. "required": [
  9778. "meta",
  9779. "data"
  9780. ],
  9781. "properties": {
  9782. "meta": {
  9783. "$ref": "#/components/schemas/OCSMeta"
  9784. },
  9785. "data": {
  9786. "type": "array",
  9787. "items": {
  9788. "$ref": "#/components/schemas/PollDraft"
  9789. }
  9790. }
  9791. }
  9792. }
  9793. }
  9794. }
  9795. }
  9796. }
  9797. },
  9798. "403": {
  9799. "description": "User is not a moderator",
  9800. "content": {
  9801. "application/json": {
  9802. "schema": {
  9803. "type": "object",
  9804. "required": [
  9805. "ocs"
  9806. ],
  9807. "properties": {
  9808. "ocs": {
  9809. "type": "object",
  9810. "required": [
  9811. "meta",
  9812. "data"
  9813. ],
  9814. "properties": {
  9815. "meta": {
  9816. "$ref": "#/components/schemas/OCSMeta"
  9817. },
  9818. "data": {}
  9819. }
  9820. }
  9821. }
  9822. }
  9823. }
  9824. }
  9825. },
  9826. "404": {
  9827. "description": "Poll not found",
  9828. "content": {
  9829. "application/json": {
  9830. "schema": {
  9831. "type": "object",
  9832. "required": [
  9833. "ocs"
  9834. ],
  9835. "properties": {
  9836. "ocs": {
  9837. "type": "object",
  9838. "required": [
  9839. "meta",
  9840. "data"
  9841. ],
  9842. "properties": {
  9843. "meta": {
  9844. "$ref": "#/components/schemas/OCSMeta"
  9845. },
  9846. "data": {}
  9847. }
  9848. }
  9849. }
  9850. }
  9851. }
  9852. }
  9853. }
  9854. }
  9855. }
  9856. },
  9857. "/ocs/v2.php/apps/spreed/api/{apiVersion}/poll/{token}/{pollId}": {
  9858. "get": {
  9859. "operationId": "poll-show-poll",
  9860. "summary": "Get a poll",
  9861. "tags": [
  9862. "poll"
  9863. ],
  9864. "security": [
  9865. {},
  9866. {
  9867. "bearer_auth": []
  9868. },
  9869. {
  9870. "basic_auth": []
  9871. }
  9872. ],
  9873. "parameters": [
  9874. {
  9875. "name": "apiVersion",
  9876. "in": "path",
  9877. "required": true,
  9878. "schema": {
  9879. "type": "string",
  9880. "enum": [
  9881. "v1"
  9882. ],
  9883. "default": "v1"
  9884. }
  9885. },
  9886. {
  9887. "name": "token",
  9888. "in": "path",
  9889. "required": true,
  9890. "schema": {
  9891. "type": "string",
  9892. "pattern": "^[a-z0-9]{4,30}$"
  9893. }
  9894. },
  9895. {
  9896. "name": "pollId",
  9897. "in": "path",
  9898. "description": "ID of the poll",
  9899. "required": true,
  9900. "schema": {
  9901. "type": "integer",
  9902. "format": "int64",
  9903. "minimum": 0
  9904. }
  9905. },
  9906. {
  9907. "name": "OCS-APIRequest",
  9908. "in": "header",
  9909. "description": "Required to be true for the API request to pass",
  9910. "required": true,
  9911. "schema": {
  9912. "type": "boolean",
  9913. "default": true
  9914. }
  9915. }
  9916. ],
  9917. "responses": {
  9918. "200": {
  9919. "description": "Poll returned",
  9920. "content": {
  9921. "application/json": {
  9922. "schema": {
  9923. "type": "object",
  9924. "required": [
  9925. "ocs"
  9926. ],
  9927. "properties": {
  9928. "ocs": {
  9929. "type": "object",
  9930. "required": [
  9931. "meta",
  9932. "data"
  9933. ],
  9934. "properties": {
  9935. "meta": {
  9936. "$ref": "#/components/schemas/OCSMeta"
  9937. },
  9938. "data": {
  9939. "$ref": "#/components/schemas/Poll"
  9940. }
  9941. }
  9942. }
  9943. }
  9944. }
  9945. }
  9946. }
  9947. },
  9948. "404": {
  9949. "description": "Poll not found",
  9950. "content": {
  9951. "application/json": {
  9952. "schema": {
  9953. "type": "object",
  9954. "required": [
  9955. "ocs"
  9956. ],
  9957. "properties": {
  9958. "ocs": {
  9959. "type": "object",
  9960. "required": [
  9961. "meta",
  9962. "data"
  9963. ],
  9964. "properties": {
  9965. "meta": {
  9966. "$ref": "#/components/schemas/OCSMeta"
  9967. },
  9968. "data": {
  9969. "type": "object",
  9970. "required": [
  9971. "error"
  9972. ],
  9973. "properties": {
  9974. "error": {
  9975. "type": "string"
  9976. }
  9977. }
  9978. }
  9979. }
  9980. }
  9981. }
  9982. }
  9983. }
  9984. }
  9985. }
  9986. }
  9987. },
  9988. "post": {
  9989. "operationId": "poll-vote-poll",
  9990. "summary": "Vote on a poll",
  9991. "tags": [
  9992. "poll"
  9993. ],
  9994. "security": [
  9995. {},
  9996. {
  9997. "bearer_auth": []
  9998. },
  9999. {
  10000. "basic_auth": []
  10001. }
  10002. ],
  10003. "requestBody": {
  10004. "required": false,
  10005. "content": {
  10006. "application/json": {
  10007. "schema": {
  10008. "type": "object",
  10009. "properties": {
  10010. "optionIds": {
  10011. "type": "array",
  10012. "default": [],
  10013. "description": "IDs of the selected options",
  10014. "items": {
  10015. "type": "integer",
  10016. "format": "int64"
  10017. }
  10018. }
  10019. }
  10020. }
  10021. }
  10022. }
  10023. },
  10024. "parameters": [
  10025. {
  10026. "name": "apiVersion",
  10027. "in": "path",
  10028. "required": true,
  10029. "schema": {
  10030. "type": "string",
  10031. "enum": [
  10032. "v1"
  10033. ],
  10034. "default": "v1"
  10035. }
  10036. },
  10037. {
  10038. "name": "token",
  10039. "in": "path",
  10040. "required": true,
  10041. "schema": {
  10042. "type": "string",
  10043. "pattern": "^[a-z0-9]{4,30}$"
  10044. }
  10045. },
  10046. {
  10047. "name": "pollId",
  10048. "in": "path",
  10049. "description": "ID of the poll",
  10050. "required": true,
  10051. "schema": {
  10052. "type": "integer",
  10053. "format": "int64",
  10054. "minimum": 0
  10055. }
  10056. },
  10057. {
  10058. "name": "OCS-APIRequest",
  10059. "in": "header",
  10060. "description": "Required to be true for the API request to pass",
  10061. "required": true,
  10062. "schema": {
  10063. "type": "boolean",
  10064. "default": true
  10065. }
  10066. }
  10067. ],
  10068. "responses": {
  10069. "200": {
  10070. "description": "Voted successfully",
  10071. "content": {
  10072. "application/json": {
  10073. "schema": {
  10074. "type": "object",
  10075. "required": [
  10076. "ocs"
  10077. ],
  10078. "properties": {
  10079. "ocs": {
  10080. "type": "object",
  10081. "required": [
  10082. "meta",
  10083. "data"
  10084. ],
  10085. "properties": {
  10086. "meta": {
  10087. "$ref": "#/components/schemas/OCSMeta"
  10088. },
  10089. "data": {
  10090. "$ref": "#/components/schemas/Poll"
  10091. }
  10092. }
  10093. }
  10094. }
  10095. }
  10096. }
  10097. }
  10098. },
  10099. "400": {
  10100. "description": "Voting is not possible",
  10101. "content": {
  10102. "application/json": {
  10103. "schema": {
  10104. "type": "object",
  10105. "required": [
  10106. "ocs"
  10107. ],
  10108. "properties": {
  10109. "ocs": {
  10110. "type": "object",
  10111. "required": [
  10112. "meta",
  10113. "data"
  10114. ],
  10115. "properties": {
  10116. "meta": {
  10117. "$ref": "#/components/schemas/OCSMeta"
  10118. },
  10119. "data": {
  10120. "type": "object",
  10121. "required": [
  10122. "error"
  10123. ],
  10124. "properties": {
  10125. "error": {
  10126. "type": "string"
  10127. }
  10128. }
  10129. }
  10130. }
  10131. }
  10132. }
  10133. }
  10134. }
  10135. }
  10136. },
  10137. "404": {
  10138. "description": "Poll not found",
  10139. "content": {
  10140. "application/json": {
  10141. "schema": {
  10142. "type": "object",
  10143. "required": [
  10144. "ocs"
  10145. ],
  10146. "properties": {
  10147. "ocs": {
  10148. "type": "object",
  10149. "required": [
  10150. "meta",
  10151. "data"
  10152. ],
  10153. "properties": {
  10154. "meta": {
  10155. "$ref": "#/components/schemas/OCSMeta"
  10156. },
  10157. "data": {
  10158. "type": "object",
  10159. "required": [
  10160. "error"
  10161. ],
  10162. "properties": {
  10163. "error": {
  10164. "type": "string"
  10165. }
  10166. }
  10167. }
  10168. }
  10169. }
  10170. }
  10171. }
  10172. }
  10173. }
  10174. }
  10175. }
  10176. },
  10177. "delete": {
  10178. "operationId": "poll-close-poll",
  10179. "summary": "Close a poll",
  10180. "tags": [
  10181. "poll"
  10182. ],
  10183. "security": [
  10184. {},
  10185. {
  10186. "bearer_auth": []
  10187. },
  10188. {
  10189. "basic_auth": []
  10190. }
  10191. ],
  10192. "parameters": [
  10193. {
  10194. "name": "apiVersion",
  10195. "in": "path",
  10196. "required": true,
  10197. "schema": {
  10198. "type": "string",
  10199. "enum": [
  10200. "v1"
  10201. ],
  10202. "default": "v1"
  10203. }
  10204. },
  10205. {
  10206. "name": "token",
  10207. "in": "path",
  10208. "required": true,
  10209. "schema": {
  10210. "type": "string",
  10211. "pattern": "^[a-z0-9]{4,30}$"
  10212. }
  10213. },
  10214. {
  10215. "name": "pollId",
  10216. "in": "path",
  10217. "description": "ID of the poll",
  10218. "required": true,
  10219. "schema": {
  10220. "type": "integer",
  10221. "format": "int64",
  10222. "minimum": 0
  10223. }
  10224. },
  10225. {
  10226. "name": "OCS-APIRequest",
  10227. "in": "header",
  10228. "description": "Required to be true for the API request to pass",
  10229. "required": true,
  10230. "schema": {
  10231. "type": "boolean",
  10232. "default": true
  10233. }
  10234. }
  10235. ],
  10236. "responses": {
  10237. "200": {
  10238. "description": "Poll closed successfully",
  10239. "content": {
  10240. "application/json": {
  10241. "schema": {
  10242. "type": "object",
  10243. "required": [
  10244. "ocs"
  10245. ],
  10246. "properties": {
  10247. "ocs": {
  10248. "type": "object",
  10249. "required": [
  10250. "meta",
  10251. "data"
  10252. ],
  10253. "properties": {
  10254. "meta": {
  10255. "$ref": "#/components/schemas/OCSMeta"
  10256. },
  10257. "data": {
  10258. "$ref": "#/components/schemas/Poll"
  10259. }
  10260. }
  10261. }
  10262. }
  10263. }
  10264. }
  10265. }
  10266. },
  10267. "202": {
  10268. "description": "Poll draft was deleted successfully",
  10269. "content": {
  10270. "application/json": {
  10271. "schema": {
  10272. "type": "object",
  10273. "required": [
  10274. "ocs"
  10275. ],
  10276. "properties": {
  10277. "ocs": {
  10278. "type": "object",
  10279. "required": [
  10280. "meta",
  10281. "data"
  10282. ],
  10283. "properties": {
  10284. "meta": {
  10285. "$ref": "#/components/schemas/OCSMeta"
  10286. },
  10287. "data": {
  10288. "nullable": true
  10289. }
  10290. }
  10291. }
  10292. }
  10293. }
  10294. }
  10295. }
  10296. },
  10297. "400": {
  10298. "description": "Poll already closed",
  10299. "content": {
  10300. "application/json": {
  10301. "schema": {
  10302. "type": "object",
  10303. "required": [
  10304. "ocs"
  10305. ],
  10306. "properties": {
  10307. "ocs": {
  10308. "type": "object",
  10309. "required": [
  10310. "meta",
  10311. "data"
  10312. ],
  10313. "properties": {
  10314. "meta": {
  10315. "$ref": "#/components/schemas/OCSMeta"
  10316. },
  10317. "data": {
  10318. "type": "object",
  10319. "required": [
  10320. "error"
  10321. ],
  10322. "properties": {
  10323. "error": {
  10324. "type": "string",
  10325. "enum": [
  10326. "draft",
  10327. "options",
  10328. "poll",
  10329. "question",
  10330. "room"
  10331. ]
  10332. }
  10333. }
  10334. }
  10335. }
  10336. }
  10337. }
  10338. }
  10339. }
  10340. }
  10341. },
  10342. "403": {
  10343. "description": "Missing permissions to close poll",
  10344. "content": {
  10345. "application/json": {
  10346. "schema": {
  10347. "type": "object",
  10348. "required": [
  10349. "ocs"
  10350. ],
  10351. "properties": {
  10352. "ocs": {
  10353. "type": "object",
  10354. "required": [
  10355. "meta",
  10356. "data"
  10357. ],
  10358. "properties": {
  10359. "meta": {
  10360. "$ref": "#/components/schemas/OCSMeta"
  10361. },
  10362. "data": {
  10363. "type": "object",
  10364. "required": [
  10365. "error"
  10366. ],
  10367. "properties": {
  10368. "error": {
  10369. "type": "string",
  10370. "enum": [
  10371. "draft",
  10372. "options",
  10373. "poll",
  10374. "question",
  10375. "room"
  10376. ]
  10377. }
  10378. }
  10379. }
  10380. }
  10381. }
  10382. }
  10383. }
  10384. }
  10385. }
  10386. },
  10387. "404": {
  10388. "description": "Poll not found",
  10389. "content": {
  10390. "application/json": {
  10391. "schema": {
  10392. "type": "object",
  10393. "required": [
  10394. "ocs"
  10395. ],
  10396. "properties": {
  10397. "ocs": {
  10398. "type": "object",
  10399. "required": [
  10400. "meta",
  10401. "data"
  10402. ],
  10403. "properties": {
  10404. "meta": {
  10405. "$ref": "#/components/schemas/OCSMeta"
  10406. },
  10407. "data": {
  10408. "type": "object",
  10409. "required": [
  10410. "error"
  10411. ],
  10412. "properties": {
  10413. "error": {
  10414. "type": "string",
  10415. "enum": [
  10416. "draft",
  10417. "options",
  10418. "poll",
  10419. "question",
  10420. "room"
  10421. ]
  10422. }
  10423. }
  10424. }
  10425. }
  10426. }
  10427. }
  10428. }
  10429. }
  10430. }
  10431. }
  10432. }
  10433. }
  10434. },
  10435. "/ocs/v2.php/apps/spreed/api/{apiVersion}/publicshareauth": {
  10436. "post": {
  10437. "operationId": "public_share_auth-create-room",
  10438. "summary": "Creates a new room for video verification (requesting the password of a share)",
  10439. "description": "The new room is a public room associated with a \"share:password\" object with the ID of the share token. Unlike normal rooms in which the owner is the user that created the room these are special rooms always created by a guest or user on behalf of a registered user, the sharer, who will be the owner of the room.\nThe share must have \"send password by Talk\" enabled; an error is returned otherwise.",
  10440. "tags": [
  10441. "files_integration"
  10442. ],
  10443. "security": [
  10444. {},
  10445. {
  10446. "bearer_auth": []
  10447. },
  10448. {
  10449. "basic_auth": []
  10450. }
  10451. ],
  10452. "requestBody": {
  10453. "required": true,
  10454. "content": {
  10455. "application/json": {
  10456. "schema": {
  10457. "type": "object",
  10458. "required": [
  10459. "shareToken"
  10460. ],
  10461. "properties": {
  10462. "shareToken": {
  10463. "type": "string",
  10464. "description": "Token of the file share"
  10465. }
  10466. }
  10467. }
  10468. }
  10469. }
  10470. },
  10471. "parameters": [
  10472. {
  10473. "name": "apiVersion",
  10474. "in": "path",
  10475. "required": true,
  10476. "schema": {
  10477. "type": "string",
  10478. "enum": [
  10479. "v1"
  10480. ],
  10481. "default": "v1"
  10482. }
  10483. },
  10484. {
  10485. "name": "OCS-APIRequest",
  10486. "in": "header",
  10487. "description": "Required to be true for the API request to pass",
  10488. "required": true,
  10489. "schema": {
  10490. "type": "boolean",
  10491. "default": true
  10492. }
  10493. }
  10494. ],
  10495. "responses": {
  10496. "201": {
  10497. "description": "Room created successfully",
  10498. "content": {
  10499. "application/json": {
  10500. "schema": {
  10501. "type": "object",
  10502. "required": [
  10503. "ocs"
  10504. ],
  10505. "properties": {
  10506. "ocs": {
  10507. "type": "object",
  10508. "required": [
  10509. "meta",
  10510. "data"
  10511. ],
  10512. "properties": {
  10513. "meta": {
  10514. "$ref": "#/components/schemas/OCSMeta"
  10515. },
  10516. "data": {
  10517. "type": "object",
  10518. "required": [
  10519. "token",
  10520. "name",
  10521. "displayName"
  10522. ],
  10523. "properties": {
  10524. "token": {
  10525. "type": "string"
  10526. },
  10527. "name": {
  10528. "type": "string"
  10529. },
  10530. "displayName": {
  10531. "type": "string"
  10532. }
  10533. }
  10534. }
  10535. }
  10536. }
  10537. }
  10538. }
  10539. }
  10540. }
  10541. },
  10542. "404": {
  10543. "description": "Share not found",
  10544. "content": {
  10545. "application/json": {
  10546. "schema": {
  10547. "type": "object",
  10548. "required": [
  10549. "ocs"
  10550. ],
  10551. "properties": {
  10552. "ocs": {
  10553. "type": "object",
  10554. "required": [
  10555. "meta",
  10556. "data"
  10557. ],
  10558. "properties": {
  10559. "meta": {
  10560. "$ref": "#/components/schemas/OCSMeta"
  10561. },
  10562. "data": {
  10563. "nullable": true
  10564. }
  10565. }
  10566. }
  10567. }
  10568. }
  10569. }
  10570. }
  10571. }
  10572. }
  10573. }
  10574. },
  10575. "/ocs/v2.php/apps/spreed/api/{apiVersion}/reaction/{token}/{messageId}": {
  10576. "post": {
  10577. "operationId": "reaction-react",
  10578. "summary": "Add a reaction to a message",
  10579. "tags": [
  10580. "reaction"
  10581. ],
  10582. "security": [
  10583. {},
  10584. {
  10585. "bearer_auth": []
  10586. },
  10587. {
  10588. "basic_auth": []
  10589. }
  10590. ],
  10591. "requestBody": {
  10592. "required": true,
  10593. "content": {
  10594. "application/json": {
  10595. "schema": {
  10596. "type": "object",
  10597. "required": [
  10598. "reaction"
  10599. ],
  10600. "properties": {
  10601. "reaction": {
  10602. "type": "string",
  10603. "description": "Emoji to add"
  10604. }
  10605. }
  10606. }
  10607. }
  10608. }
  10609. },
  10610. "parameters": [
  10611. {
  10612. "name": "apiVersion",
  10613. "in": "path",
  10614. "required": true,
  10615. "schema": {
  10616. "type": "string",
  10617. "enum": [
  10618. "v1"
  10619. ],
  10620. "default": "v1"
  10621. }
  10622. },
  10623. {
  10624. "name": "token",
  10625. "in": "path",
  10626. "required": true,
  10627. "schema": {
  10628. "type": "string",
  10629. "pattern": "^[a-z0-9]{4,30}$"
  10630. }
  10631. },
  10632. {
  10633. "name": "messageId",
  10634. "in": "path",
  10635. "description": "ID of the message",
  10636. "required": true,
  10637. "schema": {
  10638. "type": "integer",
  10639. "format": "int64",
  10640. "minimum": 0
  10641. }
  10642. },
  10643. {
  10644. "name": "OCS-APIRequest",
  10645. "in": "header",
  10646. "description": "Required to be true for the API request to pass",
  10647. "required": true,
  10648. "schema": {
  10649. "type": "boolean",
  10650. "default": true
  10651. }
  10652. }
  10653. ],
  10654. "responses": {
  10655. "200": {
  10656. "description": "Reaction already existed",
  10657. "content": {
  10658. "application/json": {
  10659. "schema": {
  10660. "type": "object",
  10661. "required": [
  10662. "ocs"
  10663. ],
  10664. "properties": {
  10665. "ocs": {
  10666. "type": "object",
  10667. "required": [
  10668. "meta",
  10669. "data"
  10670. ],
  10671. "properties": {
  10672. "meta": {
  10673. "$ref": "#/components/schemas/OCSMeta"
  10674. },
  10675. "data": {
  10676. "type": "object",
  10677. "additionalProperties": {
  10678. "type": "array",
  10679. "items": {
  10680. "$ref": "#/components/schemas/Reaction"
  10681. }
  10682. }
  10683. }
  10684. }
  10685. }
  10686. }
  10687. }
  10688. }
  10689. }
  10690. },
  10691. "201": {
  10692. "description": "Reaction added successfully",
  10693. "content": {
  10694. "application/json": {
  10695. "schema": {
  10696. "type": "object",
  10697. "required": [
  10698. "ocs"
  10699. ],
  10700. "properties": {
  10701. "ocs": {
  10702. "type": "object",
  10703. "required": [
  10704. "meta",
  10705. "data"
  10706. ],
  10707. "properties": {
  10708. "meta": {
  10709. "$ref": "#/components/schemas/OCSMeta"
  10710. },
  10711. "data": {
  10712. "type": "object",
  10713. "additionalProperties": {
  10714. "type": "array",
  10715. "items": {
  10716. "$ref": "#/components/schemas/Reaction"
  10717. }
  10718. }
  10719. }
  10720. }
  10721. }
  10722. }
  10723. }
  10724. }
  10725. }
  10726. },
  10727. "400": {
  10728. "description": "Adding reaction is not possible",
  10729. "content": {
  10730. "application/json": {
  10731. "schema": {
  10732. "type": "object",
  10733. "required": [
  10734. "ocs"
  10735. ],
  10736. "properties": {
  10737. "ocs": {
  10738. "type": "object",
  10739. "required": [
  10740. "meta",
  10741. "data"
  10742. ],
  10743. "properties": {
  10744. "meta": {
  10745. "$ref": "#/components/schemas/OCSMeta"
  10746. },
  10747. "data": {
  10748. "nullable": true
  10749. }
  10750. }
  10751. }
  10752. }
  10753. }
  10754. }
  10755. }
  10756. },
  10757. "404": {
  10758. "description": "Message not found",
  10759. "content": {
  10760. "application/json": {
  10761. "schema": {
  10762. "type": "object",
  10763. "required": [
  10764. "ocs"
  10765. ],
  10766. "properties": {
  10767. "ocs": {
  10768. "type": "object",
  10769. "required": [
  10770. "meta",
  10771. "data"
  10772. ],
  10773. "properties": {
  10774. "meta": {
  10775. "$ref": "#/components/schemas/OCSMeta"
  10776. },
  10777. "data": {
  10778. "nullable": true
  10779. }
  10780. }
  10781. }
  10782. }
  10783. }
  10784. }
  10785. }
  10786. }
  10787. }
  10788. },
  10789. "delete": {
  10790. "operationId": "reaction-delete",
  10791. "summary": "Delete a reaction from a message",
  10792. "tags": [
  10793. "reaction"
  10794. ],
  10795. "security": [
  10796. {},
  10797. {
  10798. "bearer_auth": []
  10799. },
  10800. {
  10801. "basic_auth": []
  10802. }
  10803. ],
  10804. "parameters": [
  10805. {
  10806. "name": "apiVersion",
  10807. "in": "path",
  10808. "required": true,
  10809. "schema": {
  10810. "type": "string",
  10811. "enum": [
  10812. "v1"
  10813. ],
  10814. "default": "v1"
  10815. }
  10816. },
  10817. {
  10818. "name": "token",
  10819. "in": "path",
  10820. "required": true,
  10821. "schema": {
  10822. "type": "string",
  10823. "pattern": "^[a-z0-9]{4,30}$"
  10824. }
  10825. },
  10826. {
  10827. "name": "messageId",
  10828. "in": "path",
  10829. "description": "ID of the message",
  10830. "required": true,
  10831. "schema": {
  10832. "type": "integer",
  10833. "format": "int64",
  10834. "minimum": 0
  10835. }
  10836. },
  10837. {
  10838. "name": "reaction",
  10839. "in": "query",
  10840. "description": "Emoji to remove",
  10841. "required": true,
  10842. "schema": {
  10843. "type": "string"
  10844. }
  10845. },
  10846. {
  10847. "name": "OCS-APIRequest",
  10848. "in": "header",
  10849. "description": "Required to be true for the API request to pass",
  10850. "required": true,
  10851. "schema": {
  10852. "type": "boolean",
  10853. "default": true
  10854. }
  10855. }
  10856. ],
  10857. "responses": {
  10858. "200": {
  10859. "description": "Reaction deleted successfully",
  10860. "content": {
  10861. "application/json": {
  10862. "schema": {
  10863. "type": "object",
  10864. "required": [
  10865. "ocs"
  10866. ],
  10867. "properties": {
  10868. "ocs": {
  10869. "type": "object",
  10870. "required": [
  10871. "meta",
  10872. "data"
  10873. ],
  10874. "properties": {
  10875. "meta": {
  10876. "$ref": "#/components/schemas/OCSMeta"
  10877. },
  10878. "data": {
  10879. "type": "object",
  10880. "additionalProperties": {
  10881. "type": "array",
  10882. "items": {
  10883. "$ref": "#/components/schemas/Reaction"
  10884. }
  10885. }
  10886. }
  10887. }
  10888. }
  10889. }
  10890. }
  10891. }
  10892. }
  10893. },
  10894. "400": {
  10895. "description": "Deleting reaction is not possible",
  10896. "content": {
  10897. "application/json": {
  10898. "schema": {
  10899. "type": "object",
  10900. "required": [
  10901. "ocs"
  10902. ],
  10903. "properties": {
  10904. "ocs": {
  10905. "type": "object",
  10906. "required": [
  10907. "meta",
  10908. "data"
  10909. ],
  10910. "properties": {
  10911. "meta": {
  10912. "$ref": "#/components/schemas/OCSMeta"
  10913. },
  10914. "data": {
  10915. "nullable": true
  10916. }
  10917. }
  10918. }
  10919. }
  10920. }
  10921. }
  10922. }
  10923. },
  10924. "404": {
  10925. "description": "Message not found",
  10926. "content": {
  10927. "application/json": {
  10928. "schema": {
  10929. "type": "object",
  10930. "required": [
  10931. "ocs"
  10932. ],
  10933. "properties": {
  10934. "ocs": {
  10935. "type": "object",
  10936. "required": [
  10937. "meta",
  10938. "data"
  10939. ],
  10940. "properties": {
  10941. "meta": {
  10942. "$ref": "#/components/schemas/OCSMeta"
  10943. },
  10944. "data": {
  10945. "nullable": true
  10946. }
  10947. }
  10948. }
  10949. }
  10950. }
  10951. }
  10952. }
  10953. }
  10954. }
  10955. },
  10956. "get": {
  10957. "operationId": "reaction-get-reactions",
  10958. "summary": "Get a list of reactions for a message",
  10959. "tags": [
  10960. "reaction"
  10961. ],
  10962. "security": [
  10963. {},
  10964. {
  10965. "bearer_auth": []
  10966. },
  10967. {
  10968. "basic_auth": []
  10969. }
  10970. ],
  10971. "parameters": [
  10972. {
  10973. "name": "apiVersion",
  10974. "in": "path",
  10975. "required": true,
  10976. "schema": {
  10977. "type": "string",
  10978. "enum": [
  10979. "v1"
  10980. ],
  10981. "default": "v1"
  10982. }
  10983. },
  10984. {
  10985. "name": "token",
  10986. "in": "path",
  10987. "required": true,
  10988. "schema": {
  10989. "type": "string",
  10990. "pattern": "^[a-z0-9]{4,30}$"
  10991. }
  10992. },
  10993. {
  10994. "name": "messageId",
  10995. "in": "path",
  10996. "description": "ID of the message",
  10997. "required": true,
  10998. "schema": {
  10999. "type": "integer",
  11000. "format": "int64",
  11001. "minimum": 0
  11002. }
  11003. },
  11004. {
  11005. "name": "reaction",
  11006. "in": "query",
  11007. "description": "Emoji to filter",
  11008. "schema": {
  11009. "type": "string",
  11010. "nullable": true
  11011. }
  11012. },
  11013. {
  11014. "name": "OCS-APIRequest",
  11015. "in": "header",
  11016. "description": "Required to be true for the API request to pass",
  11017. "required": true,
  11018. "schema": {
  11019. "type": "boolean",
  11020. "default": true
  11021. }
  11022. }
  11023. ],
  11024. "responses": {
  11025. "200": {
  11026. "description": "Reactions returned",
  11027. "content": {
  11028. "application/json": {
  11029. "schema": {
  11030. "type": "object",
  11031. "required": [
  11032. "ocs"
  11033. ],
  11034. "properties": {
  11035. "ocs": {
  11036. "type": "object",
  11037. "required": [
  11038. "meta",
  11039. "data"
  11040. ],
  11041. "properties": {
  11042. "meta": {
  11043. "$ref": "#/components/schemas/OCSMeta"
  11044. },
  11045. "data": {
  11046. "type": "object",
  11047. "additionalProperties": {
  11048. "type": "array",
  11049. "items": {
  11050. "$ref": "#/components/schemas/Reaction"
  11051. }
  11052. }
  11053. }
  11054. }
  11055. }
  11056. }
  11057. }
  11058. }
  11059. }
  11060. },
  11061. "404": {
  11062. "description": "Message or reaction not found",
  11063. "content": {
  11064. "application/json": {
  11065. "schema": {
  11066. "type": "object",
  11067. "required": [
  11068. "ocs"
  11069. ],
  11070. "properties": {
  11071. "ocs": {
  11072. "type": "object",
  11073. "required": [
  11074. "meta",
  11075. "data"
  11076. ],
  11077. "properties": {
  11078. "meta": {
  11079. "$ref": "#/components/schemas/OCSMeta"
  11080. },
  11081. "data": {
  11082. "nullable": true
  11083. }
  11084. }
  11085. }
  11086. }
  11087. }
  11088. }
  11089. }
  11090. }
  11091. }
  11092. }
  11093. },
  11094. "/ocs/v2.php/apps/spreed/api/{apiVersion}/recording/{token}": {
  11095. "post": {
  11096. "operationId": "recording-start",
  11097. "summary": "Start the recording",
  11098. "tags": [
  11099. "recording"
  11100. ],
  11101. "security": [
  11102. {
  11103. "bearer_auth": []
  11104. },
  11105. {
  11106. "basic_auth": []
  11107. }
  11108. ],
  11109. "requestBody": {
  11110. "required": true,
  11111. "content": {
  11112. "application/json": {
  11113. "schema": {
  11114. "type": "object",
  11115. "required": [
  11116. "status"
  11117. ],
  11118. "properties": {
  11119. "status": {
  11120. "type": "integer",
  11121. "format": "int64",
  11122. "description": "Type of the recording"
  11123. }
  11124. }
  11125. }
  11126. }
  11127. }
  11128. },
  11129. "parameters": [
  11130. {
  11131. "name": "apiVersion",
  11132. "in": "path",
  11133. "required": true,
  11134. "schema": {
  11135. "type": "string",
  11136. "enum": [
  11137. "v1"
  11138. ],
  11139. "default": "v1"
  11140. }
  11141. },
  11142. {
  11143. "name": "token",
  11144. "in": "path",
  11145. "required": true,
  11146. "schema": {
  11147. "type": "string",
  11148. "pattern": "^[a-z0-9]{4,30}$"
  11149. }
  11150. },
  11151. {
  11152. "name": "OCS-APIRequest",
  11153. "in": "header",
  11154. "description": "Required to be true for the API request to pass",
  11155. "required": true,
  11156. "schema": {
  11157. "type": "boolean",
  11158. "default": true
  11159. }
  11160. }
  11161. ],
  11162. "responses": {
  11163. "200": {
  11164. "description": "Recording started successfully",
  11165. "content": {
  11166. "application/json": {
  11167. "schema": {
  11168. "type": "object",
  11169. "required": [
  11170. "ocs"
  11171. ],
  11172. "properties": {
  11173. "ocs": {
  11174. "type": "object",
  11175. "required": [
  11176. "meta",
  11177. "data"
  11178. ],
  11179. "properties": {
  11180. "meta": {
  11181. "$ref": "#/components/schemas/OCSMeta"
  11182. },
  11183. "data": {
  11184. "nullable": true
  11185. }
  11186. }
  11187. }
  11188. }
  11189. }
  11190. }
  11191. }
  11192. },
  11193. "400": {
  11194. "description": "Starting recording is not possible",
  11195. "content": {
  11196. "application/json": {
  11197. "schema": {
  11198. "type": "object",
  11199. "required": [
  11200. "ocs"
  11201. ],
  11202. "properties": {
  11203. "ocs": {
  11204. "type": "object",
  11205. "required": [
  11206. "meta",
  11207. "data"
  11208. ],
  11209. "properties": {
  11210. "meta": {
  11211. "$ref": "#/components/schemas/OCSMeta"
  11212. },
  11213. "data": {
  11214. "type": "object",
  11215. "required": [
  11216. "error"
  11217. ],
  11218. "properties": {
  11219. "error": {
  11220. "type": "string"
  11221. }
  11222. }
  11223. }
  11224. }
  11225. }
  11226. }
  11227. }
  11228. }
  11229. }
  11230. }
  11231. }
  11232. },
  11233. "delete": {
  11234. "operationId": "recording-stop",
  11235. "summary": "Stop the recording",
  11236. "tags": [
  11237. "recording"
  11238. ],
  11239. "security": [
  11240. {
  11241. "bearer_auth": []
  11242. },
  11243. {
  11244. "basic_auth": []
  11245. }
  11246. ],
  11247. "parameters": [
  11248. {
  11249. "name": "apiVersion",
  11250. "in": "path",
  11251. "required": true,
  11252. "schema": {
  11253. "type": "string",
  11254. "enum": [
  11255. "v1"
  11256. ],
  11257. "default": "v1"
  11258. }
  11259. },
  11260. {
  11261. "name": "token",
  11262. "in": "path",
  11263. "required": true,
  11264. "schema": {
  11265. "type": "string",
  11266. "pattern": "^[a-z0-9]{4,30}$"
  11267. }
  11268. },
  11269. {
  11270. "name": "OCS-APIRequest",
  11271. "in": "header",
  11272. "description": "Required to be true for the API request to pass",
  11273. "required": true,
  11274. "schema": {
  11275. "type": "boolean",
  11276. "default": true
  11277. }
  11278. }
  11279. ],
  11280. "responses": {
  11281. "200": {
  11282. "description": "Recording stopped successfully",
  11283. "content": {
  11284. "application/json": {
  11285. "schema": {
  11286. "type": "object",
  11287. "required": [
  11288. "ocs"
  11289. ],
  11290. "properties": {
  11291. "ocs": {
  11292. "type": "object",
  11293. "required": [
  11294. "meta",
  11295. "data"
  11296. ],
  11297. "properties": {
  11298. "meta": {
  11299. "$ref": "#/components/schemas/OCSMeta"
  11300. },
  11301. "data": {
  11302. "nullable": true
  11303. }
  11304. }
  11305. }
  11306. }
  11307. }
  11308. }
  11309. }
  11310. },
  11311. "400": {
  11312. "description": "Stopping recording is not possible",
  11313. "content": {
  11314. "application/json": {
  11315. "schema": {
  11316. "type": "object",
  11317. "required": [
  11318. "ocs"
  11319. ],
  11320. "properties": {
  11321. "ocs": {
  11322. "type": "object",
  11323. "required": [
  11324. "meta",
  11325. "data"
  11326. ],
  11327. "properties": {
  11328. "meta": {
  11329. "$ref": "#/components/schemas/OCSMeta"
  11330. },
  11331. "data": {
  11332. "type": "object",
  11333. "required": [
  11334. "error"
  11335. ],
  11336. "properties": {
  11337. "error": {
  11338. "type": "string"
  11339. }
  11340. }
  11341. }
  11342. }
  11343. }
  11344. }
  11345. }
  11346. }
  11347. }
  11348. }
  11349. }
  11350. }
  11351. },
  11352. "/ocs/v2.php/apps/spreed/api/{apiVersion}/recording/{token}/notification": {
  11353. "delete": {
  11354. "operationId": "recording-notification-dismiss",
  11355. "summary": "Dismiss the store call recording notification",
  11356. "tags": [
  11357. "recording"
  11358. ],
  11359. "security": [
  11360. {
  11361. "bearer_auth": []
  11362. },
  11363. {
  11364. "basic_auth": []
  11365. }
  11366. ],
  11367. "parameters": [
  11368. {
  11369. "name": "apiVersion",
  11370. "in": "path",
  11371. "required": true,
  11372. "schema": {
  11373. "type": "string",
  11374. "enum": [
  11375. "v1"
  11376. ],
  11377. "default": "v1"
  11378. }
  11379. },
  11380. {
  11381. "name": "token",
  11382. "in": "path",
  11383. "required": true,
  11384. "schema": {
  11385. "type": "string",
  11386. "pattern": "^[a-z0-9]{4,30}$"
  11387. }
  11388. },
  11389. {
  11390. "name": "timestamp",
  11391. "in": "query",
  11392. "description": "Timestamp of the notification to be dismissed",
  11393. "required": true,
  11394. "schema": {
  11395. "type": "integer",
  11396. "format": "int64",
  11397. "minimum": 0
  11398. }
  11399. },
  11400. {
  11401. "name": "OCS-APIRequest",
  11402. "in": "header",
  11403. "description": "Required to be true for the API request to pass",
  11404. "required": true,
  11405. "schema": {
  11406. "type": "boolean",
  11407. "default": true
  11408. }
  11409. }
  11410. ],
  11411. "responses": {
  11412. "200": {
  11413. "description": "Notification dismissed successfully",
  11414. "content": {
  11415. "application/json": {
  11416. "schema": {
  11417. "type": "object",
  11418. "required": [
  11419. "ocs"
  11420. ],
  11421. "properties": {
  11422. "ocs": {
  11423. "type": "object",
  11424. "required": [
  11425. "meta",
  11426. "data"
  11427. ],
  11428. "properties": {
  11429. "meta": {
  11430. "$ref": "#/components/schemas/OCSMeta"
  11431. },
  11432. "data": {
  11433. "nullable": true
  11434. }
  11435. }
  11436. }
  11437. }
  11438. }
  11439. }
  11440. }
  11441. },
  11442. "400": {
  11443. "description": "Dismissing notification is not possible",
  11444. "content": {
  11445. "application/json": {
  11446. "schema": {
  11447. "type": "object",
  11448. "required": [
  11449. "ocs"
  11450. ],
  11451. "properties": {
  11452. "ocs": {
  11453. "type": "object",
  11454. "required": [
  11455. "meta",
  11456. "data"
  11457. ],
  11458. "properties": {
  11459. "meta": {
  11460. "$ref": "#/components/schemas/OCSMeta"
  11461. },
  11462. "data": {
  11463. "type": "object",
  11464. "required": [
  11465. "error"
  11466. ],
  11467. "properties": {
  11468. "error": {
  11469. "type": "string"
  11470. }
  11471. }
  11472. }
  11473. }
  11474. }
  11475. }
  11476. }
  11477. }
  11478. }
  11479. }
  11480. }
  11481. }
  11482. },
  11483. "/ocs/v2.php/apps/spreed/api/{apiVersion}/recording/{token}/share-chat": {
  11484. "post": {
  11485. "operationId": "recording-share-to-chat",
  11486. "summary": "Share the recorded file to the chat",
  11487. "tags": [
  11488. "recording"
  11489. ],
  11490. "security": [
  11491. {
  11492. "bearer_auth": []
  11493. },
  11494. {
  11495. "basic_auth": []
  11496. }
  11497. ],
  11498. "requestBody": {
  11499. "required": true,
  11500. "content": {
  11501. "application/json": {
  11502. "schema": {
  11503. "type": "object",
  11504. "required": [
  11505. "fileId",
  11506. "timestamp"
  11507. ],
  11508. "properties": {
  11509. "fileId": {
  11510. "type": "integer",
  11511. "format": "int64",
  11512. "description": "ID of the file",
  11513. "minimum": 0
  11514. },
  11515. "timestamp": {
  11516. "type": "integer",
  11517. "format": "int64",
  11518. "description": "Timestamp of the notification to be dismissed",
  11519. "minimum": 0
  11520. }
  11521. }
  11522. }
  11523. }
  11524. }
  11525. },
  11526. "parameters": [
  11527. {
  11528. "name": "apiVersion",
  11529. "in": "path",
  11530. "required": true,
  11531. "schema": {
  11532. "type": "string",
  11533. "enum": [
  11534. "v1"
  11535. ],
  11536. "default": "v1"
  11537. }
  11538. },
  11539. {
  11540. "name": "token",
  11541. "in": "path",
  11542. "required": true,
  11543. "schema": {
  11544. "type": "string",
  11545. "pattern": "^[a-z0-9]{4,30}$"
  11546. }
  11547. },
  11548. {
  11549. "name": "OCS-APIRequest",
  11550. "in": "header",
  11551. "description": "Required to be true for the API request to pass",
  11552. "required": true,
  11553. "schema": {
  11554. "type": "boolean",
  11555. "default": true
  11556. }
  11557. }
  11558. ],
  11559. "responses": {
  11560. "200": {
  11561. "description": "Recording shared to chat successfully",
  11562. "content": {
  11563. "application/json": {
  11564. "schema": {
  11565. "type": "object",
  11566. "required": [
  11567. "ocs"
  11568. ],
  11569. "properties": {
  11570. "ocs": {
  11571. "type": "object",
  11572. "required": [
  11573. "meta",
  11574. "data"
  11575. ],
  11576. "properties": {
  11577. "meta": {
  11578. "$ref": "#/components/schemas/OCSMeta"
  11579. },
  11580. "data": {
  11581. "nullable": true
  11582. }
  11583. }
  11584. }
  11585. }
  11586. }
  11587. }
  11588. }
  11589. },
  11590. "400": {
  11591. "description": "Sharing recording to chat is not possible",
  11592. "content": {
  11593. "application/json": {
  11594. "schema": {
  11595. "type": "object",
  11596. "required": [
  11597. "ocs"
  11598. ],
  11599. "properties": {
  11600. "ocs": {
  11601. "type": "object",
  11602. "required": [
  11603. "meta",
  11604. "data"
  11605. ],
  11606. "properties": {
  11607. "meta": {
  11608. "$ref": "#/components/schemas/OCSMeta"
  11609. },
  11610. "data": {
  11611. "type": "object",
  11612. "required": [
  11613. "error"
  11614. ],
  11615. "properties": {
  11616. "error": {
  11617. "type": "string"
  11618. }
  11619. }
  11620. }
  11621. }
  11622. }
  11623. }
  11624. }
  11625. }
  11626. }
  11627. }
  11628. }
  11629. }
  11630. },
  11631. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room": {
  11632. "get": {
  11633. "operationId": "room-get-rooms",
  11634. "summary": "Get all currently existent rooms which the user has joined",
  11635. "tags": [
  11636. "room"
  11637. ],
  11638. "security": [
  11639. {
  11640. "bearer_auth": []
  11641. },
  11642. {
  11643. "basic_auth": []
  11644. }
  11645. ],
  11646. "parameters": [
  11647. {
  11648. "name": "apiVersion",
  11649. "in": "path",
  11650. "required": true,
  11651. "schema": {
  11652. "type": "string",
  11653. "enum": [
  11654. "v4"
  11655. ],
  11656. "default": "v4"
  11657. }
  11658. },
  11659. {
  11660. "name": "noStatusUpdate",
  11661. "in": "query",
  11662. "description": "When the user status should not be automatically set to online set to 1 (default 0)",
  11663. "schema": {
  11664. "type": "integer",
  11665. "format": "int64",
  11666. "default": 0,
  11667. "enum": [
  11668. 0,
  11669. 1
  11670. ]
  11671. }
  11672. },
  11673. {
  11674. "name": "includeStatus",
  11675. "in": "query",
  11676. "description": "Include the user status",
  11677. "schema": {
  11678. "type": "integer",
  11679. "default": 0,
  11680. "enum": [
  11681. 0,
  11682. 1
  11683. ]
  11684. }
  11685. },
  11686. {
  11687. "name": "modifiedSince",
  11688. "in": "query",
  11689. "description": "Filter rooms modified after a timestamp",
  11690. "schema": {
  11691. "type": "integer",
  11692. "format": "int64",
  11693. "default": 0,
  11694. "minimum": 0
  11695. }
  11696. },
  11697. {
  11698. "name": "OCS-APIRequest",
  11699. "in": "header",
  11700. "description": "Required to be true for the API request to pass",
  11701. "required": true,
  11702. "schema": {
  11703. "type": "boolean",
  11704. "default": true
  11705. }
  11706. }
  11707. ],
  11708. "responses": {
  11709. "200": {
  11710. "description": "Return list of rooms",
  11711. "headers": {
  11712. "X-Nextcloud-Talk-Hash": {
  11713. "schema": {
  11714. "type": "string"
  11715. }
  11716. },
  11717. "X-Nextcloud-Talk-Modified-Before": {
  11718. "schema": {
  11719. "type": "string"
  11720. }
  11721. },
  11722. "X-Nextcloud-Talk-Federation-Invites": {
  11723. "schema": {
  11724. "type": "string"
  11725. }
  11726. }
  11727. },
  11728. "content": {
  11729. "application/json": {
  11730. "schema": {
  11731. "type": "object",
  11732. "required": [
  11733. "ocs"
  11734. ],
  11735. "properties": {
  11736. "ocs": {
  11737. "type": "object",
  11738. "required": [
  11739. "meta",
  11740. "data"
  11741. ],
  11742. "properties": {
  11743. "meta": {
  11744. "$ref": "#/components/schemas/OCSMeta"
  11745. },
  11746. "data": {
  11747. "type": "array",
  11748. "items": {
  11749. "$ref": "#/components/schemas/Room"
  11750. }
  11751. }
  11752. }
  11753. }
  11754. }
  11755. }
  11756. }
  11757. }
  11758. }
  11759. }
  11760. },
  11761. "post": {
  11762. "operationId": "room-create-room",
  11763. "summary": "Create a room with a user, a group or a circle",
  11764. "tags": [
  11765. "room"
  11766. ],
  11767. "security": [
  11768. {
  11769. "bearer_auth": []
  11770. },
  11771. {
  11772. "basic_auth": []
  11773. }
  11774. ],
  11775. "requestBody": {
  11776. "required": true,
  11777. "content": {
  11778. "application/json": {
  11779. "schema": {
  11780. "type": "object",
  11781. "required": [
  11782. "roomType"
  11783. ],
  11784. "properties": {
  11785. "roomType": {
  11786. "type": "integer",
  11787. "format": "int64",
  11788. "description": "Type of the room"
  11789. },
  11790. "invite": {
  11791. "type": "string",
  11792. "default": "",
  11793. "description": "User, group, … ID to invite"
  11794. },
  11795. "roomName": {
  11796. "type": "string",
  11797. "default": "",
  11798. "description": "Name of the room"
  11799. },
  11800. "source": {
  11801. "type": "string",
  11802. "default": "",
  11803. "description": "Source of the invite ID ('circles' to create a room with a circle, etc.)"
  11804. },
  11805. "objectType": {
  11806. "type": "string",
  11807. "default": "",
  11808. "description": "Type of the object"
  11809. },
  11810. "objectId": {
  11811. "type": "string",
  11812. "default": "",
  11813. "description": "ID of the object"
  11814. },
  11815. "password": {
  11816. "type": "string",
  11817. "default": "",
  11818. "description": "The room password (only available with `conversation-creation-password` capability)"
  11819. }
  11820. }
  11821. }
  11822. }
  11823. }
  11824. },
  11825. "parameters": [
  11826. {
  11827. "name": "apiVersion",
  11828. "in": "path",
  11829. "required": true,
  11830. "schema": {
  11831. "type": "string",
  11832. "enum": [
  11833. "v4"
  11834. ],
  11835. "default": "v4"
  11836. }
  11837. },
  11838. {
  11839. "name": "OCS-APIRequest",
  11840. "in": "header",
  11841. "description": "Required to be true for the API request to pass",
  11842. "required": true,
  11843. "schema": {
  11844. "type": "boolean",
  11845. "default": true
  11846. }
  11847. }
  11848. ],
  11849. "responses": {
  11850. "200": {
  11851. "description": "Room already existed",
  11852. "content": {
  11853. "application/json": {
  11854. "schema": {
  11855. "type": "object",
  11856. "required": [
  11857. "ocs"
  11858. ],
  11859. "properties": {
  11860. "ocs": {
  11861. "type": "object",
  11862. "required": [
  11863. "meta",
  11864. "data"
  11865. ],
  11866. "properties": {
  11867. "meta": {
  11868. "$ref": "#/components/schemas/OCSMeta"
  11869. },
  11870. "data": {
  11871. "$ref": "#/components/schemas/Room"
  11872. }
  11873. }
  11874. }
  11875. }
  11876. }
  11877. }
  11878. }
  11879. },
  11880. "201": {
  11881. "description": "Room created successfully",
  11882. "content": {
  11883. "application/json": {
  11884. "schema": {
  11885. "type": "object",
  11886. "required": [
  11887. "ocs"
  11888. ],
  11889. "properties": {
  11890. "ocs": {
  11891. "type": "object",
  11892. "required": [
  11893. "meta",
  11894. "data"
  11895. ],
  11896. "properties": {
  11897. "meta": {
  11898. "$ref": "#/components/schemas/OCSMeta"
  11899. },
  11900. "data": {
  11901. "$ref": "#/components/schemas/Room"
  11902. }
  11903. }
  11904. }
  11905. }
  11906. }
  11907. }
  11908. }
  11909. },
  11910. "400": {
  11911. "description": "Room type invalid or missing or invalid password",
  11912. "content": {
  11913. "application/json": {
  11914. "schema": {
  11915. "type": "object",
  11916. "required": [
  11917. "ocs"
  11918. ],
  11919. "properties": {
  11920. "ocs": {
  11921. "type": "object",
  11922. "required": [
  11923. "meta",
  11924. "data"
  11925. ],
  11926. "properties": {
  11927. "meta": {
  11928. "$ref": "#/components/schemas/OCSMeta"
  11929. },
  11930. "data": {
  11931. "type": "object",
  11932. "required": [
  11933. "error"
  11934. ],
  11935. "properties": {
  11936. "error": {
  11937. "type": "string",
  11938. "enum": [
  11939. "invite",
  11940. "mode",
  11941. "object",
  11942. "password",
  11943. "permissions",
  11944. "room",
  11945. "type"
  11946. ]
  11947. },
  11948. "message": {
  11949. "type": "string"
  11950. }
  11951. }
  11952. }
  11953. }
  11954. }
  11955. }
  11956. }
  11957. }
  11958. }
  11959. },
  11960. "403": {
  11961. "description": "Missing permissions to create room",
  11962. "content": {
  11963. "application/json": {
  11964. "schema": {
  11965. "type": "object",
  11966. "required": [
  11967. "ocs"
  11968. ],
  11969. "properties": {
  11970. "ocs": {
  11971. "type": "object",
  11972. "required": [
  11973. "meta",
  11974. "data"
  11975. ],
  11976. "properties": {
  11977. "meta": {
  11978. "$ref": "#/components/schemas/OCSMeta"
  11979. },
  11980. "data": {
  11981. "type": "object",
  11982. "required": [
  11983. "error"
  11984. ],
  11985. "properties": {
  11986. "error": {
  11987. "type": "string",
  11988. "enum": [
  11989. "invite",
  11990. "mode",
  11991. "object",
  11992. "password",
  11993. "permissions",
  11994. "room",
  11995. "type"
  11996. ]
  11997. },
  11998. "message": {
  11999. "type": "string"
  12000. }
  12001. }
  12002. }
  12003. }
  12004. }
  12005. }
  12006. }
  12007. }
  12008. }
  12009. },
  12010. "404": {
  12011. "description": "User, group or other target to invite was not found",
  12012. "content": {
  12013. "application/json": {
  12014. "schema": {
  12015. "type": "object",
  12016. "required": [
  12017. "ocs"
  12018. ],
  12019. "properties": {
  12020. "ocs": {
  12021. "type": "object",
  12022. "required": [
  12023. "meta",
  12024. "data"
  12025. ],
  12026. "properties": {
  12027. "meta": {
  12028. "$ref": "#/components/schemas/OCSMeta"
  12029. },
  12030. "data": {
  12031. "type": "object",
  12032. "required": [
  12033. "error"
  12034. ],
  12035. "properties": {
  12036. "error": {
  12037. "type": "string",
  12038. "enum": [
  12039. "invite",
  12040. "mode",
  12041. "object",
  12042. "password",
  12043. "permissions",
  12044. "room",
  12045. "type"
  12046. ]
  12047. },
  12048. "message": {
  12049. "type": "string"
  12050. }
  12051. }
  12052. }
  12053. }
  12054. }
  12055. }
  12056. }
  12057. }
  12058. }
  12059. }
  12060. }
  12061. }
  12062. },
  12063. "/ocs/v2.php/apps/spreed/api/{apiVersion}/listed-room": {
  12064. "get": {
  12065. "operationId": "room-get-listed-rooms",
  12066. "summary": "Get listed rooms with optional search term",
  12067. "tags": [
  12068. "room"
  12069. ],
  12070. "security": [
  12071. {
  12072. "bearer_auth": []
  12073. },
  12074. {
  12075. "basic_auth": []
  12076. }
  12077. ],
  12078. "parameters": [
  12079. {
  12080. "name": "apiVersion",
  12081. "in": "path",
  12082. "required": true,
  12083. "schema": {
  12084. "type": "string",
  12085. "enum": [
  12086. "v4"
  12087. ],
  12088. "default": "v4"
  12089. }
  12090. },
  12091. {
  12092. "name": "searchTerm",
  12093. "in": "query",
  12094. "description": "search term",
  12095. "schema": {
  12096. "type": "string",
  12097. "default": ""
  12098. }
  12099. },
  12100. {
  12101. "name": "OCS-APIRequest",
  12102. "in": "header",
  12103. "description": "Required to be true for the API request to pass",
  12104. "required": true,
  12105. "schema": {
  12106. "type": "boolean",
  12107. "default": true
  12108. }
  12109. }
  12110. ],
  12111. "responses": {
  12112. "200": {
  12113. "description": "Return list of matching rooms",
  12114. "content": {
  12115. "application/json": {
  12116. "schema": {
  12117. "type": "object",
  12118. "required": [
  12119. "ocs"
  12120. ],
  12121. "properties": {
  12122. "ocs": {
  12123. "type": "object",
  12124. "required": [
  12125. "meta",
  12126. "data"
  12127. ],
  12128. "properties": {
  12129. "meta": {
  12130. "$ref": "#/components/schemas/OCSMeta"
  12131. },
  12132. "data": {
  12133. "type": "array",
  12134. "items": {
  12135. "$ref": "#/components/schemas/Room"
  12136. }
  12137. }
  12138. }
  12139. }
  12140. }
  12141. }
  12142. }
  12143. }
  12144. }
  12145. }
  12146. }
  12147. },
  12148. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/note-to-self": {
  12149. "get": {
  12150. "operationId": "room-get-note-to-self-conversation",
  12151. "summary": "Get the \"Note to self\" conversation for the user",
  12152. "description": "It will be automatically created when it is currently missing",
  12153. "tags": [
  12154. "room"
  12155. ],
  12156. "security": [
  12157. {
  12158. "bearer_auth": []
  12159. },
  12160. {
  12161. "basic_auth": []
  12162. }
  12163. ],
  12164. "parameters": [
  12165. {
  12166. "name": "apiVersion",
  12167. "in": "path",
  12168. "required": true,
  12169. "schema": {
  12170. "type": "string",
  12171. "enum": [
  12172. "v4"
  12173. ],
  12174. "default": "v4"
  12175. }
  12176. },
  12177. {
  12178. "name": "OCS-APIRequest",
  12179. "in": "header",
  12180. "description": "Required to be true for the API request to pass",
  12181. "required": true,
  12182. "schema": {
  12183. "type": "boolean",
  12184. "default": true
  12185. }
  12186. }
  12187. ],
  12188. "responses": {
  12189. "200": {
  12190. "description": "Room returned successfully",
  12191. "headers": {
  12192. "X-Nextcloud-Talk-Hash": {
  12193. "schema": {
  12194. "type": "string"
  12195. }
  12196. }
  12197. },
  12198. "content": {
  12199. "application/json": {
  12200. "schema": {
  12201. "type": "object",
  12202. "required": [
  12203. "ocs"
  12204. ],
  12205. "properties": {
  12206. "ocs": {
  12207. "type": "object",
  12208. "required": [
  12209. "meta",
  12210. "data"
  12211. ],
  12212. "properties": {
  12213. "meta": {
  12214. "$ref": "#/components/schemas/OCSMeta"
  12215. },
  12216. "data": {
  12217. "$ref": "#/components/schemas/Room"
  12218. }
  12219. }
  12220. }
  12221. }
  12222. }
  12223. }
  12224. }
  12225. }
  12226. }
  12227. }
  12228. },
  12229. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}": {
  12230. "get": {
  12231. "operationId": "room-get-single-room",
  12232. "summary": "Get a room",
  12233. "tags": [
  12234. "room"
  12235. ],
  12236. "security": [
  12237. {},
  12238. {
  12239. "bearer_auth": []
  12240. },
  12241. {
  12242. "basic_auth": []
  12243. }
  12244. ],
  12245. "parameters": [
  12246. {
  12247. "name": "apiVersion",
  12248. "in": "path",
  12249. "required": true,
  12250. "schema": {
  12251. "type": "string",
  12252. "enum": [
  12253. "v4"
  12254. ],
  12255. "default": "v4"
  12256. }
  12257. },
  12258. {
  12259. "name": "token",
  12260. "in": "path",
  12261. "description": "Token of the room",
  12262. "required": true,
  12263. "schema": {
  12264. "type": "string",
  12265. "pattern": "^[a-z0-9]{4,30}$"
  12266. }
  12267. },
  12268. {
  12269. "name": "OCS-APIRequest",
  12270. "in": "header",
  12271. "description": "Required to be true for the API request to pass",
  12272. "required": true,
  12273. "schema": {
  12274. "type": "boolean",
  12275. "default": true
  12276. }
  12277. }
  12278. ],
  12279. "responses": {
  12280. "200": {
  12281. "description": "Room returned",
  12282. "headers": {
  12283. "X-Nextcloud-Talk-Hash": {
  12284. "schema": {
  12285. "type": "string"
  12286. }
  12287. }
  12288. },
  12289. "content": {
  12290. "application/json": {
  12291. "schema": {
  12292. "type": "object",
  12293. "required": [
  12294. "ocs"
  12295. ],
  12296. "properties": {
  12297. "ocs": {
  12298. "type": "object",
  12299. "required": [
  12300. "meta",
  12301. "data"
  12302. ],
  12303. "properties": {
  12304. "meta": {
  12305. "$ref": "#/components/schemas/OCSMeta"
  12306. },
  12307. "data": {
  12308. "$ref": "#/components/schemas/Room"
  12309. }
  12310. }
  12311. }
  12312. }
  12313. }
  12314. }
  12315. }
  12316. },
  12317. "401": {
  12318. "description": "SIP request invalid",
  12319. "content": {
  12320. "application/json": {
  12321. "schema": {
  12322. "type": "object",
  12323. "required": [
  12324. "ocs"
  12325. ],
  12326. "properties": {
  12327. "ocs": {
  12328. "type": "object",
  12329. "required": [
  12330. "meta",
  12331. "data"
  12332. ],
  12333. "properties": {
  12334. "meta": {
  12335. "$ref": "#/components/schemas/OCSMeta"
  12336. },
  12337. "data": {
  12338. "nullable": true
  12339. }
  12340. }
  12341. }
  12342. }
  12343. }
  12344. }
  12345. }
  12346. },
  12347. "404": {
  12348. "description": "Room not found",
  12349. "content": {
  12350. "application/json": {
  12351. "schema": {
  12352. "type": "object",
  12353. "required": [
  12354. "ocs"
  12355. ],
  12356. "properties": {
  12357. "ocs": {
  12358. "type": "object",
  12359. "required": [
  12360. "meta",
  12361. "data"
  12362. ],
  12363. "properties": {
  12364. "meta": {
  12365. "$ref": "#/components/schemas/OCSMeta"
  12366. },
  12367. "data": {
  12368. "nullable": true
  12369. }
  12370. }
  12371. }
  12372. }
  12373. }
  12374. }
  12375. }
  12376. }
  12377. }
  12378. },
  12379. "put": {
  12380. "operationId": "room-rename-room",
  12381. "summary": "Rename a room",
  12382. "tags": [
  12383. "room"
  12384. ],
  12385. "security": [
  12386. {},
  12387. {
  12388. "bearer_auth": []
  12389. },
  12390. {
  12391. "basic_auth": []
  12392. }
  12393. ],
  12394. "requestBody": {
  12395. "required": true,
  12396. "content": {
  12397. "application/json": {
  12398. "schema": {
  12399. "type": "object",
  12400. "required": [
  12401. "roomName"
  12402. ],
  12403. "properties": {
  12404. "roomName": {
  12405. "type": "string",
  12406. "description": "New name"
  12407. }
  12408. }
  12409. }
  12410. }
  12411. }
  12412. },
  12413. "parameters": [
  12414. {
  12415. "name": "apiVersion",
  12416. "in": "path",
  12417. "required": true,
  12418. "schema": {
  12419. "type": "string",
  12420. "enum": [
  12421. "v4"
  12422. ],
  12423. "default": "v4"
  12424. }
  12425. },
  12426. {
  12427. "name": "token",
  12428. "in": "path",
  12429. "required": true,
  12430. "schema": {
  12431. "type": "string",
  12432. "pattern": "^[a-z0-9]{4,30}$"
  12433. }
  12434. },
  12435. {
  12436. "name": "OCS-APIRequest",
  12437. "in": "header",
  12438. "description": "Required to be true for the API request to pass",
  12439. "required": true,
  12440. "schema": {
  12441. "type": "boolean",
  12442. "default": true
  12443. }
  12444. }
  12445. ],
  12446. "responses": {
  12447. "200": {
  12448. "description": "Room renamed successfully",
  12449. "content": {
  12450. "application/json": {
  12451. "schema": {
  12452. "type": "object",
  12453. "required": [
  12454. "ocs"
  12455. ],
  12456. "properties": {
  12457. "ocs": {
  12458. "type": "object",
  12459. "required": [
  12460. "meta",
  12461. "data"
  12462. ],
  12463. "properties": {
  12464. "meta": {
  12465. "$ref": "#/components/schemas/OCSMeta"
  12466. },
  12467. "data": {
  12468. "$ref": "#/components/schemas/Room"
  12469. }
  12470. }
  12471. }
  12472. }
  12473. }
  12474. }
  12475. }
  12476. },
  12477. "400": {
  12478. "description": "Renaming room is not possible",
  12479. "content": {
  12480. "application/json": {
  12481. "schema": {
  12482. "type": "object",
  12483. "required": [
  12484. "ocs"
  12485. ],
  12486. "properties": {
  12487. "ocs": {
  12488. "type": "object",
  12489. "required": [
  12490. "meta",
  12491. "data"
  12492. ],
  12493. "properties": {
  12494. "meta": {
  12495. "$ref": "#/components/schemas/OCSMeta"
  12496. },
  12497. "data": {
  12498. "type": "object",
  12499. "required": [
  12500. "error"
  12501. ],
  12502. "properties": {
  12503. "error": {
  12504. "type": "string",
  12505. "enum": [
  12506. "type",
  12507. "value"
  12508. ]
  12509. }
  12510. }
  12511. }
  12512. }
  12513. }
  12514. }
  12515. }
  12516. }
  12517. }
  12518. }
  12519. }
  12520. },
  12521. "delete": {
  12522. "operationId": "room-delete-room",
  12523. "summary": "Delete a room",
  12524. "tags": [
  12525. "room"
  12526. ],
  12527. "security": [
  12528. {},
  12529. {
  12530. "bearer_auth": []
  12531. },
  12532. {
  12533. "basic_auth": []
  12534. }
  12535. ],
  12536. "parameters": [
  12537. {
  12538. "name": "apiVersion",
  12539. "in": "path",
  12540. "required": true,
  12541. "schema": {
  12542. "type": "string",
  12543. "enum": [
  12544. "v4"
  12545. ],
  12546. "default": "v4"
  12547. }
  12548. },
  12549. {
  12550. "name": "token",
  12551. "in": "path",
  12552. "required": true,
  12553. "schema": {
  12554. "type": "string",
  12555. "pattern": "^[a-z0-9]{4,30}$"
  12556. }
  12557. },
  12558. {
  12559. "name": "OCS-APIRequest",
  12560. "in": "header",
  12561. "description": "Required to be true for the API request to pass",
  12562. "required": true,
  12563. "schema": {
  12564. "type": "boolean",
  12565. "default": true
  12566. }
  12567. }
  12568. ],
  12569. "responses": {
  12570. "200": {
  12571. "description": "Room successfully deleted",
  12572. "content": {
  12573. "application/json": {
  12574. "schema": {
  12575. "type": "object",
  12576. "required": [
  12577. "ocs"
  12578. ],
  12579. "properties": {
  12580. "ocs": {
  12581. "type": "object",
  12582. "required": [
  12583. "meta",
  12584. "data"
  12585. ],
  12586. "properties": {
  12587. "meta": {
  12588. "$ref": "#/components/schemas/OCSMeta"
  12589. },
  12590. "data": {
  12591. "nullable": true
  12592. }
  12593. }
  12594. }
  12595. }
  12596. }
  12597. }
  12598. }
  12599. },
  12600. "400": {
  12601. "description": "Deleting room is not possible",
  12602. "content": {
  12603. "application/json": {
  12604. "schema": {
  12605. "type": "object",
  12606. "required": [
  12607. "ocs"
  12608. ],
  12609. "properties": {
  12610. "ocs": {
  12611. "type": "object",
  12612. "required": [
  12613. "meta",
  12614. "data"
  12615. ],
  12616. "properties": {
  12617. "meta": {
  12618. "$ref": "#/components/schemas/OCSMeta"
  12619. },
  12620. "data": {
  12621. "nullable": true
  12622. }
  12623. }
  12624. }
  12625. }
  12626. }
  12627. }
  12628. }
  12629. }
  12630. }
  12631. }
  12632. },
  12633. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/breakout-rooms": {
  12634. "get": {
  12635. "operationId": "room-get-breakout-rooms",
  12636. "summary": "Get breakout rooms",
  12637. "description": "All for moderators and in case of \"free selection\", or the assigned breakout room for other participants",
  12638. "tags": [
  12639. "room"
  12640. ],
  12641. "security": [
  12642. {
  12643. "bearer_auth": []
  12644. },
  12645. {
  12646. "basic_auth": []
  12647. }
  12648. ],
  12649. "parameters": [
  12650. {
  12651. "name": "apiVersion",
  12652. "in": "path",
  12653. "required": true,
  12654. "schema": {
  12655. "type": "string",
  12656. "enum": [
  12657. "v4"
  12658. ],
  12659. "default": "v4"
  12660. }
  12661. },
  12662. {
  12663. "name": "token",
  12664. "in": "path",
  12665. "required": true,
  12666. "schema": {
  12667. "type": "string",
  12668. "pattern": "^[a-z0-9]{4,30}$"
  12669. }
  12670. },
  12671. {
  12672. "name": "OCS-APIRequest",
  12673. "in": "header",
  12674. "description": "Required to be true for the API request to pass",
  12675. "required": true,
  12676. "schema": {
  12677. "type": "boolean",
  12678. "default": true
  12679. }
  12680. }
  12681. ],
  12682. "responses": {
  12683. "200": {
  12684. "description": "Breakout rooms returned",
  12685. "content": {
  12686. "application/json": {
  12687. "schema": {
  12688. "type": "object",
  12689. "required": [
  12690. "ocs"
  12691. ],
  12692. "properties": {
  12693. "ocs": {
  12694. "type": "object",
  12695. "required": [
  12696. "meta",
  12697. "data"
  12698. ],
  12699. "properties": {
  12700. "meta": {
  12701. "$ref": "#/components/schemas/OCSMeta"
  12702. },
  12703. "data": {
  12704. "type": "array",
  12705. "items": {
  12706. "$ref": "#/components/schemas/Room"
  12707. }
  12708. }
  12709. }
  12710. }
  12711. }
  12712. }
  12713. }
  12714. }
  12715. },
  12716. "400": {
  12717. "description": "Getting breakout rooms is not possible",
  12718. "content": {
  12719. "application/json": {
  12720. "schema": {
  12721. "type": "object",
  12722. "required": [
  12723. "ocs"
  12724. ],
  12725. "properties": {
  12726. "ocs": {
  12727. "type": "object",
  12728. "required": [
  12729. "meta",
  12730. "data"
  12731. ],
  12732. "properties": {
  12733. "meta": {
  12734. "$ref": "#/components/schemas/OCSMeta"
  12735. },
  12736. "data": {
  12737. "type": "object",
  12738. "required": [
  12739. "error"
  12740. ],
  12741. "properties": {
  12742. "error": {
  12743. "type": "string"
  12744. }
  12745. }
  12746. }
  12747. }
  12748. }
  12749. }
  12750. }
  12751. }
  12752. }
  12753. }
  12754. }
  12755. }
  12756. },
  12757. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/public": {
  12758. "post": {
  12759. "operationId": "room-make-public",
  12760. "summary": "Allowed guests to join conversation",
  12761. "description": "Required capability: `conversation-creation-password` for `string $password` parameter",
  12762. "tags": [
  12763. "room"
  12764. ],
  12765. "security": [
  12766. {
  12767. "bearer_auth": []
  12768. },
  12769. {
  12770. "basic_auth": []
  12771. }
  12772. ],
  12773. "requestBody": {
  12774. "required": false,
  12775. "content": {
  12776. "application/json": {
  12777. "schema": {
  12778. "type": "object",
  12779. "properties": {
  12780. "password": {
  12781. "type": "string",
  12782. "default": "",
  12783. "description": "New password (only available with `conversation-creation-password` capability)"
  12784. }
  12785. }
  12786. }
  12787. }
  12788. }
  12789. },
  12790. "parameters": [
  12791. {
  12792. "name": "apiVersion",
  12793. "in": "path",
  12794. "required": true,
  12795. "schema": {
  12796. "type": "string",
  12797. "enum": [
  12798. "v4"
  12799. ],
  12800. "default": "v4"
  12801. }
  12802. },
  12803. {
  12804. "name": "token",
  12805. "in": "path",
  12806. "required": true,
  12807. "schema": {
  12808. "type": "string",
  12809. "pattern": "^[a-z0-9]{4,30}$"
  12810. }
  12811. },
  12812. {
  12813. "name": "OCS-APIRequest",
  12814. "in": "header",
  12815. "description": "Required to be true for the API request to pass",
  12816. "required": true,
  12817. "schema": {
  12818. "type": "boolean",
  12819. "default": true
  12820. }
  12821. }
  12822. ],
  12823. "responses": {
  12824. "200": {
  12825. "description": "Allowed guests successfully",
  12826. "content": {
  12827. "application/json": {
  12828. "schema": {
  12829. "type": "object",
  12830. "required": [
  12831. "ocs"
  12832. ],
  12833. "properties": {
  12834. "ocs": {
  12835. "type": "object",
  12836. "required": [
  12837. "meta",
  12838. "data"
  12839. ],
  12840. "properties": {
  12841. "meta": {
  12842. "$ref": "#/components/schemas/OCSMeta"
  12843. },
  12844. "data": {
  12845. "$ref": "#/components/schemas/Room"
  12846. }
  12847. }
  12848. }
  12849. }
  12850. }
  12851. }
  12852. }
  12853. },
  12854. "400": {
  12855. "description": "Allowing guests is not possible",
  12856. "content": {
  12857. "application/json": {
  12858. "schema": {
  12859. "type": "object",
  12860. "required": [
  12861. "ocs"
  12862. ],
  12863. "properties": {
  12864. "ocs": {
  12865. "type": "object",
  12866. "required": [
  12867. "meta",
  12868. "data"
  12869. ],
  12870. "properties": {
  12871. "meta": {
  12872. "$ref": "#/components/schemas/OCSMeta"
  12873. },
  12874. "data": {
  12875. "type": "object",
  12876. "required": [
  12877. "error"
  12878. ],
  12879. "properties": {
  12880. "error": {
  12881. "type": "string",
  12882. "enum": [
  12883. "breakout-room",
  12884. "type",
  12885. "value",
  12886. "password"
  12887. ]
  12888. },
  12889. "message": {
  12890. "type": "string"
  12891. }
  12892. }
  12893. }
  12894. }
  12895. }
  12896. }
  12897. }
  12898. }
  12899. }
  12900. }
  12901. }
  12902. },
  12903. "delete": {
  12904. "operationId": "room-make-private",
  12905. "summary": "Disallowed guests to join conversation",
  12906. "tags": [
  12907. "room"
  12908. ],
  12909. "security": [
  12910. {
  12911. "bearer_auth": []
  12912. },
  12913. {
  12914. "basic_auth": []
  12915. }
  12916. ],
  12917. "parameters": [
  12918. {
  12919. "name": "apiVersion",
  12920. "in": "path",
  12921. "required": true,
  12922. "schema": {
  12923. "type": "string",
  12924. "enum": [
  12925. "v4"
  12926. ],
  12927. "default": "v4"
  12928. }
  12929. },
  12930. {
  12931. "name": "token",
  12932. "in": "path",
  12933. "required": true,
  12934. "schema": {
  12935. "type": "string",
  12936. "pattern": "^[a-z0-9]{4,30}$"
  12937. }
  12938. },
  12939. {
  12940. "name": "OCS-APIRequest",
  12941. "in": "header",
  12942. "description": "Required to be true for the API request to pass",
  12943. "required": true,
  12944. "schema": {
  12945. "type": "boolean",
  12946. "default": true
  12947. }
  12948. }
  12949. ],
  12950. "responses": {
  12951. "200": {
  12952. "description": "Room unpublished Disallowing guests successfully",
  12953. "content": {
  12954. "application/json": {
  12955. "schema": {
  12956. "type": "object",
  12957. "required": [
  12958. "ocs"
  12959. ],
  12960. "properties": {
  12961. "ocs": {
  12962. "type": "object",
  12963. "required": [
  12964. "meta",
  12965. "data"
  12966. ],
  12967. "properties": {
  12968. "meta": {
  12969. "$ref": "#/components/schemas/OCSMeta"
  12970. },
  12971. "data": {
  12972. "$ref": "#/components/schemas/Room"
  12973. }
  12974. }
  12975. }
  12976. }
  12977. }
  12978. }
  12979. }
  12980. },
  12981. "400": {
  12982. "description": "Disallowing guests is not possible",
  12983. "content": {
  12984. "application/json": {
  12985. "schema": {
  12986. "type": "object",
  12987. "required": [
  12988. "ocs"
  12989. ],
  12990. "properties": {
  12991. "ocs": {
  12992. "type": "object",
  12993. "required": [
  12994. "meta",
  12995. "data"
  12996. ],
  12997. "properties": {
  12998. "meta": {
  12999. "$ref": "#/components/schemas/OCSMeta"
  13000. },
  13001. "data": {
  13002. "type": "object",
  13003. "required": [
  13004. "error"
  13005. ],
  13006. "properties": {
  13007. "error": {
  13008. "type": "string",
  13009. "enum": [
  13010. "breakout-room",
  13011. "type",
  13012. "value"
  13013. ]
  13014. }
  13015. }
  13016. }
  13017. }
  13018. }
  13019. }
  13020. }
  13021. }
  13022. }
  13023. }
  13024. }
  13025. }
  13026. },
  13027. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/description": {
  13028. "put": {
  13029. "operationId": "room-set-description",
  13030. "summary": "Update the description of a room",
  13031. "tags": [
  13032. "room"
  13033. ],
  13034. "security": [
  13035. {},
  13036. {
  13037. "bearer_auth": []
  13038. },
  13039. {
  13040. "basic_auth": []
  13041. }
  13042. ],
  13043. "requestBody": {
  13044. "required": true,
  13045. "content": {
  13046. "application/json": {
  13047. "schema": {
  13048. "type": "object",
  13049. "required": [
  13050. "description"
  13051. ],
  13052. "properties": {
  13053. "description": {
  13054. "type": "string",
  13055. "description": "New description for the conversation (limited to 2.000 characters, was 500 before Talk 21)"
  13056. }
  13057. }
  13058. }
  13059. }
  13060. }
  13061. },
  13062. "parameters": [
  13063. {
  13064. "name": "apiVersion",
  13065. "in": "path",
  13066. "required": true,
  13067. "schema": {
  13068. "type": "string",
  13069. "enum": [
  13070. "v4"
  13071. ],
  13072. "default": "v4"
  13073. }
  13074. },
  13075. {
  13076. "name": "token",
  13077. "in": "path",
  13078. "required": true,
  13079. "schema": {
  13080. "type": "string",
  13081. "pattern": "^[a-z0-9]{4,30}$"
  13082. }
  13083. },
  13084. {
  13085. "name": "OCS-APIRequest",
  13086. "in": "header",
  13087. "description": "Required to be true for the API request to pass",
  13088. "required": true,
  13089. "schema": {
  13090. "type": "boolean",
  13091. "default": true
  13092. }
  13093. }
  13094. ],
  13095. "responses": {
  13096. "200": {
  13097. "description": "Description updated successfully",
  13098. "content": {
  13099. "application/json": {
  13100. "schema": {
  13101. "type": "object",
  13102. "required": [
  13103. "ocs"
  13104. ],
  13105. "properties": {
  13106. "ocs": {
  13107. "type": "object",
  13108. "required": [
  13109. "meta",
  13110. "data"
  13111. ],
  13112. "properties": {
  13113. "meta": {
  13114. "$ref": "#/components/schemas/OCSMeta"
  13115. },
  13116. "data": {
  13117. "$ref": "#/components/schemas/Room"
  13118. }
  13119. }
  13120. }
  13121. }
  13122. }
  13123. }
  13124. }
  13125. },
  13126. "400": {
  13127. "description": "Updating description is not possible",
  13128. "content": {
  13129. "application/json": {
  13130. "schema": {
  13131. "type": "object",
  13132. "required": [
  13133. "ocs"
  13134. ],
  13135. "properties": {
  13136. "ocs": {
  13137. "type": "object",
  13138. "required": [
  13139. "meta",
  13140. "data"
  13141. ],
  13142. "properties": {
  13143. "meta": {
  13144. "$ref": "#/components/schemas/OCSMeta"
  13145. },
  13146. "data": {
  13147. "type": "object",
  13148. "required": [
  13149. "error"
  13150. ],
  13151. "properties": {
  13152. "error": {
  13153. "type": "string",
  13154. "enum": [
  13155. "type",
  13156. "value"
  13157. ]
  13158. }
  13159. }
  13160. }
  13161. }
  13162. }
  13163. }
  13164. }
  13165. }
  13166. }
  13167. }
  13168. }
  13169. }
  13170. },
  13171. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/read-only": {
  13172. "put": {
  13173. "operationId": "room-set-read-only",
  13174. "summary": "Set read-only state of a room",
  13175. "tags": [
  13176. "room"
  13177. ],
  13178. "security": [
  13179. {
  13180. "bearer_auth": []
  13181. },
  13182. {
  13183. "basic_auth": []
  13184. }
  13185. ],
  13186. "requestBody": {
  13187. "required": true,
  13188. "content": {
  13189. "application/json": {
  13190. "schema": {
  13191. "type": "object",
  13192. "required": [
  13193. "state"
  13194. ],
  13195. "properties": {
  13196. "state": {
  13197. "type": "integer",
  13198. "format": "int64",
  13199. "enum": [
  13200. 0,
  13201. 1
  13202. ],
  13203. "description": "New read-only state"
  13204. }
  13205. }
  13206. }
  13207. }
  13208. }
  13209. },
  13210. "parameters": [
  13211. {
  13212. "name": "apiVersion",
  13213. "in": "path",
  13214. "required": true,
  13215. "schema": {
  13216. "type": "string",
  13217. "enum": [
  13218. "v4"
  13219. ],
  13220. "default": "v4"
  13221. }
  13222. },
  13223. {
  13224. "name": "token",
  13225. "in": "path",
  13226. "required": true,
  13227. "schema": {
  13228. "type": "string",
  13229. "pattern": "^[a-z0-9]{4,30}$"
  13230. }
  13231. },
  13232. {
  13233. "name": "OCS-APIRequest",
  13234. "in": "header",
  13235. "description": "Required to be true for the API request to pass",
  13236. "required": true,
  13237. "schema": {
  13238. "type": "boolean",
  13239. "default": true
  13240. }
  13241. }
  13242. ],
  13243. "responses": {
  13244. "200": {
  13245. "description": "Read-only state updated successfully",
  13246. "content": {
  13247. "application/json": {
  13248. "schema": {
  13249. "type": "object",
  13250. "required": [
  13251. "ocs"
  13252. ],
  13253. "properties": {
  13254. "ocs": {
  13255. "type": "object",
  13256. "required": [
  13257. "meta",
  13258. "data"
  13259. ],
  13260. "properties": {
  13261. "meta": {
  13262. "$ref": "#/components/schemas/OCSMeta"
  13263. },
  13264. "data": {
  13265. "$ref": "#/components/schemas/Room"
  13266. }
  13267. }
  13268. }
  13269. }
  13270. }
  13271. }
  13272. }
  13273. },
  13274. "400": {
  13275. "description": "Updating read-only state is not possible",
  13276. "content": {
  13277. "application/json": {
  13278. "schema": {
  13279. "type": "object",
  13280. "required": [
  13281. "ocs"
  13282. ],
  13283. "properties": {
  13284. "ocs": {
  13285. "type": "object",
  13286. "required": [
  13287. "meta",
  13288. "data"
  13289. ],
  13290. "properties": {
  13291. "meta": {
  13292. "$ref": "#/components/schemas/OCSMeta"
  13293. },
  13294. "data": {
  13295. "type": "object",
  13296. "required": [
  13297. "error"
  13298. ],
  13299. "properties": {
  13300. "error": {
  13301. "type": "string",
  13302. "enum": [
  13303. "type",
  13304. "value"
  13305. ]
  13306. }
  13307. }
  13308. }
  13309. }
  13310. }
  13311. }
  13312. }
  13313. }
  13314. }
  13315. }
  13316. }
  13317. }
  13318. },
  13319. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/listable": {
  13320. "put": {
  13321. "operationId": "room-set-listable",
  13322. "summary": "Make a room listable",
  13323. "tags": [
  13324. "room"
  13325. ],
  13326. "security": [
  13327. {
  13328. "bearer_auth": []
  13329. },
  13330. {
  13331. "basic_auth": []
  13332. }
  13333. ],
  13334. "requestBody": {
  13335. "required": true,
  13336. "content": {
  13337. "application/json": {
  13338. "schema": {
  13339. "type": "object",
  13340. "required": [
  13341. "scope"
  13342. ],
  13343. "properties": {
  13344. "scope": {
  13345. "type": "integer",
  13346. "format": "int64",
  13347. "enum": [
  13348. 0,
  13349. 1,
  13350. 2
  13351. ],
  13352. "description": "Scope where the room is listable"
  13353. }
  13354. }
  13355. }
  13356. }
  13357. }
  13358. },
  13359. "parameters": [
  13360. {
  13361. "name": "apiVersion",
  13362. "in": "path",
  13363. "required": true,
  13364. "schema": {
  13365. "type": "string",
  13366. "enum": [
  13367. "v4"
  13368. ],
  13369. "default": "v4"
  13370. }
  13371. },
  13372. {
  13373. "name": "token",
  13374. "in": "path",
  13375. "required": true,
  13376. "schema": {
  13377. "type": "string",
  13378. "pattern": "^[a-z0-9]{4,30}$"
  13379. }
  13380. },
  13381. {
  13382. "name": "OCS-APIRequest",
  13383. "in": "header",
  13384. "description": "Required to be true for the API request to pass",
  13385. "required": true,
  13386. "schema": {
  13387. "type": "boolean",
  13388. "default": true
  13389. }
  13390. }
  13391. ],
  13392. "responses": {
  13393. "200": {
  13394. "description": "Made room listable successfully",
  13395. "content": {
  13396. "application/json": {
  13397. "schema": {
  13398. "type": "object",
  13399. "required": [
  13400. "ocs"
  13401. ],
  13402. "properties": {
  13403. "ocs": {
  13404. "type": "object",
  13405. "required": [
  13406. "meta",
  13407. "data"
  13408. ],
  13409. "properties": {
  13410. "meta": {
  13411. "$ref": "#/components/schemas/OCSMeta"
  13412. },
  13413. "data": {
  13414. "$ref": "#/components/schemas/Room"
  13415. }
  13416. }
  13417. }
  13418. }
  13419. }
  13420. }
  13421. }
  13422. },
  13423. "400": {
  13424. "description": "Making room listable is not possible",
  13425. "content": {
  13426. "application/json": {
  13427. "schema": {
  13428. "type": "object",
  13429. "required": [
  13430. "ocs"
  13431. ],
  13432. "properties": {
  13433. "ocs": {
  13434. "type": "object",
  13435. "required": [
  13436. "meta",
  13437. "data"
  13438. ],
  13439. "properties": {
  13440. "meta": {
  13441. "$ref": "#/components/schemas/OCSMeta"
  13442. },
  13443. "data": {
  13444. "type": "object",
  13445. "required": [
  13446. "error"
  13447. ],
  13448. "properties": {
  13449. "error": {
  13450. "type": "string",
  13451. "enum": [
  13452. "breakout-room",
  13453. "type",
  13454. "value"
  13455. ]
  13456. }
  13457. }
  13458. }
  13459. }
  13460. }
  13461. }
  13462. }
  13463. }
  13464. }
  13465. }
  13466. }
  13467. }
  13468. },
  13469. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/password": {
  13470. "put": {
  13471. "operationId": "room-set-password",
  13472. "summary": "Set a password for a room",
  13473. "tags": [
  13474. "room"
  13475. ],
  13476. "security": [
  13477. {},
  13478. {
  13479. "bearer_auth": []
  13480. },
  13481. {
  13482. "basic_auth": []
  13483. }
  13484. ],
  13485. "requestBody": {
  13486. "required": true,
  13487. "content": {
  13488. "application/json": {
  13489. "schema": {
  13490. "type": "object",
  13491. "required": [
  13492. "password"
  13493. ],
  13494. "properties": {
  13495. "password": {
  13496. "type": "string",
  13497. "description": "New password"
  13498. }
  13499. }
  13500. }
  13501. }
  13502. }
  13503. },
  13504. "parameters": [
  13505. {
  13506. "name": "apiVersion",
  13507. "in": "path",
  13508. "required": true,
  13509. "schema": {
  13510. "type": "string",
  13511. "enum": [
  13512. "v4"
  13513. ],
  13514. "default": "v4"
  13515. }
  13516. },
  13517. {
  13518. "name": "token",
  13519. "in": "path",
  13520. "required": true,
  13521. "schema": {
  13522. "type": "string",
  13523. "pattern": "^[a-z0-9]{4,30}$"
  13524. }
  13525. },
  13526. {
  13527. "name": "OCS-APIRequest",
  13528. "in": "header",
  13529. "description": "Required to be true for the API request to pass",
  13530. "required": true,
  13531. "schema": {
  13532. "type": "boolean",
  13533. "default": true
  13534. }
  13535. }
  13536. ],
  13537. "responses": {
  13538. "200": {
  13539. "description": "Password set successfully",
  13540. "content": {
  13541. "application/json": {
  13542. "schema": {
  13543. "type": "object",
  13544. "required": [
  13545. "ocs"
  13546. ],
  13547. "properties": {
  13548. "ocs": {
  13549. "type": "object",
  13550. "required": [
  13551. "meta",
  13552. "data"
  13553. ],
  13554. "properties": {
  13555. "meta": {
  13556. "$ref": "#/components/schemas/OCSMeta"
  13557. },
  13558. "data": {
  13559. "$ref": "#/components/schemas/Room"
  13560. }
  13561. }
  13562. }
  13563. }
  13564. }
  13565. }
  13566. }
  13567. },
  13568. "400": {
  13569. "description": "Setting password is not possible",
  13570. "content": {
  13571. "application/json": {
  13572. "schema": {
  13573. "type": "object",
  13574. "required": [
  13575. "ocs"
  13576. ],
  13577. "properties": {
  13578. "ocs": {
  13579. "type": "object",
  13580. "required": [
  13581. "meta",
  13582. "data"
  13583. ],
  13584. "properties": {
  13585. "meta": {
  13586. "$ref": "#/components/schemas/OCSMeta"
  13587. },
  13588. "data": {
  13589. "type": "object",
  13590. "required": [
  13591. "error"
  13592. ],
  13593. "properties": {
  13594. "error": {
  13595. "type": "string",
  13596. "enum": [
  13597. "breakout-room",
  13598. "type",
  13599. "value"
  13600. ]
  13601. },
  13602. "message": {
  13603. "type": "string"
  13604. }
  13605. }
  13606. }
  13607. }
  13608. }
  13609. }
  13610. }
  13611. }
  13612. }
  13613. }
  13614. }
  13615. }
  13616. },
  13617. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/permissions/{mode}": {
  13618. "put": {
  13619. "operationId": "room-set-permissions",
  13620. "summary": "Update the permissions of a room",
  13621. "tags": [
  13622. "room"
  13623. ],
  13624. "security": [
  13625. {},
  13626. {
  13627. "bearer_auth": []
  13628. },
  13629. {
  13630. "basic_auth": []
  13631. }
  13632. ],
  13633. "requestBody": {
  13634. "required": true,
  13635. "content": {
  13636. "application/json": {
  13637. "schema": {
  13638. "type": "object",
  13639. "required": [
  13640. "permissions"
  13641. ],
  13642. "properties": {
  13643. "permissions": {
  13644. "type": "integer",
  13645. "format": "int64",
  13646. "description": "New permissions",
  13647. "minimum": 0,
  13648. "maximum": 255
  13649. }
  13650. }
  13651. }
  13652. }
  13653. }
  13654. },
  13655. "parameters": [
  13656. {
  13657. "name": "apiVersion",
  13658. "in": "path",
  13659. "required": true,
  13660. "schema": {
  13661. "type": "string",
  13662. "enum": [
  13663. "v4"
  13664. ],
  13665. "default": "v4"
  13666. }
  13667. },
  13668. {
  13669. "name": "token",
  13670. "in": "path",
  13671. "required": true,
  13672. "schema": {
  13673. "type": "string",
  13674. "pattern": "^[a-z0-9]{4,30}$"
  13675. }
  13676. },
  13677. {
  13678. "name": "mode",
  13679. "in": "path",
  13680. "description": "Level of the permissions ('call' (removed in Talk 20), 'default')",
  13681. "required": true,
  13682. "schema": {
  13683. "type": "string",
  13684. "enum": [
  13685. "call",
  13686. "default"
  13687. ],
  13688. "pattern": "^(call|default)$"
  13689. }
  13690. },
  13691. {
  13692. "name": "OCS-APIRequest",
  13693. "in": "header",
  13694. "description": "Required to be true for the API request to pass",
  13695. "required": true,
  13696. "schema": {
  13697. "type": "boolean",
  13698. "default": true
  13699. }
  13700. }
  13701. ],
  13702. "responses": {
  13703. "200": {
  13704. "description": "Permissions updated successfully",
  13705. "content": {
  13706. "application/json": {
  13707. "schema": {
  13708. "type": "object",
  13709. "required": [
  13710. "ocs"
  13711. ],
  13712. "properties": {
  13713. "ocs": {
  13714. "type": "object",
  13715. "required": [
  13716. "meta",
  13717. "data"
  13718. ],
  13719. "properties": {
  13720. "meta": {
  13721. "$ref": "#/components/schemas/OCSMeta"
  13722. },
  13723. "data": {
  13724. "$ref": "#/components/schemas/Room"
  13725. }
  13726. }
  13727. }
  13728. }
  13729. }
  13730. }
  13731. }
  13732. },
  13733. "400": {
  13734. "description": "Updating permissions is not possible",
  13735. "content": {
  13736. "application/json": {
  13737. "schema": {
  13738. "type": "object",
  13739. "required": [
  13740. "ocs"
  13741. ],
  13742. "properties": {
  13743. "ocs": {
  13744. "type": "object",
  13745. "required": [
  13746. "meta",
  13747. "data"
  13748. ],
  13749. "properties": {
  13750. "meta": {
  13751. "$ref": "#/components/schemas/OCSMeta"
  13752. },
  13753. "data": {
  13754. "type": "object",
  13755. "required": [
  13756. "error"
  13757. ],
  13758. "properties": {
  13759. "error": {
  13760. "type": "string",
  13761. "enum": [
  13762. "breakout-room",
  13763. "mode",
  13764. "type",
  13765. "value"
  13766. ]
  13767. }
  13768. }
  13769. }
  13770. }
  13771. }
  13772. }
  13773. }
  13774. }
  13775. }
  13776. }
  13777. }
  13778. }
  13779. },
  13780. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/participants": {
  13781. "get": {
  13782. "operationId": "room-get-participants",
  13783. "summary": "Get a list of participants for a room",
  13784. "tags": [
  13785. "room"
  13786. ],
  13787. "security": [
  13788. {},
  13789. {
  13790. "bearer_auth": []
  13791. },
  13792. {
  13793. "basic_auth": []
  13794. }
  13795. ],
  13796. "parameters": [
  13797. {
  13798. "name": "apiVersion",
  13799. "in": "path",
  13800. "required": true,
  13801. "schema": {
  13802. "type": "string",
  13803. "enum": [
  13804. "v4"
  13805. ],
  13806. "default": "v4"
  13807. }
  13808. },
  13809. {
  13810. "name": "token",
  13811. "in": "path",
  13812. "required": true,
  13813. "schema": {
  13814. "type": "string",
  13815. "pattern": "^[a-z0-9]{4,30}$"
  13816. }
  13817. },
  13818. {
  13819. "name": "includeStatus",
  13820. "in": "query",
  13821. "description": "Include the user statuses",
  13822. "schema": {
  13823. "type": "integer",
  13824. "default": 0,
  13825. "enum": [
  13826. 0,
  13827. 1
  13828. ]
  13829. }
  13830. },
  13831. {
  13832. "name": "OCS-APIRequest",
  13833. "in": "header",
  13834. "description": "Required to be true for the API request to pass",
  13835. "required": true,
  13836. "schema": {
  13837. "type": "boolean",
  13838. "default": true
  13839. }
  13840. }
  13841. ],
  13842. "responses": {
  13843. "200": {
  13844. "description": "Participants returned",
  13845. "headers": {
  13846. "X-Nextcloud-Has-User-Statuses": {
  13847. "schema": {
  13848. "type": "boolean"
  13849. }
  13850. }
  13851. },
  13852. "content": {
  13853. "application/json": {
  13854. "schema": {
  13855. "type": "object",
  13856. "required": [
  13857. "ocs"
  13858. ],
  13859. "properties": {
  13860. "ocs": {
  13861. "type": "object",
  13862. "required": [
  13863. "meta",
  13864. "data"
  13865. ],
  13866. "properties": {
  13867. "meta": {
  13868. "$ref": "#/components/schemas/OCSMeta"
  13869. },
  13870. "data": {
  13871. "type": "array",
  13872. "items": {
  13873. "$ref": "#/components/schemas/Participant"
  13874. }
  13875. }
  13876. }
  13877. }
  13878. }
  13879. }
  13880. }
  13881. }
  13882. },
  13883. "403": {
  13884. "description": "Missing permissions for getting participants",
  13885. "content": {
  13886. "application/json": {
  13887. "schema": {
  13888. "type": "object",
  13889. "required": [
  13890. "ocs"
  13891. ],
  13892. "properties": {
  13893. "ocs": {
  13894. "type": "object",
  13895. "required": [
  13896. "meta",
  13897. "data"
  13898. ],
  13899. "properties": {
  13900. "meta": {
  13901. "$ref": "#/components/schemas/OCSMeta"
  13902. },
  13903. "data": {
  13904. "nullable": true
  13905. }
  13906. }
  13907. }
  13908. }
  13909. }
  13910. }
  13911. }
  13912. }
  13913. }
  13914. },
  13915. "post": {
  13916. "operationId": "room-add-participant-to-room",
  13917. "summary": "Add a participant to a room",
  13918. "tags": [
  13919. "room"
  13920. ],
  13921. "security": [
  13922. {
  13923. "bearer_auth": []
  13924. },
  13925. {
  13926. "basic_auth": []
  13927. }
  13928. ],
  13929. "requestBody": {
  13930. "required": true,
  13931. "content": {
  13932. "application/json": {
  13933. "schema": {
  13934. "type": "object",
  13935. "required": [
  13936. "newParticipant"
  13937. ],
  13938. "properties": {
  13939. "newParticipant": {
  13940. "type": "string",
  13941. "description": "New participant"
  13942. },
  13943. "source": {
  13944. "type": "string",
  13945. "default": "users",
  13946. "enum": [
  13947. "users",
  13948. "groups",
  13949. "circles",
  13950. "emails",
  13951. "federated_users",
  13952. "phones",
  13953. "teams"
  13954. ],
  13955. "description": "Source of the participant"
  13956. }
  13957. }
  13958. }
  13959. }
  13960. }
  13961. },
  13962. "parameters": [
  13963. {
  13964. "name": "apiVersion",
  13965. "in": "path",
  13966. "required": true,
  13967. "schema": {
  13968. "type": "string",
  13969. "enum": [
  13970. "v4"
  13971. ],
  13972. "default": "v4"
  13973. }
  13974. },
  13975. {
  13976. "name": "token",
  13977. "in": "path",
  13978. "required": true,
  13979. "schema": {
  13980. "type": "string",
  13981. "pattern": "^[a-z0-9]{4,30}$"
  13982. }
  13983. },
  13984. {
  13985. "name": "OCS-APIRequest",
  13986. "in": "header",
  13987. "description": "Required to be true for the API request to pass",
  13988. "required": true,
  13989. "schema": {
  13990. "type": "boolean",
  13991. "default": true
  13992. }
  13993. }
  13994. ],
  13995. "responses": {
  13996. "200": {
  13997. "description": "Participant successfully added",
  13998. "content": {
  13999. "application/json": {
  14000. "schema": {
  14001. "type": "object",
  14002. "required": [
  14003. "ocs"
  14004. ],
  14005. "properties": {
  14006. "ocs": {
  14007. "type": "object",
  14008. "required": [
  14009. "meta",
  14010. "data"
  14011. ],
  14012. "properties": {
  14013. "meta": {
  14014. "$ref": "#/components/schemas/OCSMeta"
  14015. },
  14016. "data": {
  14017. "type": "object",
  14018. "properties": {
  14019. "type": {
  14020. "type": "integer",
  14021. "format": "int64"
  14022. }
  14023. }
  14024. }
  14025. }
  14026. }
  14027. }
  14028. }
  14029. }
  14030. }
  14031. },
  14032. "400": {
  14033. "description": "Adding participant is not possible, e.g. when the user is banned (check error attribute of response for detail key)",
  14034. "content": {
  14035. "application/json": {
  14036. "schema": {
  14037. "type": "object",
  14038. "required": [
  14039. "ocs"
  14040. ],
  14041. "properties": {
  14042. "ocs": {
  14043. "type": "object",
  14044. "required": [
  14045. "meta",
  14046. "data"
  14047. ],
  14048. "properties": {
  14049. "meta": {
  14050. "$ref": "#/components/schemas/OCSMeta"
  14051. },
  14052. "data": {
  14053. "type": "object",
  14054. "required": [
  14055. "error"
  14056. ],
  14057. "properties": {
  14058. "error": {
  14059. "type": "string",
  14060. "enum": [
  14061. "ban",
  14062. "cloud-id",
  14063. "federation",
  14064. "moderator",
  14065. "new-participant",
  14066. "outgoing",
  14067. "reach-remote",
  14068. "room-type",
  14069. "sip",
  14070. "source",
  14071. "trusted-servers"
  14072. ]
  14073. }
  14074. }
  14075. }
  14076. }
  14077. }
  14078. }
  14079. }
  14080. }
  14081. }
  14082. },
  14083. "404": {
  14084. "description": "User, group or other target to invite was not found",
  14085. "content": {
  14086. "application/json": {
  14087. "schema": {
  14088. "type": "object",
  14089. "required": [
  14090. "ocs"
  14091. ],
  14092. "properties": {
  14093. "ocs": {
  14094. "type": "object",
  14095. "required": [
  14096. "meta",
  14097. "data"
  14098. ],
  14099. "properties": {
  14100. "meta": {
  14101. "$ref": "#/components/schemas/OCSMeta"
  14102. },
  14103. "data": {
  14104. "type": "object",
  14105. "required": [
  14106. "error"
  14107. ],
  14108. "properties": {
  14109. "error": {
  14110. "type": "string",
  14111. "enum": [
  14112. "ban",
  14113. "cloud-id",
  14114. "federation",
  14115. "moderator",
  14116. "new-participant",
  14117. "outgoing",
  14118. "reach-remote",
  14119. "room-type",
  14120. "sip",
  14121. "source",
  14122. "trusted-servers"
  14123. ]
  14124. }
  14125. }
  14126. }
  14127. }
  14128. }
  14129. }
  14130. }
  14131. }
  14132. }
  14133. },
  14134. "501": {
  14135. "description": "SIP dial-out is not configured",
  14136. "content": {
  14137. "application/json": {
  14138. "schema": {
  14139. "type": "object",
  14140. "required": [
  14141. "ocs"
  14142. ],
  14143. "properties": {
  14144. "ocs": {
  14145. "type": "object",
  14146. "required": [
  14147. "meta",
  14148. "data"
  14149. ],
  14150. "properties": {
  14151. "meta": {
  14152. "$ref": "#/components/schemas/OCSMeta"
  14153. },
  14154. "data": {
  14155. "type": "object",
  14156. "required": [
  14157. "error"
  14158. ],
  14159. "properties": {
  14160. "error": {
  14161. "type": "string",
  14162. "enum": [
  14163. "ban",
  14164. "cloud-id",
  14165. "federation",
  14166. "moderator",
  14167. "new-participant",
  14168. "outgoing",
  14169. "reach-remote",
  14170. "room-type",
  14171. "sip",
  14172. "source",
  14173. "trusted-servers"
  14174. ]
  14175. }
  14176. }
  14177. }
  14178. }
  14179. }
  14180. }
  14181. }
  14182. }
  14183. }
  14184. }
  14185. }
  14186. }
  14187. },
  14188. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/breakout-rooms/participants": {
  14189. "get": {
  14190. "operationId": "room-get-breakout-room-participants",
  14191. "summary": "Get the breakout room participants for a room",
  14192. "tags": [
  14193. "room"
  14194. ],
  14195. "security": [
  14196. {},
  14197. {
  14198. "bearer_auth": []
  14199. },
  14200. {
  14201. "basic_auth": []
  14202. }
  14203. ],
  14204. "parameters": [
  14205. {
  14206. "name": "apiVersion",
  14207. "in": "path",
  14208. "required": true,
  14209. "schema": {
  14210. "type": "string",
  14211. "enum": [
  14212. "v4"
  14213. ],
  14214. "default": "v4"
  14215. }
  14216. },
  14217. {
  14218. "name": "token",
  14219. "in": "path",
  14220. "required": true,
  14221. "schema": {
  14222. "type": "string",
  14223. "pattern": "^[a-z0-9]{4,30}$"
  14224. }
  14225. },
  14226. {
  14227. "name": "includeStatus",
  14228. "in": "query",
  14229. "description": "Include the user statuses",
  14230. "schema": {
  14231. "type": "integer",
  14232. "default": 0,
  14233. "enum": [
  14234. 0,
  14235. 1
  14236. ]
  14237. }
  14238. },
  14239. {
  14240. "name": "OCS-APIRequest",
  14241. "in": "header",
  14242. "description": "Required to be true for the API request to pass",
  14243. "required": true,
  14244. "schema": {
  14245. "type": "boolean",
  14246. "default": true
  14247. }
  14248. }
  14249. ],
  14250. "responses": {
  14251. "200": {
  14252. "description": "Breakout room participants returned",
  14253. "headers": {
  14254. "X-Nextcloud-Has-User-Statuses": {
  14255. "schema": {
  14256. "type": "boolean"
  14257. }
  14258. }
  14259. },
  14260. "content": {
  14261. "application/json": {
  14262. "schema": {
  14263. "type": "object",
  14264. "required": [
  14265. "ocs"
  14266. ],
  14267. "properties": {
  14268. "ocs": {
  14269. "type": "object",
  14270. "required": [
  14271. "meta",
  14272. "data"
  14273. ],
  14274. "properties": {
  14275. "meta": {
  14276. "$ref": "#/components/schemas/OCSMeta"
  14277. },
  14278. "data": {
  14279. "type": "array",
  14280. "items": {
  14281. "$ref": "#/components/schemas/Participant"
  14282. }
  14283. }
  14284. }
  14285. }
  14286. }
  14287. }
  14288. }
  14289. }
  14290. },
  14291. "400": {
  14292. "description": "Getting breakout room participants is not possible",
  14293. "content": {
  14294. "application/json": {
  14295. "schema": {
  14296. "type": "object",
  14297. "required": [
  14298. "ocs"
  14299. ],
  14300. "properties": {
  14301. "ocs": {
  14302. "type": "object",
  14303. "required": [
  14304. "meta",
  14305. "data"
  14306. ],
  14307. "properties": {
  14308. "meta": {
  14309. "$ref": "#/components/schemas/OCSMeta"
  14310. },
  14311. "data": {
  14312. "type": "object",
  14313. "required": [
  14314. "error"
  14315. ],
  14316. "properties": {
  14317. "error": {
  14318. "type": "string"
  14319. }
  14320. }
  14321. }
  14322. }
  14323. }
  14324. }
  14325. }
  14326. }
  14327. }
  14328. },
  14329. "403": {
  14330. "description": "Missing permissions to get breakout room participants",
  14331. "content": {
  14332. "application/json": {
  14333. "schema": {
  14334. "type": "object",
  14335. "required": [
  14336. "ocs"
  14337. ],
  14338. "properties": {
  14339. "ocs": {
  14340. "type": "object",
  14341. "required": [
  14342. "meta",
  14343. "data"
  14344. ],
  14345. "properties": {
  14346. "meta": {
  14347. "$ref": "#/components/schemas/OCSMeta"
  14348. },
  14349. "data": {
  14350. "nullable": true
  14351. }
  14352. }
  14353. }
  14354. }
  14355. }
  14356. }
  14357. }
  14358. }
  14359. }
  14360. }
  14361. },
  14362. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/participants/self": {
  14363. "delete": {
  14364. "operationId": "room-remove-self-from-room",
  14365. "summary": "Remove the current user from a room",
  14366. "tags": [
  14367. "room"
  14368. ],
  14369. "security": [
  14370. {
  14371. "bearer_auth": []
  14372. },
  14373. {
  14374. "basic_auth": []
  14375. }
  14376. ],
  14377. "parameters": [
  14378. {
  14379. "name": "apiVersion",
  14380. "in": "path",
  14381. "required": true,
  14382. "schema": {
  14383. "type": "string",
  14384. "enum": [
  14385. "v4"
  14386. ],
  14387. "default": "v4"
  14388. }
  14389. },
  14390. {
  14391. "name": "token",
  14392. "in": "path",
  14393. "required": true,
  14394. "schema": {
  14395. "type": "string",
  14396. "pattern": "^[a-z0-9]{4,30}$"
  14397. }
  14398. },
  14399. {
  14400. "name": "OCS-APIRequest",
  14401. "in": "header",
  14402. "description": "Required to be true for the API request to pass",
  14403. "required": true,
  14404. "schema": {
  14405. "type": "boolean",
  14406. "default": true
  14407. }
  14408. }
  14409. ],
  14410. "responses": {
  14411. "200": {
  14412. "description": "Participant removed successfully",
  14413. "content": {
  14414. "application/json": {
  14415. "schema": {
  14416. "type": "object",
  14417. "required": [
  14418. "ocs"
  14419. ],
  14420. "properties": {
  14421. "ocs": {
  14422. "type": "object",
  14423. "required": [
  14424. "meta",
  14425. "data"
  14426. ],
  14427. "properties": {
  14428. "meta": {
  14429. "$ref": "#/components/schemas/OCSMeta"
  14430. },
  14431. "data": {
  14432. "nullable": true
  14433. }
  14434. }
  14435. }
  14436. }
  14437. }
  14438. }
  14439. }
  14440. },
  14441. "400": {
  14442. "description": "Removing participant is not possible",
  14443. "content": {
  14444. "application/json": {
  14445. "schema": {
  14446. "type": "object",
  14447. "required": [
  14448. "ocs"
  14449. ],
  14450. "properties": {
  14451. "ocs": {
  14452. "type": "object",
  14453. "required": [
  14454. "meta",
  14455. "data"
  14456. ],
  14457. "properties": {
  14458. "meta": {
  14459. "$ref": "#/components/schemas/OCSMeta"
  14460. },
  14461. "data": {
  14462. "type": "object",
  14463. "required": [
  14464. "error"
  14465. ],
  14466. "properties": {
  14467. "error": {
  14468. "type": "string",
  14469. "enum": [
  14470. "last-moderator",
  14471. "participant"
  14472. ]
  14473. }
  14474. }
  14475. }
  14476. }
  14477. }
  14478. }
  14479. }
  14480. }
  14481. }
  14482. },
  14483. "404": {
  14484. "description": "Participant not found",
  14485. "content": {
  14486. "application/json": {
  14487. "schema": {
  14488. "type": "object",
  14489. "required": [
  14490. "ocs"
  14491. ],
  14492. "properties": {
  14493. "ocs": {
  14494. "type": "object",
  14495. "required": [
  14496. "meta",
  14497. "data"
  14498. ],
  14499. "properties": {
  14500. "meta": {
  14501. "$ref": "#/components/schemas/OCSMeta"
  14502. },
  14503. "data": {
  14504. "type": "object",
  14505. "required": [
  14506. "error"
  14507. ],
  14508. "properties": {
  14509. "error": {
  14510. "type": "string",
  14511. "enum": [
  14512. "last-moderator",
  14513. "participant"
  14514. ]
  14515. }
  14516. }
  14517. }
  14518. }
  14519. }
  14520. }
  14521. }
  14522. }
  14523. }
  14524. }
  14525. }
  14526. }
  14527. },
  14528. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/attendees": {
  14529. "delete": {
  14530. "operationId": "room-remove-attendee-from-room",
  14531. "summary": "Remove an attendee from a room",
  14532. "tags": [
  14533. "room"
  14534. ],
  14535. "security": [
  14536. {},
  14537. {
  14538. "bearer_auth": []
  14539. },
  14540. {
  14541. "basic_auth": []
  14542. }
  14543. ],
  14544. "parameters": [
  14545. {
  14546. "name": "apiVersion",
  14547. "in": "path",
  14548. "required": true,
  14549. "schema": {
  14550. "type": "string",
  14551. "enum": [
  14552. "v4"
  14553. ],
  14554. "default": "v4"
  14555. }
  14556. },
  14557. {
  14558. "name": "token",
  14559. "in": "path",
  14560. "required": true,
  14561. "schema": {
  14562. "type": "string",
  14563. "pattern": "^[a-z0-9]{4,30}$"
  14564. }
  14565. },
  14566. {
  14567. "name": "attendeeId",
  14568. "in": "query",
  14569. "description": "ID of the attendee",
  14570. "required": true,
  14571. "schema": {
  14572. "type": "integer",
  14573. "format": "int64",
  14574. "minimum": 0
  14575. }
  14576. },
  14577. {
  14578. "name": "OCS-APIRequest",
  14579. "in": "header",
  14580. "description": "Required to be true for the API request to pass",
  14581. "required": true,
  14582. "schema": {
  14583. "type": "boolean",
  14584. "default": true
  14585. }
  14586. }
  14587. ],
  14588. "responses": {
  14589. "200": {
  14590. "description": "Attendee removed successfully",
  14591. "content": {
  14592. "application/json": {
  14593. "schema": {
  14594. "type": "object",
  14595. "required": [
  14596. "ocs"
  14597. ],
  14598. "properties": {
  14599. "ocs": {
  14600. "type": "object",
  14601. "required": [
  14602. "meta",
  14603. "data"
  14604. ],
  14605. "properties": {
  14606. "meta": {
  14607. "$ref": "#/components/schemas/OCSMeta"
  14608. },
  14609. "data": {
  14610. "nullable": true
  14611. }
  14612. }
  14613. }
  14614. }
  14615. }
  14616. }
  14617. }
  14618. },
  14619. "400": {
  14620. "description": "Removing attendee is not possible",
  14621. "content": {
  14622. "application/json": {
  14623. "schema": {
  14624. "type": "object",
  14625. "required": [
  14626. "ocs"
  14627. ],
  14628. "properties": {
  14629. "ocs": {
  14630. "type": "object",
  14631. "required": [
  14632. "meta",
  14633. "data"
  14634. ],
  14635. "properties": {
  14636. "meta": {
  14637. "$ref": "#/components/schemas/OCSMeta"
  14638. },
  14639. "data": {
  14640. "type": "object",
  14641. "required": [
  14642. "error"
  14643. ],
  14644. "properties": {
  14645. "error": {
  14646. "type": "string",
  14647. "enum": [
  14648. "last-moderator",
  14649. "owner",
  14650. "participant",
  14651. "room-type"
  14652. ]
  14653. }
  14654. }
  14655. }
  14656. }
  14657. }
  14658. }
  14659. }
  14660. }
  14661. }
  14662. },
  14663. "403": {
  14664. "description": "Removing attendee is not allowed",
  14665. "content": {
  14666. "application/json": {
  14667. "schema": {
  14668. "type": "object",
  14669. "required": [
  14670. "ocs"
  14671. ],
  14672. "properties": {
  14673. "ocs": {
  14674. "type": "object",
  14675. "required": [
  14676. "meta",
  14677. "data"
  14678. ],
  14679. "properties": {
  14680. "meta": {
  14681. "$ref": "#/components/schemas/OCSMeta"
  14682. },
  14683. "data": {
  14684. "type": "object",
  14685. "required": [
  14686. "error"
  14687. ],
  14688. "properties": {
  14689. "error": {
  14690. "type": "string",
  14691. "enum": [
  14692. "last-moderator",
  14693. "owner",
  14694. "participant",
  14695. "room-type"
  14696. ]
  14697. }
  14698. }
  14699. }
  14700. }
  14701. }
  14702. }
  14703. }
  14704. }
  14705. }
  14706. },
  14707. "404": {
  14708. "description": "Attendee not found",
  14709. "content": {
  14710. "application/json": {
  14711. "schema": {
  14712. "type": "object",
  14713. "required": [
  14714. "ocs"
  14715. ],
  14716. "properties": {
  14717. "ocs": {
  14718. "type": "object",
  14719. "required": [
  14720. "meta",
  14721. "data"
  14722. ],
  14723. "properties": {
  14724. "meta": {
  14725. "$ref": "#/components/schemas/OCSMeta"
  14726. },
  14727. "data": {
  14728. "type": "object",
  14729. "required": [
  14730. "error"
  14731. ],
  14732. "properties": {
  14733. "error": {
  14734. "type": "string",
  14735. "enum": [
  14736. "last-moderator",
  14737. "owner",
  14738. "participant",
  14739. "room-type"
  14740. ]
  14741. }
  14742. }
  14743. }
  14744. }
  14745. }
  14746. }
  14747. }
  14748. }
  14749. }
  14750. }
  14751. }
  14752. }
  14753. },
  14754. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/attendees/permissions": {
  14755. "put": {
  14756. "operationId": "room-set-attendee-permissions",
  14757. "summary": "Update the permissions of an attendee",
  14758. "tags": [
  14759. "room"
  14760. ],
  14761. "security": [
  14762. {},
  14763. {
  14764. "bearer_auth": []
  14765. },
  14766. {
  14767. "basic_auth": []
  14768. }
  14769. ],
  14770. "requestBody": {
  14771. "required": true,
  14772. "content": {
  14773. "application/json": {
  14774. "schema": {
  14775. "type": "object",
  14776. "required": [
  14777. "attendeeId",
  14778. "method",
  14779. "permissions"
  14780. ],
  14781. "properties": {
  14782. "attendeeId": {
  14783. "type": "integer",
  14784. "format": "int64",
  14785. "description": "ID of the attendee",
  14786. "minimum": 0
  14787. },
  14788. "method": {
  14789. "type": "string",
  14790. "enum": [
  14791. "set",
  14792. "remove",
  14793. "add"
  14794. ],
  14795. "description": "Method of updating permissions ('set', 'remove', 'add')"
  14796. },
  14797. "permissions": {
  14798. "type": "integer",
  14799. "format": "int64",
  14800. "description": "New permissions",
  14801. "minimum": 0,
  14802. "maximum": 255
  14803. }
  14804. }
  14805. }
  14806. }
  14807. }
  14808. },
  14809. "parameters": [
  14810. {
  14811. "name": "apiVersion",
  14812. "in": "path",
  14813. "required": true,
  14814. "schema": {
  14815. "type": "string",
  14816. "enum": [
  14817. "v4"
  14818. ],
  14819. "default": "v4"
  14820. }
  14821. },
  14822. {
  14823. "name": "token",
  14824. "in": "path",
  14825. "required": true,
  14826. "schema": {
  14827. "type": "string",
  14828. "pattern": "^[a-z0-9]{4,30}$"
  14829. }
  14830. },
  14831. {
  14832. "name": "OCS-APIRequest",
  14833. "in": "header",
  14834. "description": "Required to be true for the API request to pass",
  14835. "required": true,
  14836. "schema": {
  14837. "type": "boolean",
  14838. "default": true
  14839. }
  14840. }
  14841. ],
  14842. "responses": {
  14843. "200": {
  14844. "description": "Permissions updated successfully",
  14845. "headers": {
  14846. "X-Nextcloud-Has-User-Statuses": {
  14847. "schema": {
  14848. "type": "boolean",
  14849. "enum": [
  14850. true
  14851. ]
  14852. }
  14853. }
  14854. },
  14855. "content": {
  14856. "application/json": {
  14857. "schema": {
  14858. "type": "object",
  14859. "required": [
  14860. "ocs"
  14861. ],
  14862. "properties": {
  14863. "ocs": {
  14864. "type": "object",
  14865. "required": [
  14866. "meta",
  14867. "data"
  14868. ],
  14869. "properties": {
  14870. "meta": {
  14871. "$ref": "#/components/schemas/OCSMeta"
  14872. },
  14873. "data": {
  14874. "type": "array",
  14875. "items": {
  14876. "$ref": "#/components/schemas/Participant"
  14877. }
  14878. }
  14879. }
  14880. }
  14881. }
  14882. }
  14883. }
  14884. }
  14885. },
  14886. "400": {
  14887. "description": "Updating permissions is not possible",
  14888. "content": {
  14889. "application/json": {
  14890. "schema": {
  14891. "type": "object",
  14892. "required": [
  14893. "ocs"
  14894. ],
  14895. "properties": {
  14896. "ocs": {
  14897. "type": "object",
  14898. "required": [
  14899. "meta",
  14900. "data"
  14901. ],
  14902. "properties": {
  14903. "meta": {
  14904. "$ref": "#/components/schemas/OCSMeta"
  14905. },
  14906. "data": {
  14907. "type": "object",
  14908. "required": [
  14909. "error"
  14910. ],
  14911. "properties": {
  14912. "error": {
  14913. "type": "string",
  14914. "enum": [
  14915. "participant",
  14916. "method",
  14917. "moderator",
  14918. "room-type",
  14919. "type",
  14920. "value"
  14921. ]
  14922. }
  14923. }
  14924. }
  14925. }
  14926. }
  14927. }
  14928. }
  14929. }
  14930. }
  14931. },
  14932. "403": {
  14933. "description": "Missing permissions to update permissions",
  14934. "content": {
  14935. "application/json": {
  14936. "schema": {
  14937. "type": "object",
  14938. "required": [
  14939. "ocs"
  14940. ],
  14941. "properties": {
  14942. "ocs": {
  14943. "type": "object",
  14944. "required": [
  14945. "meta",
  14946. "data"
  14947. ],
  14948. "properties": {
  14949. "meta": {
  14950. "$ref": "#/components/schemas/OCSMeta"
  14951. },
  14952. "data": {
  14953. "type": "object",
  14954. "required": [
  14955. "error"
  14956. ],
  14957. "properties": {
  14958. "error": {
  14959. "type": "string",
  14960. "enum": [
  14961. "participant",
  14962. "method",
  14963. "moderator",
  14964. "room-type",
  14965. "type",
  14966. "value"
  14967. ]
  14968. }
  14969. }
  14970. }
  14971. }
  14972. }
  14973. }
  14974. }
  14975. }
  14976. }
  14977. },
  14978. "404": {
  14979. "description": "Attendee not found",
  14980. "content": {
  14981. "application/json": {
  14982. "schema": {
  14983. "type": "object",
  14984. "required": [
  14985. "ocs"
  14986. ],
  14987. "properties": {
  14988. "ocs": {
  14989. "type": "object",
  14990. "required": [
  14991. "meta",
  14992. "data"
  14993. ],
  14994. "properties": {
  14995. "meta": {
  14996. "$ref": "#/components/schemas/OCSMeta"
  14997. },
  14998. "data": {
  14999. "type": "object",
  15000. "required": [
  15001. "error"
  15002. ],
  15003. "properties": {
  15004. "error": {
  15005. "type": "string",
  15006. "enum": [
  15007. "participant",
  15008. "method",
  15009. "moderator",
  15010. "room-type",
  15011. "type",
  15012. "value"
  15013. ]
  15014. }
  15015. }
  15016. }
  15017. }
  15018. }
  15019. }
  15020. }
  15021. }
  15022. }
  15023. }
  15024. }
  15025. }
  15026. },
  15027. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/attendees/permissions/all": {
  15028. "put": {
  15029. "operationId": "room-set-all-attendees-permissions",
  15030. "summary": "Update the permissions of all attendees",
  15031. "deprecated": true,
  15032. "tags": [
  15033. "room"
  15034. ],
  15035. "security": [
  15036. {},
  15037. {
  15038. "bearer_auth": []
  15039. },
  15040. {
  15041. "basic_auth": []
  15042. }
  15043. ],
  15044. "requestBody": {
  15045. "required": true,
  15046. "content": {
  15047. "application/json": {
  15048. "schema": {
  15049. "type": "object",
  15050. "required": [
  15051. "method",
  15052. "permissions"
  15053. ],
  15054. "properties": {
  15055. "method": {
  15056. "type": "string",
  15057. "enum": [
  15058. "set",
  15059. "remove",
  15060. "add"
  15061. ],
  15062. "description": "Method of updating permissions ('set', 'remove', 'add')"
  15063. },
  15064. "permissions": {
  15065. "type": "integer",
  15066. "format": "int64",
  15067. "description": "New permissions",
  15068. "minimum": 0,
  15069. "maximum": 255
  15070. }
  15071. }
  15072. }
  15073. }
  15074. }
  15075. },
  15076. "parameters": [
  15077. {
  15078. "name": "apiVersion",
  15079. "in": "path",
  15080. "required": true,
  15081. "schema": {
  15082. "type": "string",
  15083. "enum": [
  15084. "v4"
  15085. ],
  15086. "default": "v4"
  15087. }
  15088. },
  15089. {
  15090. "name": "token",
  15091. "in": "path",
  15092. "required": true,
  15093. "schema": {
  15094. "type": "string",
  15095. "pattern": "^[a-z0-9]{4,30}$"
  15096. }
  15097. },
  15098. {
  15099. "name": "OCS-APIRequest",
  15100. "in": "header",
  15101. "description": "Required to be true for the API request to pass",
  15102. "required": true,
  15103. "schema": {
  15104. "type": "boolean",
  15105. "default": true
  15106. }
  15107. }
  15108. ],
  15109. "responses": {
  15110. "200": {
  15111. "description": "Permissions updated successfully",
  15112. "content": {
  15113. "application/json": {
  15114. "schema": {
  15115. "type": "object",
  15116. "required": [
  15117. "ocs"
  15118. ],
  15119. "properties": {
  15120. "ocs": {
  15121. "type": "object",
  15122. "required": [
  15123. "meta",
  15124. "data"
  15125. ],
  15126. "properties": {
  15127. "meta": {
  15128. "$ref": "#/components/schemas/OCSMeta"
  15129. },
  15130. "data": {
  15131. "$ref": "#/components/schemas/Room"
  15132. }
  15133. }
  15134. }
  15135. }
  15136. }
  15137. }
  15138. }
  15139. },
  15140. "400": {
  15141. "description": "Updating permissions is not possible",
  15142. "content": {
  15143. "application/json": {
  15144. "schema": {
  15145. "type": "object",
  15146. "required": [
  15147. "ocs"
  15148. ],
  15149. "properties": {
  15150. "ocs": {
  15151. "type": "object",
  15152. "required": [
  15153. "meta",
  15154. "data"
  15155. ],
  15156. "properties": {
  15157. "meta": {
  15158. "$ref": "#/components/schemas/OCSMeta"
  15159. },
  15160. "data": {
  15161. "nullable": true
  15162. }
  15163. }
  15164. }
  15165. }
  15166. }
  15167. }
  15168. }
  15169. }
  15170. }
  15171. }
  15172. },
  15173. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/participants/active": {
  15174. "post": {
  15175. "operationId": "room-join-room",
  15176. "summary": "Join a room",
  15177. "tags": [
  15178. "room"
  15179. ],
  15180. "security": [
  15181. {},
  15182. {
  15183. "bearer_auth": []
  15184. },
  15185. {
  15186. "basic_auth": []
  15187. }
  15188. ],
  15189. "requestBody": {
  15190. "required": false,
  15191. "content": {
  15192. "application/json": {
  15193. "schema": {
  15194. "type": "object",
  15195. "properties": {
  15196. "password": {
  15197. "type": "string",
  15198. "default": "",
  15199. "description": "Password of the room"
  15200. },
  15201. "force": {
  15202. "type": "boolean",
  15203. "default": true,
  15204. "description": "Create a new session if necessary"
  15205. }
  15206. }
  15207. }
  15208. }
  15209. }
  15210. },
  15211. "parameters": [
  15212. {
  15213. "name": "apiVersion",
  15214. "in": "path",
  15215. "required": true,
  15216. "schema": {
  15217. "type": "string",
  15218. "enum": [
  15219. "v4"
  15220. ],
  15221. "default": "v4"
  15222. }
  15223. },
  15224. {
  15225. "name": "token",
  15226. "in": "path",
  15227. "description": "Token of the room",
  15228. "required": true,
  15229. "schema": {
  15230. "type": "string",
  15231. "pattern": "^[a-z0-9]{4,30}$"
  15232. }
  15233. },
  15234. {
  15235. "name": "OCS-APIRequest",
  15236. "in": "header",
  15237. "description": "Required to be true for the API request to pass",
  15238. "required": true,
  15239. "schema": {
  15240. "type": "boolean",
  15241. "default": true
  15242. }
  15243. }
  15244. ],
  15245. "responses": {
  15246. "200": {
  15247. "description": "Room joined successfully",
  15248. "headers": {
  15249. "X-Nextcloud-Talk-Proxy-Hash": {
  15250. "schema": {
  15251. "type": "string"
  15252. }
  15253. }
  15254. },
  15255. "content": {
  15256. "application/json": {
  15257. "schema": {
  15258. "type": "object",
  15259. "required": [
  15260. "ocs"
  15261. ],
  15262. "properties": {
  15263. "ocs": {
  15264. "type": "object",
  15265. "required": [
  15266. "meta",
  15267. "data"
  15268. ],
  15269. "properties": {
  15270. "meta": {
  15271. "$ref": "#/components/schemas/OCSMeta"
  15272. },
  15273. "data": {
  15274. "$ref": "#/components/schemas/Room"
  15275. }
  15276. }
  15277. }
  15278. }
  15279. }
  15280. }
  15281. }
  15282. },
  15283. "403": {
  15284. "description": "Joining room is not allowed",
  15285. "content": {
  15286. "application/json": {
  15287. "schema": {
  15288. "type": "object",
  15289. "required": [
  15290. "ocs"
  15291. ],
  15292. "properties": {
  15293. "ocs": {
  15294. "type": "object",
  15295. "required": [
  15296. "meta",
  15297. "data"
  15298. ],
  15299. "properties": {
  15300. "meta": {
  15301. "$ref": "#/components/schemas/OCSMeta"
  15302. },
  15303. "data": {
  15304. "type": "object",
  15305. "required": [
  15306. "error"
  15307. ],
  15308. "properties": {
  15309. "error": {
  15310. "type": "string",
  15311. "enum": [
  15312. "ban",
  15313. "password"
  15314. ]
  15315. }
  15316. }
  15317. }
  15318. }
  15319. }
  15320. }
  15321. }
  15322. }
  15323. }
  15324. },
  15325. "404": {
  15326. "description": "Room not found",
  15327. "content": {
  15328. "application/json": {
  15329. "schema": {
  15330. "type": "object",
  15331. "required": [
  15332. "ocs"
  15333. ],
  15334. "properties": {
  15335. "ocs": {
  15336. "type": "object",
  15337. "required": [
  15338. "meta",
  15339. "data"
  15340. ],
  15341. "properties": {
  15342. "meta": {
  15343. "$ref": "#/components/schemas/OCSMeta"
  15344. },
  15345. "data": {
  15346. "nullable": true
  15347. }
  15348. }
  15349. }
  15350. }
  15351. }
  15352. }
  15353. }
  15354. },
  15355. "409": {
  15356. "description": "Session already exists",
  15357. "content": {
  15358. "application/json": {
  15359. "schema": {
  15360. "type": "object",
  15361. "required": [
  15362. "ocs"
  15363. ],
  15364. "properties": {
  15365. "ocs": {
  15366. "type": "object",
  15367. "required": [
  15368. "meta",
  15369. "data"
  15370. ],
  15371. "properties": {
  15372. "meta": {
  15373. "$ref": "#/components/schemas/OCSMeta"
  15374. },
  15375. "data": {
  15376. "type": "object",
  15377. "required": [
  15378. "sessionId",
  15379. "inCall",
  15380. "lastPing"
  15381. ],
  15382. "properties": {
  15383. "sessionId": {
  15384. "type": "string"
  15385. },
  15386. "inCall": {
  15387. "type": "integer",
  15388. "format": "int64"
  15389. },
  15390. "lastPing": {
  15391. "type": "integer",
  15392. "format": "int64"
  15393. }
  15394. }
  15395. }
  15396. }
  15397. }
  15398. }
  15399. }
  15400. }
  15401. }
  15402. }
  15403. }
  15404. },
  15405. "delete": {
  15406. "operationId": "room-leave-room",
  15407. "summary": "Leave a room",
  15408. "tags": [
  15409. "room"
  15410. ],
  15411. "security": [
  15412. {},
  15413. {
  15414. "bearer_auth": []
  15415. },
  15416. {
  15417. "basic_auth": []
  15418. }
  15419. ],
  15420. "parameters": [
  15421. {
  15422. "name": "apiVersion",
  15423. "in": "path",
  15424. "required": true,
  15425. "schema": {
  15426. "type": "string",
  15427. "enum": [
  15428. "v4"
  15429. ],
  15430. "default": "v4"
  15431. }
  15432. },
  15433. {
  15434. "name": "token",
  15435. "in": "path",
  15436. "description": "Token of the room",
  15437. "required": true,
  15438. "schema": {
  15439. "type": "string",
  15440. "pattern": "^[a-z0-9]{4,30}$"
  15441. }
  15442. },
  15443. {
  15444. "name": "OCS-APIRequest",
  15445. "in": "header",
  15446. "description": "Required to be true for the API request to pass",
  15447. "required": true,
  15448. "schema": {
  15449. "type": "boolean",
  15450. "default": true
  15451. }
  15452. }
  15453. ],
  15454. "responses": {
  15455. "200": {
  15456. "description": "Successfully left the room",
  15457. "content": {
  15458. "application/json": {
  15459. "schema": {
  15460. "type": "object",
  15461. "required": [
  15462. "ocs"
  15463. ],
  15464. "properties": {
  15465. "ocs": {
  15466. "type": "object",
  15467. "required": [
  15468. "meta",
  15469. "data"
  15470. ],
  15471. "properties": {
  15472. "meta": {
  15473. "$ref": "#/components/schemas/OCSMeta"
  15474. },
  15475. "data": {
  15476. "nullable": true
  15477. }
  15478. }
  15479. }
  15480. }
  15481. }
  15482. }
  15483. }
  15484. }
  15485. }
  15486. }
  15487. },
  15488. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/participants/resend-invitations": {
  15489. "post": {
  15490. "operationId": "room-resend-invitations",
  15491. "summary": "Resend invitations",
  15492. "tags": [
  15493. "room"
  15494. ],
  15495. "security": [
  15496. {
  15497. "bearer_auth": []
  15498. },
  15499. {
  15500. "basic_auth": []
  15501. }
  15502. ],
  15503. "requestBody": {
  15504. "required": false,
  15505. "content": {
  15506. "application/json": {
  15507. "schema": {
  15508. "type": "object",
  15509. "properties": {
  15510. "attendeeId": {
  15511. "type": "integer",
  15512. "format": "int64",
  15513. "nullable": true,
  15514. "description": "ID of the attendee",
  15515. "minimum": 0
  15516. }
  15517. }
  15518. }
  15519. }
  15520. }
  15521. },
  15522. "parameters": [
  15523. {
  15524. "name": "apiVersion",
  15525. "in": "path",
  15526. "required": true,
  15527. "schema": {
  15528. "type": "string",
  15529. "enum": [
  15530. "v4"
  15531. ],
  15532. "default": "v4"
  15533. }
  15534. },
  15535. {
  15536. "name": "token",
  15537. "in": "path",
  15538. "required": true,
  15539. "schema": {
  15540. "type": "string",
  15541. "pattern": "^[a-z0-9]{4,30}$"
  15542. }
  15543. },
  15544. {
  15545. "name": "OCS-APIRequest",
  15546. "in": "header",
  15547. "description": "Required to be true for the API request to pass",
  15548. "required": true,
  15549. "schema": {
  15550. "type": "boolean",
  15551. "default": true
  15552. }
  15553. }
  15554. ],
  15555. "responses": {
  15556. "200": {
  15557. "description": "Invitation resent successfully",
  15558. "content": {
  15559. "application/json": {
  15560. "schema": {
  15561. "type": "object",
  15562. "required": [
  15563. "ocs"
  15564. ],
  15565. "properties": {
  15566. "ocs": {
  15567. "type": "object",
  15568. "required": [
  15569. "meta",
  15570. "data"
  15571. ],
  15572. "properties": {
  15573. "meta": {
  15574. "$ref": "#/components/schemas/OCSMeta"
  15575. },
  15576. "data": {
  15577. "nullable": true
  15578. }
  15579. }
  15580. }
  15581. }
  15582. }
  15583. }
  15584. }
  15585. },
  15586. "404": {
  15587. "description": "Attendee not found",
  15588. "content": {
  15589. "application/json": {
  15590. "schema": {
  15591. "type": "object",
  15592. "required": [
  15593. "ocs"
  15594. ],
  15595. "properties": {
  15596. "ocs": {
  15597. "type": "object",
  15598. "required": [
  15599. "meta",
  15600. "data"
  15601. ],
  15602. "properties": {
  15603. "meta": {
  15604. "$ref": "#/components/schemas/OCSMeta"
  15605. },
  15606. "data": {
  15607. "nullable": true
  15608. }
  15609. }
  15610. }
  15611. }
  15612. }
  15613. }
  15614. }
  15615. }
  15616. }
  15617. }
  15618. },
  15619. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/participants/state": {
  15620. "put": {
  15621. "operationId": "room-set-session-state",
  15622. "summary": "Set active state for a session",
  15623. "tags": [
  15624. "room"
  15625. ],
  15626. "security": [
  15627. {},
  15628. {
  15629. "bearer_auth": []
  15630. },
  15631. {
  15632. "basic_auth": []
  15633. }
  15634. ],
  15635. "requestBody": {
  15636. "required": true,
  15637. "content": {
  15638. "application/json": {
  15639. "schema": {
  15640. "type": "object",
  15641. "required": [
  15642. "state"
  15643. ],
  15644. "properties": {
  15645. "state": {
  15646. "type": "integer",
  15647. "format": "int64",
  15648. "enum": [
  15649. 0,
  15650. 1
  15651. ],
  15652. "description": "of the room"
  15653. }
  15654. }
  15655. }
  15656. }
  15657. }
  15658. },
  15659. "parameters": [
  15660. {
  15661. "name": "apiVersion",
  15662. "in": "path",
  15663. "required": true,
  15664. "schema": {
  15665. "type": "string",
  15666. "enum": [
  15667. "v4"
  15668. ],
  15669. "default": "v4"
  15670. }
  15671. },
  15672. {
  15673. "name": "token",
  15674. "in": "path",
  15675. "required": true,
  15676. "schema": {
  15677. "type": "string",
  15678. "pattern": "^[a-z0-9]{4,30}$"
  15679. }
  15680. },
  15681. {
  15682. "name": "OCS-APIRequest",
  15683. "in": "header",
  15684. "description": "Required to be true for the API request to pass",
  15685. "required": true,
  15686. "schema": {
  15687. "type": "boolean",
  15688. "default": true
  15689. }
  15690. }
  15691. ],
  15692. "responses": {
  15693. "200": {
  15694. "description": "Session state set successfully",
  15695. "content": {
  15696. "application/json": {
  15697. "schema": {
  15698. "type": "object",
  15699. "required": [
  15700. "ocs"
  15701. ],
  15702. "properties": {
  15703. "ocs": {
  15704. "type": "object",
  15705. "required": [
  15706. "meta",
  15707. "data"
  15708. ],
  15709. "properties": {
  15710. "meta": {
  15711. "$ref": "#/components/schemas/OCSMeta"
  15712. },
  15713. "data": {
  15714. "$ref": "#/components/schemas/Room"
  15715. }
  15716. }
  15717. }
  15718. }
  15719. }
  15720. }
  15721. }
  15722. },
  15723. "400": {
  15724. "description": "The provided new state was invalid",
  15725. "content": {
  15726. "application/json": {
  15727. "schema": {
  15728. "type": "object",
  15729. "required": [
  15730. "ocs"
  15731. ],
  15732. "properties": {
  15733. "ocs": {
  15734. "type": "object",
  15735. "required": [
  15736. "meta",
  15737. "data"
  15738. ],
  15739. "properties": {
  15740. "meta": {
  15741. "$ref": "#/components/schemas/OCSMeta"
  15742. },
  15743. "data": {
  15744. "nullable": true
  15745. }
  15746. }
  15747. }
  15748. }
  15749. }
  15750. }
  15751. }
  15752. },
  15753. "404": {
  15754. "description": "The participant did not have a session",
  15755. "content": {
  15756. "application/json": {
  15757. "schema": {
  15758. "type": "object",
  15759. "required": [
  15760. "ocs"
  15761. ],
  15762. "properties": {
  15763. "ocs": {
  15764. "type": "object",
  15765. "required": [
  15766. "meta",
  15767. "data"
  15768. ],
  15769. "properties": {
  15770. "meta": {
  15771. "$ref": "#/components/schemas/OCSMeta"
  15772. },
  15773. "data": {
  15774. "nullable": true
  15775. }
  15776. }
  15777. }
  15778. }
  15779. }
  15780. }
  15781. }
  15782. }
  15783. }
  15784. }
  15785. },
  15786. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/moderators": {
  15787. "post": {
  15788. "operationId": "room-promote-moderator",
  15789. "summary": "Promote an attendee to moderator",
  15790. "tags": [
  15791. "room"
  15792. ],
  15793. "security": [
  15794. {},
  15795. {
  15796. "bearer_auth": []
  15797. },
  15798. {
  15799. "basic_auth": []
  15800. }
  15801. ],
  15802. "requestBody": {
  15803. "required": true,
  15804. "content": {
  15805. "application/json": {
  15806. "schema": {
  15807. "type": "object",
  15808. "required": [
  15809. "attendeeId"
  15810. ],
  15811. "properties": {
  15812. "attendeeId": {
  15813. "type": "integer",
  15814. "format": "int64",
  15815. "description": "ID of the attendee",
  15816. "minimum": 0
  15817. }
  15818. }
  15819. }
  15820. }
  15821. }
  15822. },
  15823. "parameters": [
  15824. {
  15825. "name": "apiVersion",
  15826. "in": "path",
  15827. "required": true,
  15828. "schema": {
  15829. "type": "string",
  15830. "enum": [
  15831. "v4"
  15832. ],
  15833. "default": "v4"
  15834. }
  15835. },
  15836. {
  15837. "name": "token",
  15838. "in": "path",
  15839. "required": true,
  15840. "schema": {
  15841. "type": "string",
  15842. "pattern": "^[a-z0-9]{4,30}$"
  15843. }
  15844. },
  15845. {
  15846. "name": "OCS-APIRequest",
  15847. "in": "header",
  15848. "description": "Required to be true for the API request to pass",
  15849. "required": true,
  15850. "schema": {
  15851. "type": "boolean",
  15852. "default": true
  15853. }
  15854. }
  15855. ],
  15856. "responses": {
  15857. "200": {
  15858. "description": "Attendee promoted to moderator successfully",
  15859. "content": {
  15860. "application/json": {
  15861. "schema": {
  15862. "type": "object",
  15863. "required": [
  15864. "ocs"
  15865. ],
  15866. "properties": {
  15867. "ocs": {
  15868. "type": "object",
  15869. "required": [
  15870. "meta",
  15871. "data"
  15872. ],
  15873. "properties": {
  15874. "meta": {
  15875. "$ref": "#/components/schemas/OCSMeta"
  15876. },
  15877. "data": {
  15878. "nullable": true
  15879. }
  15880. }
  15881. }
  15882. }
  15883. }
  15884. }
  15885. }
  15886. },
  15887. "400": {
  15888. "description": "Promoting attendee to moderator is not possible",
  15889. "content": {
  15890. "application/json": {
  15891. "schema": {
  15892. "type": "object",
  15893. "required": [
  15894. "ocs"
  15895. ],
  15896. "properties": {
  15897. "ocs": {
  15898. "type": "object",
  15899. "required": [
  15900. "meta",
  15901. "data"
  15902. ],
  15903. "properties": {
  15904. "meta": {
  15905. "$ref": "#/components/schemas/OCSMeta"
  15906. },
  15907. "data": {
  15908. "nullable": true
  15909. }
  15910. }
  15911. }
  15912. }
  15913. }
  15914. }
  15915. }
  15916. },
  15917. "403": {
  15918. "description": "Promoting attendee to moderator is not allowed",
  15919. "content": {
  15920. "application/json": {
  15921. "schema": {
  15922. "type": "object",
  15923. "required": [
  15924. "ocs"
  15925. ],
  15926. "properties": {
  15927. "ocs": {
  15928. "type": "object",
  15929. "required": [
  15930. "meta",
  15931. "data"
  15932. ],
  15933. "properties": {
  15934. "meta": {
  15935. "$ref": "#/components/schemas/OCSMeta"
  15936. },
  15937. "data": {
  15938. "nullable": true
  15939. }
  15940. }
  15941. }
  15942. }
  15943. }
  15944. }
  15945. }
  15946. },
  15947. "404": {
  15948. "description": "Attendee not found",
  15949. "content": {
  15950. "application/json": {
  15951. "schema": {
  15952. "type": "object",
  15953. "required": [
  15954. "ocs"
  15955. ],
  15956. "properties": {
  15957. "ocs": {
  15958. "type": "object",
  15959. "required": [
  15960. "meta",
  15961. "data"
  15962. ],
  15963. "properties": {
  15964. "meta": {
  15965. "$ref": "#/components/schemas/OCSMeta"
  15966. },
  15967. "data": {
  15968. "nullable": true
  15969. }
  15970. }
  15971. }
  15972. }
  15973. }
  15974. }
  15975. }
  15976. }
  15977. }
  15978. },
  15979. "delete": {
  15980. "operationId": "room-demote-moderator",
  15981. "summary": "Demote an attendee from moderator",
  15982. "tags": [
  15983. "room"
  15984. ],
  15985. "security": [
  15986. {},
  15987. {
  15988. "bearer_auth": []
  15989. },
  15990. {
  15991. "basic_auth": []
  15992. }
  15993. ],
  15994. "parameters": [
  15995. {
  15996. "name": "apiVersion",
  15997. "in": "path",
  15998. "required": true,
  15999. "schema": {
  16000. "type": "string",
  16001. "enum": [
  16002. "v4"
  16003. ],
  16004. "default": "v4"
  16005. }
  16006. },
  16007. {
  16008. "name": "token",
  16009. "in": "path",
  16010. "required": true,
  16011. "schema": {
  16012. "type": "string",
  16013. "pattern": "^[a-z0-9]{4,30}$"
  16014. }
  16015. },
  16016. {
  16017. "name": "attendeeId",
  16018. "in": "query",
  16019. "description": "ID of the attendee",
  16020. "required": true,
  16021. "schema": {
  16022. "type": "integer",
  16023. "format": "int64",
  16024. "minimum": 0
  16025. }
  16026. },
  16027. {
  16028. "name": "OCS-APIRequest",
  16029. "in": "header",
  16030. "description": "Required to be true for the API request to pass",
  16031. "required": true,
  16032. "schema": {
  16033. "type": "boolean",
  16034. "default": true
  16035. }
  16036. }
  16037. ],
  16038. "responses": {
  16039. "200": {
  16040. "description": "Attendee demoted from moderator successfully",
  16041. "content": {
  16042. "application/json": {
  16043. "schema": {
  16044. "type": "object",
  16045. "required": [
  16046. "ocs"
  16047. ],
  16048. "properties": {
  16049. "ocs": {
  16050. "type": "object",
  16051. "required": [
  16052. "meta",
  16053. "data"
  16054. ],
  16055. "properties": {
  16056. "meta": {
  16057. "$ref": "#/components/schemas/OCSMeta"
  16058. },
  16059. "data": {
  16060. "nullable": true
  16061. }
  16062. }
  16063. }
  16064. }
  16065. }
  16066. }
  16067. }
  16068. },
  16069. "400": {
  16070. "description": "Demoting attendee from moderator is not possible",
  16071. "content": {
  16072. "application/json": {
  16073. "schema": {
  16074. "type": "object",
  16075. "required": [
  16076. "ocs"
  16077. ],
  16078. "properties": {
  16079. "ocs": {
  16080. "type": "object",
  16081. "required": [
  16082. "meta",
  16083. "data"
  16084. ],
  16085. "properties": {
  16086. "meta": {
  16087. "$ref": "#/components/schemas/OCSMeta"
  16088. },
  16089. "data": {
  16090. "nullable": true
  16091. }
  16092. }
  16093. }
  16094. }
  16095. }
  16096. }
  16097. }
  16098. },
  16099. "403": {
  16100. "description": "Demoting attendee from moderator is not allowed",
  16101. "content": {
  16102. "application/json": {
  16103. "schema": {
  16104. "type": "object",
  16105. "required": [
  16106. "ocs"
  16107. ],
  16108. "properties": {
  16109. "ocs": {
  16110. "type": "object",
  16111. "required": [
  16112. "meta",
  16113. "data"
  16114. ],
  16115. "properties": {
  16116. "meta": {
  16117. "$ref": "#/components/schemas/OCSMeta"
  16118. },
  16119. "data": {
  16120. "nullable": true
  16121. }
  16122. }
  16123. }
  16124. }
  16125. }
  16126. }
  16127. }
  16128. },
  16129. "404": {
  16130. "description": "Attendee not found",
  16131. "content": {
  16132. "application/json": {
  16133. "schema": {
  16134. "type": "object",
  16135. "required": [
  16136. "ocs"
  16137. ],
  16138. "properties": {
  16139. "ocs": {
  16140. "type": "object",
  16141. "required": [
  16142. "meta",
  16143. "data"
  16144. ],
  16145. "properties": {
  16146. "meta": {
  16147. "$ref": "#/components/schemas/OCSMeta"
  16148. },
  16149. "data": {
  16150. "nullable": true
  16151. }
  16152. }
  16153. }
  16154. }
  16155. }
  16156. }
  16157. }
  16158. }
  16159. }
  16160. }
  16161. },
  16162. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/favorite": {
  16163. "post": {
  16164. "operationId": "room-add-to-favorites",
  16165. "summary": "Add a room to the favorites",
  16166. "tags": [
  16167. "room"
  16168. ],
  16169. "security": [
  16170. {
  16171. "bearer_auth": []
  16172. },
  16173. {
  16174. "basic_auth": []
  16175. }
  16176. ],
  16177. "parameters": [
  16178. {
  16179. "name": "apiVersion",
  16180. "in": "path",
  16181. "required": true,
  16182. "schema": {
  16183. "type": "string",
  16184. "enum": [
  16185. "v4"
  16186. ],
  16187. "default": "v4"
  16188. }
  16189. },
  16190. {
  16191. "name": "token",
  16192. "in": "path",
  16193. "required": true,
  16194. "schema": {
  16195. "type": "string",
  16196. "pattern": "^[a-z0-9]{4,30}$"
  16197. }
  16198. },
  16199. {
  16200. "name": "OCS-APIRequest",
  16201. "in": "header",
  16202. "description": "Required to be true for the API request to pass",
  16203. "required": true,
  16204. "schema": {
  16205. "type": "boolean",
  16206. "default": true
  16207. }
  16208. }
  16209. ],
  16210. "responses": {
  16211. "200": {
  16212. "description": "Successfully added room to favorites",
  16213. "content": {
  16214. "application/json": {
  16215. "schema": {
  16216. "type": "object",
  16217. "required": [
  16218. "ocs"
  16219. ],
  16220. "properties": {
  16221. "ocs": {
  16222. "type": "object",
  16223. "required": [
  16224. "meta",
  16225. "data"
  16226. ],
  16227. "properties": {
  16228. "meta": {
  16229. "$ref": "#/components/schemas/OCSMeta"
  16230. },
  16231. "data": {
  16232. "$ref": "#/components/schemas/Room"
  16233. }
  16234. }
  16235. }
  16236. }
  16237. }
  16238. }
  16239. }
  16240. }
  16241. }
  16242. },
  16243. "delete": {
  16244. "operationId": "room-remove-from-favorites",
  16245. "summary": "Remove a room from the favorites",
  16246. "tags": [
  16247. "room"
  16248. ],
  16249. "security": [
  16250. {
  16251. "bearer_auth": []
  16252. },
  16253. {
  16254. "basic_auth": []
  16255. }
  16256. ],
  16257. "parameters": [
  16258. {
  16259. "name": "apiVersion",
  16260. "in": "path",
  16261. "required": true,
  16262. "schema": {
  16263. "type": "string",
  16264. "enum": [
  16265. "v4"
  16266. ],
  16267. "default": "v4"
  16268. }
  16269. },
  16270. {
  16271. "name": "token",
  16272. "in": "path",
  16273. "required": true,
  16274. "schema": {
  16275. "type": "string",
  16276. "pattern": "^[a-z0-9]{4,30}$"
  16277. }
  16278. },
  16279. {
  16280. "name": "OCS-APIRequest",
  16281. "in": "header",
  16282. "description": "Required to be true for the API request to pass",
  16283. "required": true,
  16284. "schema": {
  16285. "type": "boolean",
  16286. "default": true
  16287. }
  16288. }
  16289. ],
  16290. "responses": {
  16291. "200": {
  16292. "description": "Successfully removed room from favorites",
  16293. "content": {
  16294. "application/json": {
  16295. "schema": {
  16296. "type": "object",
  16297. "required": [
  16298. "ocs"
  16299. ],
  16300. "properties": {
  16301. "ocs": {
  16302. "type": "object",
  16303. "required": [
  16304. "meta",
  16305. "data"
  16306. ],
  16307. "properties": {
  16308. "meta": {
  16309. "$ref": "#/components/schemas/OCSMeta"
  16310. },
  16311. "data": {
  16312. "$ref": "#/components/schemas/Room"
  16313. }
  16314. }
  16315. }
  16316. }
  16317. }
  16318. }
  16319. }
  16320. }
  16321. }
  16322. }
  16323. },
  16324. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/notify": {
  16325. "post": {
  16326. "operationId": "room-set-notification-level",
  16327. "summary": "Update the notification level for a room",
  16328. "tags": [
  16329. "room"
  16330. ],
  16331. "security": [
  16332. {
  16333. "bearer_auth": []
  16334. },
  16335. {
  16336. "basic_auth": []
  16337. }
  16338. ],
  16339. "requestBody": {
  16340. "required": true,
  16341. "content": {
  16342. "application/json": {
  16343. "schema": {
  16344. "type": "object",
  16345. "required": [
  16346. "level"
  16347. ],
  16348. "properties": {
  16349. "level": {
  16350. "type": "integer",
  16351. "format": "int64",
  16352. "description": "New level"
  16353. }
  16354. }
  16355. }
  16356. }
  16357. }
  16358. },
  16359. "parameters": [
  16360. {
  16361. "name": "apiVersion",
  16362. "in": "path",
  16363. "required": true,
  16364. "schema": {
  16365. "type": "string",
  16366. "enum": [
  16367. "v4"
  16368. ],
  16369. "default": "v4"
  16370. }
  16371. },
  16372. {
  16373. "name": "token",
  16374. "in": "path",
  16375. "required": true,
  16376. "schema": {
  16377. "type": "string",
  16378. "pattern": "^[a-z0-9]{4,30}$"
  16379. }
  16380. },
  16381. {
  16382. "name": "OCS-APIRequest",
  16383. "in": "header",
  16384. "description": "Required to be true for the API request to pass",
  16385. "required": true,
  16386. "schema": {
  16387. "type": "boolean",
  16388. "default": true
  16389. }
  16390. }
  16391. ],
  16392. "responses": {
  16393. "200": {
  16394. "description": "Notification level updated successfully",
  16395. "content": {
  16396. "application/json": {
  16397. "schema": {
  16398. "type": "object",
  16399. "required": [
  16400. "ocs"
  16401. ],
  16402. "properties": {
  16403. "ocs": {
  16404. "type": "object",
  16405. "required": [
  16406. "meta",
  16407. "data"
  16408. ],
  16409. "properties": {
  16410. "meta": {
  16411. "$ref": "#/components/schemas/OCSMeta"
  16412. },
  16413. "data": {
  16414. "$ref": "#/components/schemas/Room"
  16415. }
  16416. }
  16417. }
  16418. }
  16419. }
  16420. }
  16421. }
  16422. },
  16423. "400": {
  16424. "description": "Updating notification level is not possible",
  16425. "content": {
  16426. "application/json": {
  16427. "schema": {
  16428. "type": "object",
  16429. "required": [
  16430. "ocs"
  16431. ],
  16432. "properties": {
  16433. "ocs": {
  16434. "type": "object",
  16435. "required": [
  16436. "meta",
  16437. "data"
  16438. ],
  16439. "properties": {
  16440. "meta": {
  16441. "$ref": "#/components/schemas/OCSMeta"
  16442. },
  16443. "data": {
  16444. "type": "object",
  16445. "required": [
  16446. "error"
  16447. ],
  16448. "properties": {
  16449. "error": {
  16450. "type": "string",
  16451. "enum": [
  16452. "level"
  16453. ]
  16454. }
  16455. }
  16456. }
  16457. }
  16458. }
  16459. }
  16460. }
  16461. }
  16462. }
  16463. }
  16464. }
  16465. }
  16466. },
  16467. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/notify-calls": {
  16468. "post": {
  16469. "operationId": "room-set-notification-calls",
  16470. "summary": "Update call notifications",
  16471. "tags": [
  16472. "room"
  16473. ],
  16474. "security": [
  16475. {
  16476. "bearer_auth": []
  16477. },
  16478. {
  16479. "basic_auth": []
  16480. }
  16481. ],
  16482. "requestBody": {
  16483. "required": true,
  16484. "content": {
  16485. "application/json": {
  16486. "schema": {
  16487. "type": "object",
  16488. "required": [
  16489. "level"
  16490. ],
  16491. "properties": {
  16492. "level": {
  16493. "type": "integer",
  16494. "format": "int64",
  16495. "description": "New level"
  16496. }
  16497. }
  16498. }
  16499. }
  16500. }
  16501. },
  16502. "parameters": [
  16503. {
  16504. "name": "apiVersion",
  16505. "in": "path",
  16506. "required": true,
  16507. "schema": {
  16508. "type": "string",
  16509. "enum": [
  16510. "v4"
  16511. ],
  16512. "default": "v4"
  16513. }
  16514. },
  16515. {
  16516. "name": "token",
  16517. "in": "path",
  16518. "required": true,
  16519. "schema": {
  16520. "type": "string",
  16521. "pattern": "^[a-z0-9]{4,30}$"
  16522. }
  16523. },
  16524. {
  16525. "name": "OCS-APIRequest",
  16526. "in": "header",
  16527. "description": "Required to be true for the API request to pass",
  16528. "required": true,
  16529. "schema": {
  16530. "type": "boolean",
  16531. "default": true
  16532. }
  16533. }
  16534. ],
  16535. "responses": {
  16536. "200": {
  16537. "description": "Call notification level updated successfully",
  16538. "content": {
  16539. "application/json": {
  16540. "schema": {
  16541. "type": "object",
  16542. "required": [
  16543. "ocs"
  16544. ],
  16545. "properties": {
  16546. "ocs": {
  16547. "type": "object",
  16548. "required": [
  16549. "meta",
  16550. "data"
  16551. ],
  16552. "properties": {
  16553. "meta": {
  16554. "$ref": "#/components/schemas/OCSMeta"
  16555. },
  16556. "data": {
  16557. "$ref": "#/components/schemas/Room"
  16558. }
  16559. }
  16560. }
  16561. }
  16562. }
  16563. }
  16564. }
  16565. },
  16566. "400": {
  16567. "description": "Updating call notification level is not possible",
  16568. "content": {
  16569. "application/json": {
  16570. "schema": {
  16571. "type": "object",
  16572. "required": [
  16573. "ocs"
  16574. ],
  16575. "properties": {
  16576. "ocs": {
  16577. "type": "object",
  16578. "required": [
  16579. "meta",
  16580. "data"
  16581. ],
  16582. "properties": {
  16583. "meta": {
  16584. "$ref": "#/components/schemas/OCSMeta"
  16585. },
  16586. "data": {
  16587. "type": "object",
  16588. "required": [
  16589. "error"
  16590. ],
  16591. "properties": {
  16592. "error": {
  16593. "type": "string",
  16594. "enum": [
  16595. "level"
  16596. ]
  16597. }
  16598. }
  16599. }
  16600. }
  16601. }
  16602. }
  16603. }
  16604. }
  16605. }
  16606. }
  16607. }
  16608. }
  16609. },
  16610. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/webinar/lobby": {
  16611. "put": {
  16612. "operationId": "room-set-lobby",
  16613. "summary": "Update the lobby state for a room",
  16614. "tags": [
  16615. "room"
  16616. ],
  16617. "security": [
  16618. {
  16619. "bearer_auth": []
  16620. },
  16621. {
  16622. "basic_auth": []
  16623. }
  16624. ],
  16625. "requestBody": {
  16626. "required": true,
  16627. "content": {
  16628. "application/json": {
  16629. "schema": {
  16630. "type": "object",
  16631. "required": [
  16632. "state"
  16633. ],
  16634. "properties": {
  16635. "state": {
  16636. "type": "integer",
  16637. "format": "int64",
  16638. "description": "New state"
  16639. },
  16640. "timer": {
  16641. "type": "integer",
  16642. "format": "int64",
  16643. "nullable": true,
  16644. "description": "Timer when the lobby will be removed",
  16645. "minimum": 0
  16646. }
  16647. }
  16648. }
  16649. }
  16650. }
  16651. },
  16652. "parameters": [
  16653. {
  16654. "name": "apiVersion",
  16655. "in": "path",
  16656. "required": true,
  16657. "schema": {
  16658. "type": "string",
  16659. "enum": [
  16660. "v4"
  16661. ],
  16662. "default": "v4"
  16663. }
  16664. },
  16665. {
  16666. "name": "token",
  16667. "in": "path",
  16668. "required": true,
  16669. "schema": {
  16670. "type": "string",
  16671. "pattern": "^[a-z0-9]{4,30}$"
  16672. }
  16673. },
  16674. {
  16675. "name": "OCS-APIRequest",
  16676. "in": "header",
  16677. "description": "Required to be true for the API request to pass",
  16678. "required": true,
  16679. "schema": {
  16680. "type": "boolean",
  16681. "default": true
  16682. }
  16683. }
  16684. ],
  16685. "responses": {
  16686. "200": {
  16687. "description": "Lobby state updated successfully",
  16688. "content": {
  16689. "application/json": {
  16690. "schema": {
  16691. "type": "object",
  16692. "required": [
  16693. "ocs"
  16694. ],
  16695. "properties": {
  16696. "ocs": {
  16697. "type": "object",
  16698. "required": [
  16699. "meta",
  16700. "data"
  16701. ],
  16702. "properties": {
  16703. "meta": {
  16704. "$ref": "#/components/schemas/OCSMeta"
  16705. },
  16706. "data": {
  16707. "$ref": "#/components/schemas/Room"
  16708. }
  16709. }
  16710. }
  16711. }
  16712. }
  16713. }
  16714. }
  16715. },
  16716. "400": {
  16717. "description": "Updating lobby state is not possible",
  16718. "content": {
  16719. "application/json": {
  16720. "schema": {
  16721. "type": "object",
  16722. "required": [
  16723. "ocs"
  16724. ],
  16725. "properties": {
  16726. "ocs": {
  16727. "type": "object",
  16728. "required": [
  16729. "meta",
  16730. "data"
  16731. ],
  16732. "properties": {
  16733. "meta": {
  16734. "$ref": "#/components/schemas/OCSMeta"
  16735. },
  16736. "data": {
  16737. "type": "object",
  16738. "required": [
  16739. "error"
  16740. ],
  16741. "properties": {
  16742. "error": {
  16743. "type": "string",
  16744. "enum": [
  16745. "breakout-room",
  16746. "object",
  16747. "type",
  16748. "value"
  16749. ]
  16750. }
  16751. }
  16752. }
  16753. }
  16754. }
  16755. }
  16756. }
  16757. }
  16758. }
  16759. }
  16760. }
  16761. }
  16762. },
  16763. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/webinar/sip": {
  16764. "put": {
  16765. "operationId": "room-setsip-enabled",
  16766. "summary": "Update SIP enabled state",
  16767. "tags": [
  16768. "room"
  16769. ],
  16770. "security": [
  16771. {
  16772. "bearer_auth": []
  16773. },
  16774. {
  16775. "basic_auth": []
  16776. }
  16777. ],
  16778. "requestBody": {
  16779. "required": true,
  16780. "content": {
  16781. "application/json": {
  16782. "schema": {
  16783. "type": "object",
  16784. "required": [
  16785. "state"
  16786. ],
  16787. "properties": {
  16788. "state": {
  16789. "type": "integer",
  16790. "format": "int64",
  16791. "enum": [
  16792. 0,
  16793. 1,
  16794. 2
  16795. ],
  16796. "description": "New state"
  16797. }
  16798. }
  16799. }
  16800. }
  16801. }
  16802. },
  16803. "parameters": [
  16804. {
  16805. "name": "apiVersion",
  16806. "in": "path",
  16807. "required": true,
  16808. "schema": {
  16809. "type": "string",
  16810. "enum": [
  16811. "v4"
  16812. ],
  16813. "default": "v4"
  16814. }
  16815. },
  16816. {
  16817. "name": "token",
  16818. "in": "path",
  16819. "required": true,
  16820. "schema": {
  16821. "type": "string",
  16822. "pattern": "^[a-z0-9]{4,30}$"
  16823. }
  16824. },
  16825. {
  16826. "name": "OCS-APIRequest",
  16827. "in": "header",
  16828. "description": "Required to be true for the API request to pass",
  16829. "required": true,
  16830. "schema": {
  16831. "type": "boolean",
  16832. "default": true
  16833. }
  16834. }
  16835. ],
  16836. "responses": {
  16837. "200": {
  16838. "description": "SIP enabled state updated successfully",
  16839. "content": {
  16840. "application/json": {
  16841. "schema": {
  16842. "type": "object",
  16843. "required": [
  16844. "ocs"
  16845. ],
  16846. "properties": {
  16847. "ocs": {
  16848. "type": "object",
  16849. "required": [
  16850. "meta",
  16851. "data"
  16852. ],
  16853. "properties": {
  16854. "meta": {
  16855. "$ref": "#/components/schemas/OCSMeta"
  16856. },
  16857. "data": {
  16858. "$ref": "#/components/schemas/Room"
  16859. }
  16860. }
  16861. }
  16862. }
  16863. }
  16864. }
  16865. }
  16866. },
  16867. "401": {
  16868. "description": "User not found",
  16869. "content": {
  16870. "application/json": {
  16871. "schema": {
  16872. "type": "object",
  16873. "required": [
  16874. "ocs"
  16875. ],
  16876. "properties": {
  16877. "ocs": {
  16878. "type": "object",
  16879. "required": [
  16880. "meta",
  16881. "data"
  16882. ],
  16883. "properties": {
  16884. "meta": {
  16885. "$ref": "#/components/schemas/OCSMeta"
  16886. },
  16887. "data": {
  16888. "type": "object",
  16889. "required": [
  16890. "error"
  16891. ],
  16892. "properties": {
  16893. "error": {
  16894. "type": "string",
  16895. "enum": [
  16896. "config"
  16897. ]
  16898. }
  16899. }
  16900. }
  16901. }
  16902. }
  16903. }
  16904. }
  16905. }
  16906. }
  16907. },
  16908. "403": {
  16909. "description": "Missing permissions to update SIP enabled state",
  16910. "content": {
  16911. "application/json": {
  16912. "schema": {
  16913. "type": "object",
  16914. "required": [
  16915. "ocs"
  16916. ],
  16917. "properties": {
  16918. "ocs": {
  16919. "type": "object",
  16920. "required": [
  16921. "meta",
  16922. "data"
  16923. ],
  16924. "properties": {
  16925. "meta": {
  16926. "$ref": "#/components/schemas/OCSMeta"
  16927. },
  16928. "data": {
  16929. "type": "object",
  16930. "required": [
  16931. "error"
  16932. ],
  16933. "properties": {
  16934. "error": {
  16935. "type": "string",
  16936. "enum": [
  16937. "config"
  16938. ]
  16939. }
  16940. }
  16941. }
  16942. }
  16943. }
  16944. }
  16945. }
  16946. }
  16947. }
  16948. },
  16949. "412": {
  16950. "description": "SIP not configured",
  16951. "content": {
  16952. "application/json": {
  16953. "schema": {
  16954. "type": "object",
  16955. "required": [
  16956. "ocs"
  16957. ],
  16958. "properties": {
  16959. "ocs": {
  16960. "type": "object",
  16961. "required": [
  16962. "meta",
  16963. "data"
  16964. ],
  16965. "properties": {
  16966. "meta": {
  16967. "$ref": "#/components/schemas/OCSMeta"
  16968. },
  16969. "data": {
  16970. "type": "object",
  16971. "required": [
  16972. "error"
  16973. ],
  16974. "properties": {
  16975. "error": {
  16976. "type": "string",
  16977. "enum": [
  16978. "config"
  16979. ]
  16980. }
  16981. }
  16982. }
  16983. }
  16984. }
  16985. }
  16986. }
  16987. }
  16988. }
  16989. },
  16990. "400": {
  16991. "description": "Updating SIP enabled state is not possible",
  16992. "content": {
  16993. "application/json": {
  16994. "schema": {
  16995. "type": "object",
  16996. "required": [
  16997. "ocs"
  16998. ],
  16999. "properties": {
  17000. "ocs": {
  17001. "type": "object",
  17002. "required": [
  17003. "meta",
  17004. "data"
  17005. ],
  17006. "properties": {
  17007. "meta": {
  17008. "$ref": "#/components/schemas/OCSMeta"
  17009. },
  17010. "data": {
  17011. "type": "object",
  17012. "required": [
  17013. "error"
  17014. ],
  17015. "properties": {
  17016. "error": {
  17017. "type": "string",
  17018. "enum": [
  17019. "breakout-room",
  17020. "token",
  17021. "type",
  17022. "value"
  17023. ]
  17024. }
  17025. }
  17026. }
  17027. }
  17028. }
  17029. }
  17030. }
  17031. }
  17032. }
  17033. }
  17034. }
  17035. }
  17036. },
  17037. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/recording-consent": {
  17038. "put": {
  17039. "operationId": "room-set-recording-consent",
  17040. "summary": "Set recording consent requirement for this conversation",
  17041. "tags": [
  17042. "room"
  17043. ],
  17044. "security": [
  17045. {
  17046. "bearer_auth": []
  17047. },
  17048. {
  17049. "basic_auth": []
  17050. }
  17051. ],
  17052. "requestBody": {
  17053. "required": true,
  17054. "content": {
  17055. "application/json": {
  17056. "schema": {
  17057. "type": "object",
  17058. "required": [
  17059. "recordingConsent"
  17060. ],
  17061. "properties": {
  17062. "recordingConsent": {
  17063. "type": "integer",
  17064. "format": "int64",
  17065. "description": "New consent setting for the conversation (Only {@see RecordingService::CONSENT_REQUIRED_NO} and {@see RecordingService::CONSENT_REQUIRED_YES} are allowed here.)"
  17066. }
  17067. }
  17068. }
  17069. }
  17070. }
  17071. },
  17072. "parameters": [
  17073. {
  17074. "name": "apiVersion",
  17075. "in": "path",
  17076. "required": true,
  17077. "schema": {
  17078. "type": "string",
  17079. "enum": [
  17080. "v4"
  17081. ],
  17082. "default": "v4"
  17083. }
  17084. },
  17085. {
  17086. "name": "token",
  17087. "in": "path",
  17088. "required": true,
  17089. "schema": {
  17090. "type": "string",
  17091. "pattern": "^[a-z0-9]{4,30}$"
  17092. }
  17093. },
  17094. {
  17095. "name": "OCS-APIRequest",
  17096. "in": "header",
  17097. "description": "Required to be true for the API request to pass",
  17098. "required": true,
  17099. "schema": {
  17100. "type": "boolean",
  17101. "default": true
  17102. }
  17103. }
  17104. ],
  17105. "responses": {
  17106. "200": {
  17107. "description": "Recording consent requirement set successfully",
  17108. "content": {
  17109. "application/json": {
  17110. "schema": {
  17111. "type": "object",
  17112. "required": [
  17113. "ocs"
  17114. ],
  17115. "properties": {
  17116. "ocs": {
  17117. "type": "object",
  17118. "required": [
  17119. "meta",
  17120. "data"
  17121. ],
  17122. "properties": {
  17123. "meta": {
  17124. "$ref": "#/components/schemas/OCSMeta"
  17125. },
  17126. "data": {
  17127. "$ref": "#/components/schemas/Room"
  17128. }
  17129. }
  17130. }
  17131. }
  17132. }
  17133. }
  17134. }
  17135. },
  17136. "400": {
  17137. "description": "Setting recording consent requirement is not possible",
  17138. "content": {
  17139. "application/json": {
  17140. "schema": {
  17141. "type": "object",
  17142. "required": [
  17143. "ocs"
  17144. ],
  17145. "properties": {
  17146. "ocs": {
  17147. "type": "object",
  17148. "required": [
  17149. "meta",
  17150. "data"
  17151. ],
  17152. "properties": {
  17153. "meta": {
  17154. "$ref": "#/components/schemas/OCSMeta"
  17155. },
  17156. "data": {
  17157. "type": "object",
  17158. "required": [
  17159. "error"
  17160. ],
  17161. "properties": {
  17162. "error": {
  17163. "type": "string",
  17164. "enum": [
  17165. "breakout-room",
  17166. "call",
  17167. "value"
  17168. ]
  17169. }
  17170. }
  17171. }
  17172. }
  17173. }
  17174. }
  17175. }
  17176. }
  17177. }
  17178. },
  17179. "412": {
  17180. "description": "No recording server is configured",
  17181. "content": {
  17182. "application/json": {
  17183. "schema": {
  17184. "type": "object",
  17185. "required": [
  17186. "ocs"
  17187. ],
  17188. "properties": {
  17189. "ocs": {
  17190. "type": "object",
  17191. "required": [
  17192. "meta",
  17193. "data"
  17194. ],
  17195. "properties": {
  17196. "meta": {
  17197. "$ref": "#/components/schemas/OCSMeta"
  17198. },
  17199. "data": {
  17200. "type": "object",
  17201. "required": [
  17202. "error"
  17203. ],
  17204. "properties": {
  17205. "error": {
  17206. "type": "string",
  17207. "enum": [
  17208. "config"
  17209. ]
  17210. }
  17211. }
  17212. }
  17213. }
  17214. }
  17215. }
  17216. }
  17217. }
  17218. }
  17219. }
  17220. }
  17221. }
  17222. },
  17223. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/message-expiration": {
  17224. "post": {
  17225. "operationId": "room-set-message-expiration",
  17226. "summary": "Update message expiration time",
  17227. "tags": [
  17228. "room"
  17229. ],
  17230. "security": [
  17231. {},
  17232. {
  17233. "bearer_auth": []
  17234. },
  17235. {
  17236. "basic_auth": []
  17237. }
  17238. ],
  17239. "requestBody": {
  17240. "required": true,
  17241. "content": {
  17242. "application/json": {
  17243. "schema": {
  17244. "type": "object",
  17245. "required": [
  17246. "seconds"
  17247. ],
  17248. "properties": {
  17249. "seconds": {
  17250. "type": "integer",
  17251. "format": "int64",
  17252. "description": "New time",
  17253. "minimum": 0
  17254. }
  17255. }
  17256. }
  17257. }
  17258. }
  17259. },
  17260. "parameters": [
  17261. {
  17262. "name": "apiVersion",
  17263. "in": "path",
  17264. "required": true,
  17265. "schema": {
  17266. "type": "string",
  17267. "enum": [
  17268. "v4"
  17269. ],
  17270. "default": "v4"
  17271. }
  17272. },
  17273. {
  17274. "name": "token",
  17275. "in": "path",
  17276. "required": true,
  17277. "schema": {
  17278. "type": "string",
  17279. "pattern": "^[a-z0-9]{4,30}$"
  17280. }
  17281. },
  17282. {
  17283. "name": "OCS-APIRequest",
  17284. "in": "header",
  17285. "description": "Required to be true for the API request to pass",
  17286. "required": true,
  17287. "schema": {
  17288. "type": "boolean",
  17289. "default": true
  17290. }
  17291. }
  17292. ],
  17293. "responses": {
  17294. "200": {
  17295. "description": "Message expiration time updated successfully",
  17296. "content": {
  17297. "application/json": {
  17298. "schema": {
  17299. "type": "object",
  17300. "required": [
  17301. "ocs"
  17302. ],
  17303. "properties": {
  17304. "ocs": {
  17305. "type": "object",
  17306. "required": [
  17307. "meta",
  17308. "data"
  17309. ],
  17310. "properties": {
  17311. "meta": {
  17312. "$ref": "#/components/schemas/OCSMeta"
  17313. },
  17314. "data": {
  17315. "$ref": "#/components/schemas/Room"
  17316. }
  17317. }
  17318. }
  17319. }
  17320. }
  17321. }
  17322. }
  17323. },
  17324. "400": {
  17325. "description": "Updating message expiration time is not possible",
  17326. "content": {
  17327. "application/json": {
  17328. "schema": {
  17329. "type": "object",
  17330. "required": [
  17331. "ocs"
  17332. ],
  17333. "properties": {
  17334. "ocs": {
  17335. "type": "object",
  17336. "required": [
  17337. "meta",
  17338. "data"
  17339. ],
  17340. "properties": {
  17341. "meta": {
  17342. "$ref": "#/components/schemas/OCSMeta"
  17343. },
  17344. "data": {
  17345. "type": "object",
  17346. "required": [
  17347. "error"
  17348. ],
  17349. "properties": {
  17350. "error": {
  17351. "type": "string",
  17352. "enum": [
  17353. "breakout-room",
  17354. "type",
  17355. "value"
  17356. ]
  17357. }
  17358. }
  17359. }
  17360. }
  17361. }
  17362. }
  17363. }
  17364. }
  17365. }
  17366. }
  17367. }
  17368. }
  17369. },
  17370. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/capabilities": {
  17371. "get": {
  17372. "operationId": "room-get-capabilities",
  17373. "summary": "Get capabilities for a room",
  17374. "description": "See \"Capability handling in federated conversations\" in https://github.com/nextcloud/spreed/issues/10680 to learn which capabilities should be considered from the local server or from the remote server.",
  17375. "tags": [
  17376. "room"
  17377. ],
  17378. "security": [
  17379. {},
  17380. {
  17381. "bearer_auth": []
  17382. },
  17383. {
  17384. "basic_auth": []
  17385. }
  17386. ],
  17387. "parameters": [
  17388. {
  17389. "name": "apiVersion",
  17390. "in": "path",
  17391. "required": true,
  17392. "schema": {
  17393. "type": "string",
  17394. "enum": [
  17395. "v4"
  17396. ],
  17397. "default": "v4"
  17398. }
  17399. },
  17400. {
  17401. "name": "token",
  17402. "in": "path",
  17403. "required": true,
  17404. "schema": {
  17405. "type": "string",
  17406. "pattern": "^[a-z0-9]{4,30}$"
  17407. }
  17408. },
  17409. {
  17410. "name": "OCS-APIRequest",
  17411. "in": "header",
  17412. "description": "Required to be true for the API request to pass",
  17413. "required": true,
  17414. "schema": {
  17415. "type": "boolean",
  17416. "default": true
  17417. }
  17418. }
  17419. ],
  17420. "responses": {
  17421. "200": {
  17422. "description": "Get capabilities successfully",
  17423. "headers": {
  17424. "X-Nextcloud-Talk-Hash": {
  17425. "schema": {
  17426. "type": "string"
  17427. }
  17428. },
  17429. "X-Nextcloud-Talk-Proxy-Hash": {
  17430. "schema": {
  17431. "type": "string"
  17432. }
  17433. }
  17434. },
  17435. "content": {
  17436. "application/json": {
  17437. "schema": {
  17438. "type": "object",
  17439. "required": [
  17440. "ocs"
  17441. ],
  17442. "properties": {
  17443. "ocs": {
  17444. "type": "object",
  17445. "required": [
  17446. "meta",
  17447. "data"
  17448. ],
  17449. "properties": {
  17450. "meta": {
  17451. "$ref": "#/components/schemas/OCSMeta"
  17452. },
  17453. "data": {
  17454. "anyOf": [
  17455. {
  17456. "$ref": "#/components/schemas/Capabilities"
  17457. },
  17458. {
  17459. "type": "object",
  17460. "additionalProperties": true
  17461. }
  17462. ]
  17463. }
  17464. }
  17465. }
  17466. }
  17467. }
  17468. }
  17469. }
  17470. }
  17471. }
  17472. }
  17473. },
  17474. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/mention-permissions": {
  17475. "put": {
  17476. "operationId": "room-set-mention-permissions",
  17477. "summary": "Update the mention permissions for a room",
  17478. "tags": [
  17479. "room"
  17480. ],
  17481. "security": [
  17482. {
  17483. "bearer_auth": []
  17484. },
  17485. {
  17486. "basic_auth": []
  17487. }
  17488. ],
  17489. "requestBody": {
  17490. "required": true,
  17491. "content": {
  17492. "application/json": {
  17493. "schema": {
  17494. "type": "object",
  17495. "required": [
  17496. "mentionPermissions"
  17497. ],
  17498. "properties": {
  17499. "mentionPermissions": {
  17500. "type": "integer",
  17501. "format": "int64",
  17502. "enum": [
  17503. 0,
  17504. 1
  17505. ],
  17506. "description": "New mention permissions"
  17507. }
  17508. }
  17509. }
  17510. }
  17511. }
  17512. },
  17513. "parameters": [
  17514. {
  17515. "name": "apiVersion",
  17516. "in": "path",
  17517. "required": true,
  17518. "schema": {
  17519. "type": "string",
  17520. "enum": [
  17521. "v4"
  17522. ],
  17523. "default": "v4"
  17524. }
  17525. },
  17526. {
  17527. "name": "token",
  17528. "in": "path",
  17529. "required": true,
  17530. "schema": {
  17531. "type": "string",
  17532. "pattern": "^[a-z0-9]{4,30}$"
  17533. }
  17534. },
  17535. {
  17536. "name": "OCS-APIRequest",
  17537. "in": "header",
  17538. "description": "Required to be true for the API request to pass",
  17539. "required": true,
  17540. "schema": {
  17541. "type": "boolean",
  17542. "default": true
  17543. }
  17544. }
  17545. ],
  17546. "responses": {
  17547. "200": {
  17548. "description": "Permissions updated successfully",
  17549. "content": {
  17550. "application/json": {
  17551. "schema": {
  17552. "type": "object",
  17553. "required": [
  17554. "ocs"
  17555. ],
  17556. "properties": {
  17557. "ocs": {
  17558. "type": "object",
  17559. "required": [
  17560. "meta",
  17561. "data"
  17562. ],
  17563. "properties": {
  17564. "meta": {
  17565. "$ref": "#/components/schemas/OCSMeta"
  17566. },
  17567. "data": {
  17568. "$ref": "#/components/schemas/Room"
  17569. }
  17570. }
  17571. }
  17572. }
  17573. }
  17574. }
  17575. }
  17576. },
  17577. "400": {
  17578. "description": "Updating permissions is not possible",
  17579. "content": {
  17580. "application/json": {
  17581. "schema": {
  17582. "type": "object",
  17583. "required": [
  17584. "ocs"
  17585. ],
  17586. "properties": {
  17587. "ocs": {
  17588. "type": "object",
  17589. "required": [
  17590. "meta",
  17591. "data"
  17592. ],
  17593. "properties": {
  17594. "meta": {
  17595. "$ref": "#/components/schemas/OCSMeta"
  17596. },
  17597. "data": {
  17598. "type": "object",
  17599. "required": [
  17600. "error"
  17601. ],
  17602. "properties": {
  17603. "error": {
  17604. "type": "string",
  17605. "enum": [
  17606. "breakout-room",
  17607. "type",
  17608. "value"
  17609. ]
  17610. }
  17611. }
  17612. }
  17613. }
  17614. }
  17615. }
  17616. }
  17617. }
  17618. }
  17619. }
  17620. }
  17621. }
  17622. },
  17623. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/archive": {
  17624. "post": {
  17625. "operationId": "room-archive-conversation",
  17626. "summary": "Archive a conversation",
  17627. "description": "Required capability: `archived-conversations-v2`",
  17628. "tags": [
  17629. "room"
  17630. ],
  17631. "security": [
  17632. {
  17633. "bearer_auth": []
  17634. },
  17635. {
  17636. "basic_auth": []
  17637. }
  17638. ],
  17639. "parameters": [
  17640. {
  17641. "name": "apiVersion",
  17642. "in": "path",
  17643. "required": true,
  17644. "schema": {
  17645. "type": "string",
  17646. "enum": [
  17647. "v4"
  17648. ],
  17649. "default": "v4"
  17650. }
  17651. },
  17652. {
  17653. "name": "token",
  17654. "in": "path",
  17655. "required": true,
  17656. "schema": {
  17657. "type": "string",
  17658. "pattern": "^[a-z0-9]{4,30}$"
  17659. }
  17660. },
  17661. {
  17662. "name": "OCS-APIRequest",
  17663. "in": "header",
  17664. "description": "Required to be true for the API request to pass",
  17665. "required": true,
  17666. "schema": {
  17667. "type": "boolean",
  17668. "default": true
  17669. }
  17670. }
  17671. ],
  17672. "responses": {
  17673. "200": {
  17674. "description": "Conversation was archived",
  17675. "content": {
  17676. "application/json": {
  17677. "schema": {
  17678. "type": "object",
  17679. "required": [
  17680. "ocs"
  17681. ],
  17682. "properties": {
  17683. "ocs": {
  17684. "type": "object",
  17685. "required": [
  17686. "meta",
  17687. "data"
  17688. ],
  17689. "properties": {
  17690. "meta": {
  17691. "$ref": "#/components/schemas/OCSMeta"
  17692. },
  17693. "data": {
  17694. "$ref": "#/components/schemas/Room"
  17695. }
  17696. }
  17697. }
  17698. }
  17699. }
  17700. }
  17701. }
  17702. }
  17703. }
  17704. },
  17705. "delete": {
  17706. "operationId": "room-unarchive-conversation",
  17707. "summary": "Unarchive a conversation",
  17708. "description": "Required capability: `archived-conversations-v2`",
  17709. "tags": [
  17710. "room"
  17711. ],
  17712. "security": [
  17713. {
  17714. "bearer_auth": []
  17715. },
  17716. {
  17717. "basic_auth": []
  17718. }
  17719. ],
  17720. "parameters": [
  17721. {
  17722. "name": "apiVersion",
  17723. "in": "path",
  17724. "required": true,
  17725. "schema": {
  17726. "type": "string",
  17727. "enum": [
  17728. "v4"
  17729. ],
  17730. "default": "v4"
  17731. }
  17732. },
  17733. {
  17734. "name": "token",
  17735. "in": "path",
  17736. "required": true,
  17737. "schema": {
  17738. "type": "string",
  17739. "pattern": "^[a-z0-9]{4,30}$"
  17740. }
  17741. },
  17742. {
  17743. "name": "OCS-APIRequest",
  17744. "in": "header",
  17745. "description": "Required to be true for the API request to pass",
  17746. "required": true,
  17747. "schema": {
  17748. "type": "boolean",
  17749. "default": true
  17750. }
  17751. }
  17752. ],
  17753. "responses": {
  17754. "200": {
  17755. "description": "Conversation was unarchived",
  17756. "content": {
  17757. "application/json": {
  17758. "schema": {
  17759. "type": "object",
  17760. "required": [
  17761. "ocs"
  17762. ],
  17763. "properties": {
  17764. "ocs": {
  17765. "type": "object",
  17766. "required": [
  17767. "meta",
  17768. "data"
  17769. ],
  17770. "properties": {
  17771. "meta": {
  17772. "$ref": "#/components/schemas/OCSMeta"
  17773. },
  17774. "data": {
  17775. "$ref": "#/components/schemas/Room"
  17776. }
  17777. }
  17778. }
  17779. }
  17780. }
  17781. }
  17782. }
  17783. }
  17784. }
  17785. }
  17786. },
  17787. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/import-emails": {
  17788. "post": {
  17789. "operationId": "room-import-emails-as-participants",
  17790. "summary": "Import a list of email attendees",
  17791. "description": "Content format is comma separated values: - Header line is required and must match `\"email\",\"name\"` or `\"email\"` - One entry per line (e.g. `\"John Doe\",\"john@example.tld\"`)\nRequired capability: `email-csv-import`",
  17792. "tags": [
  17793. "room"
  17794. ],
  17795. "security": [
  17796. {
  17797. "bearer_auth": []
  17798. },
  17799. {
  17800. "basic_auth": []
  17801. }
  17802. ],
  17803. "requestBody": {
  17804. "required": false,
  17805. "content": {
  17806. "application/json": {
  17807. "schema": {
  17808. "type": "object",
  17809. "properties": {
  17810. "testRun": {
  17811. "type": "boolean",
  17812. "default": false,
  17813. "description": "When set to true, the file is validated and no email is actually sent nor any participant added to the conversation"
  17814. }
  17815. }
  17816. }
  17817. }
  17818. }
  17819. },
  17820. "parameters": [
  17821. {
  17822. "name": "apiVersion",
  17823. "in": "path",
  17824. "required": true,
  17825. "schema": {
  17826. "type": "string",
  17827. "enum": [
  17828. "v4"
  17829. ],
  17830. "default": "v4"
  17831. }
  17832. },
  17833. {
  17834. "name": "token",
  17835. "in": "path",
  17836. "required": true,
  17837. "schema": {
  17838. "type": "string",
  17839. "pattern": "^[a-z0-9]{4,30}$"
  17840. }
  17841. },
  17842. {
  17843. "name": "OCS-APIRequest",
  17844. "in": "header",
  17845. "description": "Required to be true for the API request to pass",
  17846. "required": true,
  17847. "schema": {
  17848. "type": "boolean",
  17849. "default": true
  17850. }
  17851. }
  17852. ],
  17853. "responses": {
  17854. "200": {
  17855. "description": "All entries imported successfully",
  17856. "content": {
  17857. "application/json": {
  17858. "schema": {
  17859. "type": "object",
  17860. "required": [
  17861. "ocs"
  17862. ],
  17863. "properties": {
  17864. "ocs": {
  17865. "type": "object",
  17866. "required": [
  17867. "meta",
  17868. "data"
  17869. ],
  17870. "properties": {
  17871. "meta": {
  17872. "$ref": "#/components/schemas/OCSMeta"
  17873. },
  17874. "data": {
  17875. "type": "object",
  17876. "required": [
  17877. "invites",
  17878. "duplicates"
  17879. ],
  17880. "properties": {
  17881. "invites": {
  17882. "type": "integer",
  17883. "format": "int64",
  17884. "minimum": 0
  17885. },
  17886. "duplicates": {
  17887. "type": "integer",
  17888. "format": "int64",
  17889. "minimum": 0
  17890. },
  17891. "invalid": {
  17892. "type": "integer",
  17893. "format": "int64",
  17894. "minimum": 0
  17895. },
  17896. "invalidLines": {
  17897. "type": "array",
  17898. "items": {
  17899. "type": "integer",
  17900. "format": "int64",
  17901. "minimum": 0
  17902. }
  17903. },
  17904. "type": {
  17905. "type": "integer",
  17906. "format": "int64",
  17907. "minimum": -1,
  17908. "maximum": 6
  17909. }
  17910. }
  17911. }
  17912. }
  17913. }
  17914. }
  17915. }
  17916. }
  17917. }
  17918. },
  17919. "400": {
  17920. "description": "Import was not successful. When message is provided the string is in user language and should be displayed as an error.",
  17921. "content": {
  17922. "application/json": {
  17923. "schema": {
  17924. "type": "object",
  17925. "required": [
  17926. "ocs"
  17927. ],
  17928. "properties": {
  17929. "ocs": {
  17930. "type": "object",
  17931. "required": [
  17932. "meta",
  17933. "data"
  17934. ],
  17935. "properties": {
  17936. "meta": {
  17937. "$ref": "#/components/schemas/OCSMeta"
  17938. },
  17939. "data": {
  17940. "type": "object",
  17941. "required": [
  17942. "error"
  17943. ],
  17944. "properties": {
  17945. "error": {
  17946. "type": "string",
  17947. "enum": [
  17948. "room",
  17949. "file",
  17950. "header-email",
  17951. "header-name",
  17952. "rows"
  17953. ]
  17954. },
  17955. "message": {
  17956. "type": "string"
  17957. },
  17958. "invites": {
  17959. "type": "integer",
  17960. "format": "int64",
  17961. "minimum": 0
  17962. },
  17963. "duplicates": {
  17964. "type": "integer",
  17965. "format": "int64",
  17966. "minimum": 0
  17967. },
  17968. "invalid": {
  17969. "type": "integer",
  17970. "format": "int64",
  17971. "minimum": 0
  17972. },
  17973. "invalidLines": {
  17974. "type": "array",
  17975. "items": {
  17976. "type": "integer",
  17977. "format": "int64",
  17978. "minimum": 0
  17979. }
  17980. },
  17981. "type": {
  17982. "type": "integer",
  17983. "format": "int64",
  17984. "minimum": -1,
  17985. "maximum": 6
  17986. }
  17987. }
  17988. }
  17989. }
  17990. }
  17991. }
  17992. }
  17993. }
  17994. }
  17995. }
  17996. }
  17997. }
  17998. },
  17999. "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/meeting": {
  18000. "post": {
  18001. "operationId": "room-schedule-meeting",
  18002. "summary": "Schedule a meeting for a conversation",
  18003. "description": "Required capability: `schedule-meeting`",
  18004. "tags": [
  18005. "room"
  18006. ],
  18007. "security": [
  18008. {
  18009. "bearer_auth": []
  18010. },
  18011. {
  18012. "basic_auth": []
  18013. }
  18014. ],
  18015. "requestBody": {
  18016. "required": true,
  18017. "content": {
  18018. "application/json": {
  18019. "schema": {
  18020. "type": "object",
  18021. "required": [
  18022. "calendarUri",
  18023. "start"
  18024. ],
  18025. "properties": {
  18026. "calendarUri": {
  18027. "type": "string",
  18028. "description": "Last part of the calendar URI as seen by the participant e.g. 'personal' or 'company_shared_by_other_user'"
  18029. },
  18030. "start": {
  18031. "type": "integer",
  18032. "format": "int64",
  18033. "description": "Unix timestamp when the meeting starts"
  18034. },
  18035. "attendeeIds": {
  18036. "type": "array",
  18037. "nullable": true,
  18038. "description": "List of attendee ids to invite, if null everyone will be invited, if empty array only the actor will receive the event",
  18039. "items": {
  18040. "type": "integer",
  18041. "format": "int64"
  18042. }
  18043. },
  18044. "end": {
  18045. "type": "integer",
  18046. "format": "int64",
  18047. "nullable": true,
  18048. "description": "Unix timestamp when the meeting ends, falls back to 60 minutes after start"
  18049. },
  18050. "title": {
  18051. "type": "string",
  18052. "nullable": true,
  18053. "description": "Title or summary of the event, falling back to the conversation name if none is given"
  18054. },
  18055. "description": {
  18056. "type": "string",
  18057. "nullable": true,
  18058. "description": "Description of the event, falling back to the conversation description if none is given"
  18059. }
  18060. }
  18061. }
  18062. }
  18063. }
  18064. },
  18065. "parameters": [
  18066. {
  18067. "name": "apiVersion",
  18068. "in": "path",
  18069. "required": true,
  18070. "schema": {
  18071. "type": "string",
  18072. "enum": [
  18073. "v4"
  18074. ],
  18075. "default": "v4"
  18076. }
  18077. },
  18078. {
  18079. "name": "token",
  18080. "in": "path",
  18081. "required": true,
  18082. "schema": {
  18083. "type": "string",
  18084. "pattern": "^[a-z0-9]{4,30}$"
  18085. }
  18086. },
  18087. {
  18088. "name": "OCS-APIRequest",
  18089. "in": "header",
  18090. "description": "Required to be true for the API request to pass",
  18091. "required": true,
  18092. "schema": {
  18093. "type": "boolean",
  18094. "default": true
  18095. }
  18096. }
  18097. ],
  18098. "responses": {
  18099. "200": {
  18100. "description": "Meeting scheduled",
  18101. "content": {
  18102. "application/json": {
  18103. "schema": {
  18104. "type": "object",
  18105. "required": [
  18106. "ocs"
  18107. ],
  18108. "properties": {
  18109. "ocs": {
  18110. "type": "object",
  18111. "required": [
  18112. "meta",
  18113. "data"
  18114. ],
  18115. "properties": {
  18116. "meta": {
  18117. "$ref": "#/components/schemas/OCSMeta"
  18118. },
  18119. "data": {
  18120. "nullable": true
  18121. }
  18122. }
  18123. }
  18124. }
  18125. }
  18126. }
  18127. }
  18128. },
  18129. "400": {
  18130. "description": "Meeting could not be created successfully",
  18131. "content": {
  18132. "application/json": {
  18133. "schema": {
  18134. "type": "object",
  18135. "required": [
  18136. "ocs"
  18137. ],
  18138. "properties": {
  18139. "ocs": {
  18140. "type": "object",
  18141. "required": [
  18142. "meta",
  18143. "data"
  18144. ],
  18145. "properties": {
  18146. "meta": {
  18147. "$ref": "#/components/schemas/OCSMeta"
  18148. },
  18149. "data": {
  18150. "type": "object",
  18151. "required": [
  18152. "error"
  18153. ],
  18154. "properties": {
  18155. "error": {
  18156. "type": "string",
  18157. "enum": [
  18158. "calendar",
  18159. "email",
  18160. "end",
  18161. "start"
  18162. ]
  18163. }
  18164. }
  18165. }
  18166. }
  18167. }
  18168. }
  18169. }
  18170. }
  18171. }
  18172. }
  18173. }
  18174. }
  18175. },
  18176. "/ocs/v2.php/apps/spreed/api/{apiVersion}/settings/user": {
  18177. "post": {
  18178. "operationId": "settings-set-user-setting",
  18179. "summary": "Update user setting",
  18180. "tags": [
  18181. "settings"
  18182. ],
  18183. "security": [
  18184. {
  18185. "bearer_auth": []
  18186. },
  18187. {
  18188. "basic_auth": []
  18189. }
  18190. ],
  18191. "requestBody": {
  18192. "required": true,
  18193. "content": {
  18194. "application/json": {
  18195. "schema": {
  18196. "type": "object",
  18197. "required": [
  18198. "key"
  18199. ],
  18200. "properties": {
  18201. "key": {
  18202. "type": "string",
  18203. "enum": [
  18204. "attachment_folder",
  18205. "read_status_privacy",
  18206. "typing_privacy",
  18207. "play_sounds"
  18208. ],
  18209. "description": "Key to update"
  18210. },
  18211. "value": {
  18212. "nullable": true,
  18213. "description": "New value for the key",
  18214. "oneOf": [
  18215. {
  18216. "type": "string"
  18217. },
  18218. {
  18219. "type": "integer",
  18220. "format": "int64"
  18221. }
  18222. ]
  18223. }
  18224. }
  18225. }
  18226. }
  18227. }
  18228. },
  18229. "parameters": [
  18230. {
  18231. "name": "apiVersion",
  18232. "in": "path",
  18233. "required": true,
  18234. "schema": {
  18235. "type": "string",
  18236. "enum": [
  18237. "v1"
  18238. ],
  18239. "default": "v1"
  18240. }
  18241. },
  18242. {
  18243. "name": "OCS-APIRequest",
  18244. "in": "header",
  18245. "description": "Required to be true for the API request to pass",
  18246. "required": true,
  18247. "schema": {
  18248. "type": "boolean",
  18249. "default": true
  18250. }
  18251. }
  18252. ],
  18253. "responses": {
  18254. "200": {
  18255. "description": "User setting updated successfully",
  18256. "content": {
  18257. "application/json": {
  18258. "schema": {
  18259. "type": "object",
  18260. "required": [
  18261. "ocs"
  18262. ],
  18263. "properties": {
  18264. "ocs": {
  18265. "type": "object",
  18266. "required": [
  18267. "meta",
  18268. "data"
  18269. ],
  18270. "properties": {
  18271. "meta": {
  18272. "$ref": "#/components/schemas/OCSMeta"
  18273. },
  18274. "data": {
  18275. "nullable": true
  18276. }
  18277. }
  18278. }
  18279. }
  18280. }
  18281. }
  18282. }
  18283. },
  18284. "400": {
  18285. "description": "Updating user setting is not possible",
  18286. "content": {
  18287. "application/json": {
  18288. "schema": {
  18289. "type": "object",
  18290. "required": [
  18291. "ocs"
  18292. ],
  18293. "properties": {
  18294. "ocs": {
  18295. "type": "object",
  18296. "required": [
  18297. "meta",
  18298. "data"
  18299. ],
  18300. "properties": {
  18301. "meta": {
  18302. "$ref": "#/components/schemas/OCSMeta"
  18303. },
  18304. "data": {
  18305. "nullable": true
  18306. }
  18307. }
  18308. }
  18309. }
  18310. }
  18311. }
  18312. }
  18313. }
  18314. }
  18315. }
  18316. },
  18317. "/ocs/v2.php/apps/spreed/api/{apiVersion}/signaling/settings": {
  18318. "get": {
  18319. "operationId": "signaling-get-settings",
  18320. "summary": "Get the signaling settings",
  18321. "tags": [
  18322. "internal_signaling",
  18323. "external_signaling"
  18324. ],
  18325. "security": [
  18326. {},
  18327. {
  18328. "bearer_auth": []
  18329. },
  18330. {
  18331. "basic_auth": []
  18332. }
  18333. ],
  18334. "parameters": [
  18335. {
  18336. "name": "apiVersion",
  18337. "in": "path",
  18338. "required": true,
  18339. "schema": {
  18340. "type": "string",
  18341. "enum": [
  18342. "v3"
  18343. ],
  18344. "default": "v3"
  18345. }
  18346. },
  18347. {
  18348. "name": "token",
  18349. "in": "query",
  18350. "description": "Token of the room",
  18351. "schema": {
  18352. "type": "string",
  18353. "default": ""
  18354. }
  18355. },
  18356. {
  18357. "name": "OCS-APIRequest",
  18358. "in": "header",
  18359. "description": "Required to be true for the API request to pass",
  18360. "required": true,
  18361. "schema": {
  18362. "type": "boolean",
  18363. "default": true
  18364. }
  18365. }
  18366. ],
  18367. "responses": {
  18368. "200": {
  18369. "description": "Signaling settings returned",
  18370. "content": {
  18371. "application/json": {
  18372. "schema": {
  18373. "type": "object",
  18374. "required": [
  18375. "ocs"
  18376. ],
  18377. "properties": {
  18378. "ocs": {
  18379. "type": "object",
  18380. "required": [
  18381. "meta",
  18382. "data"
  18383. ],
  18384. "properties": {
  18385. "meta": {
  18386. "$ref": "#/components/schemas/OCSMeta"
  18387. },
  18388. "data": {
  18389. "$ref": "#/components/schemas/SignalingSettings"
  18390. }
  18391. }
  18392. }
  18393. }
  18394. }
  18395. }
  18396. }
  18397. },
  18398. "401": {
  18399. "description": "Recording request invalid",
  18400. "content": {
  18401. "application/json": {
  18402. "schema": {
  18403. "type": "object",
  18404. "required": [
  18405. "ocs"
  18406. ],
  18407. "properties": {
  18408. "ocs": {
  18409. "type": "object",
  18410. "required": [
  18411. "meta",
  18412. "data"
  18413. ],
  18414. "properties": {
  18415. "meta": {
  18416. "$ref": "#/components/schemas/OCSMeta"
  18417. },
  18418. "data": {
  18419. "nullable": true
  18420. }
  18421. }
  18422. }
  18423. }
  18424. }
  18425. }
  18426. }
  18427. },
  18428. "404": {
  18429. "description": "Room not found",
  18430. "content": {
  18431. "application/json": {
  18432. "schema": {
  18433. "type": "object",
  18434. "required": [
  18435. "ocs"
  18436. ],
  18437. "properties": {
  18438. "ocs": {
  18439. "type": "object",
  18440. "required": [
  18441. "meta",
  18442. "data"
  18443. ],
  18444. "properties": {
  18445. "meta": {
  18446. "$ref": "#/components/schemas/OCSMeta"
  18447. },
  18448. "data": {
  18449. "nullable": true
  18450. }
  18451. }
  18452. }
  18453. }
  18454. }
  18455. }
  18456. }
  18457. }
  18458. }
  18459. }
  18460. },
  18461. "/ocs/v2.php/apps/spreed/api/{apiVersion}/signaling/{token}": {
  18462. "post": {
  18463. "operationId": "signaling-send-messages",
  18464. "summary": "Send signaling messages",
  18465. "tags": [
  18466. "internal_signaling"
  18467. ],
  18468. "security": [
  18469. {},
  18470. {
  18471. "bearer_auth": []
  18472. },
  18473. {
  18474. "basic_auth": []
  18475. }
  18476. ],
  18477. "requestBody": {
  18478. "required": true,
  18479. "content": {
  18480. "application/json": {
  18481. "schema": {
  18482. "type": "object",
  18483. "required": [
  18484. "messages"
  18485. ],
  18486. "properties": {
  18487. "messages": {
  18488. "type": "string",
  18489. "description": "JSON encoded messages"
  18490. }
  18491. }
  18492. }
  18493. }
  18494. }
  18495. },
  18496. "parameters": [
  18497. {
  18498. "name": "apiVersion",
  18499. "in": "path",
  18500. "required": true,
  18501. "schema": {
  18502. "type": "string",
  18503. "enum": [
  18504. "v3"
  18505. ],
  18506. "default": "v3"
  18507. }
  18508. },
  18509. {
  18510. "name": "token",
  18511. "in": "path",
  18512. "description": "Token of the room",
  18513. "required": true,
  18514. "schema": {
  18515. "type": "string",
  18516. "pattern": "^[a-z0-9]{4,30}$"
  18517. }
  18518. },
  18519. {
  18520. "name": "OCS-APIRequest",
  18521. "in": "header",
  18522. "description": "Required to be true for the API request to pass",
  18523. "required": true,
  18524. "schema": {
  18525. "type": "boolean",
  18526. "default": true
  18527. }
  18528. }
  18529. ],
  18530. "responses": {
  18531. "200": {
  18532. "description": "Signaling message sent successfully",
  18533. "content": {
  18534. "application/json": {
  18535. "schema": {
  18536. "type": "object",
  18537. "required": [
  18538. "ocs"
  18539. ],
  18540. "properties": {
  18541. "ocs": {
  18542. "type": "object",
  18543. "required": [
  18544. "meta",
  18545. "data"
  18546. ],
  18547. "properties": {
  18548. "meta": {
  18549. "$ref": "#/components/schemas/OCSMeta"
  18550. },
  18551. "data": {
  18552. "nullable": true
  18553. }
  18554. }
  18555. }
  18556. }
  18557. }
  18558. }
  18559. }
  18560. },
  18561. "400": {
  18562. "description": "Sending signaling message is not possible",
  18563. "content": {
  18564. "application/json": {
  18565. "schema": {
  18566. "type": "object",
  18567. "required": [
  18568. "ocs"
  18569. ],
  18570. "properties": {
  18571. "ocs": {
  18572. "type": "object",
  18573. "required": [
  18574. "meta",
  18575. "data"
  18576. ],
  18577. "properties": {
  18578. "meta": {
  18579. "$ref": "#/components/schemas/OCSMeta"
  18580. },
  18581. "data": {
  18582. "type": "string"
  18583. }
  18584. }
  18585. }
  18586. }
  18587. }
  18588. }
  18589. }
  18590. }
  18591. }
  18592. },
  18593. "get": {
  18594. "operationId": "signaling-pull-messages",
  18595. "summary": "Get signaling messages",
  18596. "tags": [
  18597. "internal_signaling"
  18598. ],
  18599. "security": [
  18600. {},
  18601. {
  18602. "bearer_auth": []
  18603. },
  18604. {
  18605. "basic_auth": []
  18606. }
  18607. ],
  18608. "parameters": [
  18609. {
  18610. "name": "apiVersion",
  18611. "in": "path",
  18612. "required": true,
  18613. "schema": {
  18614. "type": "string",
  18615. "enum": [
  18616. "v3"
  18617. ],
  18618. "default": "v3"
  18619. }
  18620. },
  18621. {
  18622. "name": "token",
  18623. "in": "path",
  18624. "description": "Token of the room",
  18625. "required": true,
  18626. "schema": {
  18627. "type": "string",
  18628. "pattern": "^[a-z0-9]{4,30}$"
  18629. }
  18630. },
  18631. {
  18632. "name": "OCS-APIRequest",
  18633. "in": "header",
  18634. "description": "Required to be true for the API request to pass",
  18635. "required": true,
  18636. "schema": {
  18637. "type": "boolean",
  18638. "default": true
  18639. }
  18640. }
  18641. ],
  18642. "responses": {
  18643. "200": {
  18644. "description": "Signaling messages returned",
  18645. "content": {
  18646. "application/json": {
  18647. "schema": {
  18648. "type": "object",
  18649. "required": [
  18650. "ocs"
  18651. ],
  18652. "properties": {
  18653. "ocs": {
  18654. "type": "object",
  18655. "required": [
  18656. "meta",
  18657. "data"
  18658. ],
  18659. "properties": {
  18660. "meta": {
  18661. "$ref": "#/components/schemas/OCSMeta"
  18662. },
  18663. "data": {
  18664. "type": "array",
  18665. "items": {
  18666. "type": "object",
  18667. "required": [
  18668. "type",
  18669. "data"
  18670. ],
  18671. "properties": {
  18672. "type": {
  18673. "type": "string"
  18674. },
  18675. "data": {
  18676. "oneOf": [
  18677. {
  18678. "type": "array",
  18679. "items": {
  18680. "$ref": "#/components/schemas/SignalingSession"
  18681. }
  18682. },
  18683. {
  18684. "type": "string"
  18685. }
  18686. ]
  18687. }
  18688. }
  18689. }
  18690. }
  18691. }
  18692. }
  18693. }
  18694. }
  18695. }
  18696. }
  18697. },
  18698. "404": {
  18699. "description": "Session, room or participant not found",
  18700. "content": {
  18701. "application/json": {
  18702. "schema": {
  18703. "type": "object",
  18704. "required": [
  18705. "ocs"
  18706. ],
  18707. "properties": {
  18708. "ocs": {
  18709. "type": "object",
  18710. "required": [
  18711. "meta",
  18712. "data"
  18713. ],
  18714. "properties": {
  18715. "meta": {
  18716. "$ref": "#/components/schemas/OCSMeta"
  18717. },
  18718. "data": {
  18719. "type": "array",
  18720. "items": {
  18721. "type": "object",
  18722. "required": [
  18723. "type",
  18724. "data"
  18725. ],
  18726. "properties": {
  18727. "type": {
  18728. "type": "string"
  18729. },
  18730. "data": {
  18731. "oneOf": [
  18732. {
  18733. "type": "array",
  18734. "items": {
  18735. "$ref": "#/components/schemas/SignalingSession"
  18736. }
  18737. },
  18738. {
  18739. "type": "string"
  18740. }
  18741. ]
  18742. }
  18743. }
  18744. }
  18745. }
  18746. }
  18747. }
  18748. }
  18749. }
  18750. }
  18751. }
  18752. },
  18753. "409": {
  18754. "description": "Session killed",
  18755. "content": {
  18756. "application/json": {
  18757. "schema": {
  18758. "type": "object",
  18759. "required": [
  18760. "ocs"
  18761. ],
  18762. "properties": {
  18763. "ocs": {
  18764. "type": "object",
  18765. "required": [
  18766. "meta",
  18767. "data"
  18768. ],
  18769. "properties": {
  18770. "meta": {
  18771. "$ref": "#/components/schemas/OCSMeta"
  18772. },
  18773. "data": {
  18774. "type": "array",
  18775. "items": {
  18776. "type": "object",
  18777. "required": [
  18778. "type",
  18779. "data"
  18780. ],
  18781. "properties": {
  18782. "type": {
  18783. "type": "string"
  18784. },
  18785. "data": {
  18786. "oneOf": [
  18787. {
  18788. "type": "array",
  18789. "items": {
  18790. "$ref": "#/components/schemas/SignalingSession"
  18791. }
  18792. },
  18793. {
  18794. "type": "string"
  18795. }
  18796. ]
  18797. }
  18798. }
  18799. }
  18800. }
  18801. }
  18802. }
  18803. }
  18804. }
  18805. }
  18806. }
  18807. },
  18808. "400": {
  18809. "description": "Getting signaling messages is not possible",
  18810. "content": {
  18811. "application/json": {
  18812. "schema": {
  18813. "type": "object",
  18814. "required": [
  18815. "ocs"
  18816. ],
  18817. "properties": {
  18818. "ocs": {
  18819. "type": "object",
  18820. "required": [
  18821. "meta",
  18822. "data"
  18823. ],
  18824. "properties": {
  18825. "meta": {
  18826. "$ref": "#/components/schemas/OCSMeta"
  18827. },
  18828. "data": {
  18829. "type": "string"
  18830. }
  18831. }
  18832. }
  18833. }
  18834. }
  18835. }
  18836. }
  18837. }
  18838. }
  18839. }
  18840. },
  18841. "/ocs/v2.php/apps/spreed/temp-user-avatar": {
  18842. "post": {
  18843. "operationId": "temp_avatar-post-avatar",
  18844. "summary": "Upload your avatar as a user",
  18845. "tags": [
  18846. "user_avatar"
  18847. ],
  18848. "security": [
  18849. {
  18850. "bearer_auth": []
  18851. },
  18852. {
  18853. "basic_auth": []
  18854. }
  18855. ],
  18856. "parameters": [
  18857. {
  18858. "name": "OCS-APIRequest",
  18859. "in": "header",
  18860. "description": "Required to be true for the API request to pass",
  18861. "required": true,
  18862. "schema": {
  18863. "type": "boolean",
  18864. "default": true
  18865. }
  18866. }
  18867. ],
  18868. "responses": {
  18869. "200": {
  18870. "description": "Avatar uploaded successfully",
  18871. "content": {
  18872. "application/json": {
  18873. "schema": {
  18874. "type": "object",
  18875. "required": [
  18876. "ocs"
  18877. ],
  18878. "properties": {
  18879. "ocs": {
  18880. "type": "object",
  18881. "required": [
  18882. "meta",
  18883. "data"
  18884. ],
  18885. "properties": {
  18886. "meta": {
  18887. "$ref": "#/components/schemas/OCSMeta"
  18888. },
  18889. "data": {
  18890. "nullable": true
  18891. }
  18892. }
  18893. }
  18894. }
  18895. }
  18896. }
  18897. }
  18898. },
  18899. "400": {
  18900. "description": "Uploading avatar is not possible",
  18901. "content": {
  18902. "application/json": {
  18903. "schema": {
  18904. "type": "object",
  18905. "required": [
  18906. "ocs"
  18907. ],
  18908. "properties": {
  18909. "ocs": {
  18910. "type": "object",
  18911. "required": [
  18912. "meta",
  18913. "data"
  18914. ],
  18915. "properties": {
  18916. "meta": {
  18917. "$ref": "#/components/schemas/OCSMeta"
  18918. },
  18919. "data": {
  18920. "type": "object",
  18921. "required": [
  18922. "message"
  18923. ],
  18924. "properties": {
  18925. "message": {
  18926. "type": "string"
  18927. }
  18928. }
  18929. }
  18930. }
  18931. }
  18932. }
  18933. }
  18934. }
  18935. }
  18936. }
  18937. }
  18938. },
  18939. "delete": {
  18940. "operationId": "temp_avatar-delete-avatar",
  18941. "summary": "Delete your avatar as a user",
  18942. "tags": [
  18943. "user_avatar"
  18944. ],
  18945. "security": [
  18946. {
  18947. "bearer_auth": []
  18948. },
  18949. {
  18950. "basic_auth": []
  18951. }
  18952. ],
  18953. "parameters": [
  18954. {
  18955. "name": "OCS-APIRequest",
  18956. "in": "header",
  18957. "description": "Required to be true for the API request to pass",
  18958. "required": true,
  18959. "schema": {
  18960. "type": "boolean",
  18961. "default": true
  18962. }
  18963. }
  18964. ],
  18965. "responses": {
  18966. "200": {
  18967. "description": "Avatar deleted successfully",
  18968. "content": {
  18969. "application/json": {
  18970. "schema": {
  18971. "type": "object",
  18972. "required": [
  18973. "ocs"
  18974. ],
  18975. "properties": {
  18976. "ocs": {
  18977. "type": "object",
  18978. "required": [
  18979. "meta",
  18980. "data"
  18981. ],
  18982. "properties": {
  18983. "meta": {
  18984. "$ref": "#/components/schemas/OCSMeta"
  18985. },
  18986. "data": {
  18987. "nullable": true
  18988. }
  18989. }
  18990. }
  18991. }
  18992. }
  18993. }
  18994. }
  18995. },
  18996. "400": {
  18997. "description": "Deleting avatar is not possible",
  18998. "content": {
  18999. "application/json": {
  19000. "schema": {
  19001. "type": "object",
  19002. "required": [
  19003. "ocs"
  19004. ],
  19005. "properties": {
  19006. "ocs": {
  19007. "type": "object",
  19008. "required": [
  19009. "meta",
  19010. "data"
  19011. ],
  19012. "properties": {
  19013. "meta": {
  19014. "$ref": "#/components/schemas/OCSMeta"
  19015. },
  19016. "data": {
  19017. "type": "object",
  19018. "required": [
  19019. "error"
  19020. ],
  19021. "properties": {
  19022. "error": {
  19023. "type": "string",
  19024. "enum": [
  19025. "avatar"
  19026. ]
  19027. }
  19028. }
  19029. }
  19030. }
  19031. }
  19032. }
  19033. }
  19034. }
  19035. }
  19036. }
  19037. }
  19038. }
  19039. }
  19040. },
  19041. "tags": []
  19042. }