X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=support%2Fdoc%2Fapi%2Fopenapi.yaml;h=959a70438fc145dd2abe3c9548b8c028f1014bde;hb=05a60d85997c108d39bcfb14f1ffd4c74f8b1e93;hp=f90b7f575f1a8c7440c80040d1f2b0b2377def73;hpb=a2be43f5700460d3afdc194abc788690b79e66cd;p=github%2FChocobozzz%2FPeerTube.git diff --git a/support/doc/api/openapi.yaml b/support/doc/api/openapi.yaml index f90b7f575..959a70438 100644 --- a/support/doc/api/openapi.yaml +++ b/support/doc/api/openapi.yaml @@ -21,7 +21,7 @@ info: - [Go](https://framagit.org/framasoft/peertube/clients/go) - [Kotlin](https://framagit.org/framasoft/peertube/clients/kotlin) - See the [REST API quick start](https://docs.joinpeertube.org/api-rest-getting-started) for a few + See the [REST API quick start](https://docs.joinpeertube.org/api/rest-getting-started) for a few examples of using the PeerTube API. # Authentication @@ -33,7 +33,7 @@ info: ## Roles Accounts are given permissions based on their role. There are three roles on - PeerTube: Administrator, Moderator, and User. See the [roles guide](https://docs.joinpeertube.org/admin-managing-users?id=roles) for a detail of their permissions. + PeerTube: Administrator, Moderator, and User. See the [roles guide](https://docs.joinpeertube.org/admin/managing-users#roles) for a detail of their permissions. # Errors @@ -46,7 +46,7 @@ info: { "detail": "Video not found", - "docs": "https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo", + "docs": "https://docs.joinpeertube.org/api/rest-reference.html#operation/getVideo", "status": 404, "title": "Not Found", "type": "about:blank" @@ -63,10 +63,10 @@ info: { "detail": "Cannot get this video regarding follow constraints", - "docs": "https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo", + "docs": "https://docs.joinpeertube.org/api/rest-reference.html#operation/getVideo", "status": 403, "title": "Forbidden", - "type": "https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/does_not_respect_follow_constraints" + "type": "https://docs.joinpeertube.org/api/rest-reference.html#section/Errors/does_not_respect_follow_constraints" } ``` @@ -84,7 +84,7 @@ info: { "detail": "Incorrect request parameters: id", - "docs": "https://docs.joinpeertube.org/api-rest-reference.html#operation/getVideo", + "docs": "https://docs.joinpeertube.org/api/rest-reference.html#operation/getVideo", "instance": "/api/v1/videos/9c9de5e8-0a1e-484a-b099-e80766180", "invalid-params": { "id": { @@ -149,7 +149,7 @@ info: In addition, all routes serving ActivityPub are CORS-enabled for all origins. externalDocs: - url: https://docs.joinpeertube.org/api-rest-reference.html + url: https://docs.joinpeertube.org/api/rest-reference.html tags: - name: Register description: | @@ -204,7 +204,7 @@ tags: information across its social graph by posting activities to actors' inbox endpoints. externalDocs: - url: https://docs.joinpeertube.org/admin-following-instances?id=instances-follows + url: https://docs.joinpeertube.org/admin/following-instances#instances-follows - name: Instance Redundancy description: > Redundancy is part of the inter-server solidarity that PeerTube fosters. @@ -212,12 +212,12 @@ tags: to the policy of video selection of your choice. Note that you have a similar functionality to mirror individual videos, see [video mirroring](#tag/Video-Mirroring). externalDocs: - url: https://docs.joinpeertube.org/admin-following-instances?id=instances-redundancy + url: https://docs.joinpeertube.org/admin/following-instances#instances-redundancy - name: Plugins description: > Managing plugins installed from a local path or from NPM, or search for new ones. externalDocs: - url: https://docs.joinpeertube.org/api-plugins + url: https://docs.joinpeertube.org/api/plugins - name: Abuses description: | Abuses deal with reports of local or remote videos/comments/accounts alike. @@ -1417,6 +1417,8 @@ paths: email: type: string description: User email + required: + - email responses: '204': description: successful operation @@ -1436,6 +1438,8 @@ paths: email: type: string description: Registration email + required: + - email responses: '204': description: successful operation @@ -2215,8 +2219,20 @@ paths: - state - -state responses: - '204': + '200': description: successful operation + content: + application/json: + schema: + type: object + properties: + total: + type: integer + example: 1 + data: + type: array + items: + $ref: '#/components/schemas/UserRegistration' /api/v1/videos/ownership: get: @@ -2430,7 +2446,7 @@ paths: /api/v1/videos/privacies: get: summary: List available video privacy policies - operationId: getPrivacyPolicies + operationId: getVideoPrivacyPolicies tags: - Video responses: @@ -3071,6 +3087,8 @@ paths: type: integer saveReplay: type: boolean + replaySettings: + $ref: '#/components/schemas/LiveVideoReplaySettings' permanentLive: description: User can stream multiple times in a permanent live type: boolean @@ -3789,6 +3807,34 @@ paths: schema: $ref: '#/components/schemas/VideoListResponse' + '/api/v1/video-channels/{channelHandle}/video-playlists': + get: + summary: List playlists of a channel + tags: + - Video Playlists + - Video Channels + parameters: + - $ref: '#/components/parameters/channelHandle' + - $ref: '#/components/parameters/start' + - $ref: '#/components/parameters/count' + - $ref: '#/components/parameters/sort' + - $ref: '#/components/parameters/videoPlaylistType' + responses: + '200': + description: successful operation + content: + application/json: + schema: + type: object + properties: + total: + type: integer + example: 1 + data: + type: array + items: + $ref: '#/components/schemas/VideoPlaylist' + '/api/v1/video-channels/{channelHandle}/followers': get: tags: @@ -4033,6 +4079,7 @@ paths: - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/count' - $ref: '#/components/parameters/sort' + - $ref: '#/components/parameters/videoPlaylistType' responses: '200': description: successful operation @@ -4349,7 +4396,35 @@ paths: format: seconds stopTimestamp: type: integer - format: seconds + + '/api/v1/accounts/{name}/video-playlists': + get: + summary: List playlists of an account + tags: + - Video Playlists + - Accounts + parameters: + - $ref: '#/components/parameters/name' + - $ref: '#/components/parameters/start' + - $ref: '#/components/parameters/count' + - $ref: '#/components/parameters/sort' + - $ref: '#/components/parameters/search' + - $ref: '#/components/parameters/videoPlaylistType' + responses: + '200': + description: successful operation + content: + application/json: + schema: + type: object + properties: + total: + type: integer + example: 1 + data: + type: array + items: + $ref: '#/components/schemas/VideoPlaylist' '/api/v1/accounts/{name}/video-channels': get: @@ -5908,7 +5983,13 @@ components: description: Ask the server to reinject videoFileToken in URLs in m3u8 playlist schema: type: boolean - + videoPlaylistType: + name: playlistType + in: query + required: false + schema: + $ref: '#/components/schemas/VideoPlaylistTypeSet' + securitySchemes: OAuth2: description: | @@ -5921,7 +6002,7 @@ components: Note that the __access token is valid for 1 day__ and is given along with a __refresh token valid for 2 weeks__. - [Generate]: https://docs.joinpeertube.org/api-rest-getting-started + [Generate]: https://docs.joinpeertube.org/api/rest-getting-started type: oauth2 flows: password: @@ -6009,7 +6090,7 @@ components: - 1 - 2 - 3 - description: Video playlist privacy policy (see [/video-playlists/privacies]) + description: Video playlist privacy policy (see [/video-playlists/privacies](#operation/getPlaylistPrivacyPolicies)) VideoPlaylistPrivacyConstant: properties: id: @@ -6037,7 +6118,7 @@ components: - 2 - 3 - 4 - description: privacy id of the video (see [/videos/privacies](#operation/getPrivacyPolicies)) + description: privacy id of the video (see [/videos/privacies](#operation/getVideoPrivacyPolicies)) VideoPrivacyConstant: properties: id: @@ -6098,6 +6179,14 @@ components: - 2 - 3 description: 'The live latency mode (Default = `1`, High latency = `2`, Small Latency = `3`)' + + LiveVideoReplaySettings: + type: object + properties: + privacy: + # description: Video playlist privacy policy (see [../video-playlists/privacies]) + $ref: '#/components/schemas/VideoPrivacySet' + VideoStateConstant: properties: @@ -8113,9 +8202,18 @@ components: uuid: $ref: '#/components/schemas/UUIDv4' + VideoChannelEdit: + properties: + displayName: + description: Channel display name + description: + description: Channel description + support: + description: How to support/fund the channel + VideoChannelCreate: allOf: - - $ref: '#/components/schemas/VideoChannel' + - $ref: '#/components/schemas/VideoChannelEdit' - properties: name: description: username of the channel to create @@ -8126,11 +8224,12 @@ components: - displayName VideoChannelUpdate: allOf: - - $ref: '#/components/schemas/VideoChannel' + - $ref: '#/components/schemas/VideoChannelEdit' - properties: bulkVideosSupportUpdate: type: boolean description: Update the support field for all videos of this channel + VideoChannelList: properties: total: @@ -8604,6 +8703,8 @@ components: properties: saveReplay: type: boolean + replaySettings: + $ref: '#/components/schemas/LiveVideoReplaySettings' permanentLive: description: User can stream multiple times in a permanent live type: boolean @@ -8624,6 +8725,8 @@ components: description: RTMP stream key to use to stream into this live video. Included in the response if an appropriate token is provided saveReplay: type: boolean + replaySettings: + $ref: '#/components/schemas/LiveVideoReplaySettings' permanentLive: description: User can stream multiple times in a permanent live type: boolean