aboutsummaryrefslogtreecommitdiffhomepage
path: root/support/doc/api/openapi.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'support/doc/api/openapi.yaml')
-rw-r--r--support/doc/api/openapi.yaml294
1 files changed, 276 insertions, 18 deletions
diff --git a/support/doc/api/openapi.yaml b/support/doc/api/openapi.yaml
index bfa7235a2..61cd6a651 100644
--- a/support/doc/api/openapi.yaml
+++ b/support/doc/api/openapi.yaml
@@ -1,7 +1,7 @@
1openapi: 3.0.0 1openapi: 3.0.0
2info: 2info:
3 title: PeerTube 3 title: PeerTube
4 version: 4.0.0 4 version: 5.1.0
5 contact: 5 contact:
6 name: PeerTube Community 6 name: PeerTube Community
7 url: https://joinpeertube.org 7 url: https://joinpeertube.org
@@ -1401,22 +1401,44 @@ paths:
1401 '200': 1401 '200':
1402 description: successful operation 1402 description: successful operation
1403 1403
1404 /api/v1/users/register: 1404 /api/v1/users/ask-send-verify-email:
1405 post: 1405 post:
1406 summary: Register a user 1406 summary: Resend user verification link
1407 operationId: registerUser 1407 operationId: resendEmailToVerifyUser
1408 tags: 1408 tags:
1409 - Users 1409 - Users
1410 - Register 1410 - Register
1411 requestBody:
1412 content:
1413 application/json:
1414 schema:
1415 type: object
1416 properties:
1417 email:
1418 type: string
1419 description: User email
1411 responses: 1420 responses:
1412 '204': 1421 '204':
1413 description: successful operation 1422 description: successful operation
1423
1424 /api/v1/users/registrations/ask-send-verify-email:
1425 post:
1426 summary: Resend verification link to registration email
1427 operationId: resendEmailToVerifyRegistration
1428 tags:
1429 - Register
1414 requestBody: 1430 requestBody:
1415 content: 1431 content:
1416 application/json: 1432 application/json:
1417 schema: 1433 schema:
1418 $ref: '#/components/schemas/RegisterUser' 1434 type: object
1419 required: true 1435 properties:
1436 email:
1437 type: string
1438 description: Registration email
1439 responses:
1440 '204':
1441 description: successful operation
1420 1442
1421 /api/v1/users/{id}/verify-email: 1443 /api/v1/users/{id}/verify-email:
1422 post: 1444 post:
@@ -1425,6 +1447,7 @@ paths:
1425 description: | 1447 description: |
1426 Following a user registration, the new user will receive an email asking to click a link 1448 Following a user registration, the new user will receive an email asking to click a link
1427 containing a secret. 1449 containing a secret.
1450 This endpoint can also be used to verify a new email set in the user account.
1428 tags: 1451 tags:
1429 - Users 1452 - Users
1430 - Register 1453 - Register
@@ -1451,6 +1474,36 @@ paths:
1451 '404': 1474 '404':
1452 description: user not found 1475 description: user not found
1453 1476
1477 /api/v1/users/registrations/{registrationId}/verify-email:
1478 post:
1479 summary: Verify a registration email
1480 operationId: verifyRegistrationEmail
1481 description: |
1482 Following a user registration request, the user will receive an email asking to click a link
1483 containing a secret.
1484 tags:
1485 - Register
1486 parameters:
1487 - $ref: '#/components/parameters/registrationId'
1488 requestBody:
1489 content:
1490 application/json:
1491 schema:
1492 type: object
1493 properties:
1494 verificationString:
1495 type: string
1496 format: url
1497 required:
1498 - verificationString
1499 responses:
1500 '204':
1501 description: successful operation
1502 '403':
1503 description: invalid verification string
1504 '404':
1505 description: registration not found
1506
1454 /api/v1/users/{id}/two-factor/request: 1507 /api/v1/users/{id}/two-factor/request:
1455 post: 1508 post:
1456 summary: Request two factor auth 1509 summary: Request two factor auth
@@ -1541,18 +1594,6 @@ paths:
1541 '404': 1594 '404':
1542 description: user not found 1595 description: user not found
1543 1596
1544
1545 /api/v1/users/ask-send-verify-email:
1546 post:
1547 summary: Resend user verification link
1548 operationId: resendEmailToVerifyUser
1549 tags:
1550 - Users
1551 - Register
1552 responses:
1553 '204':
1554 description: successful operation
1555
1556 /api/v1/users/me: 1597 /api/v1/users/me:
1557 get: 1598 get:
1558 summary: Get my user information 1599 summary: Get my user information
@@ -2037,6 +2078,146 @@ paths:
2037 '204': 2078 '204':
2038 description: successful operation 2079 description: successful operation
2039 2080
2081 /api/v1/users/register:
2082 post:
2083 summary: Register a user
2084 operationId: registerUser
2085 description: Signup has to be enabled and signup approval is not required
2086 tags:
2087 - Register
2088 responses:
2089 '204':
2090 description: successful operation
2091 '400':
2092 description: request error
2093 '403':
2094 description: user registration is not enabled, user limit is reached, registration is not allowed for the ip, requires approval or blocked by a plugin
2095 '409':
2096 description: 'a user with this username, channel name or email already exists'
2097 requestBody:
2098 content:
2099 application/json:
2100 schema:
2101 $ref: '#/components/schemas/RegisterUser'
2102 required: true
2103
2104 /api/v1/users/registrations/request:
2105 post:
2106 summary: Request registration
2107 description: Signup has to be enabled and require approval on the instance
2108 operationId: requestRegistration
2109 tags:
2110 - Register
2111 responses:
2112 '200':
2113 description: successful operation
2114 content:
2115 application/json:
2116 schema:
2117 $ref: '#/components/schemas/UserRegistration'
2118 '400':
2119 description: request error or signup approval is not enabled on the instance
2120 '403':
2121 description: user registration is not enabled, user limit is reached, registration is not allowed for the ip or blocked by a plugin
2122 '409':
2123 description: 'a user or registration with this username, channel name or email already exists'
2124 requestBody:
2125 content:
2126 application/json:
2127 schema:
2128 $ref: '#/components/schemas/UserRegistrationRequest'
2129
2130 /api/v1/users/registrations/{registrationId}/accept:
2131 post:
2132 security:
2133 - OAuth2:
2134 - admin
2135 - moderator
2136 summary: Accept registration
2137 operationId: acceptRegistration
2138 tags:
2139 - Register
2140 parameters:
2141 - $ref: '#/components/parameters/registrationId'
2142 requestBody:
2143 content:
2144 application/json:
2145 schema:
2146 $ref: '#/components/schemas/UserRegistrationAcceptOrReject'
2147 responses:
2148 '204':
2149 description: successful operation
2150
2151 /api/v1/users/registrations/{registrationId}/reject:
2152 post:
2153 security:
2154 - OAuth2:
2155 - admin
2156 - moderator
2157 summary: Reject registration
2158 operationId: rejectRegistration
2159 tags:
2160 - Register
2161 parameters:
2162 - $ref: '#/components/parameters/registrationId'
2163 requestBody:
2164 content:
2165 application/json:
2166 schema:
2167 $ref: '#/components/schemas/UserRegistrationAcceptOrReject'
2168 responses:
2169 '204':
2170 description: successful operation
2171
2172 /api/v1/users/registrations/{registrationId}:
2173 delete:
2174 security:
2175 - OAuth2:
2176 - admin
2177 - moderator
2178 summary: Delete registration
2179 description: 'Delete the registration entry. It will not remove the user associated with this registration (if any)'
2180 operationId: deleteRegistration
2181 tags:
2182 - Register
2183 parameters:
2184 - $ref: '#/components/parameters/registrationId'
2185 responses:
2186 '204':
2187 description: successful operation
2188
2189 /api/v1/users/registrations:
2190 get:
2191 security:
2192 - OAuth2:
2193 - admin
2194 - moderator
2195 summary: List registrations
2196 operationId: listRegistrations
2197 tags:
2198 - Register
2199 parameters:
2200 - $ref: '#/components/parameters/start'
2201 - $ref: '#/components/parameters/count'
2202 - name: search
2203 in: query
2204 required: false
2205 schema:
2206 type: string
2207 - name: sort
2208 in: query
2209 required: false
2210 schema:
2211 type: string
2212 enum:
2213 - -createdAt
2214 - createdAt
2215 - state
2216 - -state
2217 responses:
2218 '204':
2219 description: successful operation
2220
2040 /api/v1/videos/ownership: 2221 /api/v1/videos/ownership:
2041 get: 2222 get:
2042 summary: List video ownership changes 2223 summary: List video ownership changes
@@ -5389,6 +5570,7 @@ components:
5389 type: string 5570 type: string
5390 enum: 5571 enum:
5391 - createdAt 5572 - createdAt
5573
5392 name: 5574 name:
5393 name: name 5575 name: name
5394 in: path 5576 in: path
@@ -5404,6 +5586,13 @@ components:
5404 description: Entity id 5586 description: Entity id
5405 schema: 5587 schema:
5406 $ref: '#/components/schemas/id' 5588 $ref: '#/components/schemas/id'
5589 registrationId:
5590 name: registrationId
5591 in: path
5592 required: true
5593 description: Registration ID
5594 schema:
5595 $ref: '#/components/schemas/id'
5407 idOrUUID: 5596 idOrUUID:
5408 name: id 5597 name: id
5409 in: path 5598 in: path
@@ -7724,6 +7913,7 @@ components:
7724 required: 7913 required:
7725 - video 7914 - video
7726 - rating 7915 - rating
7916
7727 RegisterUser: 7917 RegisterUser:
7728 properties: 7918 properties:
7729 username: 7919 username:
@@ -7754,6 +7944,74 @@ components:
7754 - password 7944 - password
7755 - email 7945 - email
7756 7946
7947 UserRegistrationRequest:
7948 allOf:
7949 - $ref: '#/components/schemas/RegisterUser'
7950 - type: object
7951 properties:
7952 registrationReason:
7953 type: string
7954 description: reason for the user to register on the instance
7955 required:
7956 - registrationReason
7957
7958 UserRegistrationAcceptOrReject:
7959 type: object
7960 properties:
7961 moderationResponse:
7962 type: string
7963 description: Moderation response to send to the user
7964 required:
7965 - moderationResponse
7966
7967 UserRegistration:
7968 properties:
7969 id:
7970 $ref: '#/components/schemas/id'
7971 state:
7972 type: object
7973 properties:
7974 id:
7975 type: integer
7976 enum:
7977 - 1
7978 - 2
7979 - 3
7980 description: 'The registration state (Pending = `1`, Rejected = `2`, Accepted = `3`)'
7981 label:
7982 type: string
7983 registrationReason:
7984 type: string
7985 moderationResponse:
7986 type: string
7987 nullable: true
7988 username:
7989 type: string
7990 email:
7991 type: string
7992 format: email
7993 emailVerified:
7994 type: boolean
7995 accountDisplayName:
7996 type: string
7997 channelHandle:
7998 type: string
7999 channelDisplayName:
8000 type: string
8001 createdAt:
8002 type: string
8003 format: date-time
8004 updatedAt:
8005 type: string
8006 format: date-time
8007 user:
8008 type: object
8009 nullable: true
8010 description: If the registration has been accepted, this is a partial user object created by the registration
8011 properties:
8012 id:
8013 $ref: '#/components/schemas/id'
8014
7757 OAuthClient: 8015 OAuthClient:
7758 properties: 8016 properties:
7759 client_id: 8017 client_id: