From 615b1f0c26a1d77e53f5b8e7d58d322b4843010f Mon Sep 17 00:00:00 2001 From: juskora Date: Fri, 15 Nov 2024 14:14:57 +0100 Subject: [PATCH] Added REST fixes --- .../PATCH/InternalParticipant.json.example | 11 + .../add/PATCH/InternalParticipant.xml.example | 9 + .../InternalParticipantUpdate.json.example | 5 + .../InternalParticipantUpdate.xml.example | 4 + .../add/PATCH/ParticipantUpdate.xml.example | 4 + .../add/POST/ParticipantList.json.example | 112 + .../add/POST/ParticipantList.xml.example | 91 + .../POST/ParticipantListCreate.json.example | 19 + .../POST/ParticipantListCreate.xml.example | 14 + .../list/GET/ParticipantList.json.example | 30 +- .../GET/CollaborationSession.json.example | 39 + .../GET/CollaborationSession.xml.example | 82 + .../POST/CollaborationSession.json.example | 39 + .../POST/CollaborationSession.xml.example | 26 + .../CollaborationSessionCreate.json.example | 30 + .../CollaborationSessionCreate.xml.example | 23 + ...bexa-collaborativeediting-participant.raml | 218 +- .../ibexa-collaborativeediting-session.raml | 218 +- .../rest_api_reference/input/ibexa-types.raml | 15 + .../rest_api_reference/input/ibexa.raml | 5 + .../rest_api_reference.html | 3446 +++++++++++++++++ 21 files changed, 4272 insertions(+), 168 deletions(-) create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipant.json.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipant.xml.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipantUpdate.json.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipantUpdate.xml.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/ParticipantUpdate.xml.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantList.json.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantList.xml.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantListCreate.json.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantListCreate.xml.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/GET/CollaborationSession.json.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/GET/CollaborationSession.xml.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSession.json.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSession.xml.example create mode 100644 docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSessionCreate.xml.example diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipant.json.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipant.json.example new file mode 100644 index 00000000000..e1e910e1f2f --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipant.json.example @@ -0,0 +1,11 @@ +{ + "Participant": { + "_media-type": "application/vnd.ibexa.api.ExternalParticipant+json", + "id": 46, + "name": "user@link.invalid", + "scope": "view", + "email": "user@link.invalid", + "createdAt": "2024-11-14T14:09:47+00:00", + "updatedAt": "2024-11-15T13:13:22+00:00" + } +} \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipant.xml.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipant.xml.example new file mode 100644 index 00000000000..8f6e80dc53d --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipant.xml.example @@ -0,0 +1,9 @@ + + + 46 + user@link.invalid + edit + user@link.invalid + 2024-11-14T14:09:47+00:00 + 2024-11-15T12:50:03+00:00 + \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipantUpdate.json.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipantUpdate.json.example new file mode 100644 index 00000000000..2056c28f21e --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipantUpdate.json.example @@ -0,0 +1,5 @@ +{ + "InternalParticipantUpdate": { + "scope": "view" + } +} \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipantUpdate.xml.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipantUpdate.xml.example new file mode 100644 index 00000000000..8a393935119 --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/InternalParticipantUpdate.xml.example @@ -0,0 +1,4 @@ + + + edit + \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/ParticipantUpdate.xml.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/ParticipantUpdate.xml.example new file mode 100644 index 00000000000..14bc09f82e1 --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/PATCH/ParticipantUpdate.xml.example @@ -0,0 +1,4 @@ + + + view + \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantList.json.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantList.json.example new file mode 100644 index 00000000000..3ab15756f51 --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantList.json.example @@ -0,0 +1,112 @@ +{ + "ParticipantList": { + "_media-type": "application/vnd.ibexa.api.ParticipantList+json", + "Participants": [ + { + "_media-type": "application/vnd.ibexa.api.InternalParticipant+json", + "id": 11, + "name": "Administrator User", + "scope": "edit", + "User": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + }, + "createdAt": "2024-11-13T11:01:24+00:00", + "updatedAt": "2024-11-13T11:01:24+00:00" + }, + { + "_media-type": "application/vnd.ibexa.api.ExternalParticipant+json", + "id": 12, + "name": "user@link.invalid", + "scope": "view", + "email": "user@link.invalid", + "createdAt": "2024-11-13T11:01:24+00:00", + "updatedAt": "2024-11-13T11:01:24+00:00" + }, + { + "_media-type": "application/vnd.ibexa.api.InternalParticipant+json", + "id": 13, + "name": "Administrator User", + "scope": "view", + "User": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + }, + "createdAt": "2024-11-13T11:02:22+00:00", + "updatedAt": "2024-11-13T11:02:22+00:00" + }, + { + "_media-type": "application/vnd.ibexa.api.ExternalParticipant+json", + "id": 14, + "name": "user@link.invalid", + "scope": "view", + "email": "user@link.invalid", + "createdAt": "2024-11-13T11:02:22+00:00", + "updatedAt": "2024-11-13T11:02:22+00:00" + }, + { + "_media-type": "application/vnd.ibexa.api.InternalParticipant+json", + "id": 15, + "name": "Administrator User", + "scope": "view", + "User": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + }, + "createdAt": "2024-11-13T11:10:29+00:00", + "updatedAt": "2024-11-13T11:10:29+00:00" + }, + { + "_media-type": "application/vnd.ibexa.api.ExternalParticipant+json", + "id": 16, + "name": "user@link.invalid", + "scope": "view", + "email": "user@link.invalid", + "createdAt": "2024-11-13T11:10:29+00:00", + "updatedAt": "2024-11-13T11:10:29+00:00" + }, + { + "_media-type": "application/vnd.ibexa.api.InternalParticipant+json", + "id": 17, + "name": "Administrator User", + "scope": "view", + "User": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + }, + "createdAt": "2024-11-13T11:43:20+00:00", + "updatedAt": "2024-11-13T11:43:20+00:00" + }, + { + "_media-type": "application/vnd.ibexa.api.ExternalParticipant+json", + "id": 18, + "name": "user@link.invalid", + "scope": "view", + "email": "user@link.invalid", + "createdAt": "2024-11-13T11:43:20+00:00", + "updatedAt": "2024-11-13T11:43:20+00:00" + }, + { + "_media-type": "application/vnd.ibexa.api.InternalParticipant+json", + "id": 45, + "name": "Administrator User", + "scope": "view", + "User": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + }, + "createdAt": "2024-11-14T14:09:47+00:00", + "updatedAt": "2024-11-14T14:09:47+00:00" + }, + { + "_media-type": "application/vnd.ibexa.api.ExternalParticipant+json", + "id": 46, + "name": "user@link.invalid", + "scope": "view", + "email": "user@link.invalid", + "createdAt": "2024-11-14T14:09:47+00:00", + "updatedAt": "2024-11-14T14:09:47+00:00" + } + ] + } +} \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantList.xml.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantList.xml.example new file mode 100644 index 00000000000..8a1a66f17b0 --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantList.xml.example @@ -0,0 +1,91 @@ + + + + 11 + Administrator User + edit + + 2024-11-13T11:01:24+00:00 + 2024-11-13T11:01:24+00:00 + + + 13 + Administrator User + view + + 2024-11-13T11:02:22+00:00 + 2024-11-13T11:02:22+00:00 + + + 14 + user@link.invalid + view + user@link.invalid + 2024-11-13T11:02:22+00:00 + 2024-11-13T11:02:22+00:00 + + + 15 + Administrator User + view + + 2024-11-13T11:10:29+00:00 + 2024-11-13T11:10:29+00:00 + + + 16 + user@link.invalid + view + user@link.invalid + 2024-11-13T11:10:29+00:00 + 2024-11-13T11:10:29+00:00 + + + 17 + Administrator User + view + + 2024-11-13T11:43:20+00:00 + 2024-11-13T11:43:20+00:00 + + + 18 + user@link.invalid + view + user@link.invalid + 2024-11-13T11:43:20+00:00 + 2024-11-13T11:43:20+00:00 + + + 45 + Administrator User + view + + 2024-11-14T14:09:47+00:00 + 2024-11-14T14:09:47+00:00 + + + 46 + user@link.invalid + view + user@link.invalid + 2024-11-14T14:09:47+00:00 + 2024-11-14T14:09:47+00:00 + + + 49 + Administrator User + view + + 2024-11-15T11:55:38+00:00 + 2024-11-15T11:55:38+00:00 + + + 50 + user@link.invalid + view + user@link.invalid + 2024-11-15T11:55:38+00:00 + 2024-11-15T11:55:38+00:00 + + \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantListCreate.json.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantListCreate.json.example new file mode 100644 index 00000000000..0bc26687a1b --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantListCreate.json.example @@ -0,0 +1,19 @@ +{ + "ParticipantListCreate": { + "ParticipantCreate": [ + { + "_media-type": "application\/vnd.ibexa.api.InternalParticipantCreate+json", + "User": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + }, + "scope": "view" + }, + { + "_media-type": "application\/vnd.ibexa.api.ExternalParticipantCreate+json", + "email": "user@link.invalid", + "scope": "view" + } + ] + } +} \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantListCreate.xml.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantListCreate.xml.example new file mode 100644 index 00000000000..1c3af64eaea --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/add/POST/ParticipantListCreate.xml.example @@ -0,0 +1,14 @@ + + + + view + + + + + user@link.invalid + view + + \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/list/GET/ParticipantList.json.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/list/GET/ParticipantList.json.example index 7823f1681a0..ec39a7561a4 100644 --- a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/list/GET/ParticipantList.json.example +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/participant/list/GET/ParticipantList.json.example @@ -1,28 +1,28 @@ { "ParticipantList": { + "_media-type": "application/vnd.ibexa.api.ParticipantList+json", "Participants": [ { - "User": { - "_href": "/api/ibexa/v2/user/users/__FIXED_ID__", - "_media-type": "application/vnd.ibexa.api.User+json" - }, "_media-type": "application/vnd.ibexa.api.InternalParticipant+json", - "createdAt": "__CREATED_AT__", - "id": "__FIXED_ID__", - "name": "Anonymous User", + "id": 39, + "name": "Administrator User", "scope": "edit", - "updatedAt": "__UPDATED_AT__" + "User": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + }, + "createdAt": "2024-11-14T11:34:41+00:00", + "updatedAt": "2024-11-14T11:34:41+00:00" }, { "_media-type": "application/vnd.ibexa.api.ExternalParticipant+json", - "createdAt": "__CREATED_AT__", - "email": "guest-foo@example.com", - "id": "__FIXED_ID__", - "name": "guest-foo@example.com", + "id": 40, + "name": "user@link.invalid", "scope": "view", - "updatedAt": "__UPDATED_AT__" + "email": "user@link.invalid", + "createdAt": "2024-11-14T11:34:41+00:00", + "updatedAt": "2024-11-14T11:34:41+00:00" } - ], - "_media-type": "application/vnd.ibexa.api.ParticipantList+json" + ] } } \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/GET/CollaborationSession.json.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/GET/CollaborationSession.json.example new file mode 100644 index 00000000000..a7eeffdb0d2 --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/GET/CollaborationSession.json.example @@ -0,0 +1,39 @@ +{ + "CollaborationSession": { + "_media-type": "application/vnd.ibexa.api.CollaborationSession+json", + "id": 17, + "token": "f637f415-688a-4655-a3c5-e209e2bd6771", + "createdAt": "2024-11-14T11:34:40+00:00", + "updatedAt": "2024-11-14T11:34:40+00:00", + "ParticipantList": { + "_media-type": "application/vnd.ibexa.api.ParticipantList+json", + "Participants": [ + { + "_media-type": "application/vnd.ibexa.api.InternalParticipant+json", + "id": 39, + "name": "Administrator User", + "scope": "edit", + "User": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + }, + "createdAt": "2024-11-14T11:34:41+00:00", + "updatedAt": "2024-11-14T11:34:41+00:00" + }, + { + "_media-type": "application/vnd.ibexa.api.ExternalParticipant+json", + "id": 40, + "name": "user@link.invalid", + "scope": "view", + "email": "user@link.invalid", + "createdAt": "2024-11-14T11:34:41+00:00", + "updatedAt": "2024-11-14T11:34:41+00:00" + } + ] + }, + "Owner": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + } + } +} \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/GET/CollaborationSession.xml.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/GET/CollaborationSession.xml.example new file mode 100644 index 00000000000..bc718458d67 --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/GET/CollaborationSession.xml.example @@ -0,0 +1,82 @@ + + + 6 + c7463355-746b-4913-86b3-26259c815b56 + 2024-11-13T11:01:24+00:00 + 2024-11-13T11:01:24+00:00 + + + 11 + Administrator User + edit + + 2024-11-13T11:01:24+00:00 + 2024-11-13T11:01:24+00:00 + + + 13 + Administrator User + view + + 2024-11-13T11:02:22+00:00 + 2024-11-13T11:02:22+00:00 + + + 14 + user@link.invalid + view + user@link.invalid + 2024-11-13T11:02:22+00:00 + 2024-11-13T11:02:22+00:00 + + + 15 + Administrator User + view + + 2024-11-13T11:10:29+00:00 + 2024-11-13T11:10:29+00:00 + + + 16 + user@link.invalid + view + user@link.invalid + 2024-11-13T11:10:29+00:00 + 2024-11-13T11:10:29+00:00 + + + 17 + Administrator User + view + + 2024-11-13T11:43:20+00:00 + 2024-11-13T11:43:20+00:00 + + + 18 + user@link.invalid + view + user@link.invalid + 2024-11-13T11:43:20+00:00 + 2024-11-13T11:43:20+00:00 + + + 45 + Administrator User + view + + 2024-11-14T14:09:47+00:00 + 2024-11-14T14:09:47+00:00 + + + 46 + user@link.invalid + view + user@link.invalid + 2024-11-14T14:09:47+00:00 + 2024-11-14T14:09:47+00:00 + + + + \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSession.json.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSession.json.example new file mode 100644 index 00000000000..a7eeffdb0d2 --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSession.json.example @@ -0,0 +1,39 @@ +{ + "CollaborationSession": { + "_media-type": "application/vnd.ibexa.api.CollaborationSession+json", + "id": 17, + "token": "f637f415-688a-4655-a3c5-e209e2bd6771", + "createdAt": "2024-11-14T11:34:40+00:00", + "updatedAt": "2024-11-14T11:34:40+00:00", + "ParticipantList": { + "_media-type": "application/vnd.ibexa.api.ParticipantList+json", + "Participants": [ + { + "_media-type": "application/vnd.ibexa.api.InternalParticipant+json", + "id": 39, + "name": "Administrator User", + "scope": "edit", + "User": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + }, + "createdAt": "2024-11-14T11:34:41+00:00", + "updatedAt": "2024-11-14T11:34:41+00:00" + }, + { + "_media-type": "application/vnd.ibexa.api.ExternalParticipant+json", + "id": 40, + "name": "user@link.invalid", + "scope": "view", + "email": "user@link.invalid", + "createdAt": "2024-11-14T11:34:41+00:00", + "updatedAt": "2024-11-14T11:34:41+00:00" + } + ] + }, + "Owner": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + } + } +} \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSession.xml.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSession.xml.example new file mode 100644 index 00000000000..4f0c9095be0 --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSession.xml.example @@ -0,0 +1,26 @@ + + + 20 + 076e749e-20ed-4df7-a8a0-e9c8ba8edbf5 + 2024-11-15T10:06:04+00:00 + 2024-11-15T10:06:04+00:00 + + + 47 + Administrator User + view + + 2024-11-15T10:06:04+00:00 + 2024-11-15T10:06:04+00:00 + + + 48 + user@link.invalid + view + user@link.invalid + 2024-11-15T10:06:04+00:00 + 2024-11-15T10:06:04+00:00 + + + + \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSessionCreate.json.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSessionCreate.json.example index e69de29bb2d..80767a7386b 100644 --- a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSessionCreate.json.example +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSessionCreate.json.example @@ -0,0 +1,30 @@ +{ + "CollaborationSessionCreate": { + "Owner": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + }, + "SessionTypeCreate": { + "_media-type": "application/vnd.ibexa.api.ExampleSessionCreate+json", + "subject": "example" + }, + "ParticipantListCreate": { + "_media-type": "application\/vnd.ibexa.api.ParticipantListCreate+json", + "ParticipantCreate": [ + { + "_media-type": "application\/vnd.ibexa.api.InternalParticipantCreate+json", + "User": { + "_media-type": "application/vnd.ibexa.api.User+json", + "_href": "/api/ibexa/v2/user/users/14" + }, + "scope": "edit" + }, + { + "_media-type": "application\/vnd.ibexa.api.ExternalParticipantCreate+json", + "email": "user@link.invalid", + "scope": "view" + } + ] + } + } +} \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSessionCreate.xml.example b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSessionCreate.xml.example new file mode 100644 index 00000000000..3582b03c7b4 --- /dev/null +++ b/docs/api/rest_api/rest_api_reference/input/examples/collaborative_editing/session/create/POST/CollaborationSessionCreate.xml.example @@ -0,0 +1,23 @@ + + + + + + + view + + + + + user@link.invalid + view + + + + example + + \ No newline at end of file diff --git a/docs/api/rest_api/rest_api_reference/input/ibexa-collaborativeediting-participant.raml b/docs/api/rest_api/rest_api_reference/input/ibexa-collaborativeediting-participant.raml index db8a2e1e2af..3e5d95c7ddb 100644 --- a/docs/api/rest_api/rest_api_reference/input/ibexa-collaborativeediting-participant.raml +++ b/docs/api/rest_api/rest_api_reference/input/ibexa-collaborativeediting-participant.raml @@ -1,109 +1,115 @@ -/collaboration/session/{sessionID}/participant/list: - get: - displayName: Load participant list - description: Load participant list. - queryParameters: - sessionId: - description: Retrieves the participant list for a given collaboration session ID (e.g. GET /collaboration/session/1234). - headers: - Accept: - description: ParticipantList - If set, the participant list is returned in XML or JSON format. - application/vnd.ibexa.api.ParticipantList+xml - application/vnd.ibexa.api.ParticipantList+json - responses: - 200: - description: OK - Loads participants for a given collaboration session ID. - body: - application/vnd.ibexa.api.ParticipantList+xml: - type: ParticipantList - example: !include examples/collaborative_editing/participant/list/GET/ParticipantList.xml.example - application/vnd.ibexa.api.ParticipantList+json: - type: ParticipantList - example: !include examples/collaborative_editing/participant/list/GET/ParticipantList.json.example - 404: - description: If there are no visibile participants matching the filter. +# /{sessionID}/participants: +# get: +# displayName: Load participant list +# description: Load participant list. +# queryParameters: +# sessionId: +# description: Retrieves the participant list for a given collaboration session ID (e.g. GET /collaboration/session/1234). +# headers: +# Accept: +# description: ParticipantList - If set, the participant list is returned in XML or JSON format. +# application/vnd.ibexa.api.ParticipantList+xml +# application/vnd.ibexa.api.ParticipantList+json +# responses: +# 200: +# description: OK - Loads participants for a given collaboration session ID. +# body: +# application/vnd.ibexa.api.ParticipantList+xml: +# type: ParticipantList +# example: !include examples/collaborative_editing/participant/list/GET/ParticipantList.xml.example +# application/vnd.ibexa.api.ParticipantList+json: +# type: ParticipantList +# example: !include examples/collaborative_editing/participant/list/GET/ParticipantList.json.example +# 404: +# description: If there are no visibile participants matching the filter. -/collaboration/session/{sessionId}/participant/add: - post: - displayName: Add participant - description: Adds new participant. - headers: - Accept: - description: If set, the new participant is returned in XML or JSON format. - example: - application/vnd.ibexa.api.ParticipantList+json - Content-Type: - description: The participant schema encoded in XML or JSON format. - example: - application/vnd.ibexa.api.ParticipantListCreate+xml - body: - application/vnd.ibexa.api.ParticipantList+json: - type: ProductList - example: !include examples/collaborative_editing/participant/add/PATCH/ParticipantListCreate.json.example - responses: - 201: - body: - application/vnd.ibexa.api.ParticipantList+json: - type: ProductList - example: !include examples/ - 400: - description: Error - the input does not match the input schema definition. - 401: - description: Error - the user is not authorized to update this product. - 403: - description: Error - a participant with the same name already exists. - 404: - description: Error - no participant with the given ID exists. +# /{sessionId}/participant: +# post: +# displayName: Add participant +# description: Adds new participant. +# headers: +# Accept: +# description: If set, the new participant is returned in XML or JSON format. +# example: +# application/vnd.ibexa.api.ParticipantList+json +# application/vnd.ibexa.api.ParticipantList+xml +# Content-Type: +# description: The participant schema encoded in XML or JSON format. +# example: +# application/vnd.ibexa.api.ParticipantListCreate+json +# application/vnd.ibexa.api.ParticipantListCreate+xml +# body: +# application/vnd.ibexa.api.ParticipantListCreate+xml: +# type: ParticipantList +# example: !include examples/collaborative_editing/participant/add/POST/ParticipantListCreate.xml.example +# application/vnd.ibexa.api.ParticipantListCreate+json: +# type: ParticipantList +# example: !include examples/collaborative_editing/participant/add/POST/ParticipantListCreate.json.example +# responses: +# 201: +# body: +# application/vnd.ibexa.api.ParticipantList+xml: +# type: ParticipantList +# example: !include examples/collaborative_editing/participant/add/POST/ParticipantList.xml.example +# application/vnd.ibexa.api.ParticipantList+json: +# type: ParticipantList +# example: !include examples/collaborative_editing/participant/add/POST/ParticipantList.json.example +# 400: +# description: Error - the input does not match the input schema definition. +# 401: +# description: Error - the user is not authorized to update this product. +# 403: +# description: Error - a participant with the same name already exists. +# 404: +# description: Error - no participant with the given ID exists. -/collaboration/session/{sessionId}/participant/{participantId}/update - patch: - displayName: Update participant - description: Updates a participant. - headers: - Accept: - description: If set, the updated participant is returned in XML or JSON format. - example: | - application/vnd.ibexa.api.Participant+json - application/vnd.ibexa.api.Participant+xml - Content-Type: - description: The ParticipantUpdate schema encoded in XML or JSON format. - example: | - application/vnd.ibexa.api.ParticipantUpdate+json - application/vnd.ibexa.api.ParticipantUpdate+xml - If-Match: - description: Performs a PATCH only if the specified ETag is the current one. - example: ETag - body: - application/vnd.ibexa.api.ParticipantUpdate+xml: - type: ParticipantUpdate - example: !include examples/ - responses: - 200: - description: OK - participant updated. - body: - application/vnd.ibexa.api.participant+xml: - type: Participant - example: !include examples/ - 400: - description: Error - the input does not match the input schema definition. - 401: - description: Error - the user is not authorized to update the User. - 404: - description: Error - the User does not exist. - 412: - description: Error - the current ETag does not match with the provided one in the If-Match header. - -/collaboration/session/{sessionId}/participant/{participantId}/remove: - delete: - displayName: Delete participant - description: Deletes the given participant. - responses: - 204: - description: No Content. - 401: - description: Error - the user is not authorized to delete this participant. - 403: - description: Error - the user is the same as the authenticated participant. - 404: - description: Error - the participant does not exist. +# /{sessionId}/participant/{participantId}: +# patch: +# displayName: Update participant +# description: Updates a participant. +# headers: +# Accept: +# description: If set, the updated participant is returned in XML or JSON format. +# example: | +# application/vnd.ibexa.api.Participant+json +# application/vnd.ibexa.api.Participant+xml +# Content-Type: +# description: The ParticipantUpdate schema encoded in XML or JSON format. +# example: | +# application/vnd.ibexa.api.ParticipantUpdate+json +# application/vnd.ibexa.api.ParticipantUpdate+xml +# If-Match: +# description: Performs a PATCH only if the specified ETag is the current one. +# # example: ETag +# body: +# application/vnd.ibexa.api.ParticipantUpdate+xml: +# type: ParticipantUpdate +# # example: !include examples/ +# responses: +# 200: +# description: OK - participant updated. +# body: +# application/vnd.ibexa.api.participant+xml: +# type: Participant +# # example: !include examples/ +# 400: +# description: Error - the input does not match the input schema definition. +# 401: +# description: Error - the user is not authorized to update the User. +# 404: +# description: Error - the User does not exist. +# 412: +# description: Error - the current ETag does not match with the provided one in the If-Match header. +# delete: +# displayName: Delete participant +# description: Deletes the given participant. +# responses: +# 204: +# description: No Content. +# 401: +# description: Error - the user is not authorized to delete this participant. +# 403: +# description: Error - the user is the same as the authenticated participant. +# 404: +# description: Error - the participant does not exist. diff --git a/docs/api/rest_api/rest_api_reference/input/ibexa-collaborativeediting-session.raml b/docs/api/rest_api/rest_api_reference/input/ibexa-collaborativeediting-session.raml index 58bd2d5ec94..6eeab50f14c 100644 --- a/docs/api/rest_api/rest_api_reference/input/ibexa-collaborativeediting-session.raml +++ b/docs/api/rest_api/rest_api_reference/input/ibexa-collaborativeediting-session.raml @@ -1,4 +1,105 @@ -/collaboration/session/create: +post: + displayName: Create session + description: Create collaborative editing session. + headers: + Accept: + description: If set, the new session is returned in XML or JSON format. + example: + application/vnd.ibexa.api.CollaborationSession+json + application/vnd.ibexa.api.CollaborationSession+xml + Content-Type: + description: The session schema encoded in XML or JSON format. + example: + application/vnd.ibexa.api.CollaborationSessionCreate+json + application/vnd.ibexa.api.CollaborationSessionCreate+xml + body: + application/vnd.ibexa.api.ParticipantList+xml: + type: Session + example: !include examples/collaborative_editing/session/create/POST/CollaborationSessionCreate.xml.example + application/vnd.ibexa.api.ParticipantList+json: + type: Session + example: !include examples/collaborative_editing/session/create/POST/CollaborationSessionCreate.json.example + responses: + 201: + body: + application/vnd.ibexa.api.CollaborationSession+xml: + type: Session + example: !include examples/collaborative_editing/session/create/POST/CollaborationSession.xml.example + application/vnd.ibexa.api.CollaborationSession+json: + type: Session + example: !include examples/collaborative_editing/session/create/POST/CollaborationSession.json.example + 400: + description: Error - the input does not match the input schema definition. + 401: + description: Error - the user is not authorized to update this session. + 403: + description: Error - a session with the same ID already exists. + 404: + description: Error - no session with the given ID exists. + +/{sessionId}: + delete: + displayName: Delete session (collaboration) + description: The collaboration session is deleted. + headers: + Cookie: + description: "{sessionName}={sessionID}" + X-CSRF-Token: + description: The {csrfToken} needed on all unsafe HTTP methods with session. + responses: + 204: + description: OK - session deleted. + 404: + description: Error - the session does not exist. + get: + displayName: Retrieve session details + description: Get the collaboration session's information. + headers: + Cookie: + description: "{sessionName}={sessionID}" + X-CSRF-Token: + description: The {csrfToken} needed on all unsafe HTTP methods with session. + Accept: + example: | + application/vnd.ibexa.api.CollaborationSession+xml + application/vnd.ibexa.api.CollaborationSession+json + responses: + 200: + body: + application/vnd.ibexa.api.CollaborationSession+xml: + type: CollaborationSession + example: !include examples/collaborative_editing/session/GET/CollaborationSession.xml.example + application/vnd.ibexa.api.CollaborationSession+json: + type: CollaborationSession + example: !include examples/collaborative_editing/session/GET/CollaborationSession.json.example + 404: + description: Error - the session does not exist. +/{sessionId}/participants: + get: + displayName: Load participant list + description: Loads participant list. + queryParameters: + sessionId: + description: Retrieves the participant list for a given collaboration session ID (e.g. GET /collaboration/session/1234). + headers: + Accept: + description: ParticipantList - If set, the participant list is returned in XML or JSON format. + application/vnd.ibexa.api.ParticipantList+xml + application/vnd.ibexa.api.ParticipantList+json + responses: + 200: + description: OK - Loads participants for a given collaboration session ID. + body: + application/vnd.ibexa.api.ParticipantList+xml: + type: ParticipantList + example: !include examples/collaborative_editing/participant/list/GET/ParticipantList.xml.example + application/vnd.ibexa.api.ParticipantList+json: + type: ParticipantList + example: !include examples/collaborative_editing/participant/list/GET/ParticipantList.json.example + 404: + description: If there are no visibile participants matching the filter. + +/{sessionId}/participant: post: displayName: Add participant description: Adds new participant. @@ -6,68 +107,91 @@ Accept: description: If set, the new participant is returned in XML or JSON format. example: - application/vnd.ibexa.api.CollaborationSession+json - application/vnd.ibexa.api.CollaborationSession+xml + application/vnd.ibexa.api.ParticipantList+json + application/vnd.ibexa.api.ParticipantList+xml Content-Type: description: The participant schema encoded in XML or JSON format. - example: - application/vnd.ibexa.api.CollaborationSessionCreate+json - application/vnd.ibexa.api.CollaborationSessionCreate+xml + example: + application/vnd.ibexa.api.ParticipantListCreate+json + application/vnd.ibexa.api.ParticipantListCreate+xml body: - application/vnd.ibexa.api.ParticipantList+json: - type: ProductList - example: !include examples/collaborative_editing/session/create/POST/CollaborationSessionCreate.json.example + application/vnd.ibexa.api.ParticipantListCreate+xml: + type: ParticipantList + example: !include examples/collaborative_editing/participant/add/POST/ParticipantListCreate.xml.example + application/vnd.ibexa.api.ParticipantListCreate+json: + type: ParticipantList + example: !include examples/collaborative_editing/participant/add/POST/ParticipantListCreate.json.example responses: 201: body: + application/vnd.ibexa.api.ParticipantList+xml: + type: ParticipantList + example: !include examples/collaborative_editing/participant/add/POST/ParticipantList.xml.example application/vnd.ibexa.api.ParticipantList+json: - type: ProductList - example: !include examples/ + type: ParticipantList + example: !include examples/collaborative_editing/participant/add/POST/ParticipantList.json.example 400: description: Error - the input does not match the input schema definition. 401: - description: Error - the user is not authorized to update this product. + description: Error - the user is not authorized to update this pparticipant. 403: description: Error - a participant with the same name already exists. 404: description: Error - no participant with the given ID exists. -/collaboration/session/{sessionId}/delete: - delete: - displayName: Delete session (collaboration) - description: The collaboration session is removed. +/{sessionId}/participant/{participantId}: + patch: + displayName: Update participant + description: Updates a participant. headers: - Cookie: - description: "{sessionName}={sessionID}" - X-CSRF-Token: - description: The {csrfToken} needed on all unsafe HTTP methods with session. + Accept: + description: If set, the updated participant is returned in XML or JSON format. + example: | + application/vnd.ibexa.api.Participant+json + application/vnd.ibexa.api.Participant+xml + Content-Type: + description: The ParticipantUpdate schema encoded in XML or JSON format. + example: | + application/vnd.ibexa.api.ParticipantUpdate+json + application/vnd.ibexa.api.ParticipantUpdate+xml + If-Match: + description: Performs a PATCH only if the specified ETag is the current one. + # example: ETag + body: + application/vnd.ibexa.api.ParticipantUpdate+xml: + type: ParticipantUpdate + example: !include examples/collaborative_editing/participant/add/PATCH/InternalParticipantUpdate.xml.example + application/vnd.ibexa.api.ParticipantUpdate+json: + type: ParticipantUpdate + example: !include examples/collaborative_editing/participant/add/PATCH/InternalParticipantUpdate.json.example + + responses: + 200: + description: OK - participant updated. + body: + application/vnd.ibexa.api.participant+xml: + type: Participant + example: !include examples/collaborative_editing/participant/add/PATCH/InternalParticipant.xml.example + application/vnd.ibexa.api.participant+json: + type: Participant + example: !include examples/collaborative_editing/participant/add/PATCH/InternalParticipant.json.example + 400: + description: Error - the input does not match the input schema definition. + 401: + description: Error - the user is not authorized to update the User. + 404: + description: Error - the User does not exist. + 412: + description: Error - the current ETag does not match with the provided one in the If-Match header. + delete: + displayName: Delete participant + description: Deletes the given participant. responses: 204: - description: OK - session deleted. + description: No Content. + 401: + description: Error - the user is not authorized to delete this participant. + 403: + description: Error - the user is the same as the authenticated participant. 404: - description: Error - the session does not exist. - -/collaboration/session/{sessionId}/retrieve: - get: - displayName: Retrieve session - description: Get the collaboration session's information. - headers: - Cookie: - description: "{sessionName}={sessionID}" - X-CSRF-Token: - description: The {csrfToken} needed on all unsafe HTTP methods with session. - Accept: - example: | - application/vnd.ibexa.api.CollaborationSession+Types + + +
+

+ Collaborative editing + +

+
+
+

/collaboration/session

+ +
+
+
+
+
+
+ Create session + +
+
+
+

+ POST + /collaboration/session +

+

Create collaborative editing session.

+

+
+
Header parameters
+
+

Accept

+

If set, the new session is returned in XML or JSON format.

+
+ + + + + + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
Examples + application/vnd.ibexa.api.CollaborationSession+json application/vnd.ibexa.api.CollaborationSession+xml +
+
+
+
+

Content-Type

+

The session schema encoded in XML or JSON format.

+
+ + + + + + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
Examples + application/vnd.ibexa.api.CollaborationSessionCreate+json application/vnd.ibexa.api.CollaborationSessionCreate+xml +
+
+
+
+ + +
+
Possible responses
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeDescription
+ + 201 + + +

+
+ 400 + +

Error - the input does not match the input schema definition.

+
+ 401 + +

Error - the user is not authorized to update this session.

+
+ 403 + +

Error - a session with the same ID already exists.

+
+ 404 + +

Error - no session with the given ID exists.

+
+
+
+ +
+
Types
+
+ + + + + + + + + + + + + +
TypeDescription
+ + Session + + Value for session.
+
+
+ +
+
+ +
+
+
+ +
+
+
+
+
+

+ file_copy + +

+
+                                <?xml version="1.0" encoding="UTF-8"?>
+<CollaborationSessionCreate>
+    <Owner media-type="application/vnd.ibexa.api.User+xml"
+           href="/api/ibexa/v2/user/users/14"
+    >
+    </Owner>
+    <ParticipantListCreate media-type="application/vnd.ibexa.api.ParticipantListCreate+xml">
+        <ParticipantCreate media-type="application/vnd.ibexa.api.InternalParticipantCreate+xml">
+            <scope>view</scope>
+            <User media-type="application/vnd.ibexa.api.User+xml"
+                  href="/api/ibexa/v2/user/users/14"
+            >
+            </User>
+        </ParticipantCreate>
+        <ParticipantCreate media-type="application/vnd.ibexa.api.ExternalParticipantCreate+xml">
+            <email>user@link.invalid</email>
+            <scope>view</scope>
+        </ParticipantCreate>
+    </ParticipantListCreate>
+    <SessionTypeCreate media-type="application/vnd.ibexa.api.ExampleSessionCreate+xml">
+        <subject>example</subject>
+    </SessionTypeCreate>
+</CollaborationSessionCr
+                            
+
+ View more +
+
+
+

+ file_copy + +

+
+                                {
+    "CollaborationSessionCreate": {
+        "Owner": {
+            "_media-type": "application/vnd.ibexa.api.User+json",
+            "_href": "/api/ibexa/v2/user/users/14"
+        },
+        "SessionTypeCreate": {
+            "_media-type": "application/vnd.ibexa.api.ExampleSessionCreate+json",
+            "subject": "example"
+        },
+        "ParticipantListCreate": {
+            "_media-type": "application\/vnd.ibexa.api.ParticipantListCreate+json",
+            "ParticipantCreate": [
+                {
+                    "_media-type": "application\/vnd.ibexa.api.InternalParticipantCreate+json",
+                    "User": {
+                        "_media-type": "application/vnd.ibexa.api.User+json",
+                        "_href": "/api/ibexa/v2/user/users/14"
+                    },
+                    "scope": "edit"
+                },
+                {
+                    "_media-type": "application\/vnd.ibexa.api.ExternalParticipantCreate+json",
+                    "email"
+                            
+
+ View more +
+
+
+ +
+
+
+
+
+ +
+ Code: 201 +
+
+
+
+
+
+

+ file_copy + +

+
+                                <?xml version="1.0" encoding="UTF-8"?>
+<CollaborationSession media-type="application/vnd.ibexa.api.CollaborationSession+xml">
+    <id>20</id>
+    <token>076e749e-20ed-4df7-a8a0-e9c8ba8edbf5</token>
+    <createdAt>2024-11-15T10:06:04+00:00</createdAt>
+    <updatedAt>2024-11-15T10:06:04+00:00</updatedAt>
+    <ParticipantList media-type="application/vnd.ibexa.api.ParticipantList+xml">
+        <Participant media-type="application/vnd.ibexa.api.InternalParticipant+xml">
+            <id>47</id>
+            <name>Administrator User</name>
+            <scope>view</scope>
+            <User media-type="application/vnd.ibexa.api.User+xml" href="/api/ibexa/v2/user/users/14"/>
+            <createdAt>2024-11-15T10:06:04+00:00</createdAt>
+            <updatedAt>2024-11-15T10:06:04+00:00</updatedAt>
+        </Participant>
+        <Participant media-type="application/vnd.ibexa.api.ExternalParticipant+xml">
+            <id>48</id>
+            <name>user@link.invalid</name>
+            <scope>view</scope
+                            
+
+ View more +
+
+
+

+ file_copy + +

+
+                                {
+    "CollaborationSession": {
+        "_media-type": "application/vnd.ibexa.api.CollaborationSession+json",
+        "id": 17,
+        "token": "f637f415-688a-4655-a3c5-e209e2bd6771",
+        "createdAt": "2024-11-14T11:34:40+00:00",
+        "updatedAt": "2024-11-14T11:34:40+00:00",
+        "ParticipantList": {
+            "_media-type": "application/vnd.ibexa.api.ParticipantList+json",
+            "Participants": [
+                {
+                    "_media-type": "application/vnd.ibexa.api.InternalParticipant+json",
+                    "id": 39,
+                    "name": "Administrator User",
+                    "scope": "edit",
+                    "User": {
+                        "_media-type": "application/vnd.ibexa.api.User+json",
+                        "_href": "/api/ibexa/v2/user/users/14"
+                    },
+                    "createdAt": "2024-11-14T11:34:41+00:00",
+                    "updatedAt": "2024-11-14T11:34:41+00:00"
+                },
+                {
+ 
+                            
+
+ View more +
+
+
+ +
+
+
+
+
+
+
+

/collaboration/session/{sessionId}

+ +
+
+
+
+
+
+ Delete session (collaboration) + +
+
+
+

+ DELETE + /collaboration/session/{sessionId} +

+

The collaboration session is deleted.

+

+
+
Header parameters
+
+

Cookie

+

{sessionName}={sessionID}

+
+ + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
+
+
+
+

X-CSRF-Token

+

The {csrfToken} needed on all unsafe HTTP methods with session.

+
+ + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
+
+
+
+ + +
+
Possible responses
+
+ + + + + + + + + + + + + + + + + +
CodeDescription
+ 204 + +

OK - session deleted.

+
+ 404 + +

Error - the session does not exist.

+
+
+
+ + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+ Retrieve session details + +
+
+
+

+ GET + /collaboration/session/{sessionId} +

+

Get the collaboration session's information.

+

+
+
Header parameters
+
+

Cookie

+

{sessionName}={sessionID}

+
+ + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
+
+
+
+

X-CSRF-Token

+

The {csrfToken} needed on all unsafe HTTP methods with session.

+
+ + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
+
+
+
+

Accept

+

+
+ + + + + + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
Examples + application/vnd.ibexa.api.CollaborationSession+xml +application/vnd.ibexa.api.CollaborationSession+json + +
+
+
+
+ + +
+
Possible responses
+
+ + + + + + + + + + + + + + + + + +
CodeDescription
+ + 200 + + +

+
+ 404 + +

Error - the session does not exist.

+
+
+
+ +
+
Types
+
+ + + + + + + + + + + + + +
TypeDescription
+ + CollaborationSession + +
+
+
+ +
+
+ +
+
+
+
+
+ +
+ Code: 200 +
+
+
+
+
+
+

+ file_copy + +

+
+                                <?xml version="1.0" encoding="UTF-8"?>
+<CollaborationSession media-type="application/vnd.ibexa.api.CollaborationSession+xml">
+    <id>6</id>
+    <token>c7463355-746b-4913-86b3-26259c815b56</token>
+    <createdAt>2024-11-13T11:01:24+00:00</createdAt>
+    <updatedAt>2024-11-13T11:01:24+00:00</updatedAt>
+    <ParticipantList media-type="application/vnd.ibexa.api.ParticipantList+xml">
+        <Participant media-type="application/vnd.ibexa.api.InternalParticipant+xml">
+            <id>11</id>
+            <name>Administrator User</name>
+            <scope>edit</scope>
+            <User media-type="application/vnd.ibexa.api.User+xml" href="/api/ibexa/v2/user/users/14"/>
+            <createdAt>2024-11-13T11:01:24+00:00</createdAt>
+            <updatedAt>2024-11-13T11:01:24+00:00</updatedAt>
+        </Participant>
+        <Participant media-type="application/vnd.ibexa.api.InternalParticipant+xml">
+            <id>13</id>
+            <name>Administrator User</name>
+            <scope>view</scope
+                            
+
+ View more +
+
+
+

+ file_copy + +

+
+                                {
+    "CollaborationSession": {
+        "_media-type": "application/vnd.ibexa.api.CollaborationSession+json",
+        "id": 17,
+        "token": "f637f415-688a-4655-a3c5-e209e2bd6771",
+        "createdAt": "2024-11-14T11:34:40+00:00",
+        "updatedAt": "2024-11-14T11:34:40+00:00",
+        "ParticipantList": {
+            "_media-type": "application/vnd.ibexa.api.ParticipantList+json",
+            "Participants": [
+                {
+                    "_media-type": "application/vnd.ibexa.api.InternalParticipant+json",
+                    "id": 39,
+                    "name": "Administrator User",
+                    "scope": "edit",
+                    "User": {
+                        "_media-type": "application/vnd.ibexa.api.User+json",
+                        "_href": "/api/ibexa/v2/user/users/14"
+                    },
+                    "createdAt": "2024-11-14T11:34:41+00:00",
+                    "updatedAt": "2024-11-14T11:34:41+00:00"
+                },
+                {
+ 
+                            
+
+ View more +
+
+
+ +
+
+
+
+
+
+
+

/collaboration/session/{sessionId}/participants

+ +
+
+
+
+
+
+ Load participant list + +
+
+
+

+ GET + /collaboration/session/{sessionId}/participants +

+

Loads participant list.

+

+
+
Header parameters
+
+

Accept

+

ParticipantList - If set, the participant list is returned in XML or JSON format. application/vnd.ibexa.api.ParticipantList+xml application/vnd.ibexa.api.ParticipantList+json

+
+ + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
+
+
+
+ +
+
Query parameters
+
+ + + + + + + + + + + + + + + +
PropertyTypeValue
+ sessionId + + + + string + + + + + +

Retrieves the participant list for a given collaboration session ID (e.g. GET /collaboration/session/1234).

+ +
+
+
+ +
+
Possible responses
+
+ + + + + + + + + + + + + + + + + +
CodeDescription
+ + 200 + + +

OK - Loads participants for a given collaboration session ID.

+
+ 404 + +

If there are no visibile participants matching the filter.

+
+
+
+ +
+
Types
+
+ + + + + + + + + + + + + +
TypeDescription
+ + ParticipantList + + tt
+
+
+ +
+
+ +
+
+
+
+
+ +
+ Code: 200 +
+
+
+
+
+
+

+ file_copy + +

+
+                                <?xml version="1.0"?>
+<ParticipantList media-type="application/vnd.ibexa.api.ParticipantList+xml">
+    <Participant media-type="application/vnd.ibexa.api.InternalParticipant+xml">
+        <id>__FIXED_ID__</id>
+        <name>Anonymous User</name>
+        <scope>edit</scope>
+        <User href="/api/ibexa/v2/user/users/__FIXED_ID__" media-type="application/vnd.ibexa.api.User+xml"/>
+        <createdAt>__CREATED_AT__</createdAt>
+        <updatedAt>__UPDATED_AT__</updatedAt>
+    </Participant>
+    <Participant media-type="application/vnd.ibexa.api.ExternalParticipant+xml">
+        <id>__FIXED_ID__</id>
+        <name>guest-foo@example.com</name>
+        <scope>view</scope>
+        <email>guest-foo@example.com</email>
+        <createdAt>__CREATED_AT__</createdAt>
+        <updatedAt>__UPDATED_AT__</updatedAt>
+    </Participant>
+</ParticipantList>
+                            
+
+ View more +
+
+
+

+ file_copy + +

+
+                                {
+    "ParticipantList": {
+        "_media-type": "application/vnd.ibexa.api.ParticipantList+json",
+        "Participants": [
+            {
+                "_media-type": "application/vnd.ibexa.api.InternalParticipant+json",
+                "id": 39,
+                "name": "Administrator User",
+                "scope": "edit",
+                "User": {
+                    "_media-type": "application/vnd.ibexa.api.User+json",
+                    "_href": "/api/ibexa/v2/user/users/14"
+                },
+                "createdAt": "2024-11-14T11:34:41+00:00",
+                "updatedAt": "2024-11-14T11:34:41+00:00"
+            },
+            {
+                "_media-type": "application/vnd.ibexa.api.ExternalParticipant+json",
+                "id": 40,
+                "name": "user@link.invalid",
+                "scope": "view",
+                "email": "user@link.invalid",
+                "createdAt": "2024-11-14T11:34:41+00:00",
+                "updatedAt": "2024-11-14T11:34:41+00:00
+                            
+
+ View more +
+
+
+ +
+
+
+
+
+
+
+

/collaboration/session/{sessionId}/participant

+ +
+
+
+
+
+
+ Add participant + +
+
+
+

+ POST + /collaboration/session/{sessionId}/participant +

+

Adds new participant.

+

+
+
Header parameters
+
+

Accept

+

If set, the new participant is returned in XML or JSON format.

+
+ + + + + + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
Examples + application/vnd.ibexa.api.ParticipantList+json application/vnd.ibexa.api.ParticipantList+xml +
+
+
+
+

Content-Type

+

The participant schema encoded in XML or JSON format.

+
+ + + + + + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
Examples + application/vnd.ibexa.api.ParticipantListCreate+json application/vnd.ibexa.api.ParticipantListCreate+xml +
+
+
+
+ + +
+
Possible responses
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeDescription
+ + 201 + + +

+
+ 400 + +

Error - the input does not match the input schema definition.

+
+ 401 + +

Error - the user is not authorized to update this pparticipant.

+
+ 403 + +

Error - a participant with the same name already exists.

+
+ 404 + +

Error - no participant with the given ID exists.

+
+
+
+ +
+
Types
+
+ + + + + + + + + + + + + +
TypeDescription
+ + ParticipantList + + tt
+
+
+ +
+
+ +
+
+
+ +
+
+
+
+
+

+ file_copy + +

+
+                                <?xml version="1.0" encoding="UTF-8"?>
+<ParticipantListCreate>
+    <ParticipantCreate media-type="application/vnd.ibexa.api.InternalParticipantCreate+xml">
+        <scope>view</scope>
+        <User media-type="application/vnd.ibexa.api.User+xml"
+              href="/api/ibexa/v2/user/users/14"
+        >
+        </User>
+    </ParticipantCreate>
+    <ParticipantCreate media-type="application/vnd.ibexa.api.ExternalParticipantCreate+xml">
+        <email>user@link.invalid</email>
+        <scope>view</scope>
+    </ParticipantCreate>
+</ParticipantListCreate>
+                            
+
+ View more +
+
+
+

+ file_copy + +

+
+                                {
+    "ParticipantListCreate": {
+        "ParticipantCreate": [
+            {
+                "_media-type": "application\/vnd.ibexa.api.InternalParticipantCreate+json",
+                "User": {
+                    "_media-type": "application/vnd.ibexa.api.User+json",
+                    "_href": "/api/ibexa/v2/user/users/14"
+                },
+                "scope": "view"
+            },
+            {
+                "_media-type": "application\/vnd.ibexa.api.ExternalParticipantCreate+json",
+                "email": "user@link.invalid",
+                "scope": "view"
+            }
+        ]
+    }
+}
+                            
+
+ View more +
+
+
+ +
+
+
+
+
+ +
+ Code: 201 +
+
+
+
+
+
+

+ file_copy + +

+
+                                <?xml version="1.0" encoding="UTF-8"?>
+<ParticipantList media-type="application/vnd.ibexa.api.ParticipantList+xml">
+    <Participant media-type="application/vnd.ibexa.api.InternalParticipant+xml">
+        <id>11</id>
+        <name>Administrator User</name>
+        <scope>edit</scope>
+        <User media-type="application/vnd.ibexa.api.User+xml" href="/api/ibexa/v2/user/users/14"/>
+        <createdAt>2024-11-13T11:01:24+00:00</createdAt>
+        <updatedAt>2024-11-13T11:01:24+00:00</updatedAt>
+    </Participant>
+    <Participant media-type="application/vnd.ibexa.api.InternalParticipant+xml">
+        <id>13</id>
+        <name>Administrator User</name>
+        <scope>view</scope>
+        <User media-type="application/vnd.ibexa.api.User+xml" href="/api/ibexa/v2/user/users/14"/>
+        <createdAt>2024-11-13T11:02:22+00:00</createdAt>
+        <updatedAt>2024-11-13T11:02:22+00:00</updatedAt>
+    </Participant>
+    <Participant media-type="application/vnd.ibexa.api.ExternalParticipant+xml">
+ 
+                            
+
+ View more +
+
+
+

+ file_copy + +

+
+                                {
+    "ParticipantList": {
+        "_media-type": "application/vnd.ibexa.api.ParticipantList+json",
+        "Participants": [
+            {
+                "_media-type": "application/vnd.ibexa.api.InternalParticipant+json",
+                "id": 11,
+                "name": "Administrator User",
+                "scope": "edit",
+                "User": {
+                    "_media-type": "application/vnd.ibexa.api.User+json",
+                    "_href": "/api/ibexa/v2/user/users/14"
+                },
+                "createdAt": "2024-11-13T11:01:24+00:00",
+                "updatedAt": "2024-11-13T11:01:24+00:00"
+            },
+            {
+                "_media-type": "application/vnd.ibexa.api.ExternalParticipant+json",
+                "id": 12,
+                "name": "user@link.invalid",
+                "scope": "view",
+                "email": "user@link.invalid",
+                "createdAt": "2024-11-13T11:01:24+00:00",
+                "updatedAt": "2024-11-13T11:01:24+00:00
+                            
+
+ View more +
+
+
+ +
+
+
+
+
+
+
+

/collaboration/session/{sessionId}/participant/{participantId}

+ +
+
+
+
+
+
+ Update participant + +
+
+
+

+ PATCH + /collaboration/session/{sessionId}/participant/{participantId} +

+

Updates a participant.

+

+
+
Header parameters
+
+

Accept

+

If set, the updated participant is returned in XML or JSON format.

+
+ + + + + + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
Examples + application/vnd.ibexa.api.<Discriminator>Participant+json +application/vnd.ibexa.api.<Discriminator>Participant+xml + +
+
+
+
+

Content-Type

+

The ParticipantUpdate schema encoded in XML or JSON format.

+
+ + + + + + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
Examples + application/vnd.ibexa.api.<Discriminator>ParticipantUpdate+json +application/vnd.ibexa.api.<Discriminator>ParticipantUpdate+xml + +
+
+
+
+

If-Match

+

Performs a PATCH only if the specified ETag is the current one.

+
+ + + + + + + + + + + + + +
PropertyValue
Type + + + string + + + + +
+
+
+
+ + +
+
Possible responses
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeDescription
+ + 200 + + +

OK - participant updated.

+
+ 400 + +

Error - the input does not match the input schema definition.

+
+ 401 + +

Error - the user is not authorized to update the User.

+
+ 404 + +

Error - the User does not exist.

+
+ 412 + +

Error - the current ETag does not match with the provided one in the If-Match header.

+
+
+
+ +
+
Types
+
+ + + + + + + + + + + + + + + + + +
TypeDescription
+ + ParticipantUpdate + + dd
+ + Participant + + dd
+
+
+ +
+
+ +
+
+
+ +
+
+
+
+
+

+ file_copy + +

+
+                                <?xml version="1.0" encoding="UTF-8"?>
+<InternalParticipantUpdate>
+    <scope>edit</scope>
+</InternalParticipantUpdate>
+                            
+
+ View more +
+
+
+

+ file_copy + +

+
+                                {
+    "InternalParticipantUpdate": {
+        "scope": "view"
+    }
+}
+                            
+
+ View more +
+
+
+ +
+
+
+
+
+ +
+ Code: 200 +
+
+
+
+
+
+

+ file_copy + +

+
+                                <?xml version="1.0" encoding="UTF-8"?>
+<Participant media-type="application/vnd.ibexa.api.ExternalParticipant+xml">
+    <id>46</id>
+    <name>user@link.invalid</name>
+    <scope>edit</scope>
+    <email>user@link.invalid</email>
+    <createdAt>2024-11-14T14:09:47+00:00</createdAt>
+    <updatedAt>2024-11-15T12:50:03+00:00</updatedAt>
+</Participant>
+                            
+
+ View more +
+
+
+

+ file_copy + +

+
+                                {
+    "Participant": {
+        "_media-type": "application/vnd.ibexa.api.ExternalParticipant+json",
+        "id": 46,
+        "name": "user@link.invalid",
+        "scope": "view",
+        "email": "user@link.invalid",
+        "createdAt": "2024-11-14T14:09:47+00:00",
+        "updatedAt": "2024-11-15T13:13:22+00:00"
+    }
+}
+                            
+
+ View more +
+
+
+ +
+
+
+
+
+
+
+
+
+ Delete participant + +
+
+
+

+ DELETE + /collaboration/session/{sessionId}/participant/{participantId} +

+

Deletes the given participant.

+

+ + +
+
Possible responses
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CodeDescription
+ 204 + +

No Content.

+
+ 401 + +

Error - the user is not authorized to delete this participant.

+
+ 403 + +

Error - the user is the same as the authenticated participant.

+
+ 404 + +

Error - the participant does not exist.

+
+
+
+ + +
+
+ +
+
+
+
@@ -163537,6 +166843,146 @@
Types
This class represents an activity log entry. +
+
    +
+
+ + + + + + + + +