aboutsummaryrefslogtreecommitdiffhomepage
path: root/support
diff options
context:
space:
mode:
Diffstat (limited to 'support')
-rw-r--r--support/doc/api/accounts.yaml7
-rw-r--r--support/doc/api/commons.yaml23
-rw-r--r--support/doc/api/html/index.html8540
-rw-r--r--support/doc/api/html/javascripts/spectacle.js242
-rw-r--r--support/doc/api/html/javascripts/spectacle.min.js1
-rw-r--r--support/doc/api/html/stylesheets/foundation.css2285
-rw-r--r--support/doc/api/html/stylesheets/foundation.min.css1
-rw-r--r--support/doc/api/html/stylesheets/spectacle.css1375
-rw-r--r--support/doc/api/html/stylesheets/spectacle.min.css1
-rw-r--r--support/doc/api/openapi.yaml2665
-rw-r--r--support/doc/api/quickstart.md16
-rw-r--r--support/doc/api/users.yaml7
-rw-r--r--support/doc/api/video-channels.yaml7
-rw-r--r--support/doc/api/video-comments.yaml13
-rw-r--r--support/doc/api/videos.yaml92
-rw-r--r--support/doc/development/server/code.md10
-rw-r--r--support/doc/docker.md1
-rw-r--r--support/doc/production.md5
-rw-r--r--support/doc/redundancy.md52
-rw-r--r--support/doc/tools.md280
-rw-r--r--support/doc/user/decentralized.pngbin22099 -> 0 bytes
-rw-r--r--support/doc/user/decentralized.xml1
-rw-r--r--support/doc/user/redundancy.pngbin29641 -> 0 bytes
-rw-r--r--support/doc/user/redundancy.xml1
-rw-r--r--support/doc/user/watch-p2p.pngbin16838 -> 0 bytes
-rw-r--r--support/doc/user/watch-p2p.xml1
-rw-r--r--support/doc/user/watch-video.pngbin21543 -> 0 bytes
-rw-r--r--support/doc/user/watch-video.xml1
-rw-r--r--support/docker/dev/Dockerfile54
-rw-r--r--support/docker/dev/setup_postgres.sql6
-rw-r--r--support/docker/dev/usage.md20
-rw-r--r--support/docker/janitor/Dockerfile32
-rw-r--r--support/docker/janitor/create_user.sql (renamed from support/docker/dev/create_user.sql)0
-rw-r--r--support/docker/janitor/janitor.json (renamed from support/docker/dev/janitor.json)0
-rw-r--r--support/docker/janitor/supervisord.conf (renamed from support/docker/dev/supervisord.conf)0
-rw-r--r--support/docker/production/.env8
-rw-r--r--support/docker/production/Dockerfile.stretch31
-rw-r--r--support/docker/production/config/custom-environment-variables.yaml33
-rw-r--r--support/docker/production/config/production.yaml2
-rw-r--r--support/docker/production/config/traefik.toml3
-rw-r--r--support/docker/production/docker-compose.yml16
-rwxr-xr-xsupport/docker/production/docker-entrypoint.sh4
-rwxr-xr-xsupport/freebsd/peertube5
-rw-r--r--support/nginx/peertube35
-rw-r--r--support/systemd/peertube.service19
45 files changed, 2127 insertions, 13768 deletions
diff --git a/support/doc/api/accounts.yaml b/support/doc/api/accounts.yaml
deleted file mode 100644
index c5b20040d..000000000
--- a/support/doc/api/accounts.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
1parameters:
2 name:
3 name: name
4 in: path
5 required: true
6 type: string
7 description: 'The name of the account (chocobozzz or chocobozzz@peertube.cpy.re for example)' \ No newline at end of file
diff --git a/support/doc/api/commons.yaml b/support/doc/api/commons.yaml
deleted file mode 100644
index c8bab3c80..000000000
--- a/support/doc/api/commons.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
1parameters:
2 start:
3 name: start
4 in: query
5 required: false
6 type: number
7 description: 'Offset'
8 count:
9 name: count
10 in: query
11 required: false
12 type: number
13 description: 'Number of items'
14 sort:
15 name: sort
16 in: query
17 required: false
18 type: string
19 description: 'Sort column (-createdAt for example)'
20
21responses:
22 emptySuccess:
23 description: 'Successful operation' \ No newline at end of file
diff --git a/support/doc/api/html/index.html b/support/doc/api/html/index.html
deleted file mode 100644
index 0efc24f02..000000000
--- a/support/doc/api/html/index.html
+++ /dev/null
@@ -1,8540 +0,0 @@
1<!doctype html>
2<html class="no-js" lang="en">
3 <head>
4 <meta charset="utf-8" />
5 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6 <title>PeerTube | API Reference</title>
7 <link rel="stylesheet" href="stylesheets/foundation.min.css" />
8 <link rel="stylesheet" href="stylesheets/spectacle.min.css" />
9 <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
10 <!-- <script src="javascripts/foundation.js"></script> -->
11 <script src="javascripts/spectacle.min.js"></script>
12 </head>
13 <body id="spectacle">
14 <div id="page" class="drawer-layout drawer-slide-right-large">
15 <div id="sidebar">
16 <button class="close-button" aria-label="Close menu" type="button" data-drawer-close>
17 <span aria-hidden="true">×</span>
18 </button>
19 <nav id="nav" role="navigation">
20 <h5>Topics</h5>
21 <a href="#introduction">Introduction</a>
22 <a href="#authentication">Authentication</a>
23 <h5>Operations</h5>
24 <section>
25 <a href="#tag-Accounts">Accounts</a>
26 <ul>
27 <li>
28 <a href="#operation--accounts--name--get"> GET /accounts/{name} </a>
29 </li>
30 <li>
31 <a href="#operation--accounts--name--videos-get"> GET /accounts/{name}/videos </a>
32 </li>
33 <li>
34 <a href="#operation--accounts-get"> GET /accounts </a>
35 </li>
36 </ul>
37 </section>
38 <section>
39 <a href="#tag-Config">Config</a>
40 <ul>
41 <li>
42 <a href="#operation--config-get"> GET /config </a>
43 </li>
44 </ul>
45 </section>
46 <section>
47 <a href="#tag-Feeds">Feeds</a>
48 <ul>
49 <li>
50 <a href="#operation--feeds-videos.-format--get"> GET /feeds/videos.{format} </a>
51 </li>
52 </ul>
53 </section>
54 <section>
55 <a href="#tag-Job">Job</a>
56 <ul>
57 <li>
58 <a href="#operation--jobs-get"> GET /jobs </a>
59 </li>
60 </ul>
61 </section>
62 <section>
63 <a href="#tag-ServerFollowing">ServerFollowing</a>
64 <ul>
65 <li>
66 <a href="#operation--server-following--host--delete"> DELETE /server/following/{host} </a>
67 </li>
68 <li>
69 <a href="#operation--server-followers-get"> GET /server/followers </a>
70 </li>
71 <li>
72 <a href="#operation--server-following-get"> GET /server/following </a>
73 </li>
74 <li>
75 <a href="#operation--server-following-post"> POST /server/following </a>
76 </li>
77 </ul>
78 </section>
79 <section>
80 <a href="#tag-User">User</a>
81 <ul>
82 <li>
83 <a href="#operation--users-post"> POST /users </a>
84 </li>
85 <li>
86 <a href="#operation--users-get"> GET /users </a>
87 </li>
88 <li>
89 <a href="#operation--users--id--delete"> DELETE /users/{id} </a>
90 </li>
91 <li>
92 <a href="#operation--users--id--get"> GET /users/{id} </a>
93 </li>
94 <li>
95 <a href="#operation--users--id--put"> PUT /users/{id} </a>
96 </li>
97 <li>
98 <a href="#operation--users-me-get"> GET /users/me </a>
99 </li>
100 <li>
101 <a href="#operation--users-me-put"> PUT /users/me </a>
102 </li>
103 <li>
104 <a href="#operation--users-me-video-quota-used-get"> GET /users/me/video-quota-used </a>
105 </li>
106 <li>
107 <a href="#operation--users-me-videos--videoId--rating-get"> GET /users/me/videos/{videoId}/rating </a>
108 </li>
109 <li>
110 <a href="#operation--users-me-videos-get"> GET /users/me/videos </a>
111 </li>
112 <li>
113 <a href="#operation--users-register-post"> POST /users/register </a>
114 </li>
115 <li>
116 <a href="#operation--users-me-avatar-pick-post"> POST /users/me/avatar/pick </a>
117 </li>
118 </ul>
119 </section>
120 <section>
121 <a href="#tag-Video">Video</a>
122 <ul>
123 <li>
124 <a href="#operation--videos-get"> GET /videos </a>
125 </li>
126 <li>
127 <a href="#operation--videos-categories-get"> GET /videos/categories </a>
128 </li>
129 <li>
130 <a href="#operation--videos-licences-get"> GET /videos/licences </a>
131 </li>
132 <li>
133 <a href="#operation--videos-languages-get"> GET /videos/languages </a>
134 </li>
135 <li>
136 <a href="#operation--videos-privacies-get"> GET /videos/privacies </a>
137 </li>
138 <li>
139 <a href="#operation--videos--id--put"> PUT /videos/{id} </a>
140 </li>
141 <li>
142 <a href="#operation--videos--id--get"> GET /videos/{id} </a>
143 </li>
144 <li>
145 <a href="#operation--videos--id--delete"> DELETE /videos/{id} </a>
146 </li>
147 <li>
148 <a href="#operation--videos--id--description-get"> GET /videos/{id}/description </a>
149 </li>
150 <li>
151 <a href="#operation--videos--id--views-post"> POST /videos/{id}/views </a>
152 </li>
153 <li>
154 <a href="#operation--videos-upload-post"> POST /videos/upload </a>
155 </li>
156 </ul>
157 </section>
158 <section>
159 <a href="#tag-VideoAbuse">VideoAbuse</a>
160 <ul>
161 <li>
162 <a href="#operation--videos-abuse-get"> GET /videos/abuse </a>
163 </li>
164 <li>
165 <a href="#operation--videos--id--abuse-post"> POST /videos/{id}/abuse </a>
166 </li>
167 </ul>
168 </section>
169 <section>
170 <a href="#tag-VideoBlacklist">VideoBlacklist</a>
171 <ul>
172 <li>
173 <a href="#operation--videos--id--blacklist-post"> POST /videos/{id}/blacklist </a>
174 </li>
175 <li>
176 <a href="#operation--videos--id--blacklist-delete"> DELETE /videos/{id}/blacklist </a>
177 </li>
178 <li>
179 <a href="#operation--videos-blacklist-get"> GET /videos/blacklist </a>
180 </li>
181 </ul>
182 </section>
183 <section>
184 <a href="#tag-VideoChannel">VideoChannel</a>
185 <ul>
186 <li>
187 <a href="#operation--video-channels-get"> GET /video-channels </a>
188 </li>
189 <li>
190 <a href="#operation--video-channels-post"> POST /video-channels </a>
191 </li>
192 <li>
193 <a href="#operation--video-channels--id--get"> GET /video-channels/{id} </a>
194 </li>
195 <li>
196 <a href="#operation--video-channels--id--put"> PUT /video-channels/{id} </a>
197 </li>
198 <li>
199 <a href="#operation--video-channels--id--delete"> DELETE /video-channels/{id} </a>
200 </li>
201 <li>
202 <a href="#operation--video-channels--id--videos-get"> GET /video-channels/{id}/videos </a>
203 </li>
204 <li>
205 <a href="#operation--accounts--name--video-channels-get"> GET /accounts/{name}/video-channels </a>
206 </li>
207 </ul>
208 </section>
209 <section>
210 <a href="#tag-VideoComment">VideoComment</a>
211 <ul>
212 <li>
213 <a href="#operation--videos--id--comment-threads-get"> GET /videos/{id}/comment-threads </a>
214 </li>
215 <li>
216 <a href="#operation--videos--id--comment-threads-post"> POST /videos/{id}/comment-threads </a>
217 </li>
218 <li>
219 <a href="#operation--videos--id--comment-threads--threadId--get"> GET /videos/{id}/comment-threads/{threadId} </a>
220 </li>
221 <li>
222 <a href="#operation--videos--id--comments--commentId--post"> POST /videos/{id}/comments/{commentId} </a>
223 </li>
224 <li>
225 <a href="#operation--videos--id--comments--commentId--delete"> DELETE /videos/{id}/comments/{commentId} </a>
226 </li>
227 </ul>
228 </section>
229 <section>
230 <a href="#tag-VideoRate">VideoRate</a>
231 <ul>
232 <li>
233 <a href="#operation--videos--id--rate-put"> PUT /videos/{id}/rate </a>
234 </li>
235 </ul>
236 </section>
237 <section>
238 <a href="#tag-Search">Search</a>
239 <ul>
240 <li>
241 <a href="#operation--search-videos-get"> GET /search/videos </a>
242 </li>
243 </ul>
244 </section>
245 <h5>Schema Definitions</h5>
246 <a href="#definition-VideoConstantNumber"> VideoConstantNumber </a>
247 <a href="#definition-VideoConstantString"> VideoConstantString </a>
248 <a href="#definition-VideoPrivacy"> VideoPrivacy </a>
249 <a href="#definition-Video"> Video </a>
250 <a href="#definition-VideoAbuse"> VideoAbuse </a>
251 <a href="#definition-VideoBlacklist"> VideoBlacklist </a>
252 <a href="#definition-VideoChannel"> VideoChannel </a>
253 <a href="#definition-VideoComment"> VideoComment </a>
254 <a href="#definition-VideoCommentThreadTree"> VideoCommentThreadTree </a>
255 <a href="#definition-Avatar"> Avatar </a>
256 <a href="#definition-Actor"> Actor </a>
257 <a href="#definition-Account"> Account </a>
258 <a href="#definition-User"> User </a>
259 <a href="#definition-ServerConfig"> ServerConfig </a>
260 <a href="#definition-Follow"> Follow </a>
261 <a href="#definition-Job"> Job </a>
262 <a href="#definition-AddUserResponse"> AddUserResponse </a>
263 <a href="#definition-VideoUploadResponse"> VideoUploadResponse </a>
264 <a href="#definition-CommentThreadResponse"> CommentThreadResponse </a>
265 <a href="#definition-CommentThreadPostResponse"> CommentThreadPostResponse </a>
266 <a href="#definition-AddUser"> AddUser </a>
267 <a href="#definition-UpdateUser"> UpdateUser </a>
268 <a href="#definition-UpdateMe"> UpdateMe </a>
269 <a href="#definition-GetMeVideoRating"> GetMeVideoRating </a>
270 <a href="#definition-RegisterUser"> RegisterUser </a>
271 <a href="#definition-VideoChannelInput"> VideoChannelInput </a>
272 </nav>
273 </div>
274 <div id="docs" class="row collapse expanded drawer" data-drawer>
275 <button class="floating-menu-icon" type="button" data-drawer-slide="right">
276 <span class="hamburger"></span>
277 </button>
278 <div class="example-box doc-content"></div>
279 <article>
280 <h1 class="doc-title">PeerTube
281 <span>API Reference</span>
282 </h1>
283 <div id="introduction" data-traverse-target="introduction">
284 <div class="doc-row">
285 <div class="doc-copy">
286 <p>Federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.</p>
287 </div>
288 <div class="doc-examples">
289 <section>
290 <h5>API Endpoint</h5>
291 <!-- <div class="hljs"> --><pre><code>https://peertube.example.com/api/v1</code></pre>
292 <!-- </div> -->
293 <h5>Schemes:
294 <span>https</span>
295 </h5>
296 <h5>Version:
297 <span>1.0.0-beta</span>
298 </h5>
299 </section>
300 </div>
301 </div>
302 </div>
303 <!-- <h1 id="security" data-traverse-target="security">Security</h1> -->
304 <h1 id="authentication" data-traverse-target="authentication">Authentication</h1>
305 <div id="security-definition-OAuth2" class="panel">
306 <div class="doc-row">
307 <div class="doc-copy">
308 <h3 class="security-definition-title">
309 <span class="security-name">OAuth2</span>
310 <span class="swagger-security-definition-oauth2"></span>
311 </h3>
312 <section class="security-definition-description">
313 <p>In the header:
314 <em>Authorization: Bearer mytoken</em>
315 </p>
316 </section>
317 <section class="swagger-security-definition-properties">
318 <div class="prop-row security-definition-property">
319 <div class="prop-name">
320 <div class="prop-title security-definition-property-name">type</div>
321 </div>
322 <div class="prop-value security-definition-property-type"> oauth2 </div>
323 </div>
324 <div class="prop-row security-definition-property">
325 <div class="prop-name">
326 <div class="prop-title security-definition-property-name">flow</div>
327 </div>
328 <div class="prop-value security-definition-property-type"> password </div>
329 </div>
330 <div class="prop-row security-definition-property">
331 <div class="prop-name">
332 <div class="prop-title security-definition-property-name">tokenUrl</div>
333 </div>
334 <div class="prop-value security-definition-property-type"> https://peertube.example.com/api/v1/users/token </div>
335 </div>
336 </section>
337 </div>
338 </div>
339 </div>
340 <h1 id="tag-Accounts" class="swagger-summary-tag" data-traverse-target="tag-Accounts">Accounts</h1>
341 <div id="operation--accounts--name--get" class="operation panel" data-traverse-target="operation--accounts--name--get">
342 <!-- <section class="operation-tags row"> -->
343 <!-- <div class="doc-copy"> -->
344 <div class="operation-tags">
345 <a class="label" href="#tag-Accounts">Accounts</a>
346 <!---->
347 </div>
348 <!-- </div> -->
349 <!-- </section> -->
350 <h2 class="operation-title">
351 <span class="operation-name">
352 <span class="operation-name">GET</span>
353 <span class="operation-path">/accounts/{name}</span>
354 </span>
355 </h2>
356 <div class="doc-row">
357 <div class="doc-copy">
358 <section class="swagger-request-params">
359 <div class="prop-row prop-group">
360 <div class="prop-name">
361 <div class="prop-title">name:
362 <span class="prop-type">
363 <span class="json-property-type">string</span>
364 <span class="json-property-range" title="Value limits"></span>
365 </span>
366 </div>
367 <span class="json-property-required"></span>
368 <div class="prop-subtitle"> in path </div>
369 </div>
370 <div class="prop-value">
371 <p>The name of the account (chocobozzz or
372 <a href="mailto:chocobozzz@peertube.cpy.re">chocobozzz@peertube.cpy.re</a> for example)</p>
373 </div>
374 </div>
375 <div class="prop-row prop-group">
376 <div class="prop-name">
377 <div class="prop-title">start:
378 <span class="prop-type">
379 <span class="json-property-type">number</span>
380 <span class="json-property-range" title="Value limits"></span>
381 </span>
382 </div>
383 <div class="prop-subtitle"> in query </div>
384 </div>
385 <div class="prop-value">
386 <p>Offset</p>
387 </div>
388 </div>
389 <div class="prop-row prop-group">
390 <div class="prop-name">
391 <div class="prop-title">count:
392 <span class="prop-type">
393 <span class="json-property-type">number</span>
394 <span class="json-property-range" title="Value limits"></span>
395 </span>
396 </div>
397 <div class="prop-subtitle"> in query </div>
398 </div>
399 <div class="prop-value">
400 <p>Number of items</p>
401 </div>
402 </div>
403 <div class="prop-row prop-group">
404 <div class="prop-name">
405 <div class="prop-title">sort:
406 <span class="prop-type">
407 <span class="json-property-type">string</span>
408 <span class="json-property-range" title="Value limits"></span>
409 </span>
410 </div>
411 <div class="prop-subtitle"> in query </div>
412 </div>
413 <div class="prop-value">
414 <p>Sort column (-createdAt for example)</p>
415 </div>
416 </div>
417 </section>
418 </div>
419 <div class="doc-examples"></div>
420 </div>
421 <div class="doc-row">
422 <div class="doc-copy">
423 <section class="swagger-responses">
424 <div class="prop-row prop-group">
425 <div class="prop-name">
426 <div class="prop-title">200 OK</div>
427 <div class="prop-ref">
428 <span class="">
429 <a class="json-schema-ref" href="#/definitions/Account">Account</a>
430 </span>
431 </div>
432 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
433 </div>
434 <div class="prop-value">
435 <p>successful operation</p>
436 </div>
437 </div>
438 </section>
439 </div>
440 <div class="doc-examples">
441 <h5>Response Content-Types:
442 <span>application/json</span>
443 </h5>
444 <section>
445 <h5>Response Example
446 <span>(200 OK)</span>
447 </h5>
448 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
449 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
450 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
451 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
452 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
453 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
454 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
455 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
456 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
457 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
458 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
459 <span class="hljs-attr">&quot;avatar&quot;</span>: {
460 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
461 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
462 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
463 }
464}
465</code></pre>
466 <!-- </div> -->
467 </section>
468 </div>
469 </div>
470 </div>
471 <div id="operation--accounts--name--videos-get" class="operation panel" data-traverse-target="operation--accounts--name--videos-get">
472 <!-- <section class="operation-tags row"> -->
473 <!-- <div class="doc-copy"> -->
474 <div class="operation-tags">
475 <a class="label" href="#tag-Accounts">Accounts</a>
476 <!---->
477 </div>
478 <!-- </div> -->
479 <!-- </section> -->
480 <h2 class="operation-title">
481 <span class="operation-name">
482 <span class="operation-name">GET</span>
483 <span class="operation-path">/accounts/{name}/videos</span>
484 </span>
485 </h2>
486 <div class="doc-row">
487 <div class="doc-copy">
488 <section class="swagger-request-params">
489 <div class="prop-row prop-group">
490 <div class="prop-name">
491 <div class="prop-title">name:
492 <span class="prop-type">
493 <span class="json-property-type">string</span>
494 <span class="json-property-range" title="Value limits"></span>
495 </span>
496 </div>
497 <span class="json-property-required"></span>
498 <div class="prop-subtitle"> in path </div>
499 </div>
500 <div class="prop-value">
501 <p>The name of the account (chocobozzz or
502 <a href="mailto:chocobozzz@peertube.cpy.re">chocobozzz@peertube.cpy.re</a> for example)</p>
503 </div>
504 </div>
505 </section>
506 </div>
507 <div class="doc-examples"></div>
508 </div>
509 <div class="doc-row">
510 <div class="doc-copy">
511 <section class="swagger-responses">
512 <div class="prop-row prop-group">
513 <div class="prop-name">
514 <div class="prop-title">200 OK</div>
515 <div class="prop-ref">
516 <span class="">
517 <a class="json-schema-ref" href="#/definitions/Video">Video</a>
518 </span>
519 </div>
520 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
521 </div>
522 <div class="prop-value">
523 <p>successful operation</p>
524 </div>
525 </div>
526 </section>
527 </div>
528 <div class="doc-examples">
529 <h5>Response Content-Types:
530 <span>application/json</span>
531 </h5>
532 <section>
533 <h5>Response Example
534 <span>(200 OK)</span>
535 </h5>
536 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
537 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
538 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
539 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
540 <span class="hljs-attr">&quot;publishedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
541 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
542 <span class="hljs-attr">&quot;category&quot;</span>: {
543 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
544 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
545 },
546 <span class="hljs-attr">&quot;licence&quot;</span>: {
547 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
548 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
549 },
550 <span class="hljs-attr">&quot;language&quot;</span>: {
551 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
552 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
553 },
554 <span class="hljs-attr">&quot;privacy&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
555 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
556 <span class="hljs-attr">&quot;duration&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
557 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
558 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
559 <span class="hljs-attr">&quot;thumbnailPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
560 <span class="hljs-attr">&quot;previewPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
561 <span class="hljs-attr">&quot;embedPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
562 <span class="hljs-attr">&quot;views&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
563 <span class="hljs-attr">&quot;likes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
564 <span class="hljs-attr">&quot;dislikes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
565 <span class="hljs-attr">&quot;nsfw&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
566 <span class="hljs-attr">&quot;account&quot;</span>: {
567 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
568 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
569 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
570 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
571 <span class="hljs-attr">&quot;avatar&quot;</span>: {
572 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
573 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
574 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
575 }
576 }
577}
578</code></pre>
579 <!-- </div> -->
580 </section>
581 </div>
582 </div>
583 </div>
584 <div id="operation--accounts-get" class="operation panel" data-traverse-target="operation--accounts-get">
585 <!-- <section class="operation-tags row"> -->
586 <!-- <div class="doc-copy"> -->
587 <div class="operation-tags">
588 <a class="label" href="#tag-Accounts">Accounts</a>
589 <!---->
590 </div>
591 <!-- </div> -->
592 <!-- </section> -->
593 <h2 class="operation-title">
594 <span class="operation-name">
595 <span class="operation-name">GET</span>
596 <span class="operation-path">/accounts</span>
597 </span>
598 </h2>
599 <div class="doc-row">
600 <div class="doc-copy"> </div>
601 <div class="doc-examples"></div>
602 </div>
603 <div class="doc-row">
604 <div class="doc-copy">
605 <section class="swagger-responses">
606 <div class="prop-row prop-group">
607 <div class="prop-name">
608 <div class="prop-title">200 OK</div>
609 <div class="prop-ref">
610 <span class="json-schema-ref-array">
611 <a class="json-schema-ref" href="#/definitions/Account">Account</a>
612 </span>
613 </div>
614 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
615 </div>
616 <div class="prop-value">
617 <p>successful operation</p>
618 </div>
619 </div>
620 <div class="prop-row prop-inner">
621 <div class="prop-name">type</div>
622 <div class="prop-value">
623 <span class="json-property-type">
624 <span class="json-schema-ref-array">
625 <a class="json-schema-ref" href="#/definitions/Account">Account</a>
626 </span>
627 </span>
628 <span class="json-property-range" title="Value limits"></span>
629 </div>
630 </div>
631 </section>
632 </div>
633 <div class="doc-examples">
634 <h5>Response Content-Types:
635 <span>application/json</span>
636 </h5>
637 <section>
638 <h5>Response Example
639 <span>(200 OK)</span>
640 </h5>
641 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
642 {
643 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
644 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
645 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
646 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
647 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
648 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
649 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
650 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
651 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
652 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
653 <span class="hljs-attr">&quot;avatar&quot;</span>: {
654 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
655 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
656 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
657 }
658 }
659]
660</code></pre>
661 <!-- </div> -->
662 </section>
663 </div>
664 </div>
665 </div>
666 <h1 id="tag-Config" class="swagger-summary-tag" data-traverse-target="tag-Config">Config</h1>
667 <div id="operation--config-get" class="operation panel" data-traverse-target="operation--config-get">
668 <!-- <section class="operation-tags row"> -->
669 <!-- <div class="doc-copy"> -->
670 <div class="operation-tags">
671 <a class="label" href="#tag-Config">Config</a>
672 <!---->
673 </div>
674 <!-- </div> -->
675 <!-- </section> -->
676 <h2 class="operation-title">
677 <span class="operation-name">
678 <span class="operation-name">GET</span>
679 <span class="operation-path">/config</span>
680 </span>
681 </h2>
682 <div class="doc-row">
683 <div class="doc-copy"> </div>
684 <div class="doc-examples"></div>
685 </div>
686 <div class="doc-row">
687 <div class="doc-copy">
688 <section class="swagger-responses">
689 <div class="prop-row prop-group">
690 <div class="prop-name">
691 <div class="prop-title">200 OK</div>
692 <div class="prop-ref">
693 <span class="">
694 <a class="json-schema-ref" href="#/definitions/ServerConfig">ServerConfig</a>
695 </span>
696 </div>
697 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
698 </div>
699 <div class="prop-value">
700 <p>successful operation</p>
701 </div>
702 </div>
703 </section>
704 </div>
705 <div class="doc-examples">
706 <h5>Response Content-Types:
707 <span>application/json</span>
708 </h5>
709 <section>
710 <h5>Response Example
711 <span>(200 OK)</span>
712 </h5>
713 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
714 <span class="hljs-attr">&quot;signup&quot;</span>: {
715 <span class="hljs-attr">&quot;allowed&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>
716 },
717 <span class="hljs-attr">&quot;transcoding&quot;</span>: {
718 <span class="hljs-attr">&quot;enabledResolutions&quot;</span>: [
719 <span class="hljs-string">&quot;number&quot;</span>
720 ]
721 },
722 <span class="hljs-attr">&quot;avatar&quot;</span>: {
723 <span class="hljs-attr">&quot;file&quot;</span>: {
724 <span class="hljs-attr">&quot;size&quot;</span>: {
725 <span class="hljs-attr">&quot;max&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>
726 }
727 },
728 <span class="hljs-attr">&quot;extensions&quot;</span>: [
729 <span class="hljs-string">&quot;string&quot;</span>
730 ]
731 },
732 <span class="hljs-attr">&quot;video&quot;</span>: {
733 <span class="hljs-attr">&quot;file&quot;</span>: {
734 <span class="hljs-attr">&quot;extensions&quot;</span>: [
735 <span class="hljs-string">&quot;string&quot;</span>
736 ]
737 }
738 }
739}
740</code></pre>
741 <!-- </div> -->
742 </section>
743 </div>
744 </div>
745 </div>
746 <h1 id="tag-Feeds" class="swagger-summary-tag" data-traverse-target="tag-Feeds">Feeds</h1>
747 <div id="operation--feeds-videos.-format--get" class="operation panel" data-traverse-target="operation--feeds-videos.-format--get">
748 <!-- <section class="operation-tags row"> -->
749 <!-- <div class="doc-copy"> -->
750 <div class="operation-tags">
751 <a class="label" href="#tag-Feeds">Feeds</a>
752 <!---->
753 </div>
754 <!-- </div> -->
755 <!-- </section> -->
756 <h2 class="operation-title">
757 <span class="operation-name">
758 <span class="operation-name">GET</span>
759 <span class="operation-path">/feeds/videos.{format}</span>
760 </span>
761 </h2>
762 <div class="doc-row">
763 <div class="doc-copy">
764 <section class="swagger-request-params">
765 <div class="prop-row prop-group">
766 <div class="prop-name">
767 <div class="prop-title">format:
768 <span class="prop-type">
769 <span class="json-property-type">string</span>
770 <span class="json-property-enum" title="Possible values">
771 <span class="json-property-enum-item json-property-enum-default-value">xml</span>,
772 <span class="json-property-enum-item">atom</span>,
773 <span class="json-property-enum-item">json</span>
774 </span>
775 <span class="json-property-range" title="Value limits"></span>
776 <span class="json-property-default-value" title="Default value">xml</span>
777 </span>
778 </div>
779 <span class="json-property-required"></span>
780 <div class="prop-subtitle"> in path </div>
781 </div>
782 <div class="prop-value">
783 <p>The format expected (xml defaults to RSS 2.0, atom to ATOM 1.0 and json to JSON FEED 1.0</p>
784 </div>
785 </div>
786 <div class="prop-row prop-group">
787 <div class="prop-name">
788 <div class="prop-title">accountId:
789 <span class="prop-type">
790 <span class="json-property-type">number</span>
791 <span class="json-property-range" title="Value limits"></span>
792 </span>
793 </div>
794 <div class="prop-subtitle"> in query </div>
795 </div>
796 <div class="prop-value">
797 <p>The id of the local account to filter to (beware, users IDs and not actors IDs which will return empty feeds</p>
798 </div>
799 </div>
800 <div class="prop-row prop-group">
801 <div class="prop-name">
802 <div class="prop-title">accountName:
803 <span class="prop-type">
804 <span class="json-property-type">string</span>
805 <span class="json-property-range" title="Value limits"></span>
806 </span>
807 </div>
808 <div class="prop-subtitle"> in query </div>
809 </div>
810 <div class="prop-value">
811 <p>The name of the local account to filter to</p>
812 </div>
813 </div>
814 </section>
815 </div>
816 <div class="doc-examples"></div>
817 </div>
818 <div class="doc-row">
819 <div class="doc-copy">
820 <section class="swagger-responses">
821 <div class="prop-row prop-group">
822 <div class="prop-name">
823 <div class="prop-title">200 OK</div>
824 </div>
825 <div class="prop-value">
826 <p>successful operation</p>
827 </div>
828 </div>
829 </section>
830 </div>
831 <div class="doc-examples">
832 <h5>Response Content-Types:
833 <span>application/atom+xml, application/rss+xml, application/json</span>
834 </h5>
835 </div>
836 </div>
837 </div>
838 <h1 id="tag-Job" class="swagger-summary-tag" data-traverse-target="tag-Job">Job</h1>
839 <div id="operation--jobs-get" class="operation panel" data-traverse-target="operation--jobs-get">
840 <!-- <section class="operation-tags row"> -->
841 <!-- <div class="doc-copy"> -->
842 <div class="operation-tags">
843 <a class="label" href="#tag-Job">Job</a>
844 <!---->
845 </div>
846 <!-- </div> -->
847 <!-- </section> -->
848 <h2 class="operation-title">
849 <span class="operation-name">
850 <span class="operation-name">GET</span>
851 <span class="operation-path">/jobs</span>
852 </span>
853 </h2>
854 <div class="doc-row">
855 <div class="doc-copy">
856 <section class="swagger-request-params">
857 <div class="prop-row prop-group">
858 <div class="prop-name">
859 <div class="prop-title">state:
860 <span class="prop-type">
861 <span class="json-property-type">string</span>
862 <span class="json-property-range" title="Value limits"></span>
863 </span>
864 </div>
865 <span class="json-property-required"></span>
866 <div class="prop-subtitle"> in path </div>
867 </div>
868 <div class="prop-value">
869 <p>The state of the job</p>
870 </div>
871 </div>
872 <div class="prop-row prop-group">
873 <div class="prop-name">
874 <div class="prop-title">start:
875 <span class="prop-type">
876 <span class="json-property-type">number</span>
877 <span class="json-property-range" title="Value limits"></span>
878 </span>
879 </div>
880 <div class="prop-subtitle"> in query </div>
881 </div>
882 <div class="prop-value">
883 <p>Offset</p>
884 </div>
885 </div>
886 <div class="prop-row prop-group">
887 <div class="prop-name">
888 <div class="prop-title">count:
889 <span class="prop-type">
890 <span class="json-property-type">number</span>
891 <span class="json-property-range" title="Value limits"></span>
892 </span>
893 </div>
894 <div class="prop-subtitle"> in query </div>
895 </div>
896 <div class="prop-value">
897 <p>Number of items</p>
898 </div>
899 </div>
900 <div class="prop-row prop-group">
901 <div class="prop-name">
902 <div class="prop-title">sort:
903 <span class="prop-type">
904 <span class="json-property-type">string</span>
905 <span class="json-property-range" title="Value limits"></span>
906 </span>
907 </div>
908 <div class="prop-subtitle"> in query </div>
909 </div>
910 <div class="prop-value">
911 <p>Sort column (-createdAt for example)</p>
912 </div>
913 </div>
914 </section>
915 </div>
916 <div class="doc-examples"></div>
917 </div>
918 <div class="doc-row">
919 <div class="doc-copy">
920 <section class="swagger-responses">
921 <div class="prop-row prop-group">
922 <div class="prop-name">
923 <div class="prop-title">200 OK</div>
924 <div class="prop-ref">
925 <span class="json-schema-ref-array">
926 <a class="json-schema-ref" href="#/definitions/Job">Job</a>
927 </span>
928 </div>
929 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
930 </div>
931 <div class="prop-value">
932 <p>successful operation</p>
933 </div>
934 </div>
935 <div class="prop-row prop-inner">
936 <div class="prop-name">type</div>
937 <div class="prop-value">
938 <span class="json-property-type">
939 <span class="json-schema-ref-array">
940 <a class="json-schema-ref" href="#/definitions/Job">Job</a>
941 </span>
942 </span>
943 <span class="json-property-range" title="Value limits"></span>
944 </div>
945 </div>
946 </section>
947 </div>
948 <div class="doc-examples">
949 <h5>Response Content-Types:
950 <span>application/json</span>
951 </h5>
952 <section>
953 <h5>Response Example
954 <span>(200 OK)</span>
955 </h5>
956 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
957 {
958 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
959 <span class="hljs-attr">&quot;state&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
960 <span class="hljs-attr">&quot;category&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
961 <span class="hljs-attr">&quot;handlerName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
962 <span class="hljs-attr">&quot;handlerInputData&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
963 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
964 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
965 }
966]
967</code></pre>
968 <!-- </div> -->
969 </section>
970 </div>
971 </div>
972 <div class="doc-row">
973 <div class="doc-copy">
974 <section class="swagger-request-security">
975 <table class="table">
976 <thead>
977 <tr>
978 <th class="swagger-request-security-schema"></th>
979 <th class="swagger-request-security-scopes"></th>
980 </tr>
981 </thead>
982 <tbody>
983 <tr>
984 <td>
985 <a href="#security-definition-OAuth2">OAuth2</a>
986 </td>
987 <td> </td>
988 </tr>
989 </tbody>
990 </table>
991 </section>
992 </div>
993 </div>
994 </div>
995 <h1 id="tag-ServerFollowing" class="swagger-summary-tag" data-traverse-target="tag-ServerFollowing">ServerFollowing</h1>
996 <div id="operation--server-following--host--delete" class="operation panel" data-traverse-target="operation--server-following--host--delete">
997 <!-- <section class="operation-tags row"> -->
998 <!-- <div class="doc-copy"> -->
999 <div class="operation-tags">
1000 <a class="label" href="#tag-ServerFollowing">ServerFollowing</a>
1001 <!---->
1002 </div>
1003 <!-- </div> -->
1004 <!-- </section> -->
1005 <h2 class="operation-title">
1006 <span class="operation-name">
1007 <span class="operation-name">DELETE</span>
1008 <span class="operation-path">/server/following/{host}</span>
1009 </span>
1010 </h2>
1011 <div class="doc-row">
1012 <div class="doc-copy">
1013 <section class="swagger-request-params">
1014 <div class="prop-row prop-group">
1015 <div class="prop-name">
1016 <div class="prop-title">host:
1017 <span class="prop-type">
1018 <span class="json-property-type">string</span>
1019 <span class="json-property-range" title="Value limits"></span>
1020 </span>
1021 </div>
1022 <span class="json-property-required"></span>
1023 <div class="prop-subtitle"> in path </div>
1024 </div>
1025 <div class="prop-value">
1026 <p>The host to unfollow </p>
1027 </div>
1028 </div>
1029 </section>
1030 </div>
1031 <div class="doc-examples"></div>
1032 </div>
1033 <div class="doc-row">
1034 <div class="doc-copy">
1035 <section class="swagger-responses">
1036 <div class="prop-row prop-group">
1037 <div class="prop-name">
1038 <div class="prop-title">201 Created</div>
1039 </div>
1040 <div class="prop-value">
1041 <p>successful operation</p>
1042 </div>
1043 </div>
1044 </section>
1045 </div>
1046 <div class="doc-examples">
1047 <h5>Response Content-Types:
1048 <span>application/json</span>
1049 </h5>
1050 </div>
1051 </div>
1052 <div class="doc-row">
1053 <div class="doc-copy">
1054 <section class="swagger-request-security">
1055 <table class="table">
1056 <thead>
1057 <tr>
1058 <th class="swagger-request-security-schema"></th>
1059 <th class="swagger-request-security-scopes"></th>
1060 </tr>
1061 </thead>
1062 <tbody>
1063 <tr>
1064 <td>
1065 <a href="#security-definition-OAuth2">OAuth2</a>
1066 </td>
1067 <td> </td>
1068 </tr>
1069 </tbody>
1070 </table>
1071 </section>
1072 </div>
1073 </div>
1074 </div>
1075 <div id="operation--server-followers-get" class="operation panel" data-traverse-target="operation--server-followers-get">
1076 <!-- <section class="operation-tags row"> -->
1077 <!-- <div class="doc-copy"> -->
1078 <div class="operation-tags">
1079 <a class="label" href="#tag-ServerFollowing">ServerFollowing</a>
1080 <!---->
1081 </div>
1082 <!-- </div> -->
1083 <!-- </section> -->
1084 <h2 class="operation-title">
1085 <span class="operation-name">
1086 <span class="operation-name">GET</span>
1087 <span class="operation-path">/server/followers</span>
1088 </span>
1089 </h2>
1090 <div class="doc-row">
1091 <div class="doc-copy">
1092 <section class="swagger-request-params">
1093 <div class="prop-row prop-group">
1094 <div class="prop-name">
1095 <div class="prop-title">start:
1096 <span class="prop-type">
1097 <span class="json-property-type">number</span>
1098 <span class="json-property-range" title="Value limits"></span>
1099 </span>
1100 </div>
1101 <div class="prop-subtitle"> in query </div>
1102 </div>
1103 <div class="prop-value">
1104 <p>Offset</p>
1105 </div>
1106 </div>
1107 <div class="prop-row prop-group">
1108 <div class="prop-name">
1109 <div class="prop-title">count:
1110 <span class="prop-type">
1111 <span class="json-property-type">number</span>
1112 <span class="json-property-range" title="Value limits"></span>
1113 </span>
1114 </div>
1115 <div class="prop-subtitle"> in query </div>
1116 </div>
1117 <div class="prop-value">
1118 <p>Number of items</p>
1119 </div>
1120 </div>
1121 <div class="prop-row prop-group">
1122 <div class="prop-name">
1123 <div class="prop-title">sort:
1124 <span class="prop-type">
1125 <span class="json-property-type">string</span>
1126 <span class="json-property-range" title="Value limits"></span>
1127 </span>
1128 </div>
1129 <div class="prop-subtitle"> in query </div>
1130 </div>
1131 <div class="prop-value">
1132 <p>Sort column (-createdAt for example)</p>
1133 </div>
1134 </div>
1135 </section>
1136 </div>
1137 <div class="doc-examples"></div>
1138 </div>
1139 <div class="doc-row">
1140 <div class="doc-copy">
1141 <section class="swagger-responses">
1142 <div class="prop-row prop-group">
1143 <div class="prop-name">
1144 <div class="prop-title">200 OK</div>
1145 <div class="prop-ref">
1146 <span class="json-schema-ref-array">
1147 <a class="json-schema-ref" href="#/definitions/Follow">Follow</a>
1148 </span>
1149 </div>
1150 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
1151 </div>
1152 <div class="prop-value">
1153 <p>successful operation</p>
1154 </div>
1155 </div>
1156 <div class="prop-row prop-inner">
1157 <div class="prop-name">type</div>
1158 <div class="prop-value">
1159 <span class="json-property-type">
1160 <span class="json-schema-ref-array">
1161 <a class="json-schema-ref" href="#/definitions/Follow">Follow</a>
1162 </span>
1163 </span>
1164 <span class="json-property-range" title="Value limits"></span>
1165 </div>
1166 </div>
1167 </section>
1168 </div>
1169 <div class="doc-examples">
1170 <h5>Response Content-Types:
1171 <span>application/json</span>
1172 </h5>
1173 <section>
1174 <h5>Response Example
1175 <span>(200 OK)</span>
1176 </h5>
1177 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
1178 {
1179 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1180 <span class="hljs-attr">&quot;follower&quot;</span>: {
1181 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1182 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1183 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1184 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1185 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1186 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1187 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1188 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1189 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1190 <span class="hljs-attr">&quot;avatar&quot;</span>: {
1191 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1192 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1193 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1194 }
1195 },
1196 <span class="hljs-attr">&quot;following&quot;</span>: {
1197 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1198 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1199 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1200 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1201 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1202 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1203 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1204 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1205 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1206 <span class="hljs-attr">&quot;avatar&quot;</span>: {
1207 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1208 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1209 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1210 }
1211 },
1212 <span class="hljs-attr">&quot;score&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1213 <span class="hljs-attr">&quot;state&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1214 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1215 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1216 }
1217]
1218</code></pre>
1219 <!-- </div> -->
1220 </section>
1221 </div>
1222 </div>
1223 </div>
1224 <div id="operation--server-following-get" class="operation panel" data-traverse-target="operation--server-following-get">
1225 <!-- <section class="operation-tags row"> -->
1226 <!-- <div class="doc-copy"> -->
1227 <div class="operation-tags">
1228 <a class="label" href="#tag-ServerFollowing">ServerFollowing</a>
1229 <!---->
1230 </div>
1231 <!-- </div> -->
1232 <!-- </section> -->
1233 <h2 class="operation-title">
1234 <span class="operation-name">
1235 <span class="operation-name">GET</span>
1236 <span class="operation-path">/server/following</span>
1237 </span>
1238 </h2>
1239 <div class="doc-row">
1240 <div class="doc-copy">
1241 <section class="swagger-request-params">
1242 <div class="prop-row prop-group">
1243 <div class="prop-name">
1244 <div class="prop-title">start:
1245 <span class="prop-type">
1246 <span class="json-property-type">number</span>
1247 <span class="json-property-range" title="Value limits"></span>
1248 </span>
1249 </div>
1250 <div class="prop-subtitle"> in query </div>
1251 </div>
1252 <div class="prop-value">
1253 <p>Offset</p>
1254 </div>
1255 </div>
1256 <div class="prop-row prop-group">
1257 <div class="prop-name">
1258 <div class="prop-title">count:
1259 <span class="prop-type">
1260 <span class="json-property-type">number</span>
1261 <span class="json-property-range" title="Value limits"></span>
1262 </span>
1263 </div>
1264 <div class="prop-subtitle"> in query </div>
1265 </div>
1266 <div class="prop-value">
1267 <p>Number of items</p>
1268 </div>
1269 </div>
1270 <div class="prop-row prop-group">
1271 <div class="prop-name">
1272 <div class="prop-title">sort:
1273 <span class="prop-type">
1274 <span class="json-property-type">string</span>
1275 <span class="json-property-range" title="Value limits"></span>
1276 </span>
1277 </div>
1278 <div class="prop-subtitle"> in query </div>
1279 </div>
1280 <div class="prop-value">
1281 <p>Sort column (-createdAt for example)</p>
1282 </div>
1283 </div>
1284 </section>
1285 </div>
1286 <div class="doc-examples"></div>
1287 </div>
1288 <div class="doc-row">
1289 <div class="doc-copy">
1290 <section class="swagger-responses">
1291 <div class="prop-row prop-group">
1292 <div class="prop-name">
1293 <div class="prop-title">200 OK</div>
1294 <div class="prop-ref">
1295 <span class="json-schema-ref-array">
1296 <a class="json-schema-ref" href="#/definitions/Follow">Follow</a>
1297 </span>
1298 </div>
1299 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
1300 </div>
1301 <div class="prop-value">
1302 <p>successful operation</p>
1303 </div>
1304 </div>
1305 <div class="prop-row prop-inner">
1306 <div class="prop-name">type</div>
1307 <div class="prop-value">
1308 <span class="json-property-type">
1309 <span class="json-schema-ref-array">
1310 <a class="json-schema-ref" href="#/definitions/Follow">Follow</a>
1311 </span>
1312 </span>
1313 <span class="json-property-range" title="Value limits"></span>
1314 </div>
1315 </div>
1316 </section>
1317 </div>
1318 <div class="doc-examples">
1319 <h5>Response Content-Types:
1320 <span>application/json</span>
1321 </h5>
1322 <section>
1323 <h5>Response Example
1324 <span>(200 OK)</span>
1325 </h5>
1326 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
1327 {
1328 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1329 <span class="hljs-attr">&quot;follower&quot;</span>: {
1330 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1331 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1332 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1333 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1334 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1335 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1336 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1337 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1338 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1339 <span class="hljs-attr">&quot;avatar&quot;</span>: {
1340 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1341 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1342 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1343 }
1344 },
1345 <span class="hljs-attr">&quot;following&quot;</span>: {
1346 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1347 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1348 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1349 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1350 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1351 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1352 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1353 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1354 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1355 <span class="hljs-attr">&quot;avatar&quot;</span>: {
1356 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1357 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1358 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1359 }
1360 },
1361 <span class="hljs-attr">&quot;score&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1362 <span class="hljs-attr">&quot;state&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1363 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1364 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1365 }
1366]
1367</code></pre>
1368 <!-- </div> -->
1369 </section>
1370 </div>
1371 </div>
1372 </div>
1373 <div id="operation--server-following-post" class="operation panel" data-traverse-target="operation--server-following-post">
1374 <!-- <section class="operation-tags row"> -->
1375 <!-- <div class="doc-copy"> -->
1376 <div class="operation-tags">
1377 <a class="label" href="#tag-ServerFollowing">ServerFollowing</a>
1378 <!---->
1379 </div>
1380 <!-- </div> -->
1381 <!-- </section> -->
1382 <h2 class="operation-title">
1383 <span class="operation-name">
1384 <span class="operation-name">POST</span>
1385 <span class="operation-path">/server/following</span>
1386 </span>
1387 </h2>
1388 <div class="doc-row">
1389 <div class="doc-copy">
1390 <section class="swagger-request-body">
1391 <div class="prop-row">
1392 <div class="prop-name">
1393 <div class="swagger-request-model">
1394 <span class="">
1395 <a class="json-schema-ref" href="#/definitions/Follow">Follow</a>
1396 </span>
1397 </div>
1398 </div>
1399 <div class="prop-value columns small-6">
1400 <!-- <div class="swagger-request-description"> -->
1401 <p>undefined</p>
1402 <!-- </div> -->
1403 </div>
1404 </div>
1405 </section>
1406 </div>
1407 <div class="doc-examples">
1408 <section>
1409 <h5>Request Content-Types:
1410 <span>application/json</span>
1411 </h5>
1412 <h5>Request Example</h5>
1413 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
1414 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1415 <span class="hljs-attr">&quot;follower&quot;</span>: {
1416 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1417 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1418 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1419 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1420 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1421 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1422 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1423 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1424 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1425 <span class="hljs-attr">&quot;avatar&quot;</span>: {
1426 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1427 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1428 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1429 }
1430 },
1431 <span class="hljs-attr">&quot;following&quot;</span>: {
1432 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1433 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1434 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1435 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1436 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1437 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1438 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1439 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1440 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1441 <span class="hljs-attr">&quot;avatar&quot;</span>: {
1442 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1443 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1444 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1445 }
1446 },
1447 <span class="hljs-attr">&quot;score&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1448 <span class="hljs-attr">&quot;state&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1449 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1450 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1451}
1452</code></pre>
1453 <!-- </div> -->
1454 </section>
1455 </div>
1456 </div>
1457 <div class="doc-row">
1458 <div class="doc-copy">
1459 <section class="swagger-responses">
1460 <div class="prop-row prop-group">
1461 <div class="prop-name">
1462 <div class="prop-title">204 No Content</div>
1463 </div>
1464 <div class="prop-value">
1465 <p>Successful operation</p>
1466 </div>
1467 </div>
1468 </section>
1469 </div>
1470 <div class="doc-examples">
1471 <h5>Response Content-Types:
1472 <span>application/json</span>
1473 </h5>
1474 </div>
1475 </div>
1476 <div class="doc-row">
1477 <div class="doc-copy">
1478 <section class="swagger-request-security">
1479 <table class="table">
1480 <thead>
1481 <tr>
1482 <th class="swagger-request-security-schema"></th>
1483 <th class="swagger-request-security-scopes"></th>
1484 </tr>
1485 </thead>
1486 <tbody>
1487 <tr>
1488 <td>
1489 <a href="#security-definition-OAuth2">OAuth2</a>
1490 </td>
1491 <td> </td>
1492 </tr>
1493 </tbody>
1494 </table>
1495 </section>
1496 </div>
1497 </div>
1498 </div>
1499 <h1 id="tag-User" class="swagger-summary-tag" data-traverse-target="tag-User">User</h1>
1500 <div id="operation--users-post" class="operation panel" data-traverse-target="operation--users-post">
1501 <!-- <section class="operation-tags row"> -->
1502 <!-- <div class="doc-copy"> -->
1503 <div class="operation-tags">
1504 <a class="label" href="#tag-User">User</a>
1505 <!---->
1506 </div>
1507 <!-- </div> -->
1508 <!-- </section> -->
1509 <h2 class="operation-title">
1510 <span class="operation-name">
1511 <span class="operation-name">POST</span>
1512 <span class="operation-path">/users</span>
1513 </span>
1514 </h2>
1515 <div class="doc-row">
1516 <div class="doc-copy">
1517 <section class="swagger-request-body">
1518 <div class="prop-row">
1519 <div class="prop-name">
1520 <div class="swagger-request-model">
1521 <span class="">
1522 <a class="json-schema-ref" href="#/definitions/AddUser">AddUser</a>
1523 </span>
1524 </div>
1525 </div>
1526 <div class="prop-value columns small-6">
1527 <!-- <div class="swagger-request-description"> -->
1528 <p>User to create</p>
1529 <!-- </div> -->
1530 </div>
1531 </div>
1532 </section>
1533 </div>
1534 <div class="doc-examples">
1535 <section>
1536 <h5>Request Content-Types:
1537 <span>application/json</span>
1538 </h5>
1539 <h5>Request Example</h5>
1540 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
1541 <span class="hljs-attr">&quot;username&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1542 <span class="hljs-attr">&quot;password&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1543 <span class="hljs-attr">&quot;email&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1544 <span class="hljs-attr">&quot;videoQuota&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1545 <span class="hljs-attr">&quot;role&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1546}
1547</code></pre>
1548 <!-- </div> -->
1549 </section>
1550 </div>
1551 </div>
1552 <div class="doc-row">
1553 <div class="doc-copy">
1554 <section class="swagger-responses">
1555 <div class="prop-row prop-group">
1556 <div class="prop-name">
1557 <div class="prop-title">200 OK</div>
1558 <div class="prop-ref">
1559 <span class="">
1560 <a class="json-schema-ref" href="#/definitions/AddUserResponse">AddUserResponse</a>
1561 </span>
1562 </div>
1563 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
1564 </div>
1565 <div class="prop-value">
1566 <p>successful operation</p>
1567 </div>
1568 </div>
1569 </section>
1570 </div>
1571 <div class="doc-examples">
1572 <h5>Response Content-Types:
1573 <span>application/json</span>
1574 </h5>
1575 <section>
1576 <h5>Response Example
1577 <span>(200 OK)</span>
1578 </h5>
1579 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
1580 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1581 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1582}
1583</code></pre>
1584 <!-- </div> -->
1585 </section>
1586 </div>
1587 </div>
1588 <div class="doc-row">
1589 <div class="doc-copy">
1590 <section class="swagger-request-security">
1591 <table class="table">
1592 <thead>
1593 <tr>
1594 <th class="swagger-request-security-schema"></th>
1595 <th class="swagger-request-security-scopes"></th>
1596 </tr>
1597 </thead>
1598 <tbody>
1599 <tr>
1600 <td>
1601 <a href="#security-definition-OAuth2">OAuth2</a>
1602 </td>
1603 <td> </td>
1604 </tr>
1605 </tbody>
1606 </table>
1607 </section>
1608 </div>
1609 </div>
1610 </div>
1611 <div id="operation--users-get" class="operation panel" data-traverse-target="operation--users-get">
1612 <!-- <section class="operation-tags row"> -->
1613 <!-- <div class="doc-copy"> -->
1614 <div class="operation-tags">
1615 <a class="label" href="#tag-User">User</a>
1616 <!---->
1617 </div>
1618 <!-- </div> -->
1619 <!-- </section> -->
1620 <h2 class="operation-title">
1621 <span class="operation-name">
1622 <span class="operation-name">GET</span>
1623 <span class="operation-path">/users</span>
1624 </span>
1625 </h2>
1626 <div class="doc-row">
1627 <div class="doc-copy">
1628 <section class="swagger-request-params">
1629 <div class="prop-row prop-group">
1630 <div class="prop-name">
1631 <div class="prop-title">start:
1632 <span class="prop-type">
1633 <span class="json-property-type">number</span>
1634 <span class="json-property-range" title="Value limits"></span>
1635 </span>
1636 </div>
1637 <div class="prop-subtitle"> in query </div>
1638 </div>
1639 <div class="prop-value">
1640 <p>Offset</p>
1641 </div>
1642 </div>
1643 <div class="prop-row prop-group">
1644 <div class="prop-name">
1645 <div class="prop-title">count:
1646 <span class="prop-type">
1647 <span class="json-property-type">number</span>
1648 <span class="json-property-range" title="Value limits"></span>
1649 </span>
1650 </div>
1651 <div class="prop-subtitle"> in query </div>
1652 </div>
1653 <div class="prop-value">
1654 <p>Number of items</p>
1655 </div>
1656 </div>
1657 <div class="prop-row prop-group">
1658 <div class="prop-name">
1659 <div class="prop-title">sort:
1660 <span class="prop-type">
1661 <span class="json-property-type">string</span>
1662 <span class="json-property-range" title="Value limits"></span>
1663 </span>
1664 </div>
1665 <div class="prop-subtitle"> in query </div>
1666 </div>
1667 <div class="prop-value">
1668 <p>Sort column (-createdAt for example)</p>
1669 </div>
1670 </div>
1671 </section>
1672 </div>
1673 <div class="doc-examples"></div>
1674 </div>
1675 <div class="doc-row">
1676 <div class="doc-copy">
1677 <section class="swagger-responses">
1678 <div class="prop-row prop-group">
1679 <div class="prop-name">
1680 <div class="prop-title">200 OK</div>
1681 <div class="prop-ref">
1682 <span class="json-schema-ref-array">
1683 <a class="json-schema-ref" href="#/definitions/User">User</a>
1684 </span>
1685 </div>
1686 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
1687 </div>
1688 <div class="prop-value">
1689 <p>successful operation</p>
1690 </div>
1691 </div>
1692 <div class="prop-row prop-inner">
1693 <div class="prop-name">type</div>
1694 <div class="prop-value">
1695 <span class="json-property-type">
1696 <span class="json-schema-ref-array">
1697 <a class="json-schema-ref" href="#/definitions/User">User</a>
1698 </span>
1699 </span>
1700 <span class="json-property-range" title="Value limits"></span>
1701 </div>
1702 </div>
1703 </section>
1704 </div>
1705 <div class="doc-examples">
1706 <h5>Response Content-Types:
1707 <span>application/json</span>
1708 </h5>
1709 <section>
1710 <h5>Response Example
1711 <span>(200 OK)</span>
1712 </h5>
1713 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
1714 {
1715 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1716 <span class="hljs-attr">&quot;username&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1717 <span class="hljs-attr">&quot;email&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1718 <span class="hljs-attr">&quot;displayNSFW&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
1719 <span class="hljs-attr">&quot;autoPlayVideo&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
1720 <span class="hljs-attr">&quot;role&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1721 <span class="hljs-attr">&quot;videoQuota&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1722 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1723 <span class="hljs-attr">&quot;account&quot;</span>: {
1724 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1725 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1726 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1727 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1728 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1729 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1730 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1731 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1732 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1733 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1734 <span class="hljs-attr">&quot;avatar&quot;</span>: {
1735 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1736 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1737 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1738 }
1739 },
1740 <span class="hljs-attr">&quot;videoChannels&quot;</span>: [
1741 {
1742 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1743 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1744 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
1745 <span class="hljs-attr">&quot;ownerAccount&quot;</span>: {
1746 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1747 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1748 }
1749 }
1750 ]
1751 }
1752]
1753</code></pre>
1754 <!-- </div> -->
1755 </section>
1756 </div>
1757 </div>
1758 <div class="doc-row">
1759 <div class="doc-copy">
1760 <section class="swagger-request-security">
1761 <table class="table">
1762 <thead>
1763 <tr>
1764 <th class="swagger-request-security-schema"></th>
1765 <th class="swagger-request-security-scopes"></th>
1766 </tr>
1767 </thead>
1768 <tbody>
1769 <tr>
1770 <td>
1771 <a href="#security-definition-OAuth2">OAuth2</a>
1772 </td>
1773 <td> </td>
1774 </tr>
1775 </tbody>
1776 </table>
1777 </section>
1778 </div>
1779 </div>
1780 </div>
1781 <div id="operation--users--id--delete" class="operation panel" data-traverse-target="operation--users--id--delete">
1782 <!-- <section class="operation-tags row"> -->
1783 <!-- <div class="doc-copy"> -->
1784 <div class="operation-tags">
1785 <a class="label" href="#tag-User">User</a>
1786 <!---->
1787 </div>
1788 <!-- </div> -->
1789 <!-- </section> -->
1790 <h2 class="operation-title">
1791 <span class="operation-name">
1792 <span class="operation-name">DELETE</span>
1793 <span class="operation-path">/users/{id}</span>
1794 </span>
1795 </h2>
1796 <div class="doc-row">
1797 <div class="doc-copy">
1798 <section class="swagger-request-params">
1799 <div class="prop-row prop-group">
1800 <div class="prop-name">
1801 <div class="prop-title">id:
1802 <span class="prop-type">
1803 <span class="json-property-type">number</span>
1804 <span class="json-property-range" title="Value limits"></span>
1805 </span>
1806 </div>
1807 <span class="json-property-required"></span>
1808 <div class="prop-subtitle"> in path </div>
1809 </div>
1810 <div class="prop-value">
1811 <p>The user id</p>
1812 </div>
1813 </div>
1814 </section>
1815 </div>
1816 <div class="doc-examples"></div>
1817 </div>
1818 <div class="doc-row">
1819 <div class="doc-copy">
1820 <section class="swagger-responses">
1821 <div class="prop-row prop-group">
1822 <div class="prop-name">
1823 <div class="prop-title">204 No Content</div>
1824 </div>
1825 <div class="prop-value">
1826 <p>Successful operation</p>
1827 </div>
1828 </div>
1829 </section>
1830 </div>
1831 <div class="doc-examples">
1832 <h5>Response Content-Types:
1833 <span>application/json</span>
1834 </h5>
1835 </div>
1836 </div>
1837 <div class="doc-row">
1838 <div class="doc-copy">
1839 <section class="swagger-request-security">
1840 <table class="table">
1841 <thead>
1842 <tr>
1843 <th class="swagger-request-security-schema"></th>
1844 <th class="swagger-request-security-scopes"></th>
1845 </tr>
1846 </thead>
1847 <tbody>
1848 <tr>
1849 <td>
1850 <a href="#security-definition-OAuth2">OAuth2</a>
1851 </td>
1852 <td> </td>
1853 </tr>
1854 </tbody>
1855 </table>
1856 </section>
1857 </div>
1858 </div>
1859 </div>
1860 <div id="operation--users--id--get" class="operation panel" data-traverse-target="operation--users--id--get">
1861 <!-- <section class="operation-tags row"> -->
1862 <!-- <div class="doc-copy"> -->
1863 <div class="operation-tags">
1864 <a class="label" href="#tag-User">User</a>
1865 <!---->
1866 </div>
1867 <!-- </div> -->
1868 <!-- </section> -->
1869 <h2 class="operation-title">
1870 <span class="operation-name">
1871 <span class="operation-name">GET</span>
1872 <span class="operation-path">/users/{id}</span>
1873 </span>
1874 </h2>
1875 <div class="doc-row">
1876 <div class="doc-copy">
1877 <section class="swagger-request-params">
1878 <div class="prop-row prop-group">
1879 <div class="prop-name">
1880 <div class="prop-title">id:
1881 <span class="prop-type">
1882 <span class="json-property-type">number</span>
1883 <span class="json-property-range" title="Value limits"></span>
1884 </span>
1885 </div>
1886 <span class="json-property-required"></span>
1887 <div class="prop-subtitle"> in path </div>
1888 </div>
1889 <div class="prop-value">
1890 <p>The user id</p>
1891 </div>
1892 </div>
1893 </section>
1894 </div>
1895 <div class="doc-examples"></div>
1896 </div>
1897 <div class="doc-row">
1898 <div class="doc-copy">
1899 <section class="swagger-responses">
1900 <div class="prop-row prop-group">
1901 <div class="prop-name">
1902 <div class="prop-title">200 OK</div>
1903 <div class="prop-ref">
1904 <span class="">
1905 <a class="json-schema-ref" href="#/definitions/User">User</a>
1906 </span>
1907 </div>
1908 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
1909 </div>
1910 <div class="prop-value">
1911 <p>successful operation</p>
1912 </div>
1913 </div>
1914 </section>
1915 </div>
1916 <div class="doc-examples">
1917 <h5>Response Content-Types:
1918 <span>application/json</span>
1919 </h5>
1920 <section>
1921 <h5>Response Example
1922 <span>(200 OK)</span>
1923 </h5>
1924 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
1925 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1926 <span class="hljs-attr">&quot;username&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1927 <span class="hljs-attr">&quot;email&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1928 <span class="hljs-attr">&quot;displayNSFW&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
1929 <span class="hljs-attr">&quot;autoPlayVideo&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
1930 <span class="hljs-attr">&quot;role&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1931 <span class="hljs-attr">&quot;videoQuota&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1932 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1933 <span class="hljs-attr">&quot;account&quot;</span>: {
1934 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1935 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1936 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1937 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1938 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1939 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1940 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1941 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1942 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1943 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1944 <span class="hljs-attr">&quot;avatar&quot;</span>: {
1945 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1946 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1947 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1948 }
1949 },
1950 <span class="hljs-attr">&quot;videoChannels&quot;</span>: [
1951 {
1952 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1953 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
1954 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
1955 <span class="hljs-attr">&quot;ownerAccount&quot;</span>: {
1956 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
1957 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
1958 }
1959 }
1960 ]
1961}
1962</code></pre>
1963 <!-- </div> -->
1964 </section>
1965 </div>
1966 </div>
1967 <div class="doc-row">
1968 <div class="doc-copy">
1969 <section class="swagger-request-security">
1970 <table class="table">
1971 <thead>
1972 <tr>
1973 <th class="swagger-request-security-schema"></th>
1974 <th class="swagger-request-security-scopes"></th>
1975 </tr>
1976 </thead>
1977 <tbody>
1978 <tr>
1979 <td>
1980 <a href="#security-definition-OAuth2">OAuth2</a>
1981 </td>
1982 <td> </td>
1983 </tr>
1984 </tbody>
1985 </table>
1986 </section>
1987 </div>
1988 </div>
1989 </div>
1990 <div id="operation--users--id--put" class="operation panel" data-traverse-target="operation--users--id--put">
1991 <!-- <section class="operation-tags row"> -->
1992 <!-- <div class="doc-copy"> -->
1993 <div class="operation-tags">
1994 <a class="label" href="#tag-User">User</a>
1995 <!---->
1996 </div>
1997 <!-- </div> -->
1998 <!-- </section> -->
1999 <h2 class="operation-title">
2000 <span class="operation-name">
2001 <span class="operation-name">PUT</span>
2002 <span class="operation-path">/users/{id}</span>
2003 </span>
2004 </h2>
2005 <div class="doc-row">
2006 <div class="doc-copy">
2007 <section class="swagger-request-body">
2008 <div class="prop-row">
2009 <div class="prop-name">
2010 <div class="swagger-request-model">
2011 <span class="">
2012 <a class="json-schema-ref" href="#/definitions/UpdateUser">UpdateUser</a>
2013 </span>
2014 </div>
2015 </div>
2016 <div class="prop-value columns small-6">
2017 <!-- <div class="swagger-request-description"> -->
2018 <p>undefined</p>
2019 <!-- </div> -->
2020 </div>
2021 </div>
2022 </section>
2023 <section class="swagger-request-params">
2024 <div class="prop-row prop-group">
2025 <div class="prop-name">
2026 <div class="prop-title">id:
2027 <span class="prop-type">
2028 <span class="json-property-type">number</span>
2029 <span class="json-property-range" title="Value limits"></span>
2030 </span>
2031 </div>
2032 <span class="json-property-required"></span>
2033 <div class="prop-subtitle"> in path </div>
2034 </div>
2035 <div class="prop-value">
2036 <p>The user id</p>
2037 </div>
2038 </div>
2039 </section>
2040 </div>
2041 <div class="doc-examples">
2042 <section>
2043 <h5>Request Content-Types:
2044 <span>application/json</span>
2045 </h5>
2046 <h5>Request Example</h5>
2047 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
2048 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2049 <span class="hljs-attr">&quot;email&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2050 <span class="hljs-attr">&quot;videoQuota&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2051 <span class="hljs-attr">&quot;role&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2052}
2053</code></pre>
2054 <!-- </div> -->
2055 </section>
2056 </div>
2057 </div>
2058 <div class="doc-row">
2059 <div class="doc-copy">
2060 <section class="swagger-responses">
2061 <div class="prop-row prop-group">
2062 <div class="prop-name">
2063 <div class="prop-title">204 No Content</div>
2064 </div>
2065 <div class="prop-value">
2066 <p>Successful operation</p>
2067 </div>
2068 </div>
2069 </section>
2070 </div>
2071 <div class="doc-examples">
2072 <h5>Response Content-Types:
2073 <span>application/json</span>
2074 </h5>
2075 </div>
2076 </div>
2077 <div class="doc-row">
2078 <div class="doc-copy">
2079 <section class="swagger-request-security">
2080 <table class="table">
2081 <thead>
2082 <tr>
2083 <th class="swagger-request-security-schema"></th>
2084 <th class="swagger-request-security-scopes"></th>
2085 </tr>
2086 </thead>
2087 <tbody>
2088 <tr>
2089 <td>
2090 <a href="#security-definition-OAuth2">OAuth2</a>
2091 </td>
2092 <td> </td>
2093 </tr>
2094 </tbody>
2095 </table>
2096 </section>
2097 </div>
2098 </div>
2099 </div>
2100 <div id="operation--users-me-get" class="operation panel" data-traverse-target="operation--users-me-get">
2101 <!-- <section class="operation-tags row"> -->
2102 <!-- <div class="doc-copy"> -->
2103 <div class="operation-tags">
2104 <a class="label" href="#tag-User">User</a>
2105 <!---->
2106 </div>
2107 <!-- </div> -->
2108 <!-- </section> -->
2109 <h2 class="operation-title">
2110 <span class="operation-name">
2111 <span class="operation-name">GET</span>
2112 <span class="operation-path">/users/me</span>
2113 </span>
2114 </h2>
2115 <div class="doc-row">
2116 <div class="doc-copy"> </div>
2117 <div class="doc-examples"></div>
2118 </div>
2119 <div class="doc-row">
2120 <div class="doc-copy">
2121 <section class="swagger-responses">
2122 <div class="prop-row prop-group">
2123 <div class="prop-name">
2124 <div class="prop-title">200 OK</div>
2125 <div class="prop-ref">
2126 <span class="json-schema-ref-array">
2127 <a class="json-schema-ref" href="#/definitions/User">User</a>
2128 </span>
2129 </div>
2130 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
2131 </div>
2132 <div class="prop-value">
2133 <p>successful operation</p>
2134 </div>
2135 </div>
2136 <div class="prop-row prop-inner">
2137 <div class="prop-name">type</div>
2138 <div class="prop-value">
2139 <span class="json-property-type">
2140 <span class="json-schema-ref-array">
2141 <a class="json-schema-ref" href="#/definitions/User">User</a>
2142 </span>
2143 </span>
2144 <span class="json-property-range" title="Value limits"></span>
2145 </div>
2146 </div>
2147 </section>
2148 </div>
2149 <div class="doc-examples">
2150 <h5>Response Content-Types:
2151 <span>application/json</span>
2152 </h5>
2153 <section>
2154 <h5>Response Example
2155 <span>(200 OK)</span>
2156 </h5>
2157 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
2158 {
2159 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2160 <span class="hljs-attr">&quot;username&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2161 <span class="hljs-attr">&quot;email&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2162 <span class="hljs-attr">&quot;displayNSFW&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
2163 <span class="hljs-attr">&quot;autoPlayVideo&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
2164 <span class="hljs-attr">&quot;role&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2165 <span class="hljs-attr">&quot;videoQuota&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2166 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2167 <span class="hljs-attr">&quot;account&quot;</span>: {
2168 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2169 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2170 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2171 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2172 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2173 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2174 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2175 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2176 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2177 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2178 <span class="hljs-attr">&quot;avatar&quot;</span>: {
2179 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2180 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2181 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2182 }
2183 },
2184 <span class="hljs-attr">&quot;videoChannels&quot;</span>: [
2185 {
2186 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2187 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2188 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
2189 <span class="hljs-attr">&quot;ownerAccount&quot;</span>: {
2190 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2191 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2192 }
2193 }
2194 ]
2195 }
2196]
2197</code></pre>
2198 <!-- </div> -->
2199 </section>
2200 </div>
2201 </div>
2202 <div class="doc-row">
2203 <div class="doc-copy">
2204 <section class="swagger-request-security">
2205 <table class="table">
2206 <thead>
2207 <tr>
2208 <th class="swagger-request-security-schema"></th>
2209 <th class="swagger-request-security-scopes"></th>
2210 </tr>
2211 </thead>
2212 <tbody>
2213 <tr>
2214 <td>
2215 <a href="#security-definition-OAuth2">OAuth2</a>
2216 </td>
2217 <td> </td>
2218 </tr>
2219 </tbody>
2220 </table>
2221 </section>
2222 </div>
2223 </div>
2224 </div>
2225 <div id="operation--users-me-put" class="operation panel" data-traverse-target="operation--users-me-put">
2226 <!-- <section class="operation-tags row"> -->
2227 <!-- <div class="doc-copy"> -->
2228 <div class="operation-tags">
2229 <a class="label" href="#tag-User">User</a>
2230 <!---->
2231 </div>
2232 <!-- </div> -->
2233 <!-- </section> -->
2234 <h2 class="operation-title">
2235 <span class="operation-name">
2236 <span class="operation-name">PUT</span>
2237 <span class="operation-path">/users/me</span>
2238 </span>
2239 </h2>
2240 <div class="doc-row">
2241 <div class="doc-copy">
2242 <section class="swagger-request-body">
2243 <div class="prop-row">
2244 <div class="prop-name">
2245 <div class="swagger-request-model">
2246 <span class="">
2247 <a class="json-schema-ref" href="#/definitions/UpdateMe">UpdateMe</a>
2248 </span>
2249 </div>
2250 </div>
2251 <div class="prop-value columns small-6">
2252 <!-- <div class="swagger-request-description"> -->
2253 <p>undefined</p>
2254 <!-- </div> -->
2255 </div>
2256 </div>
2257 </section>
2258 </div>
2259 <div class="doc-examples">
2260 <section>
2261 <h5>Request Content-Types:
2262 <span>application/json</span>
2263 </h5>
2264 <h5>Request Example</h5>
2265 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
2266 <span class="hljs-attr">&quot;password&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2267 <span class="hljs-attr">&quot;email&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2268 <span class="hljs-attr">&quot;displayNSFW&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2269 <span class="hljs-attr">&quot;autoPlayVideo&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2270}
2271</code></pre>
2272 <!-- </div> -->
2273 </section>
2274 </div>
2275 </div>
2276 <div class="doc-row">
2277 <div class="doc-copy">
2278 <section class="swagger-responses">
2279 <div class="prop-row prop-group">
2280 <div class="prop-name">
2281 <div class="prop-title">204 No Content</div>
2282 </div>
2283 <div class="prop-value">
2284 <p>Successful operation</p>
2285 </div>
2286 </div>
2287 </section>
2288 </div>
2289 <div class="doc-examples">
2290 <h5>Response Content-Types:
2291 <span>application/json</span>
2292 </h5>
2293 </div>
2294 </div>
2295 <div class="doc-row">
2296 <div class="doc-copy">
2297 <section class="swagger-request-security">
2298 <table class="table">
2299 <thead>
2300 <tr>
2301 <th class="swagger-request-security-schema"></th>
2302 <th class="swagger-request-security-scopes"></th>
2303 </tr>
2304 </thead>
2305 <tbody>
2306 <tr>
2307 <td>
2308 <a href="#security-definition-OAuth2">OAuth2</a>
2309 </td>
2310 <td> </td>
2311 </tr>
2312 </tbody>
2313 </table>
2314 </section>
2315 </div>
2316 </div>
2317 </div>
2318 <div id="operation--users-me-video-quota-used-get" class="operation panel" data-traverse-target="operation--users-me-video-quota-used-get">
2319 <!-- <section class="operation-tags row"> -->
2320 <!-- <div class="doc-copy"> -->
2321 <div class="operation-tags">
2322 <a class="label" href="#tag-User">User</a>
2323 <!---->
2324 </div>
2325 <!-- </div> -->
2326 <!-- </section> -->
2327 <h2 class="operation-title">
2328 <span class="operation-name">
2329 <span class="operation-name">GET</span>
2330 <span class="operation-path">/users/me/video-quota-used</span>
2331 </span>
2332 </h2>
2333 <div class="doc-row">
2334 <div class="doc-copy"> </div>
2335 <div class="doc-examples"></div>
2336 </div>
2337 <div class="doc-row">
2338 <div class="doc-copy">
2339 <section class="swagger-responses">
2340 <div class="prop-row prop-group">
2341 <div class="prop-name">
2342 <div class="prop-title">200 OK</div>
2343 <div class="prop-ref"> </div>
2344 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
2345 </div>
2346 <div class="prop-value">
2347 <p>successful operation</p>
2348 </div>
2349 </div>
2350 <div class="prop-row prop-inner">
2351 <div class="prop-name">type</div>
2352 <div class="prop-value">
2353 <span class="json-property-type">number</span>
2354 <span class="json-property-range" title="Value limits"></span>
2355 </div>
2356 </div>
2357 </section>
2358 </div>
2359 <div class="doc-examples">
2360 <h5>Response Content-Types:
2361 <span>application/json</span>
2362 </h5>
2363 <section>
2364 <h5>Response Example
2365 <span>(200 OK)</span>
2366 </h5>
2367 <!-- <div class="hljs"> --><pre><code class="hljs lang-json"><span class="hljs-string">&quot;number&quot;</span>
2368</code></pre>
2369 <!-- </div> -->
2370 </section>
2371 </div>
2372 </div>
2373 <div class="doc-row">
2374 <div class="doc-copy">
2375 <section class="swagger-request-security">
2376 <table class="table">
2377 <thead>
2378 <tr>
2379 <th class="swagger-request-security-schema"></th>
2380 <th class="swagger-request-security-scopes"></th>
2381 </tr>
2382 </thead>
2383 <tbody>
2384 <tr>
2385 <td>
2386 <a href="#security-definition-OAuth2">OAuth2</a>
2387 </td>
2388 <td> </td>
2389 </tr>
2390 </tbody>
2391 </table>
2392 </section>
2393 </div>
2394 </div>
2395 </div>
2396 <div id="operation--users-me-videos--videoId--rating-get" class="operation panel" data-traverse-target="operation--users-me-videos--videoId--rating-get">
2397 <!-- <section class="operation-tags row"> -->
2398 <!-- <div class="doc-copy"> -->
2399 <div class="operation-tags">
2400 <a class="label" href="#tag-User">User</a>
2401 <!---->
2402 </div>
2403 <!-- </div> -->
2404 <!-- </section> -->
2405 <h2 class="operation-title">
2406 <span class="operation-name">
2407 <span class="operation-name">GET</span>
2408 <span class="operation-path">/users/me/videos/{videoId}/rating</span>
2409 </span>
2410 </h2>
2411 <div class="doc-row">
2412 <div class="doc-copy">
2413 <section class="swagger-request-params">
2414 <div class="prop-row prop-group">
2415 <div class="prop-name">
2416 <div class="prop-title">videoId:
2417 <span class="prop-type">
2418 <span class="json-property-type">string</span>
2419 <span class="json-property-range" title="Value limits"></span>
2420 </span>
2421 </div>
2422 <span class="json-property-required"></span>
2423 <div class="prop-subtitle"> in path </div>
2424 </div>
2425 <div class="prop-value">
2426 <p>The video id </p>
2427 </div>
2428 </div>
2429 </section>
2430 </div>
2431 <div class="doc-examples"></div>
2432 </div>
2433 <div class="doc-row">
2434 <div class="doc-copy">
2435 <section class="swagger-responses">
2436 <div class="prop-row prop-group">
2437 <div class="prop-name">
2438 <div class="prop-title">200 OK</div>
2439 <div class="prop-ref">
2440 <span class="">
2441 <a class="json-schema-ref" href="#/definitions/GetMeVideoRating">GetMeVideoRating</a>
2442 </span>
2443 </div>
2444 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
2445 </div>
2446 <div class="prop-value">
2447 <p>successful operation</p>
2448 </div>
2449 </div>
2450 </section>
2451 </div>
2452 <div class="doc-examples">
2453 <h5>Response Content-Types:
2454 <span>application/json</span>
2455 </h5>
2456 <section>
2457 <h5>Response Example
2458 <span>(200 OK)</span>
2459 </h5>
2460 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
2461 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2462 <span class="hljs-attr">&quot;rating&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>
2463}
2464</code></pre>
2465 <!-- </div> -->
2466 </section>
2467 </div>
2468 </div>
2469 <div class="doc-row">
2470 <div class="doc-copy">
2471 <section class="swagger-request-security">
2472 <table class="table">
2473 <thead>
2474 <tr>
2475 <th class="swagger-request-security-schema"></th>
2476 <th class="swagger-request-security-scopes"></th>
2477 </tr>
2478 </thead>
2479 <tbody>
2480 <tr>
2481 <td>
2482 <a href="#security-definition-OAuth2">OAuth2</a>
2483 </td>
2484 <td> </td>
2485 </tr>
2486 </tbody>
2487 </table>
2488 </section>
2489 </div>
2490 </div>
2491 </div>
2492 <div id="operation--users-me-videos-get" class="operation panel" data-traverse-target="operation--users-me-videos-get">
2493 <!-- <section class="operation-tags row"> -->
2494 <!-- <div class="doc-copy"> -->
2495 <div class="operation-tags">
2496 <a class="label" href="#tag-User">User</a>
2497 <!---->
2498 </div>
2499 <!-- </div> -->
2500 <!-- </section> -->
2501 <h2 class="operation-title">
2502 <span class="operation-name">
2503 <span class="operation-name">GET</span>
2504 <span class="operation-path">/users/me/videos</span>
2505 </span>
2506 </h2>
2507 <div class="doc-row">
2508 <div class="doc-copy">
2509 <section class="swagger-request-params">
2510 <div class="prop-row prop-group">
2511 <div class="prop-name">
2512 <div class="prop-title">start:
2513 <span class="prop-type">
2514 <span class="json-property-type">number</span>
2515 <span class="json-property-range" title="Value limits"></span>
2516 </span>
2517 </div>
2518 <div class="prop-subtitle"> in query </div>
2519 </div>
2520 <div class="prop-value">
2521 <p>Offset</p>
2522 </div>
2523 </div>
2524 <div class="prop-row prop-group">
2525 <div class="prop-name">
2526 <div class="prop-title">count:
2527 <span class="prop-type">
2528 <span class="json-property-type">number</span>
2529 <span class="json-property-range" title="Value limits"></span>
2530 </span>
2531 </div>
2532 <div class="prop-subtitle"> in query </div>
2533 </div>
2534 <div class="prop-value">
2535 <p>Number of items</p>
2536 </div>
2537 </div>
2538 <div class="prop-row prop-group">
2539 <div class="prop-name">
2540 <div class="prop-title">sort:
2541 <span class="prop-type">
2542 <span class="json-property-type">string</span>
2543 <span class="json-property-range" title="Value limits"></span>
2544 </span>
2545 </div>
2546 <div class="prop-subtitle"> in query </div>
2547 </div>
2548 <div class="prop-value">
2549 <p>Sort column (-createdAt for example)</p>
2550 </div>
2551 </div>
2552 </section>
2553 </div>
2554 <div class="doc-examples"></div>
2555 </div>
2556 <div class="doc-row">
2557 <div class="doc-copy">
2558 <section class="swagger-responses">
2559 <div class="prop-row prop-group">
2560 <div class="prop-name">
2561 <div class="prop-title">200 OK</div>
2562 <div class="prop-ref">
2563 <span class="json-schema-ref-array">
2564 <a class="json-schema-ref" href="#/definitions/Video">Video</a>
2565 </span>
2566 </div>
2567 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
2568 </div>
2569 <div class="prop-value">
2570 <p>successful operation</p>
2571 </div>
2572 </div>
2573 <div class="prop-row prop-inner">
2574 <div class="prop-name">type</div>
2575 <div class="prop-value">
2576 <span class="json-property-type">
2577 <span class="json-schema-ref-array">
2578 <a class="json-schema-ref" href="#/definitions/Video">Video</a>
2579 </span>
2580 </span>
2581 <span class="json-property-range" title="Value limits"></span>
2582 </div>
2583 </div>
2584 </section>
2585 </div>
2586 <div class="doc-examples">
2587 <h5>Response Content-Types:
2588 <span>application/json</span>
2589 </h5>
2590 <section>
2591 <h5>Response Example
2592 <span>(200 OK)</span>
2593 </h5>
2594 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
2595 {
2596 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2597 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2598 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2599 <span class="hljs-attr">&quot;publishedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2600 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2601 <span class="hljs-attr">&quot;category&quot;</span>: {
2602 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2603 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2604 },
2605 <span class="hljs-attr">&quot;licence&quot;</span>: {
2606 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2607 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2608 },
2609 <span class="hljs-attr">&quot;language&quot;</span>: {
2610 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2611 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2612 },
2613 <span class="hljs-attr">&quot;privacy&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2614 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2615 <span class="hljs-attr">&quot;duration&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2616 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
2617 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2618 <span class="hljs-attr">&quot;thumbnailPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2619 <span class="hljs-attr">&quot;previewPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2620 <span class="hljs-attr">&quot;embedPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2621 <span class="hljs-attr">&quot;views&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2622 <span class="hljs-attr">&quot;likes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2623 <span class="hljs-attr">&quot;dislikes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2624 <span class="hljs-attr">&quot;nsfw&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
2625 <span class="hljs-attr">&quot;account&quot;</span>: {
2626 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2627 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2628 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2629 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2630 <span class="hljs-attr">&quot;avatar&quot;</span>: {
2631 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2632 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2633 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2634 }
2635 }
2636 }
2637]
2638</code></pre>
2639 <!-- </div> -->
2640 </section>
2641 </div>
2642 </div>
2643 <div class="doc-row">
2644 <div class="doc-copy">
2645 <section class="swagger-request-security">
2646 <table class="table">
2647 <thead>
2648 <tr>
2649 <th class="swagger-request-security-schema"></th>
2650 <th class="swagger-request-security-scopes"></th>
2651 </tr>
2652 </thead>
2653 <tbody>
2654 <tr>
2655 <td>
2656 <a href="#security-definition-OAuth2">OAuth2</a>
2657 </td>
2658 <td> </td>
2659 </tr>
2660 </tbody>
2661 </table>
2662 </section>
2663 </div>
2664 </div>
2665 </div>
2666 <div id="operation--users-register-post" class="operation panel" data-traverse-target="operation--users-register-post">
2667 <!-- <section class="operation-tags row"> -->
2668 <!-- <div class="doc-copy"> -->
2669 <div class="operation-tags">
2670 <a class="label" href="#tag-User">User</a>
2671 <!---->
2672 </div>
2673 <!-- </div> -->
2674 <!-- </section> -->
2675 <h2 class="operation-title">
2676 <span class="operation-name">
2677 <span class="operation-name">POST</span>
2678 <span class="operation-path">/users/register</span>
2679 </span>
2680 </h2>
2681 <div class="doc-row">
2682 <div class="doc-copy">
2683 <section class="swagger-request-body">
2684 <div class="prop-row">
2685 <div class="prop-name">
2686 <div class="swagger-request-model">
2687 <span class="">
2688 <a class="json-schema-ref" href="#/definitions/RegisterUser">RegisterUser</a>
2689 </span>
2690 </div>
2691 </div>
2692 <div class="prop-value columns small-6">
2693 <!-- <div class="swagger-request-description"> -->
2694 <p>undefined</p>
2695 <!-- </div> -->
2696 </div>
2697 </div>
2698 </section>
2699 </div>
2700 <div class="doc-examples">
2701 <section>
2702 <h5>Request Content-Types:
2703 <span>application/json</span>
2704 </h5>
2705 <h5>Request Example</h5>
2706 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
2707 <span class="hljs-attr">&quot;username&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2708 <span class="hljs-attr">&quot;password&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2709 <span class="hljs-attr">&quot;email&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2710}
2711</code></pre>
2712 <!-- </div> -->
2713 </section>
2714 </div>
2715 </div>
2716 <div class="doc-row">
2717 <div class="doc-copy">
2718 <section class="swagger-responses">
2719 <div class="prop-row prop-group">
2720 <div class="prop-name">
2721 <div class="prop-title">204 No Content</div>
2722 </div>
2723 <div class="prop-value">
2724 <p>Successful operation</p>
2725 </div>
2726 </div>
2727 </section>
2728 </div>
2729 <div class="doc-examples">
2730 <h5>Response Content-Types:
2731 <span>application/json</span>
2732 </h5>
2733 </div>
2734 </div>
2735 </div>
2736 <div id="operation--users-me-avatar-pick-post" class="operation panel" data-traverse-target="operation--users-me-avatar-pick-post">
2737 <!-- <section class="operation-tags row"> -->
2738 <!-- <div class="doc-copy"> -->
2739 <div class="operation-tags">
2740 <a class="label" href="#tag-User">User</a>
2741 <!---->
2742 </div>
2743 <!-- </div> -->
2744 <!-- </section> -->
2745 <h2 class="operation-title">
2746 <span class="operation-name">
2747 <span class="operation-name">POST</span>
2748 <span class="operation-path">/users/me/avatar/pick</span>
2749 </span>
2750 </h2>
2751 <div class="doc-row">
2752 <div class="doc-copy">
2753 <section class="swagger-request-params">
2754 <div class="prop-row prop-group">
2755 <div class="prop-name">
2756 <div class="prop-title">avatarfile:
2757 <span class="prop-type">
2758 <span class="json-property-type">file</span>
2759 <span class="json-property-range" title="Value limits"></span>
2760 </span>
2761 </div>
2762 <div class="prop-subtitle"> in formData </div>
2763 </div>
2764 <div class="prop-value">
2765 <p>The file to upload.</p>
2766 </div>
2767 </div>
2768 </section>
2769 </div>
2770 <div class="doc-examples"></div>
2771 </div>
2772 <div class="doc-row">
2773 <div class="doc-copy">
2774 <section class="swagger-responses">
2775 <div class="prop-row prop-group">
2776 <div class="prop-name">
2777 <div class="prop-title">200 OK</div>
2778 <div class="prop-ref">
2779 <span class="">
2780 <a class="json-schema-ref" href="#/definitions/Avatar">Avatar</a>
2781 </span>
2782 </div>
2783 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
2784 </div>
2785 <div class="prop-value">
2786 <p>successful operation</p>
2787 </div>
2788 </div>
2789 </section>
2790 </div>
2791 <div class="doc-examples">
2792 <h5>Response Content-Types:
2793 <span>application/json</span>
2794 </h5>
2795 <section>
2796 <h5>Response Example
2797 <span>(200 OK)</span>
2798 </h5>
2799 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
2800 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2801 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2802 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2803}
2804</code></pre>
2805 <!-- </div> -->
2806 </section>
2807 </div>
2808 </div>
2809 <div class="doc-row">
2810 <div class="doc-copy">
2811 <section class="swagger-request-security">
2812 <table class="table">
2813 <thead>
2814 <tr>
2815 <th class="swagger-request-security-schema"></th>
2816 <th class="swagger-request-security-scopes"></th>
2817 </tr>
2818 </thead>
2819 <tbody>
2820 <tr>
2821 <td>
2822 <a href="#security-definition-OAuth2">OAuth2</a>
2823 </td>
2824 <td> </td>
2825 </tr>
2826 </tbody>
2827 </table>
2828 </section>
2829 </div>
2830 </div>
2831 </div>
2832 <h1 id="tag-Video" class="swagger-summary-tag" data-traverse-target="tag-Video">Video</h1>
2833 <div id="operation--videos-get" class="operation panel" data-traverse-target="operation--videos-get">
2834 <!-- <section class="operation-tags row"> -->
2835 <!-- <div class="doc-copy"> -->
2836 <div class="operation-tags">
2837 <a class="label" href="#tag-Video">Video</a>
2838 <!---->
2839 </div>
2840 <!-- </div> -->
2841 <!-- </section> -->
2842 <h2 class="operation-title">
2843 <span class="operation-name">
2844 <span class="operation-name">GET</span>
2845 <span class="operation-path">/videos</span>
2846 </span>
2847 </h2>
2848 <div class="doc-row">
2849 <div class="doc-copy">
2850 <section class="swagger-request-params">
2851 <div class="prop-row prop-group">
2852 <div class="prop-name">
2853 <div class="prop-title">category:
2854 <span class="prop-type">
2855 <span class="json-property-type">number</span>
2856 <span class="json-property-range" title="Value limits"></span>
2857 </span>
2858 </div>
2859 <div class="prop-subtitle"> in query </div>
2860 </div>
2861 <div class="prop-value">
2862 <p>category id of the video</p>
2863 </div>
2864 </div>
2865 <div class="prop-row prop-group">
2866 <div class="prop-name">
2867 <div class="prop-title">start:
2868 <span class="prop-type">
2869 <span class="json-property-type">number</span>
2870 <span class="json-property-range" title="Value limits"></span>
2871 </span>
2872 </div>
2873 <div class="prop-subtitle"> in query </div>
2874 </div>
2875 <div class="prop-value">
2876 <p>Offset</p>
2877 </div>
2878 </div>
2879 <div class="prop-row prop-group">
2880 <div class="prop-name">
2881 <div class="prop-title">count:
2882 <span class="prop-type">
2883 <span class="json-property-type">number</span>
2884 <span class="json-property-range" title="Value limits"></span>
2885 </span>
2886 </div>
2887 <div class="prop-subtitle"> in query </div>
2888 </div>
2889 <div class="prop-value">
2890 <p>Number of items</p>
2891 </div>
2892 </div>
2893 <div class="prop-row prop-group">
2894 <div class="prop-name">
2895 <div class="prop-title">sort:
2896 <span class="prop-type">
2897 <span class="json-property-type">string</span>
2898 <span class="json-property-range" title="Value limits"></span>
2899 </span>
2900 </div>
2901 <div class="prop-subtitle"> in query </div>
2902 </div>
2903 <div class="prop-value">
2904 <p>Sort column (-createdAt for example)</p>
2905 </div>
2906 </div>
2907 </section>
2908 </div>
2909 <div class="doc-examples"></div>
2910 </div>
2911 <div class="doc-row">
2912 <div class="doc-copy">
2913 <section class="swagger-responses">
2914 <div class="prop-row prop-group">
2915 <div class="prop-name">
2916 <div class="prop-title">200 OK</div>
2917 <div class="prop-ref">
2918 <span class="json-schema-ref-array">
2919 <a class="json-schema-ref" href="#/definitions/Video">Video</a>
2920 </span>
2921 </div>
2922 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
2923 </div>
2924 <div class="prop-value">
2925 <p>successful operation</p>
2926 </div>
2927 </div>
2928 <div class="prop-row prop-inner">
2929 <div class="prop-name">type</div>
2930 <div class="prop-value">
2931 <span class="json-property-type">
2932 <span class="json-schema-ref-array">
2933 <a class="json-schema-ref" href="#/definitions/Video">Video</a>
2934 </span>
2935 </span>
2936 <span class="json-property-range" title="Value limits"></span>
2937 </div>
2938 </div>
2939 </section>
2940 </div>
2941 <div class="doc-examples">
2942 <h5>Response Content-Types:
2943 <span>application/json</span>
2944 </h5>
2945 <section>
2946 <h5>Response Example
2947 <span>(200 OK)</span>
2948 </h5>
2949 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
2950 {
2951 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2952 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2953 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2954 <span class="hljs-attr">&quot;publishedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2955 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2956 <span class="hljs-attr">&quot;category&quot;</span>: {
2957 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2958 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2959 },
2960 <span class="hljs-attr">&quot;licence&quot;</span>: {
2961 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2962 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2963 },
2964 <span class="hljs-attr">&quot;language&quot;</span>: {
2965 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2966 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2967 },
2968 <span class="hljs-attr">&quot;privacy&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2969 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2970 <span class="hljs-attr">&quot;duration&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2971 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
2972 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2973 <span class="hljs-attr">&quot;thumbnailPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2974 <span class="hljs-attr">&quot;previewPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2975 <span class="hljs-attr">&quot;embedPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2976 <span class="hljs-attr">&quot;views&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2977 <span class="hljs-attr">&quot;likes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2978 <span class="hljs-attr">&quot;dislikes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
2979 <span class="hljs-attr">&quot;nsfw&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
2980 <span class="hljs-attr">&quot;account&quot;</span>: {
2981 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2982 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2983 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2984 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2985 <span class="hljs-attr">&quot;avatar&quot;</span>: {
2986 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2987 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
2988 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
2989 }
2990 }
2991 }
2992]
2993</code></pre>
2994 <!-- </div> -->
2995 </section>
2996 </div>
2997 </div>
2998 </div>
2999 <div id="operation--videos-categories-get" class="operation panel" data-traverse-target="operation--videos-categories-get">
3000 <!-- <section class="operation-tags row"> -->
3001 <!-- <div class="doc-copy"> -->
3002 <div class="operation-tags">
3003 <a class="label" href="#tag-Video">Video</a>
3004 <!---->
3005 </div>
3006 <!-- </div> -->
3007 <!-- </section> -->
3008 <h2 class="operation-title">
3009 <span class="operation-name">
3010 <span class="operation-name">GET</span>
3011 <span class="operation-path">/videos/categories</span>
3012 </span>
3013 </h2>
3014 <div class="doc-row">
3015 <div class="doc-copy"> </div>
3016 <div class="doc-examples"></div>
3017 </div>
3018 <div class="doc-row">
3019 <div class="doc-copy">
3020 <section class="swagger-responses">
3021 <div class="prop-row prop-group">
3022 <div class="prop-name">
3023 <div class="prop-title">200 OK</div>
3024 <div class="prop-ref"> </div>
3025 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
3026 </div>
3027 <div class="prop-value">
3028 <p>successful operation</p>
3029 </div>
3030 </div>
3031 <div class="prop-row prop-inner">
3032 <div class="prop-name">type</div>
3033 <div class="prop-value">
3034 <span class="json-property-type">string[]</span>
3035 <span class="json-property-range" title="Value limits"></span>
3036 </div>
3037 </div>
3038 </section>
3039 </div>
3040 <div class="doc-examples">
3041 <h5>Response Content-Types:
3042 <span>application/json</span>
3043 </h5>
3044 <section>
3045 <h5>Response Example
3046 <span>(200 OK)</span>
3047 </h5>
3048 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
3049 <span class="hljs-string">&quot;string&quot;</span>
3050]
3051</code></pre>
3052 <!-- </div> -->
3053 </section>
3054 </div>
3055 </div>
3056 </div>
3057 <div id="operation--videos-licences-get" class="operation panel" data-traverse-target="operation--videos-licences-get">
3058 <!-- <section class="operation-tags row"> -->
3059 <!-- <div class="doc-copy"> -->
3060 <div class="operation-tags">
3061 <a class="label" href="#tag-Video">Video</a>
3062 <!---->
3063 </div>
3064 <!-- </div> -->
3065 <!-- </section> -->
3066 <h2 class="operation-title">
3067 <span class="operation-name">
3068 <span class="operation-name">GET</span>
3069 <span class="operation-path">/videos/licences</span>
3070 </span>
3071 </h2>
3072 <div class="doc-row">
3073 <div class="doc-copy"> </div>
3074 <div class="doc-examples"></div>
3075 </div>
3076 <div class="doc-row">
3077 <div class="doc-copy">
3078 <section class="swagger-responses">
3079 <div class="prop-row prop-group">
3080 <div class="prop-name">
3081 <div class="prop-title">200 OK</div>
3082 <div class="prop-ref"> </div>
3083 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
3084 </div>
3085 <div class="prop-value">
3086 <p>successful operation</p>
3087 </div>
3088 </div>
3089 <div class="prop-row prop-inner">
3090 <div class="prop-name">type</div>
3091 <div class="prop-value">
3092 <span class="json-property-type">string[]</span>
3093 <span class="json-property-range" title="Value limits"></span>
3094 </div>
3095 </div>
3096 </section>
3097 </div>
3098 <div class="doc-examples">
3099 <h5>Response Content-Types:
3100 <span>application/json</span>
3101 </h5>
3102 <section>
3103 <h5>Response Example
3104 <span>(200 OK)</span>
3105 </h5>
3106 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
3107 <span class="hljs-string">&quot;string&quot;</span>
3108]
3109</code></pre>
3110 <!-- </div> -->
3111 </section>
3112 </div>
3113 </div>
3114 </div>
3115 <div id="operation--videos-languages-get" class="operation panel" data-traverse-target="operation--videos-languages-get">
3116 <!-- <section class="operation-tags row"> -->
3117 <!-- <div class="doc-copy"> -->
3118 <div class="operation-tags">
3119 <a class="label" href="#tag-Video">Video</a>
3120 <!---->
3121 </div>
3122 <!-- </div> -->
3123 <!-- </section> -->
3124 <h2 class="operation-title">
3125 <span class="operation-name">
3126 <span class="operation-name">GET</span>
3127 <span class="operation-path">/videos/languages</span>
3128 </span>
3129 </h2>
3130 <div class="doc-row">
3131 <div class="doc-copy"> </div>
3132 <div class="doc-examples"></div>
3133 </div>
3134 <div class="doc-row">
3135 <div class="doc-copy">
3136 <section class="swagger-responses">
3137 <div class="prop-row prop-group">
3138 <div class="prop-name">
3139 <div class="prop-title">200 OK</div>
3140 <div class="prop-ref"> </div>
3141 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
3142 </div>
3143 <div class="prop-value">
3144 <p>successful operation</p>
3145 </div>
3146 </div>
3147 <div class="prop-row prop-inner">
3148 <div class="prop-name">type</div>
3149 <div class="prop-value">
3150 <span class="json-property-type">string[]</span>
3151 <span class="json-property-range" title="Value limits"></span>
3152 </div>
3153 </div>
3154 </section>
3155 </div>
3156 <div class="doc-examples">
3157 <h5>Response Content-Types:
3158 <span>application/json</span>
3159 </h5>
3160 <section>
3161 <h5>Response Example
3162 <span>(200 OK)</span>
3163 </h5>
3164 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
3165 <span class="hljs-string">&quot;string&quot;</span>
3166]
3167</code></pre>
3168 <!-- </div> -->
3169 </section>
3170 </div>
3171 </div>
3172 </div>
3173 <div id="operation--videos-privacies-get" class="operation panel" data-traverse-target="operation--videos-privacies-get">
3174 <!-- <section class="operation-tags row"> -->
3175 <!-- <div class="doc-copy"> -->
3176 <div class="operation-tags">
3177 <a class="label" href="#tag-Video">Video</a>
3178 <!---->
3179 </div>
3180 <!-- </div> -->
3181 <!-- </section> -->
3182 <h2 class="operation-title">
3183 <span class="operation-name">
3184 <span class="operation-name">GET</span>
3185 <span class="operation-path">/videos/privacies</span>
3186 </span>
3187 </h2>
3188 <div class="doc-row">
3189 <div class="doc-copy"> </div>
3190 <div class="doc-examples"></div>
3191 </div>
3192 <div class="doc-row">
3193 <div class="doc-copy">
3194 <section class="swagger-responses">
3195 <div class="prop-row prop-group">
3196 <div class="prop-name">
3197 <div class="prop-title">200 OK</div>
3198 <div class="prop-ref"> </div>
3199 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
3200 </div>
3201 <div class="prop-value">
3202 <p>successful operation</p>
3203 </div>
3204 </div>
3205 <div class="prop-row prop-inner">
3206 <div class="prop-name">type</div>
3207 <div class="prop-value">
3208 <span class="json-property-type">string[]</span>
3209 <span class="json-property-range" title="Value limits"></span>
3210 </div>
3211 </div>
3212 </section>
3213 </div>
3214 <div class="doc-examples">
3215 <h5>Response Content-Types:
3216 <span>application/json</span>
3217 </h5>
3218 <section>
3219 <h5>Response Example
3220 <span>(200 OK)</span>
3221 </h5>
3222 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
3223 <span class="hljs-string">&quot;string&quot;</span>
3224]
3225</code></pre>
3226 <!-- </div> -->
3227 </section>
3228 </div>
3229 </div>
3230 </div>
3231 <div id="operation--videos--id--put" class="operation panel" data-traverse-target="operation--videos--id--put">
3232 <!-- <section class="operation-tags row"> -->
3233 <!-- <div class="doc-copy"> -->
3234 <div class="operation-tags">
3235 <a class="label" href="#tag-Video">Video</a>
3236 <!---->
3237 </div>
3238 <!-- </div> -->
3239 <!-- </section> -->
3240 <h2 class="operation-title">
3241 <span class="operation-name">
3242 <span class="operation-name">PUT</span>
3243 <span class="operation-path">/videos/{id}</span>
3244 </span>
3245 </h2>
3246 <div class="doc-row">
3247 <div class="doc-copy">
3248 <section class="swagger-request-params">
3249 <div class="prop-row prop-group">
3250 <div class="prop-name">
3251 <div class="prop-title">id:
3252 <span class="prop-type">
3253 <span class="json-property-type">string</span>
3254 <span class="json-property-range" title="Value limits"></span>
3255 </span>
3256 </div>
3257 <span class="json-property-required"></span>
3258 <div class="prop-subtitle"> in path </div>
3259 </div>
3260 <div class="prop-value">
3261 <p>The video id or uuid</p>
3262 </div>
3263 </div>
3264 <div class="prop-row prop-group">
3265 <div class="prop-name">
3266 <div class="prop-title">thumbnailfile:
3267 <span class="prop-type">
3268 <span class="json-property-type">file</span>
3269 <span class="json-property-range" title="Value limits"></span>
3270 </span>
3271 </div>
3272 <div class="prop-subtitle"> in formData </div>
3273 </div>
3274 <div class="prop-value">
3275 <p>Video thumbnail file</p>
3276 </div>
3277 </div>
3278 <div class="prop-row prop-group">
3279 <div class="prop-name">
3280 <div class="prop-title">previewfile:
3281 <span class="prop-type">
3282 <span class="json-property-type">file</span>
3283 <span class="json-property-range" title="Value limits"></span>
3284 </span>
3285 </div>
3286 <div class="prop-subtitle"> in formData </div>
3287 </div>
3288 <div class="prop-value">
3289 <p>Video preview file</p>
3290 </div>
3291 </div>
3292 <div class="prop-row prop-group">
3293 <div class="prop-name">
3294 <div class="prop-title">category:
3295 <span class="prop-type">
3296 <span class="json-property-type">number</span>
3297 <span class="json-property-range" title="Value limits"></span>
3298 </span>
3299 </div>
3300 <div class="prop-subtitle"> in formData </div>
3301 </div>
3302 <div class="prop-value">
3303 <p>Video category</p>
3304 </div>
3305 </div>
3306 <div class="prop-row prop-group">
3307 <div class="prop-name">
3308 <div class="prop-title">licence:
3309 <span class="prop-type">
3310 <span class="json-property-type">number</span>
3311 <span class="json-property-range" title="Value limits"></span>
3312 </span>
3313 </div>
3314 <div class="prop-subtitle"> in formData </div>
3315 </div>
3316 <div class="prop-value">
3317 <p>Video licence</p>
3318 </div>
3319 </div>
3320 <div class="prop-row prop-group">
3321 <div class="prop-name">
3322 <div class="prop-title">language:
3323 <span class="prop-type">
3324 <span class="json-property-type">string</span>
3325 <span class="json-property-range" title="Value limits"></span>
3326 </span>
3327 </div>
3328 <div class="prop-subtitle"> in formData </div>
3329 </div>
3330 <div class="prop-value">
3331 <p>Video language</p>
3332 </div>
3333 </div>
3334 <div class="prop-row prop-group">
3335 <div class="prop-name">
3336 <div class="prop-title">description:
3337 <span class="prop-type">
3338 <span class="json-property-type">string</span>
3339 <span class="json-property-range" title="Value limits"></span>
3340 </span>
3341 </div>
3342 <div class="prop-subtitle"> in formData </div>
3343 </div>
3344 <div class="prop-value">
3345 <p>Video description</p>
3346 </div>
3347 </div>
3348 <div class="prop-row prop-group">
3349 <div class="prop-name">
3350 <div class="prop-title">waitTranscoding:
3351 <span class="prop-type">
3352 <span class="json-property-type">boolean</span>
3353 <span class="json-property-range" title="Value limits"></span>
3354 </span>
3355 </div>
3356 <div class="prop-subtitle"> in formData </div>
3357 </div>
3358 <div class="prop-value">
3359 <p>Whether or not we wait transcoding before publish the video</p>
3360 </div>
3361 </div>
3362 <div class="prop-row prop-group">
3363 <div class="prop-name">
3364 <div class="prop-title">support:
3365 <span class="prop-type">
3366 <span class="json-property-type">string</span>
3367 <span class="json-property-range" title="Value limits"></span>
3368 </span>
3369 </div>
3370 <div class="prop-subtitle"> in formData </div>
3371 </div>
3372 <div class="prop-value">
3373 <p>Text describing how to support the video uploader</p>
3374 </div>
3375 </div>
3376 <div class="prop-row prop-group">
3377 <div class="prop-name">
3378 <div class="prop-title">nsfw:
3379 <span class="prop-type">
3380 <span class="json-property-type">boolean</span>
3381 <span class="json-property-range" title="Value limits"></span>
3382 </span>
3383 </div>
3384 <div class="prop-subtitle"> in formData </div>
3385 </div>
3386 <div class="prop-value">
3387 <p>Whether or not this video contains sensitive content</p>
3388 </div>
3389 </div>
3390 <div class="prop-row prop-group">
3391 <div class="prop-name">
3392 <div class="prop-title">name:
3393 <span class="prop-type">
3394 <span class="json-property-type">string</span>
3395 <span class="json-property-range" title="Value limits"></span>
3396 </span>
3397 </div>
3398 <div class="prop-subtitle"> in formData </div>
3399 </div>
3400 <div class="prop-value">
3401 <p>Video name</p>
3402 </div>
3403 </div>
3404 <div class="prop-row prop-group">
3405 <div class="prop-name">
3406 <div class="prop-title">tags:
3407 <span class="prop-type">
3408 <span class="json-property-type">string[]</span>
3409 <span class="json-property-range" title="Value limits"></span>
3410 </span>
3411 </div>
3412 <div class="prop-subtitle"> in formData </div>
3413 </div>
3414 <div class="prop-value">
3415 <p>Video tags</p>
3416 </div>
3417 </div>
3418 <div class="prop-row prop-group">
3419 <div class="prop-name">
3420 <div class="prop-title">commentsEnabled:
3421 <span class="prop-type">
3422 <span class="json-property-type">boolean</span>
3423 <span class="json-property-range" title="Value limits"></span>
3424 </span>
3425 </div>
3426 <div class="prop-subtitle"> in formData </div>
3427 </div>
3428 <div class="prop-value">
3429 <p>Enable or disable comments for this video</p>
3430 </div>
3431 </div>
3432 <div class="prop-row prop-group">
3433 <div class="prop-name">
3434 <div class="prop-title">privacy:
3435 <span class="prop-type">
3436 <span class="json-property-type">string</span>
3437 <span class="json-property-enum" title="Possible values">
3438 <span class="json-property-enum-item">Public</span>,
3439 <span class="json-property-enum-item">Unlisted</span>
3440 </span>
3441 <span class="json-property-range" title="Value limits"></span>
3442 </span>
3443 </div>
3444 <div class="prop-subtitle"> in formData </div>
3445 </div>
3446 <div class="prop-value">
3447 <p>Video privacy</p>
3448 </div>
3449 </div>
3450 <div class="prop-row prop-group">
3451 <div class="prop-name">
3452 <div class="prop-title">scheduleUpdate:
3453 <span class="prop-type">
3454 <span class="json-property-type">object</span>
3455 <span class="json-property-range" title="Value limits"></span>
3456 </span>
3457 </div>
3458 <div class="prop-subtitle"> in formData </div>
3459 </div>
3460 <div class="prop-value">
3461 <p>Schedule an update at a specific datetime</p>
3462 </div>
3463 </div>
3464 </section>
3465 </div>
3466 <div class="doc-examples"></div>
3467 </div>
3468 <div class="doc-row">
3469 <div class="doc-copy">
3470 <section class="swagger-responses">
3471 <div class="prop-row prop-group">
3472 <div class="prop-name">
3473 <div class="prop-title">200 OK</div>
3474 <div class="prop-ref">
3475 <span class="">
3476 <a class="json-schema-ref" href="#/definitions/Video">Video</a>
3477 </span>
3478 </div>
3479 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
3480 </div>
3481 <div class="prop-value">
3482 <p>successful operation</p>
3483 </div>
3484 </div>
3485 </section>
3486 </div>
3487 <div class="doc-examples">
3488 <h5>Response Content-Types:
3489 <span>application/json</span>
3490 </h5>
3491 <section>
3492 <h5>Response Example
3493 <span>(200 OK)</span>
3494 </h5>
3495 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
3496 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3497 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3498 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3499 <span class="hljs-attr">&quot;publishedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3500 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3501 <span class="hljs-attr">&quot;category&quot;</span>: {
3502 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3503 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
3504 },
3505 <span class="hljs-attr">&quot;licence&quot;</span>: {
3506 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3507 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
3508 },
3509 <span class="hljs-attr">&quot;language&quot;</span>: {
3510 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3511 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
3512 },
3513 <span class="hljs-attr">&quot;privacy&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3514 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3515 <span class="hljs-attr">&quot;duration&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3516 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
3517 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3518 <span class="hljs-attr">&quot;thumbnailPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3519 <span class="hljs-attr">&quot;previewPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3520 <span class="hljs-attr">&quot;embedPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3521 <span class="hljs-attr">&quot;views&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3522 <span class="hljs-attr">&quot;likes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3523 <span class="hljs-attr">&quot;dislikes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3524 <span class="hljs-attr">&quot;nsfw&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
3525 <span class="hljs-attr">&quot;account&quot;</span>: {
3526 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3527 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3528 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3529 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3530 <span class="hljs-attr">&quot;avatar&quot;</span>: {
3531 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3532 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3533 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
3534 }
3535 }
3536}
3537</code></pre>
3538 <!-- </div> -->
3539 </section>
3540 </div>
3541 </div>
3542 <div class="doc-row">
3543 <div class="doc-copy">
3544 <section class="swagger-request-security">
3545 <table class="table">
3546 <thead>
3547 <tr>
3548 <th class="swagger-request-security-schema"></th>
3549 <th class="swagger-request-security-scopes"></th>
3550 </tr>
3551 </thead>
3552 <tbody>
3553 <tr>
3554 <td>
3555 <a href="#security-definition-OAuth2">OAuth2</a>
3556 </td>
3557 <td> </td>
3558 </tr>
3559 </tbody>
3560 </table>
3561 </section>
3562 </div>
3563 </div>
3564 </div>
3565 <div id="operation--videos--id--get" class="operation panel" data-traverse-target="operation--videos--id--get">
3566 <!-- <section class="operation-tags row"> -->
3567 <!-- <div class="doc-copy"> -->
3568 <div class="operation-tags">
3569 <a class="label" href="#tag-Video">Video</a>
3570 <!---->
3571 </div>
3572 <!-- </div> -->
3573 <!-- </section> -->
3574 <h2 class="operation-title">
3575 <span class="operation-name">
3576 <span class="operation-name">GET</span>
3577 <span class="operation-path">/videos/{id}</span>
3578 </span>
3579 </h2>
3580 <div class="doc-row">
3581 <div class="doc-copy">
3582 <section class="swagger-request-params">
3583 <div class="prop-row prop-group">
3584 <div class="prop-name">
3585 <div class="prop-title">id:
3586 <span class="prop-type">
3587 <span class="json-property-type">string</span>
3588 <span class="json-property-range" title="Value limits"></span>
3589 </span>
3590 </div>
3591 <span class="json-property-required"></span>
3592 <div class="prop-subtitle"> in path </div>
3593 </div>
3594 <div class="prop-value">
3595 <p>The video id or uuid</p>
3596 </div>
3597 </div>
3598 </section>
3599 </div>
3600 <div class="doc-examples"></div>
3601 </div>
3602 <div class="doc-row">
3603 <div class="doc-copy">
3604 <section class="swagger-responses">
3605 <div class="prop-row prop-group">
3606 <div class="prop-name">
3607 <div class="prop-title">200 OK</div>
3608 <div class="prop-ref">
3609 <span class="">
3610 <a class="json-schema-ref" href="#/definitions/Video">Video</a>
3611 </span>
3612 </div>
3613 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
3614 </div>
3615 <div class="prop-value">
3616 <p>successful operation</p>
3617 </div>
3618 </div>
3619 </section>
3620 </div>
3621 <div class="doc-examples">
3622 <h5>Response Content-Types:
3623 <span>application/json</span>
3624 </h5>
3625 <section>
3626 <h5>Response Example
3627 <span>(200 OK)</span>
3628 </h5>
3629 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
3630 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3631 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3632 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3633 <span class="hljs-attr">&quot;publishedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3634 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3635 <span class="hljs-attr">&quot;category&quot;</span>: {
3636 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3637 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
3638 },
3639 <span class="hljs-attr">&quot;licence&quot;</span>: {
3640 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3641 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
3642 },
3643 <span class="hljs-attr">&quot;language&quot;</span>: {
3644 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3645 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
3646 },
3647 <span class="hljs-attr">&quot;privacy&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3648 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3649 <span class="hljs-attr">&quot;duration&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3650 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
3651 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3652 <span class="hljs-attr">&quot;thumbnailPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3653 <span class="hljs-attr">&quot;previewPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3654 <span class="hljs-attr">&quot;embedPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3655 <span class="hljs-attr">&quot;views&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3656 <span class="hljs-attr">&quot;likes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3657 <span class="hljs-attr">&quot;dislikes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
3658 <span class="hljs-attr">&quot;nsfw&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
3659 <span class="hljs-attr">&quot;account&quot;</span>: {
3660 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3661 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3662 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3663 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3664 <span class="hljs-attr">&quot;avatar&quot;</span>: {
3665 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3666 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
3667 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
3668 }
3669 }
3670}
3671</code></pre>
3672 <!-- </div> -->
3673 </section>
3674 </div>
3675 </div>
3676 </div>
3677 <div id="operation--videos--id--delete" class="operation panel" data-traverse-target="operation--videos--id--delete">
3678 <!-- <section class="operation-tags row"> -->
3679 <!-- <div class="doc-copy"> -->
3680 <div class="operation-tags">
3681 <a class="label" href="#tag-Video">Video</a>
3682 <!---->
3683 </div>
3684 <!-- </div> -->
3685 <!-- </section> -->
3686 <h2 class="operation-title">
3687 <span class="operation-name">
3688 <span class="operation-name">DELETE</span>
3689 <span class="operation-path">/videos/{id}</span>
3690 </span>
3691 </h2>
3692 <div class="doc-row">
3693 <div class="doc-copy">
3694 <section class="swagger-request-params">
3695 <div class="prop-row prop-group">
3696 <div class="prop-name">
3697 <div class="prop-title">id:
3698 <span class="prop-type">
3699 <span class="json-property-type">string</span>
3700 <span class="json-property-range" title="Value limits"></span>
3701 </span>
3702 </div>
3703 <span class="json-property-required"></span>
3704 <div class="prop-subtitle"> in path </div>
3705 </div>
3706 <div class="prop-value">
3707 <p>The video id or uuid</p>
3708 </div>
3709 </div>
3710 </section>
3711 </div>
3712 <div class="doc-examples"></div>
3713 </div>
3714 <div class="doc-row">
3715 <div class="doc-copy">
3716 <section class="swagger-responses">
3717 <div class="prop-row prop-group">
3718 <div class="prop-name">
3719 <div class="prop-title">204 No Content</div>
3720 </div>
3721 <div class="prop-value">
3722 <p>Successful operation</p>
3723 </div>
3724 </div>
3725 </section>
3726 </div>
3727 <div class="doc-examples">
3728 <h5>Response Content-Types:
3729 <span>application/json</span>
3730 </h5>
3731 </div>
3732 </div>
3733 <div class="doc-row">
3734 <div class="doc-copy">
3735 <section class="swagger-request-security">
3736 <table class="table">
3737 <thead>
3738 <tr>
3739 <th class="swagger-request-security-schema"></th>
3740 <th class="swagger-request-security-scopes"></th>
3741 </tr>
3742 </thead>
3743 <tbody>
3744 <tr>
3745 <td>
3746 <a href="#security-definition-OAuth2">OAuth2</a>
3747 </td>
3748 <td> </td>
3749 </tr>
3750 </tbody>
3751 </table>
3752 </section>
3753 </div>
3754 </div>
3755 </div>
3756 <div id="operation--videos--id--description-get" class="operation panel" data-traverse-target="operation--videos--id--description-get">
3757 <!-- <section class="operation-tags row"> -->
3758 <!-- <div class="doc-copy"> -->
3759 <div class="operation-tags">
3760 <a class="label" href="#tag-Video">Video</a>
3761 <!---->
3762 </div>
3763 <!-- </div> -->
3764 <!-- </section> -->
3765 <h2 class="operation-title">
3766 <span class="operation-name">
3767 <span class="operation-name">GET</span>
3768 <span class="operation-path">/videos/{id}/description</span>
3769 </span>
3770 </h2>
3771 <div class="doc-row">
3772 <div class="doc-copy">
3773 <section class="swagger-request-params">
3774 <div class="prop-row prop-group">
3775 <div class="prop-name">
3776 <div class="prop-title">id:
3777 <span class="prop-type">
3778 <span class="json-property-type">string</span>
3779 <span class="json-property-range" title="Value limits"></span>
3780 </span>
3781 </div>
3782 <span class="json-property-required"></span>
3783 <div class="prop-subtitle"> in path </div>
3784 </div>
3785 <div class="prop-value">
3786 <p>The video id or uuid</p>
3787 </div>
3788 </div>
3789 </section>
3790 </div>
3791 <div class="doc-examples"></div>
3792 </div>
3793 <div class="doc-row">
3794 <div class="doc-copy">
3795 <section class="swagger-responses">
3796 <div class="prop-row prop-group">
3797 <div class="prop-name">
3798 <div class="prop-title">200 OK</div>
3799 <div class="prop-ref"> </div>
3800 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
3801 </div>
3802 <div class="prop-value">
3803 <p>successful operation</p>
3804 </div>
3805 </div>
3806 <div class="prop-row prop-inner">
3807 <div class="prop-name">type</div>
3808 <div class="prop-value">
3809 <span class="json-property-type">string</span>
3810 <span class="json-property-range" title="Value limits"></span>
3811 </div>
3812 </div>
3813 </section>
3814 </div>
3815 <div class="doc-examples">
3816 <h5>Response Content-Types:
3817 <span>application/json</span>
3818 </h5>
3819 <section>
3820 <h5>Response Example
3821 <span>(200 OK)</span>
3822 </h5>
3823 <!-- <div class="hljs"> --><pre><code class="hljs lang-json"><span class="hljs-string">&quot;string&quot;</span>
3824</code></pre>
3825 <!-- </div> -->
3826 </section>
3827 </div>
3828 </div>
3829 </div>
3830 <div id="operation--videos--id--views-post" class="operation panel" data-traverse-target="operation--videos--id--views-post">
3831 <!-- <section class="operation-tags row"> -->
3832 <!-- <div class="doc-copy"> -->
3833 <div class="operation-tags">
3834 <a class="label" href="#tag-Video">Video</a>
3835 <!---->
3836 </div>
3837 <!-- </div> -->
3838 <!-- </section> -->
3839 <h2 class="operation-title">
3840 <span class="operation-name">
3841 <span class="operation-name">POST</span>
3842 <span class="operation-path">/videos/{id}/views</span>
3843 </span>
3844 </h2>
3845 <div class="doc-row">
3846 <div class="doc-copy">
3847 <section class="swagger-request-params">
3848 <div class="prop-row prop-group">
3849 <div class="prop-name">
3850 <div class="prop-title">id:
3851 <span class="prop-type">
3852 <span class="json-property-type">string</span>
3853 <span class="json-property-range" title="Value limits"></span>
3854 </span>
3855 </div>
3856 <span class="json-property-required"></span>
3857 <div class="prop-subtitle"> in path </div>
3858 </div>
3859 <div class="prop-value">
3860 <p>The video id or uuid</p>
3861 </div>
3862 </div>
3863 </section>
3864 </div>
3865 <div class="doc-examples"></div>
3866 </div>
3867 <div class="doc-row">
3868 <div class="doc-copy">
3869 <section class="swagger-responses">
3870 <div class="prop-row prop-group">
3871 <div class="prop-name">
3872 <div class="prop-title">204 No Content</div>
3873 </div>
3874 <div class="prop-value">
3875 <p>Successful operation</p>
3876 </div>
3877 </div>
3878 </section>
3879 </div>
3880 <div class="doc-examples">
3881 <h5>Response Content-Types:
3882 <span>application/json</span>
3883 </h5>
3884 </div>
3885 </div>
3886 </div>
3887 <div id="operation--videos-upload-post" class="operation panel" data-traverse-target="operation--videos-upload-post">
3888 <!-- <section class="operation-tags row"> -->
3889 <!-- <div class="doc-copy"> -->
3890 <div class="operation-tags">
3891 <a class="label" href="#tag-Video">Video</a>
3892 <!---->
3893 </div>
3894 <!-- </div> -->
3895 <!-- </section> -->
3896 <h2 class="operation-title">
3897 <span class="operation-name">
3898 <span class="operation-name">POST</span>
3899 <span class="operation-path">/videos/upload</span>
3900 </span>
3901 </h2>
3902 <div class="doc-row">
3903 <div class="doc-copy">
3904 <section class="swagger-request-params">
3905 <div class="prop-row prop-group">
3906 <div class="prop-name">
3907 <div class="prop-title">videofile:
3908 <span class="prop-type">
3909 <span class="json-property-type">file</span>
3910 <span class="json-property-range" title="Value limits"></span>
3911 </span>
3912 </div>
3913 <span class="json-property-required"></span>
3914 <div class="prop-subtitle"> in formData </div>
3915 </div>
3916 <div class="prop-value">
3917 <p>Video file</p>
3918 </div>
3919 </div>
3920 <div class="prop-row prop-group">
3921 <div class="prop-name">
3922 <div class="prop-title">channelId:
3923 <span class="prop-type">
3924 <span class="json-property-type">number</span>
3925 <span class="json-property-range" title="Value limits"></span>
3926 </span>
3927 </div>
3928 <span class="json-property-required"></span>
3929 <div class="prop-subtitle"> in formData </div>
3930 </div>
3931 <div class="prop-value">
3932 <p>Channel id that will contain this video</p>
3933 </div>
3934 </div>
3935 <div class="prop-row prop-group">
3936 <div class="prop-name">
3937 <div class="prop-title">thumbnailfile:
3938 <span class="prop-type">
3939 <span class="json-property-type">file</span>
3940 <span class="json-property-range" title="Value limits"></span>
3941 </span>
3942 </div>
3943 <div class="prop-subtitle"> in formData </div>
3944 </div>
3945 <div class="prop-value">
3946 <p>Video thumbnail file</p>
3947 </div>
3948 </div>
3949 <div class="prop-row prop-group">
3950 <div class="prop-name">
3951 <div class="prop-title">previewfile:
3952 <span class="prop-type">
3953 <span class="json-property-type">file</span>
3954 <span class="json-property-range" title="Value limits"></span>
3955 </span>
3956 </div>
3957 <div class="prop-subtitle"> in formData </div>
3958 </div>
3959 <div class="prop-value">
3960 <p>Video preview file</p>
3961 </div>
3962 </div>
3963 <div class="prop-row prop-group">
3964 <div class="prop-name">
3965 <div class="prop-title">category:
3966 <span class="prop-type">
3967 <span class="json-property-type">number</span>
3968 <span class="json-property-range" title="Value limits"></span>
3969 </span>
3970 </div>
3971 <div class="prop-subtitle"> in formData </div>
3972 </div>
3973 <div class="prop-value">
3974 <p>Video category</p>
3975 </div>
3976 </div>
3977 <div class="prop-row prop-group">
3978 <div class="prop-name">
3979 <div class="prop-title">licence:
3980 <span class="prop-type">
3981 <span class="json-property-type">number</span>
3982 <span class="json-property-range" title="Value limits"></span>
3983 </span>
3984 </div>
3985 <div class="prop-subtitle"> in formData </div>
3986 </div>
3987 <div class="prop-value">
3988 <p>Video licence</p>
3989 </div>
3990 </div>
3991 <div class="prop-row prop-group">
3992 <div class="prop-name">
3993 <div class="prop-title">language:
3994 <span class="prop-type">
3995 <span class="json-property-type">string</span>
3996 <span class="json-property-range" title="Value limits"></span>
3997 </span>
3998 </div>
3999 <div class="prop-subtitle"> in formData </div>
4000 </div>
4001 <div class="prop-value">
4002 <p>Video language</p>
4003 </div>
4004 </div>
4005 <div class="prop-row prop-group">
4006 <div class="prop-name">
4007 <div class="prop-title">description:
4008 <span class="prop-type">
4009 <span class="json-property-type">string</span>
4010 <span class="json-property-range" title="Value limits"></span>
4011 </span>
4012 </div>
4013 <div class="prop-subtitle"> in formData </div>
4014 </div>
4015 <div class="prop-value">
4016 <p>Video description</p>
4017 </div>
4018 </div>
4019 <div class="prop-row prop-group">
4020 <div class="prop-name">
4021 <div class="prop-title">waitTranscoding:
4022 <span class="prop-type">
4023 <span class="json-property-type">boolean</span>
4024 <span class="json-property-range" title="Value limits"></span>
4025 </span>
4026 </div>
4027 <div class="prop-subtitle"> in formData </div>
4028 </div>
4029 <div class="prop-value">
4030 <p>Whether or not we wait transcoding before publish the video</p>
4031 </div>
4032 </div>
4033 <div class="prop-row prop-group">
4034 <div class="prop-name">
4035 <div class="prop-title">support:
4036 <span class="prop-type">
4037 <span class="json-property-type">string</span>
4038 <span class="json-property-range" title="Value limits"></span>
4039 </span>
4040 </div>
4041 <div class="prop-subtitle"> in formData </div>
4042 </div>
4043 <div class="prop-value">
4044 <p>Text describing how to support the video uploader</p>
4045 </div>
4046 </div>
4047 <div class="prop-row prop-group">
4048 <div class="prop-name">
4049 <div class="prop-title">nsfw:
4050 <span class="prop-type">
4051 <span class="json-property-type">boolean</span>
4052 <span class="json-property-range" title="Value limits"></span>
4053 </span>
4054 </div>
4055 <div class="prop-subtitle"> in formData </div>
4056 </div>
4057 <div class="prop-value">
4058 <p>Whether or not this video contains sensitive content</p>
4059 </div>
4060 </div>
4061 <div class="prop-row prop-group">
4062 <div class="prop-name">
4063 <div class="prop-title">name:
4064 <span class="prop-type">
4065 <span class="json-property-type">string</span>
4066 <span class="json-property-range" title="Value limits"></span>
4067 </span>
4068 </div>
4069 <div class="prop-subtitle"> in formData </div>
4070 </div>
4071 <div class="prop-value">
4072 <p>Video name</p>
4073 </div>
4074 </div>
4075 <div class="prop-row prop-group">
4076 <div class="prop-name">
4077 <div class="prop-title">tags:
4078 <span class="prop-type">
4079 <span class="json-property-type">string[]</span>
4080 <span class="json-property-range" title="Value limits"></span>
4081 </span>
4082 </div>
4083 <div class="prop-subtitle"> in formData </div>
4084 </div>
4085 <div class="prop-value">
4086 <p>Video tags</p>
4087 </div>
4088 </div>
4089 <div class="prop-row prop-group">
4090 <div class="prop-name">
4091 <div class="prop-title">commentsEnabled:
4092 <span class="prop-type">
4093 <span class="json-property-type">boolean</span>
4094 <span class="json-property-range" title="Value limits"></span>
4095 </span>
4096 </div>
4097 <div class="prop-subtitle"> in formData </div>
4098 </div>
4099 <div class="prop-value">
4100 <p>Enable or disable comments for this video</p>
4101 </div>
4102 </div>
4103 <div class="prop-row prop-group">
4104 <div class="prop-name">
4105 <div class="prop-title">privacy:
4106 <span class="prop-type">
4107 <span class="json-property-type">string</span>
4108 <span class="json-property-enum" title="Possible values">
4109 <span class="json-property-enum-item">Public</span>,
4110 <span class="json-property-enum-item">Unlisted</span>
4111 </span>
4112 <span class="json-property-range" title="Value limits"></span>
4113 </span>
4114 </div>
4115 <div class="prop-subtitle"> in formData </div>
4116 </div>
4117 <div class="prop-value">
4118 <p>Video privacy</p>
4119 </div>
4120 </div>
4121 <div class="prop-row prop-group">
4122 <div class="prop-name">
4123 <div class="prop-title">scheduleUpdate:
4124 <span class="prop-type">
4125 <span class="json-property-type">object</span>
4126 <span class="json-property-range" title="Value limits"></span>
4127 </span>
4128 </div>
4129 <div class="prop-subtitle"> in formData </div>
4130 </div>
4131 <div class="prop-value">
4132 <p>Schedule an update at a specific datetime</p>
4133 </div>
4134 </div>
4135 </section>
4136 </div>
4137 <div class="doc-examples"></div>
4138 </div>
4139 <div class="doc-row">
4140 <div class="doc-copy">
4141 <section class="swagger-responses">
4142 <div class="prop-row prop-group">
4143 <div class="prop-name">
4144 <div class="prop-title">200 OK</div>
4145 <div class="prop-ref">
4146 <span class="">
4147 <a class="json-schema-ref" href="#/definitions/VideoUploadResponse">VideoUploadResponse</a>
4148 </span>
4149 </div>
4150 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
4151 </div>
4152 <div class="prop-value">
4153 <p>successful operation</p>
4154 </div>
4155 </div>
4156 </section>
4157 </div>
4158 <div class="doc-examples">
4159 <h5>Response Content-Types:
4160 <span>application/json</span>
4161 </h5>
4162 <section>
4163 <h5>Response Example
4164 <span>(200 OK)</span>
4165 </h5>
4166 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
4167 <span class="hljs-attr">&quot;video&quot;</span>: {
4168 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4169 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
4170 }
4171}
4172</code></pre>
4173 <!-- </div> -->
4174 </section>
4175 </div>
4176 </div>
4177 <div class="doc-row">
4178 <div class="doc-copy">
4179 <section class="swagger-request-security">
4180 <table class="table">
4181 <thead>
4182 <tr>
4183 <th class="swagger-request-security-schema"></th>
4184 <th class="swagger-request-security-scopes"></th>
4185 </tr>
4186 </thead>
4187 <tbody>
4188 <tr>
4189 <td>
4190 <a href="#security-definition-OAuth2">OAuth2</a>
4191 </td>
4192 <td> </td>
4193 </tr>
4194 </tbody>
4195 </table>
4196 </section>
4197 </div>
4198 </div>
4199 </div>
4200 <h1 id="tag-VideoAbuse" class="swagger-summary-tag" data-traverse-target="tag-VideoAbuse">VideoAbuse</h1>
4201 <div id="operation--videos-abuse-get" class="operation panel" data-traverse-target="operation--videos-abuse-get">
4202 <!-- <section class="operation-tags row"> -->
4203 <!-- <div class="doc-copy"> -->
4204 <div class="operation-tags">
4205 <a class="label" href="#tag-VideoAbuse">VideoAbuse</a>
4206 <!---->
4207 </div>
4208 <!-- </div> -->
4209 <!-- </section> -->
4210 <h2 class="operation-title">
4211 <span class="operation-name">
4212 <span class="operation-name">GET</span>
4213 <span class="operation-path">/videos/abuse</span>
4214 </span>
4215 </h2>
4216 <div class="doc-row">
4217 <div class="doc-copy">
4218 <section class="swagger-request-params">
4219 <div class="prop-row prop-group">
4220 <div class="prop-name">
4221 <div class="prop-title">start:
4222 <span class="prop-type">
4223 <span class="json-property-type">number</span>
4224 <span class="json-property-range" title="Value limits"></span>
4225 </span>
4226 </div>
4227 <div class="prop-subtitle"> in query </div>
4228 </div>
4229 <div class="prop-value">
4230 <p>Offset</p>
4231 </div>
4232 </div>
4233 <div class="prop-row prop-group">
4234 <div class="prop-name">
4235 <div class="prop-title">count:
4236 <span class="prop-type">
4237 <span class="json-property-type">number</span>
4238 <span class="json-property-range" title="Value limits"></span>
4239 </span>
4240 </div>
4241 <div class="prop-subtitle"> in query </div>
4242 </div>
4243 <div class="prop-value">
4244 <p>Number of items</p>
4245 </div>
4246 </div>
4247 <div class="prop-row prop-group">
4248 <div class="prop-name">
4249 <div class="prop-title">sort:
4250 <span class="prop-type">
4251 <span class="json-property-type">string</span>
4252 <span class="json-property-range" title="Value limits"></span>
4253 </span>
4254 </div>
4255 <div class="prop-subtitle"> in query </div>
4256 </div>
4257 <div class="prop-value">
4258 <p>Sort column (-createdAt for example)</p>
4259 </div>
4260 </div>
4261 </section>
4262 </div>
4263 <div class="doc-examples"></div>
4264 </div>
4265 <div class="doc-row">
4266 <div class="doc-copy">
4267 <section class="swagger-responses">
4268 <div class="prop-row prop-group">
4269 <div class="prop-name">
4270 <div class="prop-title">200 OK</div>
4271 <div class="prop-ref">
4272 <span class="json-schema-ref-array">
4273 <a class="json-schema-ref" href="#/definitions/VideoAbuse">VideoAbuse</a>
4274 </span>
4275 </div>
4276 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
4277 </div>
4278 <div class="prop-value">
4279 <p>successful operation</p>
4280 </div>
4281 </div>
4282 <div class="prop-row prop-inner">
4283 <div class="prop-name">type</div>
4284 <div class="prop-value">
4285 <span class="json-property-type">
4286 <span class="json-schema-ref-array">
4287 <a class="json-schema-ref" href="#/definitions/VideoAbuse">VideoAbuse</a>
4288 </span>
4289 </span>
4290 <span class="json-property-range" title="Value limits"></span>
4291 </div>
4292 </div>
4293 </section>
4294 </div>
4295 <div class="doc-examples">
4296 <h5>Response Content-Types:
4297 <span>application/json</span>
4298 </h5>
4299 <section>
4300 <h5>Response Example
4301 <span>(200 OK)</span>
4302 </h5>
4303 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
4304 {
4305 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4306 <span class="hljs-attr">&quot;reason&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4307 <span class="hljs-attr">&quot;reporterAccount&quot;</span>: {
4308 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4309 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4310 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4311 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4312 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4313 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4314 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4315 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4316 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4317 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4318 <span class="hljs-attr">&quot;avatar&quot;</span>: {
4319 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4320 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4321 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
4322 }
4323 },
4324 <span class="hljs-attr">&quot;video&quot;</span>: {
4325 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4326 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4327 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4328 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
4329 },
4330 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
4331 }
4332]
4333</code></pre>
4334 <!-- </div> -->
4335 </section>
4336 </div>
4337 </div>
4338 <div class="doc-row">
4339 <div class="doc-copy">
4340 <section class="swagger-request-security">
4341 <table class="table">
4342 <thead>
4343 <tr>
4344 <th class="swagger-request-security-schema"></th>
4345 <th class="swagger-request-security-scopes"></th>
4346 </tr>
4347 </thead>
4348 <tbody>
4349 <tr>
4350 <td>
4351 <a href="#security-definition-OAuth2">OAuth2</a>
4352 </td>
4353 <td> </td>
4354 </tr>
4355 </tbody>
4356 </table>
4357 </section>
4358 </div>
4359 </div>
4360 </div>
4361 <div id="operation--videos--id--abuse-post" class="operation panel" data-traverse-target="operation--videos--id--abuse-post">
4362 <!-- <section class="operation-tags row"> -->
4363 <!-- <div class="doc-copy"> -->
4364 <div class="operation-tags">
4365 <a class="label" href="#tag-VideoAbuse">VideoAbuse</a>
4366 <!---->
4367 </div>
4368 <!-- </div> -->
4369 <!-- </section> -->
4370 <h2 class="operation-title">
4371 <span class="operation-name">
4372 <span class="operation-name">POST</span>
4373 <span class="operation-path">/videos/{id}/abuse</span>
4374 </span>
4375 </h2>
4376 <div class="doc-row">
4377 <div class="doc-copy">
4378 <section class="swagger-request-params">
4379 <div class="prop-row prop-group">
4380 <div class="prop-name">
4381 <div class="prop-title">id:
4382 <span class="prop-type">
4383 <span class="json-property-type">string</span>
4384 <span class="json-property-range" title="Value limits"></span>
4385 </span>
4386 </div>
4387 <span class="json-property-required"></span>
4388 <div class="prop-subtitle"> in path </div>
4389 </div>
4390 <div class="prop-value">
4391 <p>The video id or uuid</p>
4392 </div>
4393 </div>
4394 </section>
4395 </div>
4396 <div class="doc-examples"></div>
4397 </div>
4398 <div class="doc-row">
4399 <div class="doc-copy">
4400 <section class="swagger-responses">
4401 <div class="prop-row prop-group">
4402 <div class="prop-name">
4403 <div class="prop-title">204 No Content</div>
4404 </div>
4405 <div class="prop-value">
4406 <p>Successful operation</p>
4407 </div>
4408 </div>
4409 </section>
4410 </div>
4411 <div class="doc-examples">
4412 <h5>Response Content-Types:
4413 <span>application/json</span>
4414 </h5>
4415 </div>
4416 </div>
4417 <div class="doc-row">
4418 <div class="doc-copy">
4419 <section class="swagger-request-security">
4420 <table class="table">
4421 <thead>
4422 <tr>
4423 <th class="swagger-request-security-schema"></th>
4424 <th class="swagger-request-security-scopes"></th>
4425 </tr>
4426 </thead>
4427 <tbody>
4428 <tr>
4429 <td>
4430 <a href="#security-definition-OAuth2">OAuth2</a>
4431 </td>
4432 <td> </td>
4433 </tr>
4434 </tbody>
4435 </table>
4436 </section>
4437 </div>
4438 </div>
4439 </div>
4440 <h1 id="tag-VideoBlacklist" class="swagger-summary-tag" data-traverse-target="tag-VideoBlacklist">VideoBlacklist</h1>
4441 <div id="operation--videos--id--blacklist-post" class="operation panel" data-traverse-target="operation--videos--id--blacklist-post">
4442 <!-- <section class="operation-tags row"> -->
4443 <!-- <div class="doc-copy"> -->
4444 <div class="operation-tags">
4445 <a class="label" href="#tag-VideoBlacklist">VideoBlacklist</a>
4446 <!---->
4447 </div>
4448 <!-- </div> -->
4449 <!-- </section> -->
4450 <h2 class="operation-title">
4451 <span class="operation-name">
4452 <span class="operation-name">POST</span>
4453 <span class="operation-path">/videos/{id}/blacklist</span>
4454 </span>
4455 </h2>
4456 <div class="doc-row">
4457 <div class="doc-copy">
4458 <section class="swagger-request-params">
4459 <div class="prop-row prop-group">
4460 <div class="prop-name">
4461 <div class="prop-title">id:
4462 <span class="prop-type">
4463 <span class="json-property-type">string</span>
4464 <span class="json-property-range" title="Value limits"></span>
4465 </span>
4466 </div>
4467 <span class="json-property-required"></span>
4468 <div class="prop-subtitle"> in path </div>
4469 </div>
4470 <div class="prop-value">
4471 <p>The video id or uuid</p>
4472 </div>
4473 </div>
4474 </section>
4475 </div>
4476 <div class="doc-examples"></div>
4477 </div>
4478 <div class="doc-row">
4479 <div class="doc-copy">
4480 <section class="swagger-responses">
4481 <div class="prop-row prop-group">
4482 <div class="prop-name">
4483 <div class="prop-title">204 No Content</div>
4484 </div>
4485 <div class="prop-value">
4486 <p>Successful operation</p>
4487 </div>
4488 </div>
4489 </section>
4490 </div>
4491 <div class="doc-examples">
4492 <h5>Response Content-Types:
4493 <span>application/json</span>
4494 </h5>
4495 </div>
4496 </div>
4497 <div class="doc-row">
4498 <div class="doc-copy">
4499 <section class="swagger-request-security">
4500 <table class="table">
4501 <thead>
4502 <tr>
4503 <th class="swagger-request-security-schema"></th>
4504 <th class="swagger-request-security-scopes"></th>
4505 </tr>
4506 </thead>
4507 <tbody>
4508 <tr>
4509 <td>
4510 <a href="#security-definition-OAuth2">OAuth2</a>
4511 </td>
4512 <td> </td>
4513 </tr>
4514 </tbody>
4515 </table>
4516 </section>
4517 </div>
4518 </div>
4519 </div>
4520 <div id="operation--videos--id--blacklist-delete" class="operation panel" data-traverse-target="operation--videos--id--blacklist-delete">
4521 <!-- <section class="operation-tags row"> -->
4522 <!-- <div class="doc-copy"> -->
4523 <div class="operation-tags">
4524 <a class="label" href="#tag-VideoBlacklist">VideoBlacklist</a>
4525 <!---->
4526 </div>
4527 <!-- </div> -->
4528 <!-- </section> -->
4529 <h2 class="operation-title">
4530 <span class="operation-name">
4531 <span class="operation-name">DELETE</span>
4532 <span class="operation-path">/videos/{id}/blacklist</span>
4533 </span>
4534 </h2>
4535 <div class="doc-row">
4536 <div class="doc-copy">
4537 <section class="swagger-request-params">
4538 <div class="prop-row prop-group">
4539 <div class="prop-name">
4540 <div class="prop-title">id:
4541 <span class="prop-type">
4542 <span class="json-property-type">string</span>
4543 <span class="json-property-range" title="Value limits"></span>
4544 </span>
4545 </div>
4546 <span class="json-property-required"></span>
4547 <div class="prop-subtitle"> in path </div>
4548 </div>
4549 <div class="prop-value">
4550 <p>The video id or uuid</p>
4551 </div>
4552 </div>
4553 </section>
4554 </div>
4555 <div class="doc-examples"></div>
4556 </div>
4557 <div class="doc-row">
4558 <div class="doc-copy">
4559 <section class="swagger-responses">
4560 <div class="prop-row prop-group">
4561 <div class="prop-name">
4562 <div class="prop-title">204 No Content</div>
4563 </div>
4564 <div class="prop-value">
4565 <p>Successful operation</p>
4566 </div>
4567 </div>
4568 </section>
4569 </div>
4570 <div class="doc-examples">
4571 <h5>Response Content-Types:
4572 <span>application/json</span>
4573 </h5>
4574 </div>
4575 </div>
4576 <div class="doc-row">
4577 <div class="doc-copy">
4578 <section class="swagger-request-security">
4579 <table class="table">
4580 <thead>
4581 <tr>
4582 <th class="swagger-request-security-schema"></th>
4583 <th class="swagger-request-security-scopes"></th>
4584 </tr>
4585 </thead>
4586 <tbody>
4587 <tr>
4588 <td>
4589 <a href="#security-definition-OAuth2">OAuth2</a>
4590 </td>
4591 <td> </td>
4592 </tr>
4593 </tbody>
4594 </table>
4595 </section>
4596 </div>
4597 </div>
4598 </div>
4599 <div id="operation--videos-blacklist-get" class="operation panel" data-traverse-target="operation--videos-blacklist-get">
4600 <!-- <section class="operation-tags row"> -->
4601 <!-- <div class="doc-copy"> -->
4602 <div class="operation-tags">
4603 <a class="label" href="#tag-VideoBlacklist">VideoBlacklist</a>
4604 <!---->
4605 </div>
4606 <!-- </div> -->
4607 <!-- </section> -->
4608 <h2 class="operation-title">
4609 <span class="operation-name">
4610 <span class="operation-name">GET</span>
4611 <span class="operation-path">/videos/blacklist</span>
4612 </span>
4613 </h2>
4614 <div class="doc-row">
4615 <div class="doc-copy">
4616 <section class="swagger-request-params">
4617 <div class="prop-row prop-group">
4618 <div class="prop-name">
4619 <div class="prop-title">start:
4620 <span class="prop-type">
4621 <span class="json-property-type">number</span>
4622 <span class="json-property-range" title="Value limits"></span>
4623 </span>
4624 </div>
4625 <div class="prop-subtitle"> in query </div>
4626 </div>
4627 <div class="prop-value">
4628 <p>Offset</p>
4629 </div>
4630 </div>
4631 <div class="prop-row prop-group">
4632 <div class="prop-name">
4633 <div class="prop-title">count:
4634 <span class="prop-type">
4635 <span class="json-property-type">number</span>
4636 <span class="json-property-range" title="Value limits"></span>
4637 </span>
4638 </div>
4639 <div class="prop-subtitle"> in query </div>
4640 </div>
4641 <div class="prop-value">
4642 <p>Number of items</p>
4643 </div>
4644 </div>
4645 <div class="prop-row prop-group">
4646 <div class="prop-name">
4647 <div class="prop-title">sort:
4648 <span class="prop-type">
4649 <span class="json-property-type">string</span>
4650 <span class="json-property-range" title="Value limits"></span>
4651 </span>
4652 </div>
4653 <div class="prop-subtitle"> in query </div>
4654 </div>
4655 <div class="prop-value">
4656 <p>Sort column (-createdAt for example)</p>
4657 </div>
4658 </div>
4659 </section>
4660 </div>
4661 <div class="doc-examples"></div>
4662 </div>
4663 <div class="doc-row">
4664 <div class="doc-copy">
4665 <section class="swagger-responses">
4666 <div class="prop-row prop-group">
4667 <div class="prop-name">
4668 <div class="prop-title">200 OK</div>
4669 <div class="prop-ref">
4670 <span class="json-schema-ref-array">
4671 <a class="json-schema-ref" href="#/definitions/VideoBlacklist">VideoBlacklist</a>
4672 </span>
4673 </div>
4674 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
4675 </div>
4676 <div class="prop-value">
4677 <p>successful operation</p>
4678 </div>
4679 </div>
4680 <div class="prop-row prop-inner">
4681 <div class="prop-name">type</div>
4682 <div class="prop-value">
4683 <span class="json-property-type">
4684 <span class="json-schema-ref-array">
4685 <a class="json-schema-ref" href="#/definitions/VideoBlacklist">VideoBlacklist</a>
4686 </span>
4687 </span>
4688 <span class="json-property-range" title="Value limits"></span>
4689 </div>
4690 </div>
4691 </section>
4692 </div>
4693 <div class="doc-examples">
4694 <h5>Response Content-Types:
4695 <span>application/json</span>
4696 </h5>
4697 <section>
4698 <h5>Response Example
4699 <span>(200 OK)</span>
4700 </h5>
4701 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
4702 {
4703 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4704 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4705 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4706 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4707 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4708 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4709 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4710 <span class="hljs-attr">&quot;duration&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4711 <span class="hljs-attr">&quot;views&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4712 <span class="hljs-attr">&quot;likes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4713 <span class="hljs-attr">&quot;dislikes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4714 <span class="hljs-attr">&quot;nsfw&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>
4715 }
4716]
4717</code></pre>
4718 <!-- </div> -->
4719 </section>
4720 </div>
4721 </div>
4722 <div class="doc-row">
4723 <div class="doc-copy">
4724 <section class="swagger-request-security">
4725 <table class="table">
4726 <thead>
4727 <tr>
4728 <th class="swagger-request-security-schema"></th>
4729 <th class="swagger-request-security-scopes"></th>
4730 </tr>
4731 </thead>
4732 <tbody>
4733 <tr>
4734 <td>
4735 <a href="#security-definition-OAuth2">OAuth2</a>
4736 </td>
4737 <td> </td>
4738 </tr>
4739 </tbody>
4740 </table>
4741 </section>
4742 </div>
4743 </div>
4744 </div>
4745 <h1 id="tag-VideoChannel" class="swagger-summary-tag" data-traverse-target="tag-VideoChannel">VideoChannel</h1>
4746 <div id="operation--video-channels-get" class="operation panel" data-traverse-target="operation--video-channels-get">
4747 <!-- <section class="operation-tags row"> -->
4748 <!-- <div class="doc-copy"> -->
4749 <div class="operation-tags">
4750 <a class="label" href="#tag-VideoChannel">VideoChannel</a>
4751 <!---->
4752 </div>
4753 <!-- </div> -->
4754 <!-- </section> -->
4755 <h2 class="operation-title">
4756 <span class="operation-name">
4757 <span class="operation-name">GET</span>
4758 <span class="operation-path">/video-channels</span>
4759 </span>
4760 </h2>
4761 <div class="doc-row">
4762 <div class="doc-copy">
4763 <section class="swagger-request-params">
4764 <div class="prop-row prop-group">
4765 <div class="prop-name">
4766 <div class="prop-title">start:
4767 <span class="prop-type">
4768 <span class="json-property-type">number</span>
4769 <span class="json-property-range" title="Value limits"></span>
4770 </span>
4771 </div>
4772 <div class="prop-subtitle"> in query </div>
4773 </div>
4774 <div class="prop-value">
4775 <p>Offset</p>
4776 </div>
4777 </div>
4778 <div class="prop-row prop-group">
4779 <div class="prop-name">
4780 <div class="prop-title">count:
4781 <span class="prop-type">
4782 <span class="json-property-type">number</span>
4783 <span class="json-property-range" title="Value limits"></span>
4784 </span>
4785 </div>
4786 <div class="prop-subtitle"> in query </div>
4787 </div>
4788 <div class="prop-value">
4789 <p>Number of items</p>
4790 </div>
4791 </div>
4792 <div class="prop-row prop-group">
4793 <div class="prop-name">
4794 <div class="prop-title">sort:
4795 <span class="prop-type">
4796 <span class="json-property-type">string</span>
4797 <span class="json-property-range" title="Value limits"></span>
4798 </span>
4799 </div>
4800 <div class="prop-subtitle"> in query </div>
4801 </div>
4802 <div class="prop-value">
4803 <p>Sort column (-createdAt for example)</p>
4804 </div>
4805 </div>
4806 </section>
4807 </div>
4808 <div class="doc-examples"></div>
4809 </div>
4810 <div class="doc-row">
4811 <div class="doc-copy">
4812 <section class="swagger-responses">
4813 <div class="prop-row prop-group">
4814 <div class="prop-name">
4815 <div class="prop-title">200 OK</div>
4816 <div class="prop-ref">
4817 <span class="json-schema-ref-array">
4818 <a class="json-schema-ref" href="#/definitions/VideoChannel">VideoChannel</a>
4819 </span>
4820 </div>
4821 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
4822 </div>
4823 <div class="prop-value">
4824 <p>successful operation</p>
4825 </div>
4826 </div>
4827 <div class="prop-row prop-inner">
4828 <div class="prop-name">type</div>
4829 <div class="prop-value">
4830 <span class="json-property-type">
4831 <span class="json-schema-ref-array">
4832 <a class="json-schema-ref" href="#/definitions/VideoChannel">VideoChannel</a>
4833 </span>
4834 </span>
4835 <span class="json-property-range" title="Value limits"></span>
4836 </div>
4837 </div>
4838 </section>
4839 </div>
4840 <div class="doc-examples">
4841 <h5>Response Content-Types:
4842 <span>application/json</span>
4843 </h5>
4844 <section>
4845 <h5>Response Example
4846 <span>(200 OK)</span>
4847 </h5>
4848 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
4849 {
4850 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4851 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4852 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
4853 <span class="hljs-attr">&quot;ownerAccount&quot;</span>: {
4854 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
4855 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
4856 }
4857 }
4858]
4859</code></pre>
4860 <!-- </div> -->
4861 </section>
4862 </div>
4863 </div>
4864 </div>
4865 <div id="operation--video-channels-post" class="operation panel" data-traverse-target="operation--video-channels-post">
4866 <!-- <section class="operation-tags row"> -->
4867 <!-- <div class="doc-copy"> -->
4868 <div class="operation-tags">
4869 <a class="label" href="#tag-VideoChannel">VideoChannel</a>
4870 <!---->
4871 </div>
4872 <!-- </div> -->
4873 <!-- </section> -->
4874 <h2 class="operation-title">
4875 <span class="operation-name">
4876 <span class="operation-name">POST</span>
4877 <span class="operation-path">/video-channels</span>
4878 </span>
4879 </h2>
4880 <div class="doc-row">
4881 <div class="doc-copy">
4882 <section class="swagger-request-body">
4883 <div class="prop-row">
4884 <div class="prop-name">
4885 <div class="swagger-request-model">
4886 <span class="">
4887 <a class="json-schema-ref" href="#/definitions/VideoChannelInput">VideoChannelInput</a>
4888 </span>
4889 </div>
4890 </div>
4891 <div class="prop-value columns small-6">
4892 <!-- <div class="swagger-request-description"> -->
4893 <p>undefined</p>
4894 <!-- </div> -->
4895 </div>
4896 </div>
4897 </section>
4898 </div>
4899 <div class="doc-examples">
4900 <section>
4901 <h5>Request Content-Types:
4902 <span>application/json</span>
4903 </h5>
4904 <h5>Request Example</h5>
4905 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
4906 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
4907 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
4908}
4909</code></pre>
4910 <!-- </div> -->
4911 </section>
4912 </div>
4913 </div>
4914 <div class="doc-row">
4915 <div class="doc-copy">
4916 <section class="swagger-responses">
4917 <div class="prop-row prop-group">
4918 <div class="prop-name">
4919 <div class="prop-title">204 No Content</div>
4920 </div>
4921 <div class="prop-value">
4922 <p>Successful operation</p>
4923 </div>
4924 </div>
4925 </section>
4926 </div>
4927 <div class="doc-examples">
4928 <h5>Response Content-Types:
4929 <span>application/json</span>
4930 </h5>
4931 </div>
4932 </div>
4933 <div class="doc-row">
4934 <div class="doc-copy">
4935 <section class="swagger-request-security">
4936 <table class="table">
4937 <thead>
4938 <tr>
4939 <th class="swagger-request-security-schema"></th>
4940 <th class="swagger-request-security-scopes"></th>
4941 </tr>
4942 </thead>
4943 <tbody>
4944 <tr>
4945 <td>
4946 <a href="#security-definition-OAuth2">OAuth2</a>
4947 </td>
4948 <td> </td>
4949 </tr>
4950 </tbody>
4951 </table>
4952 </section>
4953 </div>
4954 </div>
4955 </div>
4956 <div id="operation--video-channels--id--get" class="operation panel" data-traverse-target="operation--video-channels--id--get">
4957 <!-- <section class="operation-tags row"> -->
4958 <!-- <div class="doc-copy"> -->
4959 <div class="operation-tags">
4960 <a class="label" href="#tag-VideoChannel">VideoChannel</a>
4961 <!---->
4962 </div>
4963 <!-- </div> -->
4964 <!-- </section> -->
4965 <h2 class="operation-title">
4966 <span class="operation-name">
4967 <span class="operation-name">GET</span>
4968 <span class="operation-path">/video-channels/{id}</span>
4969 </span>
4970 </h2>
4971 <div class="doc-row">
4972 <div class="doc-copy">
4973 <section class="swagger-request-params">
4974 <div class="prop-row prop-group">
4975 <div class="prop-name">
4976 <div class="prop-title">id:
4977 <span class="prop-type">
4978 <span class="json-property-type">string</span>
4979 <span class="json-property-range" title="Value limits"></span>
4980 </span>
4981 </div>
4982 <span class="json-property-required"></span>
4983 <div class="prop-subtitle"> in path </div>
4984 </div>
4985 <div class="prop-value">
4986 <p>The video channel id or uuid</p>
4987 </div>
4988 </div>
4989 </section>
4990 </div>
4991 <div class="doc-examples"></div>
4992 </div>
4993 <div class="doc-row">
4994 <div class="doc-copy">
4995 <section class="swagger-responses">
4996 <div class="prop-row prop-group">
4997 <div class="prop-name">
4998 <div class="prop-title">200 OK</div>
4999 <div class="prop-ref">
5000 <span class="">
5001 <a class="json-schema-ref" href="#/definitions/VideoChannel">VideoChannel</a>
5002 </span>
5003 </div>
5004 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
5005 </div>
5006 <div class="prop-value">
5007 <p>successful operation</p>
5008 </div>
5009 </div>
5010 </section>
5011 </div>
5012 <div class="doc-examples">
5013 <h5>Response Content-Types:
5014 <span>application/json</span>
5015 </h5>
5016 <section>
5017 <h5>Response Example
5018 <span>(200 OK)</span>
5019 </h5>
5020 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
5021 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5022 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5023 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
5024 <span class="hljs-attr">&quot;ownerAccount&quot;</span>: {
5025 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5026 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5027 }
5028}
5029</code></pre>
5030 <!-- </div> -->
5031 </section>
5032 </div>
5033 </div>
5034 </div>
5035 <div id="operation--video-channels--id--put" class="operation panel" data-traverse-target="operation--video-channels--id--put">
5036 <!-- <section class="operation-tags row"> -->
5037 <!-- <div class="doc-copy"> -->
5038 <div class="operation-tags">
5039 <a class="label" href="#tag-VideoChannel">VideoChannel</a>
5040 <!---->
5041 </div>
5042 <!-- </div> -->
5043 <!-- </section> -->
5044 <h2 class="operation-title">
5045 <span class="operation-name">
5046 <span class="operation-name">PUT</span>
5047 <span class="operation-path">/video-channels/{id}</span>
5048 </span>
5049 </h2>
5050 <div class="doc-row">
5051 <div class="doc-copy">
5052 <section class="swagger-request-body">
5053 <div class="prop-row">
5054 <div class="prop-name">
5055 <div class="swagger-request-model">
5056 <span class="">
5057 <a class="json-schema-ref" href="#/definitions/VideoChannelInput">VideoChannelInput</a>
5058 </span>
5059 </div>
5060 </div>
5061 <div class="prop-value columns small-6">
5062 <!-- <div class="swagger-request-description"> -->
5063 <p>undefined</p>
5064 <!-- </div> -->
5065 </div>
5066 </div>
5067 </section>
5068 <section class="swagger-request-params">
5069 <div class="prop-row prop-group">
5070 <div class="prop-name">
5071 <div class="prop-title">id:
5072 <span class="prop-type">
5073 <span class="json-property-type">string</span>
5074 <span class="json-property-range" title="Value limits"></span>
5075 </span>
5076 </div>
5077 <span class="json-property-required"></span>
5078 <div class="prop-subtitle"> in path </div>
5079 </div>
5080 <div class="prop-value">
5081 <p>The video channel id or uuid</p>
5082 </div>
5083 </div>
5084 </section>
5085 </div>
5086 <div class="doc-examples">
5087 <section>
5088 <h5>Request Content-Types:
5089 <span>application/json</span>
5090 </h5>
5091 <h5>Request Example</h5>
5092 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
5093 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5094 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5095}
5096</code></pre>
5097 <!-- </div> -->
5098 </section>
5099 </div>
5100 </div>
5101 <div class="doc-row">
5102 <div class="doc-copy">
5103 <section class="swagger-responses">
5104 <div class="prop-row prop-group">
5105 <div class="prop-name">
5106 <div class="prop-title">204 No Content</div>
5107 </div>
5108 <div class="prop-value">
5109 <p>Successful operation</p>
5110 </div>
5111 </div>
5112 </section>
5113 </div>
5114 <div class="doc-examples">
5115 <h5>Response Content-Types:
5116 <span>application/json</span>
5117 </h5>
5118 </div>
5119 </div>
5120 <div class="doc-row">
5121 <div class="doc-copy">
5122 <section class="swagger-request-security">
5123 <table class="table">
5124 <thead>
5125 <tr>
5126 <th class="swagger-request-security-schema"></th>
5127 <th class="swagger-request-security-scopes"></th>
5128 </tr>
5129 </thead>
5130 <tbody>
5131 <tr>
5132 <td>
5133 <a href="#security-definition-OAuth2">OAuth2</a>
5134 </td>
5135 <td> </td>
5136 </tr>
5137 </tbody>
5138 </table>
5139 </section>
5140 </div>
5141 </div>
5142 </div>
5143 <div id="operation--video-channels--id--delete" class="operation panel" data-traverse-target="operation--video-channels--id--delete">
5144 <!-- <section class="operation-tags row"> -->
5145 <!-- <div class="doc-copy"> -->
5146 <div class="operation-tags">
5147 <a class="label" href="#tag-VideoChannel">VideoChannel</a>
5148 <!---->
5149 </div>
5150 <!-- </div> -->
5151 <!-- </section> -->
5152 <h2 class="operation-title">
5153 <span class="operation-name">
5154 <span class="operation-name">DELETE</span>
5155 <span class="operation-path">/video-channels/{id}</span>
5156 </span>
5157 </h2>
5158 <div class="doc-row">
5159 <div class="doc-copy">
5160 <section class="swagger-request-params">
5161 <div class="prop-row prop-group">
5162 <div class="prop-name">
5163 <div class="prop-title">id:
5164 <span class="prop-type">
5165 <span class="json-property-type">string</span>
5166 <span class="json-property-range" title="Value limits"></span>
5167 </span>
5168 </div>
5169 <span class="json-property-required"></span>
5170 <div class="prop-subtitle"> in path </div>
5171 </div>
5172 <div class="prop-value">
5173 <p>The video channel id or uuid</p>
5174 </div>
5175 </div>
5176 </section>
5177 </div>
5178 <div class="doc-examples"></div>
5179 </div>
5180 <div class="doc-row">
5181 <div class="doc-copy">
5182 <section class="swagger-responses">
5183 <div class="prop-row prop-group">
5184 <div class="prop-name">
5185 <div class="prop-title">204 No Content</div>
5186 </div>
5187 <div class="prop-value">
5188 <p>Successful operation</p>
5189 </div>
5190 </div>
5191 </section>
5192 </div>
5193 <div class="doc-examples">
5194 <h5>Response Content-Types:
5195 <span>application/json</span>
5196 </h5>
5197 </div>
5198 </div>
5199 <div class="doc-row">
5200 <div class="doc-copy">
5201 <section class="swagger-request-security">
5202 <table class="table">
5203 <thead>
5204 <tr>
5205 <th class="swagger-request-security-schema"></th>
5206 <th class="swagger-request-security-scopes"></th>
5207 </tr>
5208 </thead>
5209 <tbody>
5210 <tr>
5211 <td>
5212 <a href="#security-definition-OAuth2">OAuth2</a>
5213 </td>
5214 <td> </td>
5215 </tr>
5216 </tbody>
5217 </table>
5218 </section>
5219 </div>
5220 </div>
5221 </div>
5222 <div id="operation--video-channels--id--videos-get" class="operation panel" data-traverse-target="operation--video-channels--id--videos-get">
5223 <!-- <section class="operation-tags row"> -->
5224 <!-- <div class="doc-copy"> -->
5225 <div class="operation-tags">
5226 <a class="label" href="#tag-VideoChannel">VideoChannel</a>
5227 <!---->
5228 </div>
5229 <!-- </div> -->
5230 <!-- </section> -->
5231 <h2 class="operation-title">
5232 <span class="operation-name">
5233 <span class="operation-name">GET</span>
5234 <span class="operation-path">/video-channels/{id}/videos</span>
5235 </span>
5236 </h2>
5237 <div class="doc-row">
5238 <div class="doc-copy">
5239 <section class="swagger-request-params">
5240 <div class="prop-row prop-group">
5241 <div class="prop-name">
5242 <div class="prop-title">id:
5243 <span class="prop-type">
5244 <span class="json-property-type">string</span>
5245 <span class="json-property-range" title="Value limits"></span>
5246 </span>
5247 </div>
5248 <span class="json-property-required"></span>
5249 <div class="prop-subtitle"> in path </div>
5250 </div>
5251 <div class="prop-value">
5252 <p>The video channel id or uuid</p>
5253 </div>
5254 </div>
5255 </section>
5256 </div>
5257 <div class="doc-examples"></div>
5258 </div>
5259 <div class="doc-row">
5260 <div class="doc-copy">
5261 <section class="swagger-responses">
5262 <div class="prop-row prop-group">
5263 <div class="prop-name">
5264 <div class="prop-title">200 OK</div>
5265 <div class="prop-ref">
5266 <span class="">
5267 <a class="json-schema-ref" href="#/definitions/Video">Video</a>
5268 </span>
5269 </div>
5270 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
5271 </div>
5272 <div class="prop-value">
5273 <p>successful operation</p>
5274 </div>
5275 </div>
5276 </section>
5277 </div>
5278 <div class="doc-examples">
5279 <h5>Response Content-Types:
5280 <span>application/json</span>
5281 </h5>
5282 <section>
5283 <h5>Response Example
5284 <span>(200 OK)</span>
5285 </h5>
5286 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
5287 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5288 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5289 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5290 <span class="hljs-attr">&quot;publishedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5291 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5292 <span class="hljs-attr">&quot;category&quot;</span>: {
5293 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5294 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5295 },
5296 <span class="hljs-attr">&quot;licence&quot;</span>: {
5297 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5298 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5299 },
5300 <span class="hljs-attr">&quot;language&quot;</span>: {
5301 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5302 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5303 },
5304 <span class="hljs-attr">&quot;privacy&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5305 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5306 <span class="hljs-attr">&quot;duration&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5307 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
5308 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5309 <span class="hljs-attr">&quot;thumbnailPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5310 <span class="hljs-attr">&quot;previewPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5311 <span class="hljs-attr">&quot;embedPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5312 <span class="hljs-attr">&quot;views&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5313 <span class="hljs-attr">&quot;likes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5314 <span class="hljs-attr">&quot;dislikes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5315 <span class="hljs-attr">&quot;nsfw&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
5316 <span class="hljs-attr">&quot;account&quot;</span>: {
5317 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5318 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5319 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5320 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5321 <span class="hljs-attr">&quot;avatar&quot;</span>: {
5322 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5323 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5324 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5325 }
5326 }
5327}
5328</code></pre>
5329 <!-- </div> -->
5330 </section>
5331 </div>
5332 </div>
5333 </div>
5334 <div id="operation--accounts--name--video-channels-get" class="operation panel" data-traverse-target="operation--accounts--name--video-channels-get">
5335 <!-- <section class="operation-tags row"> -->
5336 <!-- <div class="doc-copy"> -->
5337 <div class="operation-tags">
5338 <a class="label" href="#tag-VideoChannel">VideoChannel</a>
5339 <!---->
5340 </div>
5341 <!-- </div> -->
5342 <!-- </section> -->
5343 <h2 class="operation-title">
5344 <span class="operation-name">
5345 <span class="operation-name">GET</span>
5346 <span class="operation-path">/accounts/{name}/video-channels</span>
5347 </span>
5348 </h2>
5349 <div class="doc-row">
5350 <div class="doc-copy">
5351 <section class="swagger-request-params">
5352 <div class="prop-row prop-group">
5353 <div class="prop-name">
5354 <div class="prop-title">name:
5355 <span class="prop-type">
5356 <span class="json-property-type">string</span>
5357 <span class="json-property-range" title="Value limits"></span>
5358 </span>
5359 </div>
5360 <span class="json-property-required"></span>
5361 <div class="prop-subtitle"> in path </div>
5362 </div>
5363 <div class="prop-value">
5364 <p>The name of the account (chocobozzz or
5365 <a href="mailto:chocobozzz@peertube.cpy.re">chocobozzz@peertube.cpy.re</a> for example)</p>
5366 </div>
5367 </div>
5368 </section>
5369 </div>
5370 <div class="doc-examples"></div>
5371 </div>
5372 <div class="doc-row">
5373 <div class="doc-copy">
5374 <section class="swagger-responses">
5375 <div class="prop-row prop-group">
5376 <div class="prop-name">
5377 <div class="prop-title">200 OK</div>
5378 <div class="prop-ref">
5379 <span class="json-schema-ref-array">
5380 <a class="json-schema-ref" href="#/definitions/VideoChannel">VideoChannel</a>
5381 </span>
5382 </div>
5383 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
5384 </div>
5385 <div class="prop-value">
5386 <p>successful operation</p>
5387 </div>
5388 </div>
5389 <div class="prop-row prop-inner">
5390 <div class="prop-name">type</div>
5391 <div class="prop-value">
5392 <span class="json-property-type">
5393 <span class="json-schema-ref-array">
5394 <a class="json-schema-ref" href="#/definitions/VideoChannel">VideoChannel</a>
5395 </span>
5396 </span>
5397 <span class="json-property-range" title="Value limits"></span>
5398 </div>
5399 </div>
5400 </section>
5401 </div>
5402 <div class="doc-examples">
5403 <h5>Response Content-Types:
5404 <span>application/json</span>
5405 </h5>
5406 <section>
5407 <h5>Response Example
5408 <span>(200 OK)</span>
5409 </h5>
5410 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
5411 {
5412 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5413 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5414 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
5415 <span class="hljs-attr">&quot;ownerAccount&quot;</span>: {
5416 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5417 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5418 }
5419 }
5420]
5421</code></pre>
5422 <!-- </div> -->
5423 </section>
5424 </div>
5425 </div>
5426 </div>
5427 <h1 id="tag-VideoComment" class="swagger-summary-tag" data-traverse-target="tag-VideoComment">VideoComment</h1>
5428 <div id="operation--videos--id--comment-threads-get" class="operation panel" data-traverse-target="operation--videos--id--comment-threads-get">
5429 <!-- <section class="operation-tags row"> -->
5430 <!-- <div class="doc-copy"> -->
5431 <div class="operation-tags">
5432 <a class="label" href="#tag-VideoComment">VideoComment</a>
5433 <!---->
5434 </div>
5435 <!-- </div> -->
5436 <!-- </section> -->
5437 <h2 class="operation-title">
5438 <span class="operation-name">
5439 <span class="operation-name">GET</span>
5440 <span class="operation-path">/videos/{id}/comment-threads</span>
5441 </span>
5442 </h2>
5443 <div class="doc-row">
5444 <div class="doc-copy">
5445 <section class="swagger-request-params">
5446 <div class="prop-row prop-group">
5447 <div class="prop-name">
5448 <div class="prop-title">id:
5449 <span class="prop-type">
5450 <span class="json-property-type">string</span>
5451 <span class="json-property-range" title="Value limits"></span>
5452 </span>
5453 </div>
5454 <span class="json-property-required"></span>
5455 <div class="prop-subtitle"> in path </div>
5456 </div>
5457 <div class="prop-value">
5458 <p>The video id or uuid</p>
5459 </div>
5460 </div>
5461 <div class="prop-row prop-group">
5462 <div class="prop-name">
5463 <div class="prop-title">start:
5464 <span class="prop-type">
5465 <span class="json-property-type">number</span>
5466 <span class="json-property-range" title="Value limits"></span>
5467 </span>
5468 </div>
5469 <div class="prop-subtitle"> in query </div>
5470 </div>
5471 <div class="prop-value">
5472 <p>Offset</p>
5473 </div>
5474 </div>
5475 <div class="prop-row prop-group">
5476 <div class="prop-name">
5477 <div class="prop-title">count:
5478 <span class="prop-type">
5479 <span class="json-property-type">number</span>
5480 <span class="json-property-range" title="Value limits"></span>
5481 </span>
5482 </div>
5483 <div class="prop-subtitle"> in query </div>
5484 </div>
5485 <div class="prop-value">
5486 <p>Number of items</p>
5487 </div>
5488 </div>
5489 <div class="prop-row prop-group">
5490 <div class="prop-name">
5491 <div class="prop-title">sort:
5492 <span class="prop-type">
5493 <span class="json-property-type">string</span>
5494 <span class="json-property-range" title="Value limits"></span>
5495 </span>
5496 </div>
5497 <div class="prop-subtitle"> in query </div>
5498 </div>
5499 <div class="prop-value">
5500 <p>Sort column (-createdAt for example)</p>
5501 </div>
5502 </div>
5503 </section>
5504 </div>
5505 <div class="doc-examples"></div>
5506 </div>
5507 <div class="doc-row">
5508 <div class="doc-copy">
5509 <section class="swagger-responses">
5510 <div class="prop-row prop-group">
5511 <div class="prop-name">
5512 <div class="prop-title">200 OK</div>
5513 <div class="prop-ref">
5514 <span class="">
5515 <a class="json-schema-ref" href="#/definitions/CommentThreadResponse">CommentThreadResponse</a>
5516 </span>
5517 </div>
5518 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
5519 </div>
5520 <div class="prop-value">
5521 <p>successful operation</p>
5522 </div>
5523 </div>
5524 </section>
5525 </div>
5526 <div class="doc-examples">
5527 <h5>Response Content-Types:
5528 <span>application/json</span>
5529 </h5>
5530 <section>
5531 <h5>Response Example
5532 <span>(200 OK)</span>
5533 </h5>
5534 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
5535 <span class="hljs-attr">&quot;total&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5536 <span class="hljs-attr">&quot;data&quot;</span>: [
5537 {
5538 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5539 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5540 <span class="hljs-attr">&quot;text&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5541 <span class="hljs-attr">&quot;threadId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5542 <span class="hljs-attr">&quot;inReplyToCommentId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5543 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5544 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5545 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5546 <span class="hljs-attr">&quot;totalReplies&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5547 <span class="hljs-attr">&quot;account&quot;</span>: {
5548 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5549 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5550 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5551 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5552 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5553 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5554 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5555 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5556 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5557 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5558 <span class="hljs-attr">&quot;avatar&quot;</span>: {
5559 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5560 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5561 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5562 }
5563 }
5564 }
5565 ]
5566}
5567</code></pre>
5568 <!-- </div> -->
5569 </section>
5570 </div>
5571 </div>
5572 </div>
5573 <div id="operation--videos--id--comment-threads-post" class="operation panel" data-traverse-target="operation--videos--id--comment-threads-post">
5574 <!-- <section class="operation-tags row"> -->
5575 <!-- <div class="doc-copy"> -->
5576 <div class="operation-tags">
5577 <a class="label" href="#tag-VideoComment">VideoComment</a>
5578 <!---->
5579 </div>
5580 <!-- </div> -->
5581 <!-- </section> -->
5582 <h2 class="operation-title">
5583 <span class="operation-name">
5584 <span class="operation-name">POST</span>
5585 <span class="operation-path">/videos/{id}/comment-threads</span>
5586 </span>
5587 </h2>
5588 <div class="doc-row">
5589 <div class="doc-copy">
5590 <section class="swagger-request-params">
5591 <div class="prop-row prop-group">
5592 <div class="prop-name">
5593 <div class="prop-title">id:
5594 <span class="prop-type">
5595 <span class="json-property-type">string</span>
5596 <span class="json-property-range" title="Value limits"></span>
5597 </span>
5598 </div>
5599 <span class="json-property-required"></span>
5600 <div class="prop-subtitle"> in path </div>
5601 </div>
5602 <div class="prop-value">
5603 <p>The video id or uuid</p>
5604 </div>
5605 </div>
5606 </section>
5607 </div>
5608 <div class="doc-examples"></div>
5609 </div>
5610 <div class="doc-row">
5611 <div class="doc-copy">
5612 <section class="swagger-responses">
5613 <div class="prop-row prop-group">
5614 <div class="prop-name">
5615 <div class="prop-title">200 OK</div>
5616 <div class="prop-ref">
5617 <span class="">
5618 <a class="json-schema-ref" href="#/definitions/CommentThreadPostResponse">CommentThreadPostResponse</a>
5619 </span>
5620 </div>
5621 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
5622 </div>
5623 <div class="prop-value">
5624 <p>successful operation</p>
5625 </div>
5626 </div>
5627 </section>
5628 </div>
5629 <div class="doc-examples">
5630 <h5>Response Content-Types:
5631 <span>application/json</span>
5632 </h5>
5633 <section>
5634 <h5>Response Example
5635 <span>(200 OK)</span>
5636 </h5>
5637 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
5638 <span class="hljs-attr">&quot;comment&quot;</span>: {
5639 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5640 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5641 <span class="hljs-attr">&quot;text&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5642 <span class="hljs-attr">&quot;threadId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5643 <span class="hljs-attr">&quot;inReplyToCommentId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5644 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5645 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5646 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5647 <span class="hljs-attr">&quot;totalReplies&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5648 <span class="hljs-attr">&quot;account&quot;</span>: {
5649 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5650 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5651 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5652 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5653 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5654 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5655 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5656 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5657 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5658 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5659 <span class="hljs-attr">&quot;avatar&quot;</span>: {
5660 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5661 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5662 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5663 }
5664 }
5665 }
5666}
5667</code></pre>
5668 <!-- </div> -->
5669 </section>
5670 </div>
5671 </div>
5672 <div class="doc-row">
5673 <div class="doc-copy">
5674 <section class="swagger-request-security">
5675 <table class="table">
5676 <thead>
5677 <tr>
5678 <th class="swagger-request-security-schema"></th>
5679 <th class="swagger-request-security-scopes"></th>
5680 </tr>
5681 </thead>
5682 <tbody>
5683 <tr>
5684 <td>
5685 <a href="#security-definition-OAuth2">OAuth2</a>
5686 </td>
5687 <td> </td>
5688 </tr>
5689 </tbody>
5690 </table>
5691 </section>
5692 </div>
5693 </div>
5694 </div>
5695 <div id="operation--videos--id--comment-threads--threadId--get" class="operation panel" data-traverse-target="operation--videos--id--comment-threads--threadId--get">
5696 <!-- <section class="operation-tags row"> -->
5697 <!-- <div class="doc-copy"> -->
5698 <div class="operation-tags">
5699 <a class="label" href="#tag-VideoComment">VideoComment</a>
5700 <!---->
5701 </div>
5702 <!-- </div> -->
5703 <!-- </section> -->
5704 <h2 class="operation-title">
5705 <span class="operation-name">
5706 <span class="operation-name">GET</span>
5707 <span class="operation-path">/videos/{id}/comment-threads/{threadId}</span>
5708 </span>
5709 </h2>
5710 <div class="doc-row">
5711 <div class="doc-copy">
5712 <section class="swagger-request-params">
5713 <div class="prop-row prop-group">
5714 <div class="prop-name">
5715 <div class="prop-title">id:
5716 <span class="prop-type">
5717 <span class="json-property-type">string</span>
5718 <span class="json-property-range" title="Value limits"></span>
5719 </span>
5720 </div>
5721 <span class="json-property-required"></span>
5722 <div class="prop-subtitle"> in path </div>
5723 </div>
5724 <div class="prop-value">
5725 <p>The video id or uuid</p>
5726 </div>
5727 </div>
5728 <div class="prop-row prop-group">
5729 <div class="prop-name">
5730 <div class="prop-title">threadId:
5731 <span class="prop-type">
5732 <span class="json-property-type">number</span>
5733 <span class="json-property-range" title="Value limits"></span>
5734 </span>
5735 </div>
5736 <span class="json-property-required"></span>
5737 <div class="prop-subtitle"> in path </div>
5738 </div>
5739 <div class="prop-value">
5740 <p>The thread id (root comment id)</p>
5741 </div>
5742 </div>
5743 </section>
5744 </div>
5745 <div class="doc-examples"></div>
5746 </div>
5747 <div class="doc-row">
5748 <div class="doc-copy">
5749 <section class="swagger-responses">
5750 <div class="prop-row prop-group">
5751 <div class="prop-name">
5752 <div class="prop-title">200 OK</div>
5753 <div class="prop-ref">
5754 <span class="">
5755 <a class="json-schema-ref" href="#/definitions/VideoCommentThreadTree">VideoCommentThreadTree</a>
5756 </span>
5757 </div>
5758 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
5759 </div>
5760 <div class="prop-value">
5761 <p>successful operation</p>
5762 </div>
5763 </div>
5764 </section>
5765 </div>
5766 <div class="doc-examples">
5767 <h5>Response Content-Types:
5768 <span>application/json</span>
5769 </h5>
5770 <section>
5771 <h5>Response Example
5772 <span>(200 OK)</span>
5773 </h5>
5774 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
5775 <span class="hljs-attr">&quot;comment&quot;</span>: {
5776 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5777 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5778 <span class="hljs-attr">&quot;text&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5779 <span class="hljs-attr">&quot;threadId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5780 <span class="hljs-attr">&quot;inReplyToCommentId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5781 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5782 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5783 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5784 <span class="hljs-attr">&quot;totalReplies&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5785 <span class="hljs-attr">&quot;account&quot;</span>: {
5786 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5787 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5788 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5789 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5790 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5791 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5792 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5793 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5794 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5795 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5796 <span class="hljs-attr">&quot;avatar&quot;</span>: {
5797 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5798 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5799 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5800 }
5801 }
5802 },
5803 <span class="hljs-attr">&quot;children&quot;</span>: [
5804 {
5805 <span class="hljs-attr">&quot;comment&quot;</span>: {
5806 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5807 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5808 <span class="hljs-attr">&quot;text&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5809 <span class="hljs-attr">&quot;threadId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5810 <span class="hljs-attr">&quot;inReplyToCommentId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5811 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5812 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5813 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5814 <span class="hljs-attr">&quot;totalReplies&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5815 <span class="hljs-attr">&quot;account&quot;</span>: {
5816 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5817 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5818 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5819 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5820 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5821 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5822 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5823 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5824 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5825 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5826 <span class="hljs-attr">&quot;avatar&quot;</span>: {
5827 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5828 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5829 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5830 }
5831 }
5832 },
5833 <span class="hljs-attr">&quot;children&quot;</span>: [
5834 {
5835 <span class="hljs-attr">&quot;comment&quot;</span>: {
5836 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5837 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5838 <span class="hljs-attr">&quot;text&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5839 <span class="hljs-attr">&quot;threadId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5840 <span class="hljs-attr">&quot;inReplyToCommentId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5841 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5842 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5843 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5844 <span class="hljs-attr">&quot;totalReplies&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5845 <span class="hljs-attr">&quot;account&quot;</span>: {
5846 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5847 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5848 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5849 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5850 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5851 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5852 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5853 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5854 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5855 <span class="hljs-attr">&quot;avatar&quot;</span>: {
5856 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5857 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5858 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5859 }
5860 }
5861 }
5862 }
5863 ]
5864 }
5865 ]
5866}
5867</code></pre>
5868 <!-- </div> -->
5869 </section>
5870 </div>
5871 </div>
5872 </div>
5873 <div id="operation--videos--id--comments--commentId--post" class="operation panel" data-traverse-target="operation--videos--id--comments--commentId--post">
5874 <!-- <section class="operation-tags row"> -->
5875 <!-- <div class="doc-copy"> -->
5876 <div class="operation-tags">
5877 <a class="label" href="#tag-VideoComment">VideoComment</a>
5878 <!---->
5879 </div>
5880 <!-- </div> -->
5881 <!-- </section> -->
5882 <h2 class="operation-title">
5883 <span class="operation-name">
5884 <span class="operation-name">POST</span>
5885 <span class="operation-path">/videos/{id}/comments/{commentId}</span>
5886 </span>
5887 </h2>
5888 <div class="doc-row">
5889 <div class="doc-copy">
5890 <section class="swagger-request-params">
5891 <div class="prop-row prop-group">
5892 <div class="prop-name">
5893 <div class="prop-title">id:
5894 <span class="prop-type">
5895 <span class="json-property-type">string</span>
5896 <span class="json-property-range" title="Value limits"></span>
5897 </span>
5898 </div>
5899 <span class="json-property-required"></span>
5900 <div class="prop-subtitle"> in path </div>
5901 </div>
5902 <div class="prop-value">
5903 <p>The video id or uuid</p>
5904 </div>
5905 </div>
5906 <div class="prop-row prop-group">
5907 <div class="prop-name">
5908 <div class="prop-title">threadId:
5909 <span class="prop-type">
5910 <span class="json-property-type">number</span>
5911 <span class="json-property-range" title="Value limits"></span>
5912 </span>
5913 </div>
5914 <span class="json-property-required"></span>
5915 <div class="prop-subtitle"> in path </div>
5916 </div>
5917 <div class="prop-value">
5918 <p>The comment id</p>
5919 </div>
5920 </div>
5921 </section>
5922 </div>
5923 <div class="doc-examples"></div>
5924 </div>
5925 <div class="doc-row">
5926 <div class="doc-copy">
5927 <section class="swagger-responses">
5928 <div class="prop-row prop-group">
5929 <div class="prop-name">
5930 <div class="prop-title">200 OK</div>
5931 <div class="prop-ref">
5932 <span class="">
5933 <a class="json-schema-ref" href="#/definitions/CommentThreadPostResponse">CommentThreadPostResponse</a>
5934 </span>
5935 </div>
5936 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
5937 </div>
5938 <div class="prop-value">
5939 <p>successful operation</p>
5940 </div>
5941 </div>
5942 </section>
5943 </div>
5944 <div class="doc-examples">
5945 <h5>Response Content-Types:
5946 <span>application/json</span>
5947 </h5>
5948 <section>
5949 <h5>Response Example
5950 <span>(200 OK)</span>
5951 </h5>
5952 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
5953 <span class="hljs-attr">&quot;comment&quot;</span>: {
5954 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5955 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5956 <span class="hljs-attr">&quot;text&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5957 <span class="hljs-attr">&quot;threadId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5958 <span class="hljs-attr">&quot;inReplyToCommentId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5959 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5960 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5961 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5962 <span class="hljs-attr">&quot;totalReplies&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5963 <span class="hljs-attr">&quot;account&quot;</span>: {
5964 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5965 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5966 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5967 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5968 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5969 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5970 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5971 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
5972 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5973 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5974 <span class="hljs-attr">&quot;avatar&quot;</span>: {
5975 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5976 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
5977 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
5978 }
5979 }
5980 }
5981}
5982</code></pre>
5983 <!-- </div> -->
5984 </section>
5985 </div>
5986 </div>
5987 <div class="doc-row">
5988 <div class="doc-copy">
5989 <section class="swagger-request-security">
5990 <table class="table">
5991 <thead>
5992 <tr>
5993 <th class="swagger-request-security-schema"></th>
5994 <th class="swagger-request-security-scopes"></th>
5995 </tr>
5996 </thead>
5997 <tbody>
5998 <tr>
5999 <td>
6000 <a href="#security-definition-OAuth2">OAuth2</a>
6001 </td>
6002 <td> </td>
6003 </tr>
6004 </tbody>
6005 </table>
6006 </section>
6007 </div>
6008 </div>
6009 </div>
6010 <div id="operation--videos--id--comments--commentId--delete" class="operation panel" data-traverse-target="operation--videos--id--comments--commentId--delete">
6011 <!-- <section class="operation-tags row"> -->
6012 <!-- <div class="doc-copy"> -->
6013 <div class="operation-tags">
6014 <a class="label" href="#tag-VideoComment">VideoComment</a>
6015 <!---->
6016 </div>
6017 <!-- </div> -->
6018 <!-- </section> -->
6019 <h2 class="operation-title">
6020 <span class="operation-name">
6021 <span class="operation-name">DELETE</span>
6022 <span class="operation-path">/videos/{id}/comments/{commentId}</span>
6023 </span>
6024 </h2>
6025 <div class="doc-row">
6026 <div class="doc-copy">
6027 <section class="swagger-request-params">
6028 <div class="prop-row prop-group">
6029 <div class="prop-name">
6030 <div class="prop-title">id:
6031 <span class="prop-type">
6032 <span class="json-property-type">string</span>
6033 <span class="json-property-range" title="Value limits"></span>
6034 </span>
6035 </div>
6036 <span class="json-property-required"></span>
6037 <div class="prop-subtitle"> in path </div>
6038 </div>
6039 <div class="prop-value">
6040 <p>The video id or uuid</p>
6041 </div>
6042 </div>
6043 <div class="prop-row prop-group">
6044 <div class="prop-name">
6045 <div class="prop-title">threadId:
6046 <span class="prop-type">
6047 <span class="json-property-type">number</span>
6048 <span class="json-property-range" title="Value limits"></span>
6049 </span>
6050 </div>
6051 <span class="json-property-required"></span>
6052 <div class="prop-subtitle"> in path </div>
6053 </div>
6054 <div class="prop-value">
6055 <p>The comment id</p>
6056 </div>
6057 </div>
6058 </section>
6059 </div>
6060 <div class="doc-examples"></div>
6061 </div>
6062 <div class="doc-row">
6063 <div class="doc-copy">
6064 <section class="swagger-responses">
6065 <div class="prop-row prop-group">
6066 <div class="prop-name">
6067 <div class="prop-title">204 No Content</div>
6068 </div>
6069 <div class="prop-value">
6070 <p>Successful operation</p>
6071 </div>
6072 </div>
6073 </section>
6074 </div>
6075 <div class="doc-examples">
6076 <h5>Response Content-Types:
6077 <span>application/json</span>
6078 </h5>
6079 </div>
6080 </div>
6081 <div class="doc-row">
6082 <div class="doc-copy">
6083 <section class="swagger-request-security">
6084 <table class="table">
6085 <thead>
6086 <tr>
6087 <th class="swagger-request-security-schema"></th>
6088 <th class="swagger-request-security-scopes"></th>
6089 </tr>
6090 </thead>
6091 <tbody>
6092 <tr>
6093 <td>
6094 <a href="#security-definition-OAuth2">OAuth2</a>
6095 </td>
6096 <td> </td>
6097 </tr>
6098 </tbody>
6099 </table>
6100 </section>
6101 </div>
6102 </div>
6103 </div>
6104 <h1 id="tag-VideoRate" class="swagger-summary-tag" data-traverse-target="tag-VideoRate">VideoRate</h1>
6105 <div id="operation--videos--id--rate-put" class="operation panel" data-traverse-target="operation--videos--id--rate-put">
6106 <!-- <section class="operation-tags row"> -->
6107 <!-- <div class="doc-copy"> -->
6108 <div class="operation-tags">
6109 <a class="label" href="#tag-VideoRate">VideoRate</a>
6110 <!---->
6111 </div>
6112 <!-- </div> -->
6113 <!-- </section> -->
6114 <h2 class="operation-title">
6115 <span class="operation-name">
6116 <span class="operation-name">PUT</span>
6117 <span class="operation-path">/videos/{id}/rate</span>
6118 </span>
6119 </h2>
6120 <div class="doc-row">
6121 <div class="doc-copy">
6122 <section class="swagger-request-params">
6123 <div class="prop-row prop-group">
6124 <div class="prop-name">
6125 <div class="prop-title">id:
6126 <span class="prop-type">
6127 <span class="json-property-type">string</span>
6128 <span class="json-property-range" title="Value limits"></span>
6129 </span>
6130 </div>
6131 <span class="json-property-required"></span>
6132 <div class="prop-subtitle"> in path </div>
6133 </div>
6134 <div class="prop-value">
6135 <p>The video id or uuid</p>
6136 </div>
6137 </div>
6138 </section>
6139 </div>
6140 <div class="doc-examples"></div>
6141 </div>
6142 <div class="doc-row">
6143 <div class="doc-copy">
6144 <section class="swagger-responses">
6145 <div class="prop-row prop-group">
6146 <div class="prop-name">
6147 <div class="prop-title">204 No Content</div>
6148 </div>
6149 <div class="prop-value">
6150 <p>Successful operation</p>
6151 </div>
6152 </div>
6153 </section>
6154 </div>
6155 <div class="doc-examples">
6156 <h5>Response Content-Types:
6157 <span>application/json</span>
6158 </h5>
6159 </div>
6160 </div>
6161 <div class="doc-row">
6162 <div class="doc-copy">
6163 <section class="swagger-request-security">
6164 <table class="table">
6165 <thead>
6166 <tr>
6167 <th class="swagger-request-security-schema"></th>
6168 <th class="swagger-request-security-scopes"></th>
6169 </tr>
6170 </thead>
6171 <tbody>
6172 <tr>
6173 <td>
6174 <a href="#security-definition-OAuth2">OAuth2</a>
6175 </td>
6176 <td> </td>
6177 </tr>
6178 </tbody>
6179 </table>
6180 </section>
6181 </div>
6182 </div>
6183 </div>
6184 <h1 id="tag-Search" class="swagger-summary-tag" data-traverse-target="tag-Search">Search</h1>
6185 <div id="operation--search-videos-get" class="operation panel" data-traverse-target="operation--search-videos-get">
6186 <!-- <section class="operation-tags row"> -->
6187 <!-- <div class="doc-copy"> -->
6188 <div class="operation-tags">
6189 <a class="label" href="#tag-Search">Search</a>
6190 <!---->
6191 </div>
6192 <!-- </div> -->
6193 <!-- </section> -->
6194 <h2 class="operation-title">
6195 <span class="operation-name">
6196 <span class="operation-name">GET</span>
6197 <span class="operation-path">/search/videos</span>
6198 </span>
6199 </h2>
6200 <div class="doc-row">
6201 <div class="doc-copy">
6202 <section class="swagger-request-params">
6203 <div class="prop-row prop-group">
6204 <div class="prop-name">
6205 <div class="prop-title">start:
6206 <span class="prop-type">
6207 <span class="json-property-type">number</span>
6208 <span class="json-property-range" title="Value limits"></span>
6209 </span>
6210 </div>
6211 <div class="prop-subtitle"> in query </div>
6212 </div>
6213 <div class="prop-value">
6214 <p>Offset</p>
6215 </div>
6216 </div>
6217 <div class="prop-row prop-group">
6218 <div class="prop-name">
6219 <div class="prop-title">count:
6220 <span class="prop-type">
6221 <span class="json-property-type">number</span>
6222 <span class="json-property-range" title="Value limits"></span>
6223 </span>
6224 </div>
6225 <div class="prop-subtitle"> in query </div>
6226 </div>
6227 <div class="prop-value">
6228 <p>Number of items</p>
6229 </div>
6230 </div>
6231 <div class="prop-row prop-group">
6232 <div class="prop-name">
6233 <div class="prop-title">sort:
6234 <span class="prop-type">
6235 <span class="json-property-type">string</span>
6236 <span class="json-property-range" title="Value limits"></span>
6237 </span>
6238 </div>
6239 <div class="prop-subtitle"> in query </div>
6240 </div>
6241 <div class="prop-value">
6242 <p>Sort column (-createdAt for example)</p>
6243 </div>
6244 </div>
6245 <div class="prop-row prop-group">
6246 <div class="prop-name">
6247 <div class="prop-title">search:
6248 <span class="prop-type">
6249 <span class="json-property-type">string</span>
6250 <span class="json-property-range" title="Value limits"></span>
6251 </span>
6252 </div>
6253 <span class="json-property-required"></span>
6254 <div class="prop-subtitle"> in query </div>
6255 </div>
6256 <div class="prop-value">
6257 <p>String to search</p>
6258 </div>
6259 </div>
6260 </section>
6261 </div>
6262 <div class="doc-examples"></div>
6263 </div>
6264 <div class="doc-row">
6265 <div class="doc-copy">
6266 <section class="swagger-responses">
6267 <div class="prop-row prop-group">
6268 <div class="prop-name">
6269 <div class="prop-title">200 OK</div>
6270 <div class="prop-ref">
6271 <span class="json-schema-ref-array">
6272 <a class="json-schema-ref" href="#/definitions/Video">Video</a>
6273 </span>
6274 </div>
6275 <!-- <span class="swagger-global"></span> <span class="json-schema-reference"><a href=""></a></span> -->
6276 </div>
6277 <div class="prop-value">
6278 <p>successful operation</p>
6279 </div>
6280 </div>
6281 <div class="prop-row prop-inner">
6282 <div class="prop-name">type</div>
6283 <div class="prop-value">
6284 <span class="json-property-type">
6285 <span class="json-schema-ref-array">
6286 <a class="json-schema-ref" href="#/definitions/Video">Video</a>
6287 </span>
6288 </span>
6289 <span class="json-property-range" title="Value limits"></span>
6290 </div>
6291 </div>
6292 </section>
6293 </div>
6294 <div class="doc-examples">
6295 <h5>Response Content-Types:
6296 <span>application/json</span>
6297 </h5>
6298 <section>
6299 <h5>Response Example
6300 <span>(200 OK)</span>
6301 </h5>
6302 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">[
6303 {
6304 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6305 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6306 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6307 <span class="hljs-attr">&quot;publishedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6308 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6309 <span class="hljs-attr">&quot;category&quot;</span>: {
6310 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6311 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6312 },
6313 <span class="hljs-attr">&quot;licence&quot;</span>: {
6314 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6315 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6316 },
6317 <span class="hljs-attr">&quot;language&quot;</span>: {
6318 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6319 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6320 },
6321 <span class="hljs-attr">&quot;privacy&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6322 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6323 <span class="hljs-attr">&quot;duration&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6324 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
6325 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6326 <span class="hljs-attr">&quot;thumbnailPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6327 <span class="hljs-attr">&quot;previewPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6328 <span class="hljs-attr">&quot;embedPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6329 <span class="hljs-attr">&quot;views&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6330 <span class="hljs-attr">&quot;likes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6331 <span class="hljs-attr">&quot;dislikes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6332 <span class="hljs-attr">&quot;nsfw&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
6333 <span class="hljs-attr">&quot;account&quot;</span>: {
6334 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6335 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6336 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6337 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6338 <span class="hljs-attr">&quot;avatar&quot;</span>: {
6339 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6340 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6341 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6342 }
6343 }
6344 }
6345]
6346</code></pre>
6347 <!-- </div> -->
6348 </section>
6349 </div>
6350 </div>
6351 </div>
6352 <h1>Schema Definitions</h1>
6353 <div id="definition-VideoConstantNumber" class="definition panel" data-traverse-target="definition-VideoConstantNumber">
6354 <h2 class="panel-title">
6355 <a name="/definitions/VideoConstantNumber"></a>VideoConstantNumber:
6356 <!-- <span class="json-property-type">
6357 <span class="json-property-type">object</span>
6358 <span class="json-property-range" title="Value limits"></span>
6359
6360
6361 </span> -->
6362 </h2>
6363 <div class="doc-row">
6364 <div class="doc-copy">
6365 <section class="json-schema-properties">
6366 <dl>
6367 <dt data-property-name="id">
6368 <span class="json-property-name">id:</span>
6369 <span class="json-property-type">number</span>
6370 <span class="json-property-range" title="Value limits"></span>
6371 </dt>
6372 <dt data-property-name="label">
6373 <span class="json-property-name">label:</span>
6374 <span class="json-property-type">string</span>
6375 <span class="json-property-range" title="Value limits"></span>
6376 </dt>
6377 </dl>
6378 </section>
6379 </div>
6380 <div class="doc-examples">
6381 <section>
6382 <h5>Example</h5>
6383 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
6384 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6385 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6386}
6387</code></pre>
6388 <!-- </div> -->
6389 </section>
6390 </div>
6391 </div>
6392 </div>
6393 <div id="definition-VideoConstantString" class="definition panel" data-traverse-target="definition-VideoConstantString">
6394 <h2 class="panel-title">
6395 <a name="/definitions/VideoConstantString"></a>VideoConstantString:
6396 <!-- <span class="json-property-type">
6397 <span class="json-property-type">object</span>
6398 <span class="json-property-range" title="Value limits"></span>
6399
6400
6401 </span> -->
6402 </h2>
6403 <div class="doc-row">
6404 <div class="doc-copy">
6405 <section class="json-schema-properties">
6406 <dl>
6407 <dt data-property-name="id">
6408 <span class="json-property-name">id:</span>
6409 <span class="json-property-type">string</span>
6410 <span class="json-property-range" title="Value limits"></span>
6411 </dt>
6412 <dt data-property-name="label">
6413 <span class="json-property-name">label:</span>
6414 <span class="json-property-type">string</span>
6415 <span class="json-property-range" title="Value limits"></span>
6416 </dt>
6417 </dl>
6418 </section>
6419 </div>
6420 <div class="doc-examples">
6421 <section>
6422 <h5>Example</h5>
6423 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
6424 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6425 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6426}
6427</code></pre>
6428 <!-- </div> -->
6429 </section>
6430 </div>
6431 </div>
6432 </div>
6433 <div id="definition-VideoPrivacy" class="definition panel" data-traverse-target="definition-VideoPrivacy">
6434 <h2 class="panel-title">
6435 <a name="/definitions/VideoPrivacy"></a>VideoPrivacy: string
6436 <!-- <span class="json-property-type">
6437 <span class="json-property-type">string</span> <span class="json-property-enum" title="Possible values">
6438 <span class="json-property-enum-item">Public</span>,
6439 <span class="json-property-enum-item">Unlisted</span>,
6440 <span class="json-property-enum-item">Private</span>
6441 </span>
6442 <span class="json-property-range" title="Value limits"></span>
6443
6444
6445 </span> -->
6446 </h2>
6447 <div class="doc-row">
6448 <div class="doc-copy">
6449 <span class="json-property-type">string</span>
6450 <span class="json-property-enum" title="Possible values">
6451 <span class="json-property-enum-item">Public</span>,
6452 <span class="json-property-enum-item">Unlisted</span>,
6453 <span class="json-property-enum-item">Private</span>
6454 </span>
6455 <span class="json-property-range" title="Value limits"></span>
6456 </div>
6457 </div>
6458 </div>
6459 <div id="definition-Video" class="definition panel" data-traverse-target="definition-Video">
6460 <h2 class="panel-title">
6461 <a name="/definitions/Video"></a>Video:
6462 <!-- <span class="json-property-type">
6463 <span class="json-property-type">object</span>
6464 <span class="json-property-range" title="Value limits"></span>
6465
6466
6467 </span> -->
6468 </h2>
6469 <div class="doc-row">
6470 <div class="doc-copy">
6471 <section class="json-schema-properties">
6472 <dl>
6473 <dt data-property-name="id">
6474 <span class="json-property-name">id:</span>
6475 <span class="json-property-type">number</span>
6476 <span class="json-property-range" title="Value limits"></span>
6477 </dt>
6478 <dt data-property-name="uuid">
6479 <span class="json-property-name">uuid:</span>
6480 <span class="json-property-type">string</span>
6481 <span class="json-property-range" title="Value limits"></span>
6482 </dt>
6483 <dt data-property-name="createdAt">
6484 <span class="json-property-name">createdAt:</span>
6485 <span class="json-property-type">string</span>
6486 <span class="json-property-range" title="Value limits"></span>
6487 </dt>
6488 <dt data-property-name="publishedAt">
6489 <span class="json-property-name">publishedAt:</span>
6490 <span class="json-property-type">string</span>
6491 <span class="json-property-range" title="Value limits"></span>
6492 </dt>
6493 <dt data-property-name="updatedAt">
6494 <span class="json-property-name">updatedAt:</span>
6495 <span class="json-property-type">string</span>
6496 <span class="json-property-range" title="Value limits"></span>
6497 </dt>
6498 <dt data-property-name="category">
6499 <span class="json-property-name">category:</span>
6500 <span class="json-property-type">
6501 <span class="">
6502 <a class="json-schema-ref" href="#/definitions/VideoConstantNumber">VideoConstantNumber</a>
6503 </span>
6504 </span>
6505 <span class="json-property-range" title="Value limits"></span>
6506 </dt>
6507 <dt data-property-name="licence">
6508 <span class="json-property-name">licence:</span>
6509 <span class="json-property-type">
6510 <span class="">
6511 <a class="json-schema-ref" href="#/definitions/VideoConstantNumber">VideoConstantNumber</a>
6512 </span>
6513 </span>
6514 <span class="json-property-range" title="Value limits"></span>
6515 </dt>
6516 <dt data-property-name="language">
6517 <span class="json-property-name">language:</span>
6518 <span class="json-property-type">
6519 <span class="">
6520 <a class="json-schema-ref" href="#/definitions/VideoConstantString">VideoConstantString</a>
6521 </span>
6522 </span>
6523 <span class="json-property-range" title="Value limits"></span>
6524 </dt>
6525 <dt data-property-name="privacy">
6526 <span class="json-property-name">privacy:</span>
6527 <span class="json-property-type">
6528 <span class="">
6529 <a class="json-schema-ref" href="#/definitions/VideoPrivacy">VideoPrivacy</a>
6530 </span>
6531 </span>
6532 <span class="json-property-range" title="Value limits"></span>
6533 </dt>
6534 <dt data-property-name="description">
6535 <span class="json-property-name">description:</span>
6536 <span class="json-property-type">string</span>
6537 <span class="json-property-range" title="Value limits"></span>
6538 </dt>
6539 <dt data-property-name="duration">
6540 <span class="json-property-name">duration:</span>
6541 <span class="json-property-type">number</span>
6542 <span class="json-property-range" title="Value limits"></span>
6543 </dt>
6544 <dt data-property-name="isLocal">
6545 <span class="json-property-name">isLocal:</span>
6546 <span class="json-property-type">boolean</span>
6547 <span class="json-property-range" title="Value limits"></span>
6548 </dt>
6549 <dt data-property-name="name">
6550 <span class="json-property-name">name:</span>
6551 <span class="json-property-type">string</span>
6552 <span class="json-property-range" title="Value limits"></span>
6553 </dt>
6554 <dt data-property-name="thumbnailPath">
6555 <span class="json-property-name">thumbnailPath:</span>
6556 <span class="json-property-type">string</span>
6557 <span class="json-property-range" title="Value limits"></span>
6558 </dt>
6559 <dt data-property-name="previewPath">
6560 <span class="json-property-name">previewPath:</span>
6561 <span class="json-property-type">string</span>
6562 <span class="json-property-range" title="Value limits"></span>
6563 </dt>
6564 <dt data-property-name="embedPath">
6565 <span class="json-property-name">embedPath:</span>
6566 <span class="json-property-type">string</span>
6567 <span class="json-property-range" title="Value limits"></span>
6568 </dt>
6569 <dt data-property-name="views">
6570 <span class="json-property-name">views:</span>
6571 <span class="json-property-type">number</span>
6572 <span class="json-property-range" title="Value limits"></span>
6573 </dt>
6574 <dt data-property-name="likes">
6575 <span class="json-property-name">likes:</span>
6576 <span class="json-property-type">number</span>
6577 <span class="json-property-range" title="Value limits"></span>
6578 </dt>
6579 <dt data-property-name="dislikes">
6580 <span class="json-property-name">dislikes:</span>
6581 <span class="json-property-type">number</span>
6582 <span class="json-property-range" title="Value limits"></span>
6583 </dt>
6584 <dt data-property-name="nsfw">
6585 <span class="json-property-name">nsfw:</span>
6586 <span class="json-property-type">boolean</span>
6587 <span class="json-property-range" title="Value limits"></span>
6588 </dt>
6589 <dt data-property-name="account">
6590 <span class="json-property-name">account:</span>
6591 <span class="json-property-type">object</span>
6592 <span class="json-property-range" title="Value limits"></span>
6593 </dt>
6594 <dt class="json-inner-schema">
6595 <section class="json-schema-properties">
6596 <dl>
6597 <dt data-property-name="name">
6598 <span class="json-property-name">name:</span>
6599 <span class="json-property-type">string</span>
6600 <span class="json-property-range" title="Value limits"></span>
6601 </dt>
6602 <dt data-property-name="displayName">
6603 <span class="json-property-name">displayName:</span>
6604 <span class="json-property-type">string</span>
6605 <span class="json-property-range" title="Value limits"></span>
6606 </dt>
6607 <dt data-property-name="url">
6608 <span class="json-property-name">url:</span>
6609 <span class="json-property-type">string</span>
6610 <span class="json-property-range" title="Value limits"></span>
6611 </dt>
6612 <dt data-property-name="host">
6613 <span class="json-property-name">host:</span>
6614 <span class="json-property-type">string</span>
6615 <span class="json-property-range" title="Value limits"></span>
6616 </dt>
6617 <dt data-property-name="avatar">
6618 <span class="json-property-name">avatar:</span>
6619 <span class="json-property-type">
6620 <span class="">
6621 <a class="json-schema-ref" href="#/definitions/Avatar">Avatar</a>
6622 </span>
6623 </span>
6624 <span class="json-property-range" title="Value limits"></span>
6625 </dt>
6626 </dl>
6627 </section>
6628 </dt>
6629 </dl>
6630 </section>
6631 </div>
6632 <div class="doc-examples">
6633 <section>
6634 <h5>Example</h5>
6635 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
6636 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6637 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6638 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6639 <span class="hljs-attr">&quot;publishedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6640 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6641 <span class="hljs-attr">&quot;category&quot;</span>: {
6642 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6643 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6644 },
6645 <span class="hljs-attr">&quot;licence&quot;</span>: {
6646 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6647 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6648 },
6649 <span class="hljs-attr">&quot;language&quot;</span>: {
6650 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6651 <span class="hljs-attr">&quot;label&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6652 },
6653 <span class="hljs-attr">&quot;privacy&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6654 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6655 <span class="hljs-attr">&quot;duration&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6656 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
6657 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6658 <span class="hljs-attr">&quot;thumbnailPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6659 <span class="hljs-attr">&quot;previewPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6660 <span class="hljs-attr">&quot;embedPath&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6661 <span class="hljs-attr">&quot;views&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6662 <span class="hljs-attr">&quot;likes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6663 <span class="hljs-attr">&quot;dislikes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6664 <span class="hljs-attr">&quot;nsfw&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
6665 <span class="hljs-attr">&quot;account&quot;</span>: {
6666 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6667 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6668 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6669 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6670 <span class="hljs-attr">&quot;avatar&quot;</span>: {
6671 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6672 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6673 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6674 }
6675 }
6676}
6677</code></pre>
6678 <!-- </div> -->
6679 </section>
6680 </div>
6681 </div>
6682 </div>
6683 <div id="definition-VideoAbuse" class="definition panel" data-traverse-target="definition-VideoAbuse">
6684 <h2 class="panel-title">
6685 <a name="/definitions/VideoAbuse"></a>VideoAbuse:
6686 <!-- <span class="json-property-type">
6687 <span class="json-property-type">object</span>
6688 <span class="json-property-range" title="Value limits"></span>
6689
6690
6691 </span> -->
6692 </h2>
6693 <div class="doc-row">
6694 <div class="doc-copy">
6695 <section class="json-schema-properties">
6696 <dl>
6697 <dt data-property-name="id">
6698 <span class="json-property-name">id:</span>
6699 <span class="json-property-type">number</span>
6700 <span class="json-property-range" title="Value limits"></span>
6701 </dt>
6702 <dt data-property-name="reason">
6703 <span class="json-property-name">reason:</span>
6704 <span class="json-property-type">string</span>
6705 <span class="json-property-range" title="Value limits"></span>
6706 </dt>
6707 <dt data-property-name="reporterAccount">
6708 <span class="json-property-name">reporterAccount:</span>
6709 <span class="json-property-type">
6710 <span class="">
6711 <a class="json-schema-ref" href="#/definitions/Account">Account</a>
6712 </span>
6713 </span>
6714 <span class="json-property-range" title="Value limits"></span>
6715 </dt>
6716 <dt data-property-name="video">
6717 <span class="json-property-name">video:</span>
6718 <span class="json-property-type">object</span>
6719 <span class="json-property-range" title="Value limits"></span>
6720 </dt>
6721 <dt class="json-inner-schema">
6722 <section class="json-schema-properties">
6723 <dl>
6724 <dt data-property-name="id">
6725 <span class="json-property-name">id:</span>
6726 <span class="json-property-type">number</span>
6727 <span class="json-property-range" title="Value limits"></span>
6728 </dt>
6729 <dt data-property-name="name">
6730 <span class="json-property-name">name:</span>
6731 <span class="json-property-type">string</span>
6732 <span class="json-property-range" title="Value limits"></span>
6733 </dt>
6734 <dt data-property-name="uuid">
6735 <span class="json-property-name">uuid:</span>
6736 <span class="json-property-type">string</span>
6737 <span class="json-property-range" title="Value limits"></span>
6738 </dt>
6739 <dt data-property-name="url">
6740 <span class="json-property-name">url:</span>
6741 <span class="json-property-type">string</span>
6742 <span class="json-property-range" title="Value limits"></span>
6743 </dt>
6744 </dl>
6745 </section>
6746 </dt>
6747 <dt data-property-name="createdAt">
6748 <span class="json-property-name">createdAt:</span>
6749 <span class="json-property-type">string</span>
6750 <span class="json-property-range" title="Value limits"></span>
6751 </dt>
6752 </dl>
6753 </section>
6754 </div>
6755 <div class="doc-examples">
6756 <section>
6757 <h5>Example</h5>
6758 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
6759 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6760 <span class="hljs-attr">&quot;reason&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6761 <span class="hljs-attr">&quot;reporterAccount&quot;</span>: {
6762 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6763 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6764 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6765 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6766 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6767 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6768 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6769 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6770 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6771 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6772 <span class="hljs-attr">&quot;avatar&quot;</span>: {
6773 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6774 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6775 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6776 }
6777 },
6778 <span class="hljs-attr">&quot;video&quot;</span>: {
6779 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6780 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6781 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6782 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6783 },
6784 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6785}
6786</code></pre>
6787 <!-- </div> -->
6788 </section>
6789 </div>
6790 </div>
6791 </div>
6792 <div id="definition-VideoBlacklist" class="definition panel" data-traverse-target="definition-VideoBlacklist">
6793 <h2 class="panel-title">
6794 <a name="/definitions/VideoBlacklist"></a>VideoBlacklist:
6795 <!-- <span class="json-property-type">
6796 <span class="json-property-type">object</span>
6797 <span class="json-property-range" title="Value limits"></span>
6798
6799
6800 </span> -->
6801 </h2>
6802 <div class="doc-row">
6803 <div class="doc-copy">
6804 <section class="json-schema-properties">
6805 <dl>
6806 <dt data-property-name="id">
6807 <span class="json-property-name">id:</span>
6808 <span class="json-property-type">number</span>
6809 <span class="json-property-range" title="Value limits"></span>
6810 </dt>
6811 <dt data-property-name="videoId">
6812 <span class="json-property-name">videoId:</span>
6813 <span class="json-property-type">number</span>
6814 <span class="json-property-range" title="Value limits"></span>
6815 </dt>
6816 <dt data-property-name="createdAt">
6817 <span class="json-property-name">createdAt:</span>
6818 <span class="json-property-type">string</span>
6819 <span class="json-property-range" title="Value limits"></span>
6820 </dt>
6821 <dt data-property-name="updatedAt">
6822 <span class="json-property-name">updatedAt:</span>
6823 <span class="json-property-type">string</span>
6824 <span class="json-property-range" title="Value limits"></span>
6825 </dt>
6826 <dt data-property-name="name">
6827 <span class="json-property-name">name:</span>
6828 <span class="json-property-type">string</span>
6829 <span class="json-property-range" title="Value limits"></span>
6830 </dt>
6831 <dt data-property-name="uuid">
6832 <span class="json-property-name">uuid:</span>
6833 <span class="json-property-type">string</span>
6834 <span class="json-property-range" title="Value limits"></span>
6835 </dt>
6836 <dt data-property-name="description">
6837 <span class="json-property-name">description:</span>
6838 <span class="json-property-type">string</span>
6839 <span class="json-property-range" title="Value limits"></span>
6840 </dt>
6841 <dt data-property-name="duration">
6842 <span class="json-property-name">duration:</span>
6843 <span class="json-property-type">number</span>
6844 <span class="json-property-range" title="Value limits"></span>
6845 </dt>
6846 <dt data-property-name="views">
6847 <span class="json-property-name">views:</span>
6848 <span class="json-property-type">number</span>
6849 <span class="json-property-range" title="Value limits"></span>
6850 </dt>
6851 <dt data-property-name="likes">
6852 <span class="json-property-name">likes:</span>
6853 <span class="json-property-type">number</span>
6854 <span class="json-property-range" title="Value limits"></span>
6855 </dt>
6856 <dt data-property-name="dislikes">
6857 <span class="json-property-name">dislikes:</span>
6858 <span class="json-property-type">number</span>
6859 <span class="json-property-range" title="Value limits"></span>
6860 </dt>
6861 <dt data-property-name="nsfw">
6862 <span class="json-property-name">nsfw:</span>
6863 <span class="json-property-type">boolean</span>
6864 <span class="json-property-range" title="Value limits"></span>
6865 </dt>
6866 </dl>
6867 </section>
6868 </div>
6869 <div class="doc-examples">
6870 <section>
6871 <h5>Example</h5>
6872 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
6873 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6874 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6875 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6876 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6877 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6878 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6879 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6880 <span class="hljs-attr">&quot;duration&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6881 <span class="hljs-attr">&quot;views&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6882 <span class="hljs-attr">&quot;likes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6883 <span class="hljs-attr">&quot;dislikes&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6884 <span class="hljs-attr">&quot;nsfw&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>
6885}
6886</code></pre>
6887 <!-- </div> -->
6888 </section>
6889 </div>
6890 </div>
6891 </div>
6892 <div id="definition-VideoChannel" class="definition panel" data-traverse-target="definition-VideoChannel">
6893 <h2 class="panel-title">
6894 <a name="/definitions/VideoChannel"></a>VideoChannel:
6895 <!-- <span class="json-property-type">
6896 <span class="json-property-type">object</span>
6897 <span class="json-property-range" title="Value limits"></span>
6898
6899
6900 </span> -->
6901 </h2>
6902 <div class="doc-row">
6903 <div class="doc-copy">
6904 <section class="json-schema-properties">
6905 <dl>
6906 <dt data-property-name="displayName">
6907 <span class="json-property-name">displayName:</span>
6908 <span class="json-property-type">string</span>
6909 <span class="json-property-range" title="Value limits"></span>
6910 </dt>
6911 <dt data-property-name="description">
6912 <span class="json-property-name">description:</span>
6913 <span class="json-property-type">string</span>
6914 <span class="json-property-range" title="Value limits"></span>
6915 </dt>
6916 <dt data-property-name="isLocal">
6917 <span class="json-property-name">isLocal:</span>
6918 <span class="json-property-type">boolean</span>
6919 <span class="json-property-range" title="Value limits"></span>
6920 </dt>
6921 <dt data-property-name="ownerAccount">
6922 <span class="json-property-name">ownerAccount:</span>
6923 <span class="json-property-type">object</span>
6924 <span class="json-property-range" title="Value limits"></span>
6925 </dt>
6926 <dt class="json-inner-schema">
6927 <section class="json-schema-properties">
6928 <dl>
6929 <dt data-property-name="id">
6930 <span class="json-property-name">id:</span>
6931 <span class="json-property-type">number</span>
6932 <span class="json-property-range" title="Value limits"></span>
6933 </dt>
6934 <dt data-property-name="uuid">
6935 <span class="json-property-name">uuid:</span>
6936 <span class="json-property-type">string</span>
6937 <span class="json-property-range" title="Value limits"></span>
6938 </dt>
6939 </dl>
6940 </section>
6941 </dt>
6942 </dl>
6943 </section>
6944 </div>
6945 <div class="doc-examples">
6946 <section>
6947 <h5>Example</h5>
6948 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
6949 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6950 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
6951 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
6952 <span class="hljs-attr">&quot;ownerAccount&quot;</span>: {
6953 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
6954 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
6955 }
6956}
6957</code></pre>
6958 <!-- </div> -->
6959 </section>
6960 </div>
6961 </div>
6962 </div>
6963 <div id="definition-VideoComment" class="definition panel" data-traverse-target="definition-VideoComment">
6964 <h2 class="panel-title">
6965 <a name="/definitions/VideoComment"></a>VideoComment:
6966 <!-- <span class="json-property-type">
6967 <span class="json-property-type">object</span>
6968 <span class="json-property-range" title="Value limits"></span>
6969
6970
6971 </span> -->
6972 </h2>
6973 <div class="doc-row">
6974 <div class="doc-copy">
6975 <section class="json-schema-properties">
6976 <dl>
6977 <dt data-property-name="id">
6978 <span class="json-property-name">id:</span>
6979 <span class="json-property-type">number</span>
6980 <span class="json-property-range" title="Value limits"></span>
6981 </dt>
6982 <dt data-property-name="url">
6983 <span class="json-property-name">url:</span>
6984 <span class="json-property-type">string</span>
6985 <span class="json-property-range" title="Value limits"></span>
6986 </dt>
6987 <dt data-property-name="text">
6988 <span class="json-property-name">text:</span>
6989 <span class="json-property-type">string</span>
6990 <span class="json-property-range" title="Value limits"></span>
6991 </dt>
6992 <dt data-property-name="threadId">
6993 <span class="json-property-name">threadId:</span>
6994 <span class="json-property-type">number</span>
6995 <span class="json-property-range" title="Value limits"></span>
6996 </dt>
6997 <dt data-property-name="inReplyToCommentId">
6998 <span class="json-property-name">inReplyToCommentId:</span>
6999 <span class="json-property-type">number</span>
7000 <span class="json-property-range" title="Value limits"></span>
7001 </dt>
7002 <dt data-property-name="videoId">
7003 <span class="json-property-name">videoId:</span>
7004 <span class="json-property-type">number</span>
7005 <span class="json-property-range" title="Value limits"></span>
7006 </dt>
7007 <dt data-property-name="createdAt">
7008 <span class="json-property-name">createdAt:</span>
7009 <span class="json-property-type">string</span>
7010 <span class="json-property-range" title="Value limits"></span>
7011 </dt>
7012 <dt data-property-name="updatedAt">
7013 <span class="json-property-name">updatedAt:</span>
7014 <span class="json-property-type">string</span>
7015 <span class="json-property-range" title="Value limits"></span>
7016 </dt>
7017 <dt data-property-name="totalReplies">
7018 <span class="json-property-name">totalReplies:</span>
7019 <span class="json-property-type">number</span>
7020 <span class="json-property-range" title="Value limits"></span>
7021 </dt>
7022 <dt data-property-name="account">
7023 <span class="json-property-name">account:</span>
7024 <span class="json-property-type">
7025 <span class="">
7026 <a class="json-schema-ref" href="#/definitions/Account">Account</a>
7027 </span>
7028 </span>
7029 <span class="json-property-range" title="Value limits"></span>
7030 </dt>
7031 </dl>
7032 </section>
7033 </div>
7034 <div class="doc-examples">
7035 <section>
7036 <h5>Example</h5>
7037 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
7038 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7039 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7040 <span class="hljs-attr">&quot;text&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7041 <span class="hljs-attr">&quot;threadId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7042 <span class="hljs-attr">&quot;inReplyToCommentId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7043 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7044 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7045 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7046 <span class="hljs-attr">&quot;totalReplies&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7047 <span class="hljs-attr">&quot;account&quot;</span>: {
7048 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7049 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7050 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7051 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7052 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7053 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7054 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7055 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7056 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7057 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7058 <span class="hljs-attr">&quot;avatar&quot;</span>: {
7059 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7060 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7061 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7062 }
7063 }
7064}
7065</code></pre>
7066 <!-- </div> -->
7067 </section>
7068 </div>
7069 </div>
7070 </div>
7071 <div id="definition-VideoCommentThreadTree" class="definition panel" data-traverse-target="definition-VideoCommentThreadTree">
7072 <h2 class="panel-title">
7073 <a name="/definitions/VideoCommentThreadTree"></a>VideoCommentThreadTree:
7074 <!-- <span class="json-property-type">
7075 <span class="json-property-type">object</span>
7076 <span class="json-property-range" title="Value limits"></span>
7077
7078
7079 </span> -->
7080 </h2>
7081 <div class="doc-row">
7082 <div class="doc-copy">
7083 <section class="json-schema-properties">
7084 <dl>
7085 <dt data-property-name="comment">
7086 <span class="json-property-name">comment:</span>
7087 <span class="json-property-type">
7088 <span class="">
7089 <a class="json-schema-ref" href="#/definitions/VideoComment">VideoComment</a>
7090 </span>
7091 </span>
7092 <span class="json-property-range" title="Value limits"></span>
7093 </dt>
7094 <dt data-property-name="children">
7095 <span class="json-property-name">children:</span>
7096 <span class="json-property-type">
7097 <span class="json-schema-ref-array">
7098 <a class="json-schema-ref" href="#/definitions/VideoCommentThreadTree">VideoCommentThreadTree</a>
7099 </span>
7100 </span>
7101 <span class="json-property-range" title="Value limits"></span>
7102 </dt>
7103 <dt class="json-inner-schema">
7104 <section class="json-schema-array-items">
7105 <span class="json-property-type">
7106 <span class="">
7107 <a class="json-schema-ref" href="#/definitions/VideoCommentThreadTree">VideoCommentThreadTree</a>
7108 </span>
7109 </span>
7110 <span class="json-property-range" title="Value limits"></span>
7111 <div class="json-inner-schema"> </div>
7112 </section>
7113 </dt>
7114 </dl>
7115 </section>
7116 </div>
7117 <div class="doc-examples">
7118 <section>
7119 <h5>Example</h5>
7120 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
7121 <span class="hljs-attr">&quot;comment&quot;</span>: {
7122 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7123 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7124 <span class="hljs-attr">&quot;text&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7125 <span class="hljs-attr">&quot;threadId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7126 <span class="hljs-attr">&quot;inReplyToCommentId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7127 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7128 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7129 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7130 <span class="hljs-attr">&quot;totalReplies&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7131 <span class="hljs-attr">&quot;account&quot;</span>: {
7132 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7133 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7134 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7135 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7136 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7137 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7138 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7139 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7140 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7141 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7142 <span class="hljs-attr">&quot;avatar&quot;</span>: {
7143 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7144 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7145 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7146 }
7147 }
7148 },
7149 <span class="hljs-attr">&quot;children&quot;</span>: [
7150 {
7151 <span class="hljs-attr">&quot;comment&quot;</span>: {
7152 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7153 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7154 <span class="hljs-attr">&quot;text&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7155 <span class="hljs-attr">&quot;threadId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7156 <span class="hljs-attr">&quot;inReplyToCommentId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7157 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7158 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7159 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7160 <span class="hljs-attr">&quot;totalReplies&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7161 <span class="hljs-attr">&quot;account&quot;</span>: {
7162 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7163 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7164 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7165 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7166 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7167 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7168 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7169 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7170 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7171 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7172 <span class="hljs-attr">&quot;avatar&quot;</span>: {
7173 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7174 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7175 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7176 }
7177 }
7178 },
7179 <span class="hljs-attr">&quot;children&quot;</span>: [
7180 {
7181 <span class="hljs-attr">&quot;comment&quot;</span>: {
7182 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7183 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7184 <span class="hljs-attr">&quot;text&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7185 <span class="hljs-attr">&quot;threadId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7186 <span class="hljs-attr">&quot;inReplyToCommentId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7187 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7188 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7189 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7190 <span class="hljs-attr">&quot;totalReplies&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7191 <span class="hljs-attr">&quot;account&quot;</span>: {
7192 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7193 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7194 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7195 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7196 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7197 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7198 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7199 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7200 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7201 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7202 <span class="hljs-attr">&quot;avatar&quot;</span>: {
7203 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7204 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7205 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7206 }
7207 }
7208 }
7209 }
7210 ]
7211 }
7212 ]
7213}
7214</code></pre>
7215 <!-- </div> -->
7216 </section>
7217 </div>
7218 </div>
7219 </div>
7220 <div id="definition-Avatar" class="definition panel" data-traverse-target="definition-Avatar">
7221 <h2 class="panel-title">
7222 <a name="/definitions/Avatar"></a>Avatar:
7223 <!-- <span class="json-property-type">
7224 <span class="json-property-type">object</span>
7225 <span class="json-property-range" title="Value limits"></span>
7226
7227
7228 </span> -->
7229 </h2>
7230 <div class="doc-row">
7231 <div class="doc-copy">
7232 <section class="json-schema-properties">
7233 <dl>
7234 <dt data-property-name="path">
7235 <span class="json-property-name">path:</span>
7236 <span class="json-property-type">string</span>
7237 <span class="json-property-range" title="Value limits"></span>
7238 </dt>
7239 <dt data-property-name="createdAt">
7240 <span class="json-property-name">createdAt:</span>
7241 <span class="json-property-type">string</span>
7242 <span class="json-property-range" title="Value limits"></span>
7243 </dt>
7244 <dt data-property-name="updatedAt">
7245 <span class="json-property-name">updatedAt:</span>
7246 <span class="json-property-type">string</span>
7247 <span class="json-property-range" title="Value limits"></span>
7248 </dt>
7249 </dl>
7250 </section>
7251 </div>
7252 <div class="doc-examples">
7253 <section>
7254 <h5>Example</h5>
7255 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
7256 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7257 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7258 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7259}
7260</code></pre>
7261 <!-- </div> -->
7262 </section>
7263 </div>
7264 </div>
7265 </div>
7266 <div id="definition-Actor" class="definition panel" data-traverse-target="definition-Actor">
7267 <h2 class="panel-title">
7268 <a name="/definitions/Actor"></a>Actor:
7269 <!-- <span class="json-property-type">
7270 <span class="json-property-type">object</span>
7271 <span class="json-property-range" title="Value limits"></span>
7272
7273
7274 </span> -->
7275 </h2>
7276 <div class="doc-row">
7277 <div class="doc-copy">
7278 <section class="json-schema-properties">
7279 <dl>
7280 <dt data-property-name="id">
7281 <span class="json-property-name">id:</span>
7282 <span class="json-property-type">number</span>
7283 <span class="json-property-range" title="Value limits"></span>
7284 </dt>
7285 <dt data-property-name="uuid">
7286 <span class="json-property-name">uuid:</span>
7287 <span class="json-property-type">string</span>
7288 <span class="json-property-range" title="Value limits"></span>
7289 </dt>
7290 <dt data-property-name="url">
7291 <span class="json-property-name">url:</span>
7292 <span class="json-property-type">string</span>
7293 <span class="json-property-range" title="Value limits"></span>
7294 </dt>
7295 <dt data-property-name="name">
7296 <span class="json-property-name">name:</span>
7297 <span class="json-property-type">string</span>
7298 <span class="json-property-range" title="Value limits"></span>
7299 </dt>
7300 <dt data-property-name="host">
7301 <span class="json-property-name">host:</span>
7302 <span class="json-property-type">string</span>
7303 <span class="json-property-range" title="Value limits"></span>
7304 </dt>
7305 <dt data-property-name="followingCount">
7306 <span class="json-property-name">followingCount:</span>
7307 <span class="json-property-type">number</span>
7308 <span class="json-property-range" title="Value limits"></span>
7309 </dt>
7310 <dt data-property-name="followersCount">
7311 <span class="json-property-name">followersCount:</span>
7312 <span class="json-property-type">number</span>
7313 <span class="json-property-range" title="Value limits"></span>
7314 </dt>
7315 <dt data-property-name="createdAt">
7316 <span class="json-property-name">createdAt:</span>
7317 <span class="json-property-type">string</span>
7318 <span class="json-property-range" title="Value limits"></span>
7319 </dt>
7320 <dt data-property-name="updatedAt">
7321 <span class="json-property-name">updatedAt:</span>
7322 <span class="json-property-type">string</span>
7323 <span class="json-property-range" title="Value limits"></span>
7324 </dt>
7325 <dt data-property-name="avatar">
7326 <span class="json-property-name">avatar:</span>
7327 <span class="json-property-type">
7328 <span class="">
7329 <a class="json-schema-ref" href="#/definitions/Avatar">Avatar</a>
7330 </span>
7331 </span>
7332 <span class="json-property-range" title="Value limits"></span>
7333 </dt>
7334 </dl>
7335 </section>
7336 </div>
7337 <div class="doc-examples">
7338 <section>
7339 <h5>Example</h5>
7340 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
7341 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7342 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7343 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7344 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7345 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7346 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7347 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7348 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7349 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7350 <span class="hljs-attr">&quot;avatar&quot;</span>: {
7351 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7352 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7353 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7354 }
7355}
7356</code></pre>
7357 <!-- </div> -->
7358 </section>
7359 </div>
7360 </div>
7361 </div>
7362 <div id="definition-Account" class="definition panel" data-traverse-target="definition-Account">
7363 <h2 class="panel-title">
7364 <a name="/definitions/Account"></a>Account:
7365 <!-- <span class="json-property-type">
7366 <span class="json-property-type"></span>
7367 <span class="json-property-range" title="Value limits"></span>
7368
7369
7370 </span> -->
7371 </h2>
7372 <div class="doc-row">
7373 <div class="doc-copy">
7374 <section class="json-schema-allOf">
7375 <section class="json-schema-allOf-inherited">
7376 <ul>
7377 <span class="">
7378 <a class="json-schema-ref" href="#/definitions/Actor">Actor</a>
7379 </span>
7380 </ul>
7381 </section>
7382 <section class="json-schema-allOf-additional">
7383 <section class="json-schema-properties">
7384 <dl>
7385 <dt data-property-name="displayName">
7386 <span class="json-property-name">displayName:</span>
7387 <span class="json-property-type">string</span>
7388 <span class="json-property-range" title="Value limits"></span>
7389 </dt>
7390 </dl>
7391 </section>
7392 </section>
7393 </section>
7394 </div>
7395 <div class="doc-examples">
7396 <section>
7397 <h5>Example</h5>
7398 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
7399 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7400 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7401 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7402 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7403 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7404 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7405 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7406 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7407 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7408 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7409 <span class="hljs-attr">&quot;avatar&quot;</span>: {
7410 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7411 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7412 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7413 }
7414}
7415</code></pre>
7416 <!-- </div> -->
7417 </section>
7418 </div>
7419 </div>
7420 </div>
7421 <div id="definition-User" class="definition panel" data-traverse-target="definition-User">
7422 <h2 class="panel-title">
7423 <a name="/definitions/User"></a>User:
7424 <!-- <span class="json-property-type">
7425 <span class="json-property-type">object</span>
7426 <span class="json-property-range" title="Value limits"></span>
7427
7428
7429 </span> -->
7430 </h2>
7431 <div class="doc-row">
7432 <div class="doc-copy">
7433 <section class="json-schema-properties">
7434 <dl>
7435 <dt data-property-name="id">
7436 <span class="json-property-name">id:</span>
7437 <span class="json-property-type">number</span>
7438 <span class="json-property-range" title="Value limits"></span>
7439 </dt>
7440 <dt data-property-name="username">
7441 <span class="json-property-name">username:</span>
7442 <span class="json-property-type">string</span>
7443 <span class="json-property-range" title="Value limits"></span>
7444 </dt>
7445 <dt data-property-name="email">
7446 <span class="json-property-name">email:</span>
7447 <span class="json-property-type">string</span>
7448 <span class="json-property-range" title="Value limits"></span>
7449 </dt>
7450 <dt data-property-name="displayNSFW">
7451 <span class="json-property-name">displayNSFW:</span>
7452 <span class="json-property-type">boolean</span>
7453 <span class="json-property-range" title="Value limits"></span>
7454 </dt>
7455 <dt data-property-name="autoPlayVideo">
7456 <span class="json-property-name">autoPlayVideo:</span>
7457 <span class="json-property-type">boolean</span>
7458 <span class="json-property-range" title="Value limits"></span>
7459 </dt>
7460 <dt data-property-name="role">
7461 <span class="json-property-name">role:</span>
7462 <span class="json-property-type">string</span>
7463 <span class="json-property-enum" title="Possible values">
7464 <span class="json-property-enum-item">User</span>,
7465 <span class="json-property-enum-item">Moderator</span>,
7466 <span class="json-property-enum-item">Administrator</span>
7467 </span>
7468 <span class="json-property-range" title="Value limits"></span>
7469 </dt>
7470 <dt data-property-name="videoQuota">
7471 <span class="json-property-name">videoQuota:</span>
7472 <span class="json-property-type">number</span>
7473 <span class="json-property-range" title="Value limits"></span>
7474 </dt>
7475 <dt data-property-name="createdAt">
7476 <span class="json-property-name">createdAt:</span>
7477 <span class="json-property-type">string</span>
7478 <span class="json-property-range" title="Value limits"></span>
7479 </dt>
7480 <dt data-property-name="account">
7481 <span class="json-property-name">account:</span>
7482 <span class="json-property-type">
7483 <span class="">
7484 <a class="json-schema-ref" href="#/definitions/Account">Account</a>
7485 </span>
7486 </span>
7487 <span class="json-property-range" title="Value limits"></span>
7488 </dt>
7489 <dt data-property-name="videoChannels">
7490 <span class="json-property-name">videoChannels:</span>
7491 <span class="json-property-type">
7492 <span class="json-schema-ref-array">
7493 <a class="json-schema-ref" href="#/definitions/VideoChannel">VideoChannel</a>
7494 </span>
7495 </span>
7496 <span class="json-property-range" title="Value limits"></span>
7497 </dt>
7498 <dt class="json-inner-schema">
7499 <section class="json-schema-array-items">
7500 <span class="json-property-type">
7501 <span class="">
7502 <a class="json-schema-ref" href="#/definitions/VideoChannel">VideoChannel</a>
7503 </span>
7504 </span>
7505 <span class="json-property-range" title="Value limits"></span>
7506 <div class="json-inner-schema"> </div>
7507 </section>
7508 </dt>
7509 </dl>
7510 </section>
7511 </div>
7512 <div class="doc-examples">
7513 <section>
7514 <h5>Example</h5>
7515 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
7516 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7517 <span class="hljs-attr">&quot;username&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7518 <span class="hljs-attr">&quot;email&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7519 <span class="hljs-attr">&quot;displayNSFW&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
7520 <span class="hljs-attr">&quot;autoPlayVideo&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
7521 <span class="hljs-attr">&quot;role&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7522 <span class="hljs-attr">&quot;videoQuota&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7523 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7524 <span class="hljs-attr">&quot;account&quot;</span>: {
7525 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7526 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7527 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7528 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7529 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7530 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7531 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7532 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7533 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7534 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7535 <span class="hljs-attr">&quot;avatar&quot;</span>: {
7536 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7537 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7538 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7539 }
7540 },
7541 <span class="hljs-attr">&quot;videoChannels&quot;</span>: [
7542 {
7543 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7544 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7545 <span class="hljs-attr">&quot;isLocal&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>,
7546 <span class="hljs-attr">&quot;ownerAccount&quot;</span>: {
7547 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7548 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7549 }
7550 }
7551 ]
7552}
7553</code></pre>
7554 <!-- </div> -->
7555 </section>
7556 </div>
7557 </div>
7558 </div>
7559 <div id="definition-ServerConfig" class="definition panel" data-traverse-target="definition-ServerConfig">
7560 <h2 class="panel-title">
7561 <a name="/definitions/ServerConfig"></a>ServerConfig:
7562 <!-- <span class="json-property-type">
7563 <span class="json-property-type">object</span>
7564 <span class="json-property-range" title="Value limits"></span>
7565
7566
7567 </span> -->
7568 </h2>
7569 <div class="doc-row">
7570 <div class="doc-copy">
7571 <section class="json-schema-properties">
7572 <dl>
7573 <dt data-property-name="signup">
7574 <span class="json-property-name">signup:</span>
7575 <span class="json-property-type">object</span>
7576 <span class="json-property-range" title="Value limits"></span>
7577 </dt>
7578 <dt class="json-inner-schema">
7579 <section class="json-schema-properties">
7580 <dl>
7581 <dt data-property-name="allowed">
7582 <span class="json-property-name">allowed:</span>
7583 <span class="json-property-type">boolean</span>
7584 <span class="json-property-range" title="Value limits"></span>
7585 </dt>
7586 </dl>
7587 </section>
7588 </dt>
7589 <dt data-property-name="transcoding">
7590 <span class="json-property-name">transcoding:</span>
7591 <span class="json-property-type">object</span>
7592 <span class="json-property-range" title="Value limits"></span>
7593 </dt>
7594 <dt class="json-inner-schema">
7595 <section class="json-schema-properties">
7596 <dl>
7597 <dt data-property-name="enabledResolutions">
7598 <span class="json-property-name">enabledResolutions:</span>
7599 <span class="json-property-type">number[]</span>
7600 <span class="json-property-range" title="Value limits"></span>
7601 </dt>
7602 <dt class="json-inner-schema">
7603 <section class="json-schema-array-items">
7604 <span class="json-property-type">number</span>
7605 <span class="json-property-range" title="Value limits"></span>
7606 <div class="json-inner-schema"> </div>
7607 </section>
7608 </dt>
7609 </dl>
7610 </section>
7611 </dt>
7612 <dt data-property-name="avatar">
7613 <span class="json-property-name">avatar:</span>
7614 <span class="json-property-type">object</span>
7615 <span class="json-property-range" title="Value limits"></span>
7616 </dt>
7617 <dt class="json-inner-schema">
7618 <section class="json-schema-properties">
7619 <dl>
7620 <dt data-property-name="file">
7621 <span class="json-property-name">file:</span>
7622 <span class="json-property-type">object</span>
7623 <span class="json-property-range" title="Value limits"></span>
7624 </dt>
7625 <dt class="json-inner-schema">
7626 <section class="json-schema-properties">
7627 <dl>
7628 <dt data-property-name="size">
7629 <span class="json-property-name">size:</span>
7630 <span class="json-property-type">object</span>
7631 <span class="json-property-range" title="Value limits"></span>
7632 </dt>
7633 <dt class="json-inner-schema">
7634 <section class="json-schema-properties">
7635 <dl>
7636 <dt data-property-name="max">
7637 <span class="json-property-name">max:</span>
7638 <span class="json-property-type">number</span>
7639 <span class="json-property-range" title="Value limits"></span>
7640 </dt>
7641 </dl>
7642 </section>
7643 </dt>
7644 </dl>
7645 </section>
7646 </dt>
7647 <dt data-property-name="extensions">
7648 <span class="json-property-name">extensions:</span>
7649 <span class="json-property-type">string[]</span>
7650 <span class="json-property-range" title="Value limits"></span>
7651 </dt>
7652 <dt class="json-inner-schema">
7653 <section class="json-schema-array-items">
7654 <span class="json-property-type">string</span>
7655 <span class="json-property-range" title="Value limits"></span>
7656 <div class="json-inner-schema"> </div>
7657 </section>
7658 </dt>
7659 </dl>
7660 </section>
7661 </dt>
7662 <dt data-property-name="video">
7663 <span class="json-property-name">video:</span>
7664 <span class="json-property-type">object</span>
7665 <span class="json-property-range" title="Value limits"></span>
7666 </dt>
7667 <dt class="json-inner-schema">
7668 <section class="json-schema-properties">
7669 <dl>
7670 <dt data-property-name="file">
7671 <span class="json-property-name">file:</span>
7672 <span class="json-property-type">object</span>
7673 <span class="json-property-range" title="Value limits"></span>
7674 </dt>
7675 <dt class="json-inner-schema">
7676 <section class="json-schema-properties">
7677 <dl>
7678 <dt data-property-name="extensions">
7679 <span class="json-property-name">extensions:</span>
7680 <span class="json-property-type">string[]</span>
7681 <span class="json-property-range" title="Value limits"></span>
7682 </dt>
7683 <dt class="json-inner-schema">
7684 <section class="json-schema-array-items">
7685 <span class="json-property-type">string</span>
7686 <span class="json-property-range" title="Value limits"></span>
7687 <div class="json-inner-schema"> </div>
7688 </section>
7689 </dt>
7690 </dl>
7691 </section>
7692 </dt>
7693 </dl>
7694 </section>
7695 </dt>
7696 </dl>
7697 </section>
7698 </div>
7699 <div class="doc-examples">
7700 <section>
7701 <h5>Example</h5>
7702 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
7703 <span class="hljs-attr">&quot;signup&quot;</span>: {
7704 <span class="hljs-attr">&quot;allowed&quot;</span>: <span class="hljs-string">&quot;boolean&quot;</span>
7705 },
7706 <span class="hljs-attr">&quot;transcoding&quot;</span>: {
7707 <span class="hljs-attr">&quot;enabledResolutions&quot;</span>: [
7708 <span class="hljs-string">&quot;number&quot;</span>
7709 ]
7710 },
7711 <span class="hljs-attr">&quot;avatar&quot;</span>: {
7712 <span class="hljs-attr">&quot;file&quot;</span>: {
7713 <span class="hljs-attr">&quot;size&quot;</span>: {
7714 <span class="hljs-attr">&quot;max&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>
7715 }
7716 },
7717 <span class="hljs-attr">&quot;extensions&quot;</span>: [
7718 <span class="hljs-string">&quot;string&quot;</span>
7719 ]
7720 },
7721 <span class="hljs-attr">&quot;video&quot;</span>: {
7722 <span class="hljs-attr">&quot;file&quot;</span>: {
7723 <span class="hljs-attr">&quot;extensions&quot;</span>: [
7724 <span class="hljs-string">&quot;string&quot;</span>
7725 ]
7726 }
7727 }
7728}
7729</code></pre>
7730 <!-- </div> -->
7731 </section>
7732 </div>
7733 </div>
7734 </div>
7735 <div id="definition-Follow" class="definition panel" data-traverse-target="definition-Follow">
7736 <h2 class="panel-title">
7737 <a name="/definitions/Follow"></a>Follow:
7738 <!-- <span class="json-property-type">
7739 <span class="json-property-type">object</span>
7740 <span class="json-property-range" title="Value limits"></span>
7741
7742
7743 </span> -->
7744 </h2>
7745 <div class="doc-row">
7746 <div class="doc-copy">
7747 <section class="json-schema-properties">
7748 <dl>
7749 <dt data-property-name="id">
7750 <span class="json-property-name">id:</span>
7751 <span class="json-property-type">number</span>
7752 <span class="json-property-range" title="Value limits"></span>
7753 </dt>
7754 <dt data-property-name="follower">
7755 <span class="json-property-name">follower:</span>
7756 <span class="json-property-type">
7757 <span class="">
7758 <a class="json-schema-ref" href="#/definitions/Actor">Actor</a>
7759 </span>
7760 </span>
7761 <span class="json-property-range" title="Value limits"></span>
7762 </dt>
7763 <dt data-property-name="following">
7764 <span class="json-property-name">following:</span>
7765 <span class="json-property-type">
7766 <span class="">
7767 <a class="json-schema-ref" href="#/definitions/Actor">Actor</a>
7768 </span>
7769 </span>
7770 <span class="json-property-range" title="Value limits"></span>
7771 </dt>
7772 <dt data-property-name="score">
7773 <span class="json-property-name">score:</span>
7774 <span class="json-property-type">number</span>
7775 <span class="json-property-range" title="Value limits"></span>
7776 </dt>
7777 <dt data-property-name="state">
7778 <span class="json-property-name">state:</span>
7779 <span class="json-property-type">string</span>
7780 <span class="json-property-enum" title="Possible values">
7781 <span class="json-property-enum-item">pending</span>,
7782 <span class="json-property-enum-item">accepted</span>
7783 </span>
7784 <span class="json-property-range" title="Value limits"></span>
7785 </dt>
7786 <dt data-property-name="createdAt">
7787 <span class="json-property-name">createdAt:</span>
7788 <span class="json-property-type">string</span>
7789 <span class="json-property-range" title="Value limits"></span>
7790 </dt>
7791 <dt data-property-name="updatedAt">
7792 <span class="json-property-name">updatedAt:</span>
7793 <span class="json-property-type">string</span>
7794 <span class="json-property-range" title="Value limits"></span>
7795 </dt>
7796 </dl>
7797 </section>
7798 </div>
7799 <div class="doc-examples">
7800 <section>
7801 <h5>Example</h5>
7802 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
7803 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7804 <span class="hljs-attr">&quot;follower&quot;</span>: {
7805 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7806 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7807 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7808 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7809 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7810 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7811 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7812 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7813 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7814 <span class="hljs-attr">&quot;avatar&quot;</span>: {
7815 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7816 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7817 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7818 }
7819 },
7820 <span class="hljs-attr">&quot;following&quot;</span>: {
7821 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7822 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7823 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7824 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7825 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7826 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7827 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7828 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7829 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7830 <span class="hljs-attr">&quot;avatar&quot;</span>: {
7831 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7832 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7833 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7834 }
7835 },
7836 <span class="hljs-attr">&quot;score&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7837 <span class="hljs-attr">&quot;state&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7838 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7839 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7840}
7841</code></pre>
7842 <!-- </div> -->
7843 </section>
7844 </div>
7845 </div>
7846 </div>
7847 <div id="definition-Job" class="definition panel" data-traverse-target="definition-Job">
7848 <h2 class="panel-title">
7849 <a name="/definitions/Job"></a>Job:
7850 <!-- <span class="json-property-type">
7851 <span class="json-property-type">object</span>
7852 <span class="json-property-range" title="Value limits"></span>
7853
7854
7855 </span> -->
7856 </h2>
7857 <div class="doc-row">
7858 <div class="doc-copy">
7859 <section class="json-schema-properties">
7860 <dl>
7861 <dt data-property-name="id">
7862 <span class="json-property-name">id:</span>
7863 <span class="json-property-type">number</span>
7864 <span class="json-property-range" title="Value limits"></span>
7865 </dt>
7866 <dt data-property-name="state">
7867 <span class="json-property-name">state:</span>
7868 <span class="json-property-type">string</span>
7869 <span class="json-property-enum" title="Possible values">
7870 <span class="json-property-enum-item">pending</span>,
7871 <span class="json-property-enum-item">processing</span>,
7872 <span class="json-property-enum-item">error</span>,
7873 <span class="json-property-enum-item">success</span>
7874 </span>
7875 <span class="json-property-range" title="Value limits"></span>
7876 </dt>
7877 <dt data-property-name="category">
7878 <span class="json-property-name">category:</span>
7879 <span class="json-property-type">string</span>
7880 <span class="json-property-enum" title="Possible values">
7881 <span class="json-property-enum-item">transcoding</span>,
7882 <span class="json-property-enum-item">activitypub-http</span>
7883 </span>
7884 <span class="json-property-range" title="Value limits"></span>
7885 </dt>
7886 <dt data-property-name="handlerName">
7887 <span class="json-property-name">handlerName:</span>
7888 <span class="json-property-type">string</span>
7889 <span class="json-property-range" title="Value limits"></span>
7890 </dt>
7891 <dt data-property-name="handlerInputData">
7892 <span class="json-property-name">handlerInputData:</span>
7893 <span class="json-property-type">string</span>
7894 <span class="json-property-range" title="Value limits"></span>
7895 </dt>
7896 <dt data-property-name="createdAt">
7897 <span class="json-property-name">createdAt:</span>
7898 <span class="json-property-type">string</span>
7899 <span class="json-property-range" title="Value limits"></span>
7900 </dt>
7901 <dt data-property-name="updatedAt">
7902 <span class="json-property-name">updatedAt:</span>
7903 <span class="json-property-type">string</span>
7904 <span class="json-property-range" title="Value limits"></span>
7905 </dt>
7906 </dl>
7907 </section>
7908 </div>
7909 <div class="doc-examples">
7910 <section>
7911 <h5>Example</h5>
7912 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
7913 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7914 <span class="hljs-attr">&quot;state&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7915 <span class="hljs-attr">&quot;category&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7916 <span class="hljs-attr">&quot;handlerName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7917 <span class="hljs-attr">&quot;handlerInputData&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7918 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
7919 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7920}
7921</code></pre>
7922 <!-- </div> -->
7923 </section>
7924 </div>
7925 </div>
7926 </div>
7927 <div id="definition-AddUserResponse" class="definition panel" data-traverse-target="definition-AddUserResponse">
7928 <h2 class="panel-title">
7929 <a name="/definitions/AddUserResponse"></a>AddUserResponse:
7930 <!-- <span class="json-property-type">
7931 <span class="json-property-type">object</span>
7932 <span class="json-property-range" title="Value limits"></span>
7933
7934
7935 </span> -->
7936 </h2>
7937 <div class="doc-row">
7938 <div class="doc-copy">
7939 <section class="json-schema-properties">
7940 <dl>
7941 <dt data-property-name="id">
7942 <span class="json-property-name">id:</span>
7943 <span class="json-property-type">number</span>
7944 <span class="json-property-range" title="Value limits"></span>
7945 </dt>
7946 <dt data-property-name="uuid">
7947 <span class="json-property-name">uuid:</span>
7948 <span class="json-property-type">string</span>
7949 <span class="json-property-range" title="Value limits"></span>
7950 </dt>
7951 </dl>
7952 </section>
7953 </div>
7954 <div class="doc-examples">
7955 <section>
7956 <h5>Example</h5>
7957 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
7958 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
7959 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
7960}
7961</code></pre>
7962 <!-- </div> -->
7963 </section>
7964 </div>
7965 </div>
7966 </div>
7967 <div id="definition-VideoUploadResponse" class="definition panel" data-traverse-target="definition-VideoUploadResponse">
7968 <h2 class="panel-title">
7969 <a name="/definitions/VideoUploadResponse"></a>VideoUploadResponse:
7970 <!-- <span class="json-property-type">
7971 <span class="json-property-type">object</span>
7972 <span class="json-property-range" title="Value limits"></span>
7973
7974
7975 </span> -->
7976 </h2>
7977 <div class="doc-row">
7978 <div class="doc-copy">
7979 <section class="json-schema-properties">
7980 <dl>
7981 <dt data-property-name="video">
7982 <span class="json-property-name">video:</span>
7983 <span class="json-property-type">object</span>
7984 <span class="json-property-range" title="Value limits"></span>
7985 </dt>
7986 <dt class="json-inner-schema">
7987 <section class="json-schema-properties">
7988 <dl>
7989 <dt data-property-name="id">
7990 <span class="json-property-name">id:</span>
7991 <span class="json-property-type">number</span>
7992 <span class="json-property-range" title="Value limits"></span>
7993 </dt>
7994 <dt data-property-name="uuid">
7995 <span class="json-property-name">uuid:</span>
7996 <span class="json-property-type">string</span>
7997 <span class="json-property-range" title="Value limits"></span>
7998 </dt>
7999 </dl>
8000 </section>
8001 </dt>
8002 </dl>
8003 </section>
8004 </div>
8005 <div class="doc-examples">
8006 <section>
8007 <h5>Example</h5>
8008 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
8009 <span class="hljs-attr">&quot;video&quot;</span>: {
8010 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8011 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
8012 }
8013}
8014</code></pre>
8015 <!-- </div> -->
8016 </section>
8017 </div>
8018 </div>
8019 </div>
8020 <div id="definition-CommentThreadResponse" class="definition panel" data-traverse-target="definition-CommentThreadResponse">
8021 <h2 class="panel-title">
8022 <a name="/definitions/CommentThreadResponse"></a>CommentThreadResponse:
8023 <!-- <span class="json-property-type">
8024 <span class="json-property-type">object</span>
8025 <span class="json-property-range" title="Value limits"></span>
8026
8027
8028 </span> -->
8029 </h2>
8030 <div class="doc-row">
8031 <div class="doc-copy">
8032 <section class="json-schema-properties">
8033 <dl>
8034 <dt data-property-name="total">
8035 <span class="json-property-name">total:</span>
8036 <span class="json-property-type">number</span>
8037 <span class="json-property-range" title="Value limits"></span>
8038 </dt>
8039 <dt data-property-name="data">
8040 <span class="json-property-name">data:</span>
8041 <span class="json-property-type">
8042 <span class="json-schema-ref-array">
8043 <a class="json-schema-ref" href="#/definitions/VideoComment">VideoComment</a>
8044 </span>
8045 </span>
8046 <span class="json-property-range" title="Value limits"></span>
8047 </dt>
8048 <dt class="json-inner-schema">
8049 <section class="json-schema-array-items">
8050 <span class="json-property-type">
8051 <span class="">
8052 <a class="json-schema-ref" href="#/definitions/VideoComment">VideoComment</a>
8053 </span>
8054 </span>
8055 <span class="json-property-range" title="Value limits"></span>
8056 <div class="json-inner-schema"> </div>
8057 </section>
8058 </dt>
8059 </dl>
8060 </section>
8061 </div>
8062 <div class="doc-examples">
8063 <section>
8064 <h5>Example</h5>
8065 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
8066 <span class="hljs-attr">&quot;total&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8067 <span class="hljs-attr">&quot;data&quot;</span>: [
8068 {
8069 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8070 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8071 <span class="hljs-attr">&quot;text&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8072 <span class="hljs-attr">&quot;threadId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8073 <span class="hljs-attr">&quot;inReplyToCommentId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8074 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8075 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8076 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8077 <span class="hljs-attr">&quot;totalReplies&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8078 <span class="hljs-attr">&quot;account&quot;</span>: {
8079 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8080 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8081 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8082 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8083 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8084 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8085 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8086 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8087 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8088 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8089 <span class="hljs-attr">&quot;avatar&quot;</span>: {
8090 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8091 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8092 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
8093 }
8094 }
8095 }
8096 ]
8097}
8098</code></pre>
8099 <!-- </div> -->
8100 </section>
8101 </div>
8102 </div>
8103 </div>
8104 <div id="definition-CommentThreadPostResponse" class="definition panel" data-traverse-target="definition-CommentThreadPostResponse">
8105 <h2 class="panel-title">
8106 <a name="/definitions/CommentThreadPostResponse"></a>CommentThreadPostResponse:
8107 <!-- <span class="json-property-type">
8108 <span class="json-property-type">object</span>
8109 <span class="json-property-range" title="Value limits"></span>
8110
8111
8112 </span> -->
8113 </h2>
8114 <div class="doc-row">
8115 <div class="doc-copy">
8116 <section class="json-schema-properties">
8117 <dl>
8118 <dt data-property-name="comment">
8119 <span class="json-property-name">comment:</span>
8120 <span class="json-property-type">
8121 <span class="">
8122 <a class="json-schema-ref" href="#/definitions/VideoComment">VideoComment</a>
8123 </span>
8124 </span>
8125 <span class="json-property-range" title="Value limits"></span>
8126 </dt>
8127 </dl>
8128 </section>
8129 </div>
8130 <div class="doc-examples">
8131 <section>
8132 <h5>Example</h5>
8133 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
8134 <span class="hljs-attr">&quot;comment&quot;</span>: {
8135 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8136 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8137 <span class="hljs-attr">&quot;text&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8138 <span class="hljs-attr">&quot;threadId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8139 <span class="hljs-attr">&quot;inReplyToCommentId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8140 <span class="hljs-attr">&quot;videoId&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8141 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8142 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8143 <span class="hljs-attr">&quot;totalReplies&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8144 <span class="hljs-attr">&quot;account&quot;</span>: {
8145 <span class="hljs-attr">&quot;displayName&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8146 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8147 <span class="hljs-attr">&quot;uuid&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8148 <span class="hljs-attr">&quot;url&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8149 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8150 <span class="hljs-attr">&quot;host&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8151 <span class="hljs-attr">&quot;followingCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8152 <span class="hljs-attr">&quot;followersCount&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>,
8153 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8154 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8155 <span class="hljs-attr">&quot;avatar&quot;</span>: {
8156 <span class="hljs-attr">&quot;path&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8157 <span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8158 <span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
8159 }
8160 }
8161 }
8162}
8163</code></pre>
8164 <!-- </div> -->
8165 </section>
8166 </div>
8167 </div>
8168 </div>
8169 <div id="definition-AddUser" class="definition panel" data-traverse-target="definition-AddUser">
8170 <h2 class="panel-title">
8171 <a name="/definitions/AddUser"></a>AddUser:
8172 <!-- <span class="json-property-type">
8173 <span class="json-property-type">object</span>
8174 <span class="json-property-range" title="Value limits"></span>
8175
8176
8177 </span> -->
8178 </h2>
8179 <div class="doc-row">
8180 <div class="doc-copy">
8181 <section class="json-schema-properties">
8182 <dl>
8183 <dt data-property-name="username" class="has-description">
8184 <span class="json-property-name">username:</span>
8185 <span class="json-property-type">string</span>
8186 <span class="json-property-range" title="Value limits"></span>
8187 <span class="json-property-required"></span>
8188 </dt>
8189 <dd>
8190 <p>The user username </p>
8191 </dd>
8192 <dt data-property-name="password" class="has-description">
8193 <span class="json-property-name">password:</span>
8194 <span class="json-property-type">string</span>
8195 <span class="json-property-range" title="Value limits"></span>
8196 <span class="json-property-required"></span>
8197 </dt>
8198 <dd>
8199 <p>The user password </p>
8200 </dd>
8201 <dt data-property-name="email" class="has-description">
8202 <span class="json-property-name">email:</span>
8203 <span class="json-property-type">string</span>
8204 <span class="json-property-range" title="Value limits"></span>
8205 <span class="json-property-required"></span>
8206 </dt>
8207 <dd>
8208 <p>The user email </p>
8209 </dd>
8210 <dt data-property-name="videoQuota" class="has-description">
8211 <span class="json-property-name">videoQuota:</span>
8212 <span class="json-property-type">string</span>
8213 <span class="json-property-range" title="Value limits"></span>
8214 <span class="json-property-required"></span>
8215 </dt>
8216 <dd>
8217 <p>The user videoQuota </p>
8218 </dd>
8219 <dt data-property-name="role" class="has-description">
8220 <span class="json-property-name">role:</span>
8221 <span class="json-property-type">string</span>
8222 <span class="json-property-range" title="Value limits"></span>
8223 <span class="json-property-required"></span>
8224 </dt>
8225 <dd>
8226 <p>The user role </p>
8227 </dd>
8228 </dl>
8229 </section>
8230 </div>
8231 <div class="doc-examples">
8232 <section>
8233 <h5>Example</h5>
8234 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
8235 <span class="hljs-attr">&quot;username&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8236 <span class="hljs-attr">&quot;password&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8237 <span class="hljs-attr">&quot;email&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8238 <span class="hljs-attr">&quot;videoQuota&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8239 <span class="hljs-attr">&quot;role&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
8240}
8241</code></pre>
8242 <!-- </div> -->
8243 </section>
8244 </div>
8245 </div>
8246 </div>
8247 <div id="definition-UpdateUser" class="definition panel" data-traverse-target="definition-UpdateUser">
8248 <h2 class="panel-title">
8249 <a name="/definitions/UpdateUser"></a>UpdateUser:
8250 <!-- <span class="json-property-type">
8251 <span class="json-property-type">object</span>
8252 <span class="json-property-range" title="Value limits"></span>
8253
8254
8255 </span> -->
8256 </h2>
8257 <div class="doc-row">
8258 <div class="doc-copy">
8259 <section class="json-schema-properties">
8260 <dl>
8261 <dt data-property-name="id" class="has-description">
8262 <span class="json-property-name">id:</span>
8263 <span class="json-property-type">string</span>
8264 <span class="json-property-range" title="Value limits"></span>
8265 <span class="json-property-required"></span>
8266 </dt>
8267 <dd>
8268 <p>The user id </p>
8269 </dd>
8270 <dt data-property-name="email" class="has-description">
8271 <span class="json-property-name">email:</span>
8272 <span class="json-property-type">string</span>
8273 <span class="json-property-range" title="Value limits"></span>
8274 <span class="json-property-required"></span>
8275 </dt>
8276 <dd>
8277 <p>The updated email of the user </p>
8278 </dd>
8279 <dt data-property-name="videoQuota" class="has-description">
8280 <span class="json-property-name">videoQuota:</span>
8281 <span class="json-property-type">string</span>
8282 <span class="json-property-range" title="Value limits"></span>
8283 <span class="json-property-required"></span>
8284 </dt>
8285 <dd>
8286 <p>The updated videoQuota of the user </p>
8287 </dd>
8288 <dt data-property-name="role" class="has-description">
8289 <span class="json-property-name">role:</span>
8290 <span class="json-property-type">string</span>
8291 <span class="json-property-range" title="Value limits"></span>
8292 <span class="json-property-required"></span>
8293 </dt>
8294 <dd>
8295 <p>The updated role of the user </p>
8296 </dd>
8297 </dl>
8298 </section>
8299 </div>
8300 <div class="doc-examples">
8301 <section>
8302 <h5>Example</h5>
8303 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
8304 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8305 <span class="hljs-attr">&quot;email&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8306 <span class="hljs-attr">&quot;videoQuota&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8307 <span class="hljs-attr">&quot;role&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
8308}
8309</code></pre>
8310 <!-- </div> -->
8311 </section>
8312 </div>
8313 </div>
8314 </div>
8315 <div id="definition-UpdateMe" class="definition panel" data-traverse-target="definition-UpdateMe">
8316 <h2 class="panel-title">
8317 <a name="/definitions/UpdateMe"></a>UpdateMe:
8318 <!-- <span class="json-property-type">
8319 <span class="json-property-type">object</span>
8320 <span class="json-property-range" title="Value limits"></span>
8321
8322
8323 </span> -->
8324 </h2>
8325 <div class="doc-row">
8326 <div class="doc-copy">
8327 <section class="json-schema-properties">
8328 <dl>
8329 <dt data-property-name="password" class="has-description">
8330 <span class="json-property-name">password:</span>
8331 <span class="json-property-type">string</span>
8332 <span class="json-property-range" title="Value limits"></span>
8333 <span class="json-property-required"></span>
8334 </dt>
8335 <dd>
8336 <p>Your new password </p>
8337 </dd>
8338 <dt data-property-name="email" class="has-description">
8339 <span class="json-property-name">email:</span>
8340 <span class="json-property-type">string</span>
8341 <span class="json-property-range" title="Value limits"></span>
8342 <span class="json-property-required"></span>
8343 </dt>
8344 <dd>
8345 <p>Your new email </p>
8346 </dd>
8347 <dt data-property-name="displayNSFW" class="has-description">
8348 <span class="json-property-name">displayNSFW:</span>
8349 <span class="json-property-type">string</span>
8350 <span class="json-property-range" title="Value limits"></span>
8351 <span class="json-property-required"></span>
8352 </dt>
8353 <dd>
8354 <p>Your new displayNSFW </p>
8355 </dd>
8356 <dt data-property-name="autoPlayVideo" class="has-description">
8357 <span class="json-property-name">autoPlayVideo:</span>
8358 <span class="json-property-type">string</span>
8359 <span class="json-property-range" title="Value limits"></span>
8360 <span class="json-property-required"></span>
8361 </dt>
8362 <dd>
8363 <p>Your new autoPlayVideo </p>
8364 </dd>
8365 </dl>
8366 </section>
8367 </div>
8368 <div class="doc-examples">
8369 <section>
8370 <h5>Example</h5>
8371 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
8372 <span class="hljs-attr">&quot;password&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8373 <span class="hljs-attr">&quot;email&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8374 <span class="hljs-attr">&quot;displayNSFW&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8375 <span class="hljs-attr">&quot;autoPlayVideo&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
8376}
8377</code></pre>
8378 <!-- </div> -->
8379 </section>
8380 </div>
8381 </div>
8382 </div>
8383 <div id="definition-GetMeVideoRating" class="definition panel" data-traverse-target="definition-GetMeVideoRating">
8384 <h2 class="panel-title">
8385 <a name="/definitions/GetMeVideoRating"></a>GetMeVideoRating:
8386 <!-- <span class="json-property-type">
8387 <span class="json-property-type">object</span>
8388 <span class="json-property-range" title="Value limits"></span>
8389
8390
8391 </span> -->
8392 </h2>
8393 <div class="doc-row">
8394 <div class="doc-copy">
8395 <section class="json-schema-properties">
8396 <dl>
8397 <dt data-property-name="id" class="has-description">
8398 <span class="json-property-name">id:</span>
8399 <span class="json-property-type">string</span>
8400 <span class="json-property-range" title="Value limits"></span>
8401 <span class="json-property-required"></span>
8402 </dt>
8403 <dd>
8404 <p>Id of the video </p>
8405 </dd>
8406 <dt data-property-name="rating" class="has-description">
8407 <span class="json-property-name">rating:</span>
8408 <span class="json-property-type">number</span>
8409 <span class="json-property-range" title="Value limits"></span>
8410 <span class="json-property-required"></span>
8411 </dt>
8412 <dd>
8413 <p>Rating of the video </p>
8414 </dd>
8415 </dl>
8416 </section>
8417 </div>
8418 <div class="doc-examples">
8419 <section>
8420 <h5>Example</h5>
8421 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
8422 <span class="hljs-attr">&quot;id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8423 <span class="hljs-attr">&quot;rating&quot;</span>: <span class="hljs-string">&quot;number&quot;</span>
8424}
8425</code></pre>
8426 <!-- </div> -->
8427 </section>
8428 </div>
8429 </div>
8430 </div>
8431 <div id="definition-RegisterUser" class="definition panel" data-traverse-target="definition-RegisterUser">
8432 <h2 class="panel-title">
8433 <a name="/definitions/RegisterUser"></a>RegisterUser:
8434 <!-- <span class="json-property-type">
8435 <span class="json-property-type">object</span>
8436 <span class="json-property-range" title="Value limits"></span>
8437
8438
8439 </span> -->
8440 </h2>
8441 <div class="doc-row">
8442 <div class="doc-copy">
8443 <section class="json-schema-properties">
8444 <dl>
8445 <dt data-property-name="username" class="has-description">
8446 <span class="json-property-name">username:</span>
8447 <span class="json-property-type">string</span>
8448 <span class="json-property-range" title="Value limits"></span>
8449 <span class="json-property-required"></span>
8450 </dt>
8451 <dd>
8452 <p>The username of the user </p>
8453 </dd>
8454 <dt data-property-name="password" class="has-description">
8455 <span class="json-property-name">password:</span>
8456 <span class="json-property-type">string</span>
8457 <span class="json-property-range" title="Value limits"></span>
8458 <span class="json-property-required"></span>
8459 </dt>
8460 <dd>
8461 <p>The password of the user </p>
8462 </dd>
8463 <dt data-property-name="email" class="has-description">
8464 <span class="json-property-name">email:</span>
8465 <span class="json-property-type">string</span>
8466 <span class="json-property-range" title="Value limits"></span>
8467 <span class="json-property-required"></span>
8468 </dt>
8469 <dd>
8470 <p>The email of the user </p>
8471 </dd>
8472 </dl>
8473 </section>
8474 </div>
8475 <div class="doc-examples">
8476 <section>
8477 <h5>Example</h5>
8478 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
8479 <span class="hljs-attr">&quot;username&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8480 <span class="hljs-attr">&quot;password&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8481 <span class="hljs-attr">&quot;email&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
8482}
8483</code></pre>
8484 <!-- </div> -->
8485 </section>
8486 </div>
8487 </div>
8488 </div>
8489 <div id="definition-VideoChannelInput" class="definition panel" data-traverse-target="definition-VideoChannelInput">
8490 <h2 class="panel-title">
8491 <a name="/definitions/VideoChannelInput"></a>VideoChannelInput:
8492 <!-- <span class="json-property-type">
8493 <span class="json-property-type">object</span>
8494 <span class="json-property-range" title="Value limits"></span>
8495
8496
8497 </span> -->
8498 </h2>
8499 <div class="doc-row">
8500 <div class="doc-copy">
8501 <section class="json-schema-properties">
8502 <dl>
8503 <dt data-property-name="name">
8504 <span class="json-property-name">name:</span>
8505 <span class="json-property-type">string</span>
8506 <span class="json-property-range" title="Value limits"></span>
8507 </dt>
8508 <dt data-property-name="description">
8509 <span class="json-property-name">description:</span>
8510 <span class="json-property-type">string</span>
8511 <span class="json-property-range" title="Value limits"></span>
8512 </dt>
8513 </dl>
8514 </section>
8515 </div>
8516 <div class="doc-examples">
8517 <section>
8518 <h5>Example</h5>
8519 <!-- <div class="hljs"> --><pre><code class="hljs lang-json">{
8520 <span class="hljs-attr">&quot;name&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
8521 <span class="hljs-attr">&quot;description&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
8522}
8523</code></pre>
8524 <!-- </div> -->
8525 </section>
8526 </div>
8527 </div>
8528 </div>
8529 <div class="doc-row no-margin">
8530 <div class="doc-copy doc-separator">
8531 <a class="powered-by" href="https://sourcey.com/spectacle">Documentation by
8532 <span>Spectacle</span>
8533 </a>
8534 </div>
8535 </div>
8536 </article>
8537 </div>
8538 </div>
8539 </body>
8540</html> \ No newline at end of file
diff --git a/support/doc/api/html/javascripts/spectacle.js b/support/doc/api/html/javascripts/spectacle.js
deleted file mode 100644
index e75fc6a3a..000000000
--- a/support/doc/api/html/javascripts/spectacle.js
+++ /dev/null
@@ -1,242 +0,0 @@
1$(function() {
2 // $(document).foundation();
3
4 var $sidebar = $('#sidebar');
5 if ($sidebar.length) {
6 var $docs = $('#docs');
7 var $nav = $sidebar.find('nav');
8
9 //
10 // Setup sidebar navigation
11 var traverse = new Traverse($nav, {
12 threshold: 10,
13 barOffset: $sidebar.position().top
14 });
15
16 $nav.on('update.traverse', function(event, element) {
17 $nav.find('section').removeClass('expand');
18 var $section = element.parents('section:first');
19 if ($section.length) {
20 $section.addClass('expand');
21 }
22 });
23
24 //
25 // Bind the drawer layout
26 var $drawerLayout = $('.drawer-layout'),
27 $drawer = $drawerLayout.find('.drawer'),
28 closeDrawer = function() {
29 $drawer.removeClass('slide-right slide-left');
30 $drawer.find('.drawer-overlay').remove();
31 $drawerLayout.removeClass('drawer-open drawer-slide-left-large drawer-slide-right-large');
32 return false;
33 };
34
35 // Drawer open buttons
36 $drawerLayout.find('[data-drawer-slide]').click(function(e) {
37 var $this = $(this),
38 direction = $this.data('drawer-slide');
39 $drawerLayout.addClass('drawer-open');
40 $drawer.addClass('slide-' + direction);
41
42 var $overlay = $('<a href="#" class="drawer-overlay"></a>')
43 $drawer.append($overlay);
44 $overlay.click(closeDrawer);
45
46 return false;
47 });
48
49 // Drawer close buttons
50 $drawerLayout.find('[data-drawer-close]').click(closeDrawer);
51 }
52});
53
54/**
55 * Creates a new instance of Traverse.
56 * @class
57 * @fires Traverse#init
58 * @param {Object} element - jQuery object to add the trigger to.
59 * @param {Object} options - Overrides to the default plugin settings.
60 */
61function Traverse(element, options) {
62 this.$element = element;
63 this.options = $.extend({}, Traverse.defaults, this.$element.data(), options);
64
65 this._init();
66}
67
68/**
69 * Default settings for plugin
70 */
71Traverse.defaults = {
72 /**
73 * Amount of time, in ms, the animated scrolling should take between locations.
74 * @option
75 * @example 500
76 */
77 animationDuration: 500,
78 /**
79 * Animation style to use when scrolling between locations.
80 * @option
81 * @example 'ease-in-out'
82 */
83 animationEasing: 'linear',
84 /**
85 * Number of pixels to use as a marker for location changes.
86 * @option
87 * @example 50
88 */
89 threshold: 50,
90 /**
91 * Class applied to the active locations link on the traverse container.
92 * @option
93 * @example 'active'
94 */
95 activeClass: 'active',
96 /**
97 * Allows the script to manipulate the url of the current page, and if supported, alter the history.
98 * @option
99 * @example true
100 */
101 deepLinking: false,
102 /**
103 * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.
104 * @option
105 * @example 25
106 */
107 barOffset: 0
108};
109
110/**
111 * Initializes the Traverse plugin and calls functions to get equalizer functioning on load.
112 * @private
113 */
114Traverse.prototype._init = function() {
115 var id = this.$element[0].id, // || Foundation.GetYoDigits(6, 'traverse'),
116 _this = this;
117 this.$targets = $('[data-traverse-target]');
118 this.$links = this.$element.find('a');
119 this.$element.attr({
120 'data-resize': id,
121 'data-scroll': id,
122 'id': id
123 });
124 this.$active = $();
125 this.scrollPos = parseInt(window.pageYOffset, 10);
126
127 this._events();
128};
129
130/**
131 * Calculates an array of pixel values that are the demarcation lines between locations on the page.
132 * Can be invoked if new elements are added or the size of a location changes.
133 * @function
134 */
135Traverse.prototype.calcPoints = function(){
136 var _this = this,
137 body = document.body,
138 html = document.documentElement;
139
140 this.points = [];
141 this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));
142 this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));
143
144 this.$targets.each(function(){
145 var $tar = $(this),
146 pt = $tar.offset().top; // Math.round($tar.offset().top - _this.options.threshold);
147 $tar.targetPoint = pt;
148 _this.points.push(pt);
149 });
150};
151
152/**
153 * Initializes events for Traverse.
154 * @private
155 */
156Traverse.prototype._events = function() {
157 var _this = this,
158 $body = $('html, body'),
159 opts = {
160 duration: _this.options.animationDuration,
161 easing: _this.options.animationEasing
162 };
163
164 $(window).one('load', function(){
165 _this.calcPoints();
166 _this._updateActive();
167
168 $(this).resize(function(e) {
169 _this.reflow();
170 }).scroll(function(e) {
171 _this._updateActive();
172 });
173 })
174
175 this.$element.on('click', 'a[href^="#"]', function(e) { //'click.zf.traverse'
176 e.preventDefault();
177 var arrival = this.getAttribute('href').replace(".", "\\."),
178 scrollPos = $(arrival).offset().top - _this.options.barOffset; // - _this.options.threshold / 2 - _this.options.barOffset;
179
180 $body.stop(true).animate({
181 scrollTop: scrollPos
182 }, opts);
183 });
184};
185
186/**
187 * Calls necessary functions to update Traverse upon DOM change
188 * @function
189 */
190Traverse.prototype.reflow = function(){
191 this.calcPoints();
192 this._updateActive();
193};
194
195/**
196 * Updates the visibility of an active location link,
197 * and updates the url hash for the page, if deepLinking enabled.
198 * @private
199 * @function
200 * @fires Traverse#update
201 */
202 Traverse.prototype._updateActive = function(){
203 var winPos = parseInt(window.pageYOffset, 10),
204 curIdx;
205
206 if(winPos + this.winHeight === this.docHeight){ curIdx = this.points.length - 1; }
207 else if(winPos < this.points[0]){ curIdx = 0; }
208 else{
209 var isDown = this.scrollPos < winPos,
210 _this = this,
211 curVisible = this.points.filter(function(p, i){
212 return isDown ?
213 p <= (winPos + _this.options.barOffset + _this.options.threshold) :
214 (p - (_this.options.barOffset + _this.options.threshold)) <= winPos;
215 // p <= (winPos - (offset - _this.options.threshold)) :
216 // (p - (-offset + _this.options.threshold)) <= winPos;
217 });
218 curIdx = curVisible.length ? curVisible.length - 1 : 0;
219 }
220
221 var $prev = this.$active;
222 var $next = this.$links.eq(curIdx);
223 this.$active.removeClass(this.options.activeClass);
224 this.$active = $next.addClass(this.options.activeClass);
225
226 if(this.options.deepLinking){
227 var hash = this.$active[0].getAttribute('href');
228 if(window.history.pushState){
229 window.history.pushState(null, null, hash);
230 }else{
231 window.location.hash = hash;
232 }
233 }
234
235 this.scrollPos = winPos;
236
237 // Fire event if the active element was changed
238 var changed = $prev[0] !== $next[0];
239 if (changed) {
240 this.$element.trigger('update.traverse', [this.$active]);
241 }
242 };
diff --git a/support/doc/api/html/javascripts/spectacle.min.js b/support/doc/api/html/javascripts/spectacle.min.js
deleted file mode 100644
index f8d0b1fbd..000000000
--- a/support/doc/api/html/javascripts/spectacle.min.js
+++ /dev/null
@@ -1 +0,0 @@
1function Traverse(t,e){this.$element=t,this.options=$.extend({},Traverse.defaults,this.$element.data(),e),this._init()}$(function(){var t=$("#sidebar");if(t.length){$("#docs");var s=t.find("nav");new Traverse(s,{threshold:10,barOffset:t.position().top});s.on("update.traverse",function(t,e){s.find("section").removeClass("expand");var i=e.parents("section:first");i.length&&i.addClass("expand")});var a=$(".drawer-layout"),n=a.find(".drawer"),r=function(){return n.removeClass("slide-right slide-left"),n.find(".drawer-overlay").remove(),a.removeClass("drawer-open drawer-slide-left-large drawer-slide-right-large"),!1};a.find("[data-drawer-slide]").click(function(t){var e=$(this).data("drawer-slide");a.addClass("drawer-open"),n.addClass("slide-"+e);var i=$('<a href="#" class="drawer-overlay"></a>');return n.append(i),i.click(r),!1}),a.find("[data-drawer-close]").click(r)}}),Traverse.defaults={animationDuration:500,animationEasing:"linear",threshold:50,activeClass:"active",deepLinking:!1,barOffset:0},Traverse.prototype._init=function(){var t=this.$element[0].id;this.$targets=$("[data-traverse-target]"),this.$links=this.$element.find("a"),this.$element.attr({"data-resize":t,"data-scroll":t,id:t}),this.$active=$(),this.scrollPos=parseInt(window.pageYOffset,10),this._events()},Traverse.prototype.calcPoints=function(){var i=this,t=document.body,e=document.documentElement;this.points=[],this.winHeight=Math.round(Math.max(window.innerHeight,e.clientHeight)),this.docHeight=Math.round(Math.max(t.scrollHeight,t.offsetHeight,e.clientHeight,e.scrollHeight,e.offsetHeight)),this.$targets.each(function(){var t=$(this),e=t.offset().top;t.targetPoint=e,i.points.push(e)})},Traverse.prototype._events=function(){var s=this,a=$("html, body"),n={duration:s.options.animationDuration,easing:s.options.animationEasing};$(window).one("load",function(){s.calcPoints(),s._updateActive(),$(this).resize(function(t){s.reflow()}).scroll(function(t){s._updateActive()})}),this.$element.on("click",'a[href^="#"]',function(t){t.preventDefault();var e=this.getAttribute("href").replace(".","\\."),i=$(e).offset().top-s.options.barOffset;a.stop(!0).animate({scrollTop:i},n)})},Traverse.prototype.reflow=function(){this.calcPoints(),this._updateActive()},Traverse.prototype._updateActive=function(){var t,i=parseInt(window.pageYOffset,10);if(i+this.winHeight===this.docHeight)t=this.points.length-1;else if(i<this.points[0])t=0;else{var s=this.scrollPos<i,a=this,e=this.points.filter(function(t,e){return s?t<=i+a.options.barOffset+a.options.threshold:t-(a.options.barOffset+a.options.threshold)<=i});t=e.length?e.length-1:0}var n=this.$active,r=this.$links.eq(t);if(this.$active.removeClass(this.options.activeClass),this.$active=r.addClass(this.options.activeClass),this.options.deepLinking){var o=this.$active[0].getAttribute("href");window.history.pushState?window.history.pushState(null,null,o):window.location.hash=o}this.scrollPos=i,n[0]!==r[0]&&this.$element.trigger("update.traverse",[this.$active])}; \ No newline at end of file
diff --git a/support/doc/api/html/stylesheets/foundation.css b/support/doc/api/html/stylesheets/foundation.css
deleted file mode 100644
index 3345f1175..000000000
--- a/support/doc/api/html/stylesheets/foundation.css
+++ /dev/null
@@ -1,2285 +0,0 @@
1@charset "UTF-8";
2/**
3 * Foundation for Sites by ZURB
4 * Version 6.4.1
5 * foundation.zurb.com
6 * Licensed under MIT Open Source
7 */
8/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
9/* Document
10 ========================================================================== */
11/**
12 * 1. Change the default font family in all browsers (opinionated).
13 * 2. Correct the line height in all browsers.
14 * 3. Prevent adjustments of font size after orientation changes in
15 * IE on Windows Phone and in iOS.
16 */
17html {
18 font-family: sans-serif;
19 /* 1 */
20 line-height: 1.15;
21 /* 2 */
22 -ms-text-size-adjust: 100%;
23 /* 3 */
24 -webkit-text-size-adjust: 100%;
25 /* 3 */ }
26
27/* Sections
28 ========================================================================== */
29/**
30 * Remove the margin in all browsers (opinionated).
31 */
32body {
33 margin: 0; }
34
35/**
36 * Add the correct display in IE 9-.
37 */
38article,
39aside,
40footer,
41header,
42nav,
43section {
44 display: block; }
45
46/**
47 * Correct the font size and margin on `h1` elements within `section` and
48 * `article` contexts in Chrome, Firefox, and Safari.
49 */
50h1 {
51 font-size: 2em;
52 margin: 0.67em 0; }
53
54/* Grouping content
55 ========================================================================== */
56/**
57 * Add the correct display in IE 9-.
58 */
59figcaption,
60figure {
61 display: block; }
62
63/**
64 * Add the correct margin in IE 8.
65 */
66figure {
67 margin: 1em 40px; }
68
69/**
70 * 1. Add the correct box sizing in Firefox.
71 * 2. Show the overflow in Edge and IE.
72 */
73hr {
74 box-sizing: content-box;
75 /* 1 */
76 height: 0;
77 /* 1 */
78 overflow: visible;
79 /* 2 */ }
80
81/**
82 * Add the correct display in IE.
83 */
84main {
85 display: block; }
86
87/**
88 * 1. Correct the inheritance and scaling of font size in all browsers.
89 * 2. Correct the odd `em` font sizing in all browsers.
90 */
91pre {
92 font-family: monospace, monospace;
93 /* 1 */
94 font-size: 1em;
95 /* 2 */ }
96
97/* Links
98 ========================================================================== */
99/**
100 * 1. Remove the gray background on active links in IE 10.
101 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
102 */
103a {
104 background-color: transparent;
105 /* 1 */
106 -webkit-text-decoration-skip: objects;
107 /* 2 */ }
108
109/**
110 * Remove the outline on focused links when they are also active or hovered
111 * in all browsers (opinionated).
112 */
113a:active,
114a:hover {
115 outline-width: 0; }
116
117/* Text-level semantics
118 ========================================================================== */
119/**
120 * 1. Remove the bottom border in Firefox 39-.
121 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
122 */
123abbr[title] {
124 border-bottom: none;
125 /* 1 */
126 text-decoration: underline;
127 /* 2 */
128 text-decoration: underline dotted;
129 /* 2 */ }
130
131/**
132 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
133 */
134b,
135strong {
136 font-weight: inherit; }
137
138/**
139 * Add the correct font weight in Chrome, Edge, and Safari.
140 */
141b,
142strong {
143 font-weight: bolder; }
144
145/**
146 * 1. Correct the inheritance and scaling of font size in all browsers.
147 * 2. Correct the odd `em` font sizing in all browsers.
148 */
149code,
150kbd,
151samp {
152 font-family: monospace, monospace;
153 /* 1 */
154 font-size: 1em;
155 /* 2 */ }
156
157/**
158 * Add the correct font style in Android 4.3-.
159 */
160dfn {
161 font-style: italic; }
162
163/**
164 * Add the correct background and color in IE 9-.
165 */
166mark {
167 background-color: #ff0;
168 color: #000; }
169
170/**
171 * Add the correct font size in all browsers.
172 */
173small {
174 font-size: 80%; }
175
176/**
177 * Prevent `sub` and `sup` elements from affecting the line height in
178 * all browsers.
179 */
180sub,
181sup {
182 font-size: 75%;
183 line-height: 0;
184 position: relative;
185 vertical-align: baseline; }
186
187sub {
188 bottom: -0.25em; }
189
190sup {
191 top: -0.5em; }
192
193/* Embedded content
194 ========================================================================== */
195/**
196 * Add the correct display in IE 9-.
197 */
198audio,
199video {
200 display: inline-block; }
201
202/**
203 * Add the correct display in iOS 4-7.
204 */
205audio:not([controls]) {
206 display: none;
207 height: 0; }
208
209/**
210 * Remove the border on images inside links in IE 10-.
211 */
212img {
213 border-style: none; }
214
215/**
216 * Hide the overflow in IE.
217 */
218svg:not(:root) {
219 overflow: hidden; }
220
221/* Forms
222 ========================================================================== */
223/**
224 * 1. Change the font styles in all browsers (opinionated).
225 * 2. Remove the margin in Firefox and Safari.
226 */
227button,
228input,
229optgroup,
230select,
231textarea {
232 font-family: sans-serif;
233 /* 1 */
234 font-size: 100%;
235 /* 1 */
236 line-height: 1.15;
237 /* 1 */
238 margin: 0;
239 /* 2 */ }
240
241/**
242 * Show the overflow in IE.
243 */
244button {
245 overflow: visible; }
246
247/**
248 * Remove the inheritance of text transform in Edge, Firefox, and IE.
249 * 1. Remove the inheritance of text transform in Firefox.
250 */
251button,
252select {
253 /* 1 */
254 text-transform: none; }
255
256/**
257 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
258 * controls in Android 4.
259 * 2. Correct the inability to style clickable types in iOS and Safari.
260 */
261button,
262html [type="button"],
263[type="reset"],
264[type="submit"] {
265 -webkit-appearance: button;
266 /* 2 */ }
267
268button,
269[type="button"],
270[type="reset"],
271[type="submit"] {
272 /**
273 * Remove the inner border and padding in Firefox.
274 */
275 /**
276 * Restore the focus styles unset by the previous rule.
277 */ }
278 button::-moz-focus-inner,
279 [type="button"]::-moz-focus-inner,
280 [type="reset"]::-moz-focus-inner,
281 [type="submit"]::-moz-focus-inner {
282 border-style: none;
283 padding: 0; }
284 button:-moz-focusring,
285 [type="button"]:-moz-focusring,
286 [type="reset"]:-moz-focusring,
287 [type="submit"]:-moz-focusring {
288 outline: 1px dotted ButtonText; }
289
290/**
291 * Show the overflow in Edge.
292 */
293input {
294 overflow: visible; }
295
296/**
297 * 1. Add the correct box sizing in IE 10-.
298 * 2. Remove the padding in IE 10-.
299 */
300[type="checkbox"],
301[type="radio"] {
302 box-sizing: border-box;
303 /* 1 */
304 padding: 0;
305 /* 2 */ }
306
307/**
308 * Correct the cursor style of increment and decrement buttons in Chrome.
309 */
310[type="number"]::-webkit-inner-spin-button,
311[type="number"]::-webkit-outer-spin-button {
312 height: auto; }
313
314/**
315 * 1. Correct the odd appearance in Chrome and Safari.
316 * 2. Correct the outline style in Safari.
317 */
318[type="search"] {
319 -webkit-appearance: textfield;
320 /* 1 */
321 outline-offset: -2px;
322 /* 2 */
323 /**
324 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
325 */ }
326 [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration {
327 -webkit-appearance: none; }
328
329/**
330 * 1. Correct the inability to style clickable types in iOS and Safari.
331 * 2. Change font properties to `inherit` in Safari.
332 */
333::-webkit-file-upload-button {
334 -webkit-appearance: button;
335 /* 1 */
336 font: inherit;
337 /* 2 */ }
338
339/**
340 * Change the border, margin, and padding in all browsers (opinionated).
341 */
342fieldset {
343 border: 1px solid #c0c0c0;
344 margin: 0 2px;
345 padding: 0.35em 0.625em 0.75em; }
346
347/**
348 * 1. Correct the text wrapping in Edge and IE.
349 * 2. Correct the color inheritance from `fieldset` elements in IE.
350 * 3. Remove the padding so developers are not caught out when they zero out
351 * `fieldset` elements in all browsers.
352 */
353legend {
354 box-sizing: border-box;
355 /* 1 */
356 display: table;
357 /* 1 */
358 max-width: 100%;
359 /* 1 */
360 padding: 0;
361 /* 3 */
362 color: inherit;
363 /* 2 */
364 white-space: normal;
365 /* 1 */ }
366
367/**
368 * 1. Add the correct display in IE 9-.
369 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
370 */
371progress {
372 display: inline-block;
373 /* 1 */
374 vertical-align: baseline;
375 /* 2 */ }
376
377/**
378 * Remove the default vertical scrollbar in IE.
379 */
380textarea {
381 overflow: auto; }
382
383/* Interactive
384 ========================================================================== */
385/*
386 * Add the correct display in Edge, IE, and Firefox.
387 */
388details {
389 display: block; }
390
391/*
392 * Add the correct display in all browsers.
393 */
394summary {
395 display: list-item; }
396
397/*
398 * Add the correct display in IE 9-.
399 */
400menu {
401 display: block; }
402
403/* Scripting
404 ========================================================================== */
405/**
406 * Add the correct display in IE 9-.
407 */
408canvas {
409 display: inline-block; }
410
411/**
412 * Add the correct display in IE.
413 */
414template {
415 display: none; }
416
417/* Hidden
418 ========================================================================== */
419/**
420 * Add the correct display in IE 10-.
421 */
422[hidden] {
423 display: none; }
424
425.foundation-mq {
426 font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"; }
427
428html {
429 box-sizing: border-box;
430 font-size: 95%; }
431
432*,
433*::before,
434*::after {
435 box-sizing: inherit; }
436
437body {
438 margin: 0;
439 padding: 0;
440 background: #fefefe;
441 font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
442 font-weight: normal;
443 line-height: 1.5;
444 color: #2d3134;
445 -webkit-font-smoothing: antialiased;
446 -moz-osx-font-smoothing: grayscale; }
447
448img {
449 display: inline-block;
450 vertical-align: middle;
451 max-width: 100%;
452 height: auto;
453 -ms-interpolation-mode: bicubic; }
454
455textarea {
456 height: auto;
457 min-height: 50px;
458 border-radius: 0; }
459
460select {
461 box-sizing: border-box;
462 width: 100%;
463 border-radius: 0; }
464
465.map_canvas img,
466.map_canvas embed,
467.map_canvas object,
468.mqa-display img,
469.mqa-display embed,
470.mqa-display object {
471 max-width: none !important; }
472
473button {
474 padding: 0;
475 appearance: none;
476 border: 0;
477 border-radius: 0;
478 background: transparent;
479 line-height: 1; }
480 [data-whatinput='mouse'] button {
481 outline: 0; }
482
483pre {
484 overflow: auto; }
485
486button,
487input,
488optgroup,
489select,
490textarea {
491 font-family: inherit; }
492
493.is-visible {
494 display: block !important; }
495
496.is-hidden {
497 display: none !important; }
498
499.row {
500 max-width: auto;
501 margin-right: auto;
502 margin-left: auto; }
503 .row::before, .row::after {
504 display: table;
505 content: ' ';
506 flex-basis: 0;
507 order: 1; }
508 .row::after {
509 clear: both; }
510 .row.collapse > .column, .row.collapse > .columns {
511 padding-right: 0;
512 padding-left: 0; }
513 .row .row {
514 margin-right: -0.6578947368rem;
515 margin-left: -0.6578947368rem; }
516 @media print, screen and (min-width: 40em) {
517 .row .row {
518 margin-right: -0.9868421053rem;
519 margin-left: -0.9868421053rem; } }
520 @media print, screen and (min-width: 64em) {
521 .row .row {
522 margin-right: -0.9868421053rem;
523 margin-left: -0.9868421053rem; } }
524 .row .row.collapse {
525 margin-right: 0;
526 margin-left: 0; }
527 .row.expanded {
528 max-width: none; }
529 .row.expanded .row {
530 margin-right: auto;
531 margin-left: auto; }
532 .row:not(.expanded) .row {
533 max-width: none; }
534 .row.gutter-small > .column, .row.gutter-small > .columns {
535 padding-right: 0.6578947368rem;
536 padding-left: 0.6578947368rem; }
537 .row.gutter-medium > .column, .row.gutter-medium > .columns {
538 padding-right: 0.9868421053rem;
539 padding-left: 0.9868421053rem; }
540
541.column, .columns {
542 width: 100%;
543 float: left;
544 padding-right: 0.6578947368rem;
545 padding-left: 0.6578947368rem; }
546 @media print, screen and (min-width: 40em) {
547 .column, .columns {
548 padding-right: 0.9868421053rem;
549 padding-left: 0.9868421053rem; } }
550 .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
551 float: right; }
552 .column.end:last-child:last-child, .end.columns:last-child:last-child {
553 float: left; }
554
555.column.row.row, .row.row.columns {
556 float: none; }
557
558.row .column.row.row, .row .row.row.columns {
559 margin-right: 0;
560 margin-left: 0;
561 padding-right: 0;
562 padding-left: 0; }
563
564.small-1 {
565 width: 8.3333333333%; }
566
567.small-push-1 {
568 position: relative;
569 left: 8.3333333333%; }
570
571.small-pull-1 {
572 position: relative;
573 left: -8.3333333333%; }
574
575.small-offset-0 {
576 margin-left: 0%; }
577
578.small-2 {
579 width: 16.6666666667%; }
580
581.small-push-2 {
582 position: relative;
583 left: 16.6666666667%; }
584
585.small-pull-2 {
586 position: relative;
587 left: -16.6666666667%; }
588
589.small-offset-1 {
590 margin-left: 8.3333333333%; }
591
592.small-3 {
593 width: 25%; }
594
595.small-push-3 {
596 position: relative;
597 left: 25%; }
598
599.small-pull-3 {
600 position: relative;
601 left: -25%; }
602
603.small-offset-2 {
604 margin-left: 16.6666666667%; }
605
606.small-4 {
607 width: 33.3333333333%; }
608
609.small-push-4 {
610 position: relative;
611 left: 33.3333333333%; }
612
613.small-pull-4 {
614 position: relative;
615 left: -33.3333333333%; }
616
617.small-offset-3 {
618 margin-left: 25%; }
619
620.small-5 {
621 width: 41.6666666667%; }
622
623.small-push-5 {
624 position: relative;
625 left: 41.6666666667%; }
626
627.small-pull-5 {
628 position: relative;
629 left: -41.6666666667%; }
630
631.small-offset-4 {
632 margin-left: 33.3333333333%; }
633
634.small-6 {
635 width: 50%; }
636
637.small-push-6 {
638 position: relative;
639 left: 50%; }
640
641.small-pull-6 {
642 position: relative;
643 left: -50%; }
644
645.small-offset-5 {
646 margin-left: 41.6666666667%; }
647
648.small-7 {
649 width: 58.3333333333%; }
650
651.small-push-7 {
652 position: relative;
653 left: 58.3333333333%; }
654
655.small-pull-7 {
656 position: relative;
657 left: -58.3333333333%; }
658
659.small-offset-6 {
660 margin-left: 50%; }
661
662.small-8 {
663 width: 66.6666666667%; }
664
665.small-push-8 {
666 position: relative;
667 left: 66.6666666667%; }
668
669.small-pull-8 {
670 position: relative;
671 left: -66.6666666667%; }
672
673.small-offset-7 {
674 margin-left: 58.3333333333%; }
675
676.small-9 {
677 width: 75%; }
678
679.small-push-9 {
680 position: relative;
681 left: 75%; }
682
683.small-pull-9 {
684 position: relative;
685 left: -75%; }
686
687.small-offset-8 {
688 margin-left: 66.6666666667%; }
689
690.small-10 {
691 width: 83.3333333333%; }
692
693.small-push-10 {
694 position: relative;
695 left: 83.3333333333%; }
696
697.small-pull-10 {
698 position: relative;
699 left: -83.3333333333%; }
700
701.small-offset-9 {
702 margin-left: 75%; }
703
704.small-11 {
705 width: 91.6666666667%; }
706
707.small-push-11 {
708 position: relative;
709 left: 91.6666666667%; }
710
711.small-pull-11 {
712 position: relative;
713 left: -91.6666666667%; }
714
715.small-offset-10 {
716 margin-left: 83.3333333333%; }
717
718.small-12 {
719 width: 100%; }
720
721.small-offset-11 {
722 margin-left: 91.6666666667%; }
723
724.small-up-1 > .column, .small-up-1 > .columns {
725 float: left;
726 width: 100%; }
727 .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
728 clear: none; }
729 .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
730 clear: both; }
731 .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
732 float: left; }
733
734.small-up-2 > .column, .small-up-2 > .columns {
735 float: left;
736 width: 50%; }
737 .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
738 clear: none; }
739 .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
740 clear: both; }
741 .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
742 float: left; }
743
744.small-up-3 > .column, .small-up-3 > .columns {
745 float: left;
746 width: 33.3333333333%; }
747 .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
748 clear: none; }
749 .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
750 clear: both; }
751 .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
752 float: left; }
753
754.small-up-4 > .column, .small-up-4 > .columns {
755 float: left;
756 width: 25%; }
757 .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
758 clear: none; }
759 .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
760 clear: both; }
761 .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
762 float: left; }
763
764.small-up-5 > .column, .small-up-5 > .columns {
765 float: left;
766 width: 20%; }
767 .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
768 clear: none; }
769 .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
770 clear: both; }
771 .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
772 float: left; }
773
774.small-up-6 > .column, .small-up-6 > .columns {
775 float: left;
776 width: 16.6666666667%; }
777 .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
778 clear: none; }
779 .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
780 clear: both; }
781 .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
782 float: left; }
783
784.small-up-7 > .column, .small-up-7 > .columns {
785 float: left;
786 width: 14.2857142857%; }
787 .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
788 clear: none; }
789 .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
790 clear: both; }
791 .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {
792 float: left; }
793
794.small-up-8 > .column, .small-up-8 > .columns {
795 float: left;
796 width: 12.5%; }
797 .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {
798 clear: none; }
799 .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {
800 clear: both; }
801 .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {
802 float: left; }
803
804.small-collapse > .column, .small-collapse > .columns {
805 padding-right: 0;
806 padding-left: 0; }
807
808.small-collapse .row {
809 margin-right: 0;
810 margin-left: 0; }
811
812.expanded.row .small-collapse.row {
813 margin-right: 0;
814 margin-left: 0; }
815
816.small-uncollapse > .column, .small-uncollapse > .columns {
817 padding-right: 0.6578947368rem;
818 padding-left: 0.6578947368rem; }
819
820.small-centered {
821 margin-right: auto;
822 margin-left: auto; }
823 .small-centered, .small-centered:last-child:not(:first-child) {
824 float: none;
825 clear: both; }
826
827.small-uncentered,
828.small-push-0,
829.small-pull-0 {
830 position: static;
831 float: left;
832 margin-right: 0;
833 margin-left: 0; }
834
835@media print, screen and (min-width: 40em) {
836 .medium-1 {
837 width: 8.3333333333%; }
838 .medium-push-1 {
839 position: relative;
840 left: 8.3333333333%; }
841 .medium-pull-1 {
842 position: relative;
843 left: -8.3333333333%; }
844 .medium-offset-0 {
845 margin-left: 0%; }
846 .medium-2 {
847 width: 16.6666666667%; }
848 .medium-push-2 {
849 position: relative;
850 left: 16.6666666667%; }
851 .medium-pull-2 {
852 position: relative;
853 left: -16.6666666667%; }
854 .medium-offset-1 {
855 margin-left: 8.3333333333%; }
856 .medium-3 {
857 width: 25%; }
858 .medium-push-3 {
859 position: relative;
860 left: 25%; }
861 .medium-pull-3 {
862 position: relative;
863 left: -25%; }
864 .medium-offset-2 {
865 margin-left: 16.6666666667%; }
866 .medium-4 {
867 width: 33.3333333333%; }
868 .medium-push-4 {
869 position: relative;
870 left: 33.3333333333%; }
871 .medium-pull-4 {
872 position: relative;
873 left: -33.3333333333%; }
874 .medium-offset-3 {
875 margin-left: 25%; }
876 .medium-5 {
877 width: 41.6666666667%; }
878 .medium-push-5 {
879 position: relative;
880 left: 41.6666666667%; }
881 .medium-pull-5 {
882 position: relative;
883 left: -41.6666666667%; }
884 .medium-offset-4 {
885 margin-left: 33.3333333333%; }
886 .medium-6 {
887 width: 50%; }
888 .medium-push-6 {
889 position: relative;
890 left: 50%; }
891 .medium-pull-6 {
892 position: relative;
893 left: -50%; }
894 .medium-offset-5 {
895 margin-left: 41.6666666667%; }
896 .medium-7 {
897 width: 58.3333333333%; }
898 .medium-push-7 {
899 position: relative;
900 left: 58.3333333333%; }
901 .medium-pull-7 {
902 position: relative;
903 left: -58.3333333333%; }
904 .medium-offset-6 {
905 margin-left: 50%; }
906 .medium-8 {
907 width: 66.6666666667%; }
908 .medium-push-8 {
909 position: relative;
910 left: 66.6666666667%; }
911 .medium-pull-8 {
912 position: relative;
913 left: -66.6666666667%; }
914 .medium-offset-7 {
915 margin-left: 58.3333333333%; }
916 .medium-9 {
917 width: 75%; }
918 .medium-push-9 {
919 position: relative;
920 left: 75%; }
921 .medium-pull-9 {
922 position: relative;
923 left: -75%; }
924 .medium-offset-8 {
925 margin-left: 66.6666666667%; }
926 .medium-10 {
927 width: 83.3333333333%; }
928 .medium-push-10 {
929 position: relative;
930 left: 83.3333333333%; }
931 .medium-pull-10 {
932 position: relative;
933 left: -83.3333333333%; }
934 .medium-offset-9 {
935 margin-left: 75%; }
936 .medium-11 {
937 width: 91.6666666667%; }
938 .medium-push-11 {
939 position: relative;
940 left: 91.6666666667%; }
941 .medium-pull-11 {
942 position: relative;
943 left: -91.6666666667%; }
944 .medium-offset-10 {
945 margin-left: 83.3333333333%; }
946 .medium-12 {
947 width: 100%; }
948 .medium-offset-11 {
949 margin-left: 91.6666666667%; }
950 .medium-up-1 > .column, .medium-up-1 > .columns {
951 float: left;
952 width: 100%; }
953 .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
954 clear: none; }
955 .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
956 clear: both; }
957 .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
958 float: left; }
959 .medium-up-2 > .column, .medium-up-2 > .columns {
960 float: left;
961 width: 50%; }
962 .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
963 clear: none; }
964 .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
965 clear: both; }
966 .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
967 float: left; }
968 .medium-up-3 > .column, .medium-up-3 > .columns {
969 float: left;
970 width: 33.3333333333%; }
971 .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
972 clear: none; }
973 .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
974 clear: both; }
975 .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
976 float: left; }
977 .medium-up-4 > .column, .medium-up-4 > .columns {
978 float: left;
979 width: 25%; }
980 .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
981 clear: none; }
982 .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
983 clear: both; }
984 .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
985 float: left; }
986 .medium-up-5 > .column, .medium-up-5 > .columns {
987 float: left;
988 width: 20%; }
989 .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
990 clear: none; }
991 .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
992 clear: both; }
993 .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
994 float: left; }
995 .medium-up-6 > .column, .medium-up-6 > .columns {
996 float: left;
997 width: 16.6666666667%; }
998 .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
999 clear: none; }
1000 .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
1001 clear: both; }
1002 .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
1003 float: left; }
1004 .medium-up-7 > .column, .medium-up-7 > .columns {
1005 float: left;
1006 width: 14.2857142857%; }
1007 .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
1008 clear: none; }
1009 .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
1010 clear: both; }
1011 .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
1012 float: left; }
1013 .medium-up-8 > .column, .medium-up-8 > .columns {
1014 float: left;
1015 width: 12.5%; }
1016 .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
1017 clear: none; }
1018 .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
1019 clear: both; }
1020 .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
1021 float: left; }
1022 .medium-collapse > .column, .medium-collapse > .columns {
1023 padding-right: 0;
1024 padding-left: 0; }
1025 .medium-collapse .row {
1026 margin-right: 0;
1027 margin-left: 0; }
1028 .expanded.row .medium-collapse.row {
1029 margin-right: 0;
1030 margin-left: 0; }
1031 .medium-uncollapse > .column, .medium-uncollapse > .columns {
1032 padding-right: 0.9868421053rem;
1033 padding-left: 0.9868421053rem; }
1034 .medium-centered {
1035 margin-right: auto;
1036 margin-left: auto; }
1037 .medium-centered, .medium-centered:last-child:not(:first-child) {
1038 float: none;
1039 clear: both; }
1040 .medium-uncentered,
1041 .medium-push-0,
1042 .medium-pull-0 {
1043 position: static;
1044 float: left;
1045 margin-right: 0;
1046 margin-left: 0; } }
1047
1048@media print, screen and (min-width: 64em) {
1049 .large-1 {
1050 width: 8.3333333333%; }
1051 .large-push-1 {
1052 position: relative;
1053 left: 8.3333333333%; }
1054 .large-pull-1 {
1055 position: relative;
1056 left: -8.3333333333%; }
1057 .large-offset-0 {
1058 margin-left: 0%; }
1059 .large-2 {
1060 width: 16.6666666667%; }
1061 .large-push-2 {
1062 position: relative;
1063 left: 16.6666666667%; }
1064 .large-pull-2 {
1065 position: relative;
1066 left: -16.6666666667%; }
1067 .large-offset-1 {
1068 margin-left: 8.3333333333%; }
1069 .large-3 {
1070 width: 25%; }
1071 .large-push-3 {
1072 position: relative;
1073 left: 25%; }
1074 .large-pull-3 {
1075 position: relative;
1076 left: -25%; }
1077 .large-offset-2 {
1078 margin-left: 16.6666666667%; }
1079 .large-4 {
1080 width: 33.3333333333%; }
1081 .large-push-4 {
1082 position: relative;
1083 left: 33.3333333333%; }
1084 .large-pull-4 {
1085 position: relative;
1086 left: -33.3333333333%; }
1087 .large-offset-3 {
1088 margin-left: 25%; }
1089 .large-5 {
1090 width: 41.6666666667%; }
1091 .large-push-5 {
1092 position: relative;
1093 left: 41.6666666667%; }
1094 .large-pull-5 {
1095 position: relative;
1096 left: -41.6666666667%; }
1097 .large-offset-4 {
1098 margin-left: 33.3333333333%; }
1099 .large-6 {
1100 width: 50%; }
1101 .large-push-6 {
1102 position: relative;
1103 left: 50%; }
1104 .large-pull-6 {
1105 position: relative;
1106 left: -50%; }
1107 .large-offset-5 {
1108 margin-left: 41.6666666667%; }
1109 .large-7 {
1110 width: 58.3333333333%; }
1111 .large-push-7 {
1112 position: relative;
1113 left: 58.3333333333%; }
1114 .large-pull-7 {
1115 position: relative;
1116 left: -58.3333333333%; }
1117 .large-offset-6 {
1118 margin-left: 50%; }
1119 .large-8 {
1120 width: 66.6666666667%; }
1121 .large-push-8 {
1122 position: relative;
1123 left: 66.6666666667%; }
1124 .large-pull-8 {
1125 position: relative;
1126 left: -66.6666666667%; }
1127 .large-offset-7 {
1128 margin-left: 58.3333333333%; }
1129 .large-9 {
1130 width: 75%; }
1131 .large-push-9 {
1132 position: relative;
1133 left: 75%; }
1134 .large-pull-9 {
1135 position: relative;
1136 left: -75%; }
1137 .large-offset-8 {
1138 margin-left: 66.6666666667%; }
1139 .large-10 {
1140 width: 83.3333333333%; }
1141 .large-push-10 {
1142 position: relative;
1143 left: 83.3333333333%; }
1144 .large-pull-10 {
1145 position: relative;
1146 left: -83.3333333333%; }
1147 .large-offset-9 {
1148 margin-left: 75%; }
1149 .large-11 {
1150 width: 91.6666666667%; }
1151 .large-push-11 {
1152 position: relative;
1153 left: 91.6666666667%; }
1154 .large-pull-11 {
1155 position: relative;
1156 left: -91.6666666667%; }
1157 .large-offset-10 {
1158 margin-left: 83.3333333333%; }
1159 .large-12 {
1160 width: 100%; }
1161 .large-offset-11 {
1162 margin-left: 91.6666666667%; }
1163 .large-up-1 > .column, .large-up-1 > .columns {
1164 float: left;
1165 width: 100%; }
1166 .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
1167 clear: none; }
1168 .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
1169 clear: both; }
1170 .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
1171 float: left; }
1172 .large-up-2 > .column, .large-up-2 > .columns {
1173 float: left;
1174 width: 50%; }
1175 .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
1176 clear: none; }
1177 .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
1178 clear: both; }
1179 .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
1180 float: left; }
1181 .large-up-3 > .column, .large-up-3 > .columns {
1182 float: left;
1183 width: 33.3333333333%; }
1184 .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
1185 clear: none; }
1186 .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
1187 clear: both; }
1188 .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
1189 float: left; }
1190 .large-up-4 > .column, .large-up-4 > .columns {
1191 float: left;
1192 width: 25%; }
1193 .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
1194 clear: none; }
1195 .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
1196 clear: both; }
1197 .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
1198 float: left; }
1199 .large-up-5 > .column, .large-up-5 > .columns {
1200 float: left;
1201 width: 20%; }
1202 .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
1203 clear: none; }
1204 .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
1205 clear: both; }
1206 .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
1207 float: left; }
1208 .large-up-6 > .column, .large-up-6 > .columns {
1209 float: left;
1210 width: 16.6666666667%; }
1211 .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
1212 clear: none; }
1213 .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
1214 clear: both; }
1215 .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
1216 float: left; }
1217 .large-up-7 > .column, .large-up-7 > .columns {
1218 float: left;
1219 width: 14.2857142857%; }
1220 .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
1221 clear: none; }
1222 .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
1223 clear: both; }
1224 .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
1225 float: left; }
1226 .large-up-8 > .column, .large-up-8 > .columns {
1227 float: left;
1228 width: 12.5%; }
1229 .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
1230 clear: none; }
1231 .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
1232 clear: both; }
1233 .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
1234 float: left; }
1235 .large-collapse > .column, .large-collapse > .columns {
1236 padding-right: 0;
1237 padding-left: 0; }
1238 .large-collapse .row {
1239 margin-right: 0;
1240 margin-left: 0; }
1241 .expanded.row .large-collapse.row {
1242 margin-right: 0;
1243 margin-left: 0; }
1244 .large-uncollapse > .column, .large-uncollapse > .columns {
1245 padding-right: 0.9868421053rem;
1246 padding-left: 0.9868421053rem; }
1247 .large-centered {
1248 margin-right: auto;
1249 margin-left: auto; }
1250 .large-centered, .large-centered:last-child:not(:first-child) {
1251 float: none;
1252 clear: both; }
1253 .large-uncentered,
1254 .large-push-0,
1255 .large-pull-0 {
1256 position: static;
1257 float: left;
1258 margin-right: 0;
1259 margin-left: 0; } }
1260
1261.column-block {
1262 margin-bottom: 1.3157894737rem; }
1263 .column-block > :last-child {
1264 margin-bottom: 0; }
1265 @media print, screen and (min-width: 40em) {
1266 .column-block {
1267 margin-bottom: 1.9736842105rem; }
1268 .column-block > :last-child {
1269 margin-bottom: 0; } }
1270
1271div,
1272dl,
1273dt,
1274dd,
1275ul,
1276ol,
1277li,
1278h1,
1279h2,
1280h3,
1281h4,
1282h5,
1283h6,
1284pre,
1285form,
1286p,
1287blockquote,
1288th,
1289td {
1290 margin: 0;
1291 padding: 0; }
1292
1293p {
1294 margin-bottom: 1rem;
1295 font-size: inherit;
1296 line-height: 1.6;
1297 text-rendering: optimizeLegibility; }
1298
1299em,
1300i {
1301 font-style: italic;
1302 line-height: inherit; }
1303
1304strong,
1305b {
1306 font-weight: bold;
1307 line-height: inherit; }
1308
1309small {
1310 font-size: 80%;
1311 line-height: inherit; }
1312
1313h1,
1314h2,
1315h3,
1316h4,
1317h5,
1318h6 {
1319 font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
1320 font-style: normal;
1321 font-weight: normal;
1322 color: inherit;
1323 text-rendering: optimizeLegibility; }
1324 h1 small,
1325 h2 small,
1326 h3 small,
1327 h4 small,
1328 h5 small,
1329 h6 small {
1330 line-height: 0;
1331 color: #cacaca; }
1332
1333h1 {
1334 font-size: 1.5789473684rem;
1335 line-height: 1.4;
1336 margin-top: 0;
1337 margin-bottom: 0.5rem; }
1338
1339h2 {
1340 font-size: 1.3157894737rem;
1341 line-height: 1.4;
1342 margin-top: 0;
1343 margin-bottom: 0.5rem; }
1344
1345h3 {
1346 font-size: 1.25rem;
1347 line-height: 1.4;
1348 margin-top: 0;
1349 margin-bottom: 0.5rem; }
1350
1351h4 {
1352 font-size: 1.1842105263rem;
1353 line-height: 1.4;
1354 margin-top: 0;
1355 margin-bottom: 0.5rem; }
1356
1357h5 {
1358 font-size: 1.1184210526rem;
1359 line-height: 1.4;
1360 margin-top: 0;
1361 margin-bottom: 0.5rem; }
1362
1363h6 {
1364 font-size: 1.0526315789rem;
1365 line-height: 1.4;
1366 margin-top: 0;
1367 margin-bottom: 0.5rem; }
1368
1369@media print, screen and (min-width: 40em) {
1370 h1 {
1371 font-size: 1.7105263158rem; }
1372 h2 {
1373 font-size: 1.5789473684rem; }
1374 h3 {
1375 font-size: 1.3157894737rem; }
1376 h4 {
1377 font-size: 1.1842105263rem; }
1378 h5 {
1379 font-size: 1.1184210526rem; }
1380 h6 {
1381 font-size: 1.0526315789rem; } }
1382
1383a {
1384 line-height: inherit;
1385 color: #1779ba;
1386 text-decoration: none;
1387 cursor: pointer; }
1388 a:hover, a:focus {
1389 color: #1468a0; }
1390 a img {
1391 border: 0; }
1392
1393hr {
1394 clear: both;
1395 max-width: auto;
1396 height: 0;
1397 margin: 1.3157894737rem auto;
1398 border-top: 0;
1399 border-right: 0;
1400 border-bottom: 1px solid #cacaca;
1401 border-left: 0; }
1402
1403ul,
1404ol,
1405dl {
1406 margin-bottom: 1rem;
1407 list-style-position: outside;
1408 line-height: 1.6; }
1409
1410li {
1411 font-size: inherit; }
1412
1413ul {
1414 margin-left: 1.25rem;
1415 list-style-type: disc; }
1416
1417ol {
1418 margin-left: 1.25rem; }
1419
1420ul ul, ol ul, ul ol, ol ol {
1421 margin-left: 1.25rem;
1422 margin-bottom: 0; }
1423
1424dl {
1425 margin-bottom: 1rem; }
1426 dl dt {
1427 margin-bottom: 0.3rem;
1428 font-weight: bold; }
1429
1430blockquote {
1431 margin: 0 0 1rem;
1432 padding: 0.5921052632rem 1.3157894737rem 0 1.25rem;
1433 border-left: 1px solid #cacaca; }
1434 blockquote, blockquote p {
1435 line-height: 1.6;
1436 color: #8a8a8a; }
1437
1438cite {
1439 display: block;
1440 font-size: 0.8552631579rem;
1441 color: #8a8a8a; }
1442 cite:before {
1443 content: "— "; }
1444
1445abbr, abbr[title] {
1446 border-bottom: 1px dotted #2d3134;
1447 cursor: help;
1448 text-decoration: none; }
1449
1450figure {
1451 margin: 0; }
1452
1453code {
1454 padding: 0.1315789474rem 0.3289473684rem 0.0657894737rem;
1455 border: 1px solid #cacaca;
1456 background-color: #e6e6e6;
1457 font-family: Consolas, "Liberation Mono", Courier, monospace;
1458 font-weight: normal;
1459 color: #2d3134; }
1460
1461kbd {
1462 margin: 0;
1463 padding: 0.1315789474rem 0.2631578947rem 0;
1464 background-color: #e6e6e6;
1465 font-family: Consolas, "Liberation Mono", Courier, monospace;
1466 color: #2d3134; }
1467
1468.subheader {
1469 margin-top: 0.2rem;
1470 margin-bottom: 0.5rem;
1471 font-weight: normal;
1472 line-height: 1.4;
1473 color: #8a8a8a; }
1474
1475.lead {
1476 font-size: 118.75%;
1477 line-height: 1.6; }
1478
1479.stat {
1480 font-size: 2.5rem;
1481 line-height: 1; }
1482 p + .stat {
1483 margin-top: -1rem; }
1484
1485ul.no-bullet, ol.no-bullet {
1486 margin-left: 0;
1487 list-style: none; }
1488
1489.text-left {
1490 text-align: left; }
1491
1492.text-right {
1493 text-align: right; }
1494
1495.text-center {
1496 text-align: center; }
1497
1498.text-justify {
1499 text-align: justify; }
1500
1501@media print, screen and (min-width: 40em) {
1502 .medium-text-left {
1503 text-align: left; }
1504 .medium-text-right {
1505 text-align: right; }
1506 .medium-text-center {
1507 text-align: center; }
1508 .medium-text-justify {
1509 text-align: justify; } }
1510
1511@media print, screen and (min-width: 64em) {
1512 .large-text-left {
1513 text-align: left; }
1514 .large-text-right {
1515 text-align: right; }
1516 .large-text-center {
1517 text-align: center; }
1518 .large-text-justify {
1519 text-align: justify; } }
1520
1521.show-for-print {
1522 display: none !important; }
1523
1524@media print {
1525 * {
1526 background: transparent !important;
1527 box-shadow: none !important;
1528 color: black !important;
1529 text-shadow: none !important; }
1530 .show-for-print {
1531 display: block !important; }
1532 .hide-for-print {
1533 display: none !important; }
1534 table.show-for-print {
1535 display: table !important; }
1536 thead.show-for-print {
1537 display: table-header-group !important; }
1538 tbody.show-for-print {
1539 display: table-row-group !important; }
1540 tr.show-for-print {
1541 display: table-row !important; }
1542 td.show-for-print {
1543 display: table-cell !important; }
1544 th.show-for-print {
1545 display: table-cell !important; }
1546 a,
1547 a:visited {
1548 text-decoration: underline; }
1549 a[href]:after {
1550 content: " (" attr(href) ")"; }
1551 .ir a:after,
1552 a[href^='javascript:']:after,
1553 a[href^='#']:after {
1554 content: ''; }
1555 abbr[title]:after {
1556 content: " (" attr(title) ")"; }
1557 pre,
1558 blockquote {
1559 border: 1px solid #8a8a8a;
1560 page-break-inside: avoid; }
1561 thead {
1562 display: table-header-group; }
1563 tr,
1564 img {
1565 page-break-inside: avoid; }
1566 img {
1567 max-width: 100% !important; }
1568 @page {
1569 margin: 0.5cm; }
1570 p,
1571 h2,
1572 h3 {
1573 orphans: 3;
1574 widows: 3; }
1575 h2,
1576 h3 {
1577 page-break-after: avoid; }
1578 .print-break-inside {
1579 page-break-inside: auto; } }
1580
1581.button {
1582 display: inline-block;
1583 vertical-align: middle;
1584 margin: 0 0 1rem 0;
1585 font-family: inherit;
1586 padding: 0.85em 1em;
1587 -webkit-appearance: none;
1588 border: 1px solid transparent;
1589 border-radius: 0;
1590 transition: background-color 0.25s ease-out, color 0.25s ease-out;
1591 font-size: 0.9rem;
1592 line-height: 1;
1593 text-align: center;
1594 cursor: pointer;
1595 background-color: #1779ba;
1596 color: #fefefe; }
1597 [data-whatinput='mouse'] .button {
1598 outline: 0; }
1599 .button:hover, .button:focus {
1600 background-color: #14679e;
1601 color: #fefefe; }
1602 .button.tiny {
1603 font-size: 0.6rem; }
1604 .button.small {
1605 font-size: 0.75rem; }
1606 .button.large {
1607 font-size: 1.25rem; }
1608 .button.expanded {
1609 display: block;
1610 width: 100%;
1611 margin-right: 0;
1612 margin-left: 0; }
1613 .button.primary {
1614 background-color: #1779ba;
1615 color: #fefefe; }
1616 .button.primary:hover, .button.primary:focus {
1617 background-color: #126195;
1618 color: #fefefe; }
1619 .button.secondary {
1620 background-color: #767676;
1621 color: #fefefe; }
1622 .button.secondary:hover, .button.secondary:focus {
1623 background-color: #5e5e5e;
1624 color: #fefefe; }
1625 .button.success {
1626 background-color: #3adb76;
1627 color: #2d3134; }
1628 .button.success:hover, .button.success:focus {
1629 background-color: #22bb5b;
1630 color: #2d3134; }
1631 .button.warning {
1632 background-color: #ffae00;
1633 color: #2d3134; }
1634 .button.warning:hover, .button.warning:focus {
1635 background-color: #cc8b00;
1636 color: #2d3134; }
1637 .button.alert {
1638 background-color: #cc4b37;
1639 color: #fefefe; }
1640 .button.alert:hover, .button.alert:focus {
1641 background-color: #a53b2a;
1642 color: #fefefe; }
1643 .button.disabled, .button[disabled] {
1644 opacity: 0.25;
1645 cursor: not-allowed; }
1646 .button.disabled, .button.disabled:hover, .button.disabled:focus, .button[disabled], .button[disabled]:hover, .button[disabled]:focus {
1647 background-color: #1779ba;
1648 color: #fefefe; }
1649 .button.disabled.primary, .button[disabled].primary {
1650 opacity: 0.25;
1651 cursor: not-allowed; }
1652 .button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus {
1653 background-color: #1779ba;
1654 color: #fefefe; }
1655 .button.disabled.secondary, .button[disabled].secondary {
1656 opacity: 0.25;
1657 cursor: not-allowed; }
1658 .button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
1659 background-color: #767676;
1660 color: #fefefe; }
1661 .button.disabled.success, .button[disabled].success {
1662 opacity: 0.25;
1663 cursor: not-allowed; }
1664 .button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus {
1665 background-color: #3adb76;
1666 color: #2d3134; }
1667 .button.disabled.warning, .button[disabled].warning {
1668 opacity: 0.25;
1669 cursor: not-allowed; }
1670 .button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus {
1671 background-color: #ffae00;
1672 color: #2d3134; }
1673 .button.disabled.alert, .button[disabled].alert {
1674 opacity: 0.25;
1675 cursor: not-allowed; }
1676 .button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus {
1677 background-color: #cc4b37;
1678 color: #fefefe; }
1679 .button.hollow {
1680 border: 1px solid #1779ba;
1681 color: #1779ba; }
1682 .button.hollow, .button.hollow:hover, .button.hollow:focus {
1683 background-color: transparent; }
1684 .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {
1685 background-color: transparent; }
1686 .button.hollow:hover, .button.hollow:focus {
1687 border-color: #0c3d5d;
1688 color: #0c3d5d; }
1689 .button.hollow:hover.disabled, .button.hollow:hover[disabled], .button.hollow:focus.disabled, .button.hollow:focus[disabled] {
1690 border: 1px solid #1779ba;
1691 color: #1779ba; }
1692 .button.hollow.primary {
1693 border: 1px solid #1779ba;
1694 color: #1779ba; }
1695 .button.hollow.primary:hover, .button.hollow.primary:focus {
1696 border-color: #0c3d5d;
1697 color: #0c3d5d; }
1698 .button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled] {
1699 border: 1px solid #1779ba;
1700 color: #1779ba; }
1701 .button.hollow.secondary {
1702 border: 1px solid #767676;
1703 color: #767676; }
1704 .button.hollow.secondary:hover, .button.hollow.secondary:focus {
1705 border-color: #3b3b3b;
1706 color: #3b3b3b; }
1707 .button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled] {
1708 border: 1px solid #767676;
1709 color: #767676; }
1710 .button.hollow.success {
1711 border: 1px solid #3adb76;
1712 color: #3adb76; }
1713 .button.hollow.success:hover, .button.hollow.success:focus {
1714 border-color: #157539;
1715 color: #157539; }
1716 .button.hollow.success:hover.disabled, .button.hollow.success:hover[disabled], .button.hollow.success:focus.disabled, .button.hollow.success:focus[disabled] {
1717 border: 1px solid #3adb76;
1718 color: #3adb76; }
1719 .button.hollow.warning {
1720 border: 1px solid #ffae00;
1721 color: #ffae00; }
1722 .button.hollow.warning:hover, .button.hollow.warning:focus {
1723 border-color: #805700;
1724 color: #805700; }
1725 .button.hollow.warning:hover.disabled, .button.hollow.warning:hover[disabled], .button.hollow.warning:focus.disabled, .button.hollow.warning:focus[disabled] {
1726 border: 1px solid #ffae00;
1727 color: #ffae00; }
1728 .button.hollow.alert {
1729 border: 1px solid #cc4b37;
1730 color: #cc4b37; }
1731 .button.hollow.alert:hover, .button.hollow.alert:focus {
1732 border-color: #67251a;
1733 color: #67251a; }
1734 .button.hollow.alert:hover.disabled, .button.hollow.alert:hover[disabled], .button.hollow.alert:focus.disabled, .button.hollow.alert:focus[disabled] {
1735 border: 1px solid #cc4b37;
1736 color: #cc4b37; }
1737 .button.clear {
1738 border: 1px solid #1779ba;
1739 color: #1779ba; }
1740 .button.clear, .button.clear:hover, .button.clear:focus {
1741 background-color: transparent; }
1742 .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
1743 background-color: transparent; }
1744 .button.clear:hover, .button.clear:focus {
1745 border-color: #0c3d5d;
1746 color: #0c3d5d; }
1747 .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus.disabled, .button.clear:focus[disabled] {
1748 border: 1px solid #1779ba;
1749 color: #1779ba; }
1750 .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear:hover, .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus, .button.clear:focus.disabled, .button.clear:focus[disabled] {
1751 border-color: transparent; }
1752 .button.clear.primary {
1753 border: 1px solid #1779ba;
1754 color: #1779ba; }
1755 .button.clear.primary:hover, .button.clear.primary:focus {
1756 border-color: #0c3d5d;
1757 color: #0c3d5d; }
1758 .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
1759 border: 1px solid #1779ba;
1760 color: #1779ba; }
1761 .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary:hover, .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus, .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
1762 border-color: transparent; }
1763 .button.clear.secondary {
1764 border: 1px solid #767676;
1765 color: #767676; }
1766 .button.clear.secondary:hover, .button.clear.secondary:focus {
1767 border-color: #3b3b3b;
1768 color: #3b3b3b; }
1769 .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
1770 border: 1px solid #767676;
1771 color: #767676; }
1772 .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary:hover, .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus, .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
1773 border-color: transparent; }
1774 .button.clear.success {
1775 border: 1px solid #3adb76;
1776 color: #3adb76; }
1777 .button.clear.success:hover, .button.clear.success:focus {
1778 border-color: #157539;
1779 color: #157539; }
1780 .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
1781 border: 1px solid #3adb76;
1782 color: #3adb76; }
1783 .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success:hover, .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus, .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
1784 border-color: transparent; }
1785 .button.clear.warning {
1786 border: 1px solid #ffae00;
1787 color: #ffae00; }
1788 .button.clear.warning:hover, .button.clear.warning:focus {
1789 border-color: #805700;
1790 color: #805700; }
1791 .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
1792 border: 1px solid #ffae00;
1793 color: #ffae00; }
1794 .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning:hover, .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus, .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
1795 border-color: transparent; }
1796 .button.clear.alert {
1797 border: 1px solid #cc4b37;
1798 color: #cc4b37; }
1799 .button.clear.alert:hover, .button.clear.alert:focus {
1800 border-color: #67251a;
1801 color: #67251a; }
1802 .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
1803 border: 1px solid #cc4b37;
1804 color: #cc4b37; }
1805 .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert:hover, .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus, .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
1806 border-color: transparent; }
1807 .button.dropdown::after {
1808 display: block;
1809 width: 0;
1810 height: 0;
1811 border: inset 0.4em;
1812 content: '';
1813 border-bottom-width: 0;
1814 border-top-style: solid;
1815 border-color: #fefefe transparent transparent;
1816 position: relative;
1817 top: 0.4em;
1818 display: inline-block;
1819 float: right;
1820 margin-left: 1em; }
1821 .button.dropdown.hollow::after {
1822 border-top-color: #1779ba; }
1823 .button.dropdown.hollow.primary::after {
1824 border-top-color: #1779ba; }
1825 .button.dropdown.hollow.secondary::after {
1826 border-top-color: #767676; }
1827 .button.dropdown.hollow.success::after {
1828 border-top-color: #3adb76; }
1829 .button.dropdown.hollow.warning::after {
1830 border-top-color: #ffae00; }
1831 .button.dropdown.hollow.alert::after {
1832 border-top-color: #cc4b37; }
1833 .button.arrow-only::after {
1834 top: -0.1em;
1835 float: none;
1836 margin-left: 0; }
1837
1838[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
1839textarea {
1840 display: block;
1841 box-sizing: border-box;
1842 width: 100%;
1843 height: 2.5657894737rem;
1844 margin: 0 0 1.0526315789rem;
1845 padding: 0.5263157895rem;
1846 border: 1px solid #cacaca;
1847 border-radius: 0;
1848 background-color: #fefefe;
1849 box-shadow: inset 0 1px 2px rgba(45, 49, 52, 0.1);
1850 font-family: inherit;
1851 font-size: 1.0526315789rem;
1852 font-weight: normal;
1853 line-height: 1.5;
1854 color: #2d3134;
1855 transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
1856 appearance: none; }
1857 [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
1858 textarea:focus {
1859 outline: none;
1860 border: 1px solid #8a8a8a;
1861 background-color: #fefefe;
1862 box-shadow: 0 0 5px #cacaca;
1863 transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
1864
1865textarea {
1866 max-width: 100%; }
1867 textarea[rows] {
1868 height: auto; }
1869
1870input::placeholder,
1871textarea::placeholder {
1872 color: #cacaca; }
1873
1874input:disabled, input[readonly],
1875textarea:disabled,
1876textarea[readonly] {
1877 background-color: #e6e6e6;
1878 cursor: not-allowed; }
1879
1880[type='submit'],
1881[type='button'] {
1882 appearance: none;
1883 border-radius: 0; }
1884
1885input[type='search'] {
1886 box-sizing: border-box; }
1887
1888[type='file'],
1889[type='checkbox'],
1890[type='radio'] {
1891 margin: 0 0 1.0526315789rem; }
1892
1893[type='checkbox'] + label,
1894[type='radio'] + label {
1895 display: inline-block;
1896 vertical-align: baseline;
1897 margin-left: 0.5263157895rem;
1898 margin-right: 1.0526315789rem;
1899 margin-bottom: 0; }
1900 [type='checkbox'] + label[for],
1901 [type='radio'] + label[for] {
1902 cursor: pointer; }
1903
1904label > [type='checkbox'],
1905label > [type='radio'] {
1906 margin-right: 0.5263157895rem; }
1907
1908[type='file'] {
1909 width: 100%; }
1910
1911label {
1912 display: block;
1913 margin: 0;
1914 font-size: 0.9210526316rem;
1915 font-weight: normal;
1916 line-height: 1.8;
1917 color: #2d3134; }
1918 label.middle {
1919 margin: 0 0 1.0526315789rem;
1920 padding: 0.5921052632rem 0; }
1921
1922.help-text {
1923 margin-top: -0.5263157895rem;
1924 font-size: 0.8552631579rem;
1925 font-style: italic;
1926 color: #2d3134; }
1927
1928.input-group {
1929 display: flex;
1930 width: 100%;
1931 margin-bottom: 1.0526315789rem;
1932 align-items: stretch; }
1933 .input-group > :first-child {
1934 border-radius: 0 0 0 0; }
1935 .input-group > :last-child > * {
1936 border-radius: 0 0 0 0; }
1937
1938.input-group-label, .input-group-field, .input-group-button, .input-group-button a,
1939.input-group-button input,
1940.input-group-button button,
1941.input-group-button label {
1942 margin: 0;
1943 white-space: nowrap; }
1944
1945.input-group-label {
1946 padding: 0 1rem;
1947 border: 1px solid #cacaca;
1948 background: #e6e6e6;
1949 color: #2d3134;
1950 text-align: center;
1951 white-space: nowrap;
1952 display: flex;
1953 flex: 0 0 auto;
1954 align-items: center; }
1955 .input-group-label:first-child {
1956 border-right: 0; }
1957 .input-group-label:last-child {
1958 border-left: 0; }
1959
1960.input-group-field {
1961 border-radius: 0;
1962 flex: 1 1 0px;
1963 height: auto;
1964 min-width: 0; }
1965
1966.input-group-button {
1967 padding-top: 0;
1968 padding-bottom: 0;
1969 text-align: center;
1970 flex: 0 0 auto; }
1971 .input-group-button a,
1972 .input-group-button input,
1973 .input-group-button button,
1974 .input-group-button label {
1975 height: 2.6315789474rem;
1976 padding-top: 0;
1977 padding-bottom: 0;
1978 font-size: 1.0526315789rem; }
1979
1980fieldset {
1981 margin: 0;
1982 padding: 0;
1983 border: 0; }
1984
1985legend {
1986 max-width: 100%;
1987 margin-bottom: 0.5263157895rem; }
1988
1989.fieldset {
1990 margin: 1.1842105263rem 0;
1991 padding: 1.3157894737rem;
1992 border: 1px solid #cacaca; }
1993 .fieldset legend {
1994 margin: 0;
1995 margin-left: -0.1973684211rem;
1996 padding: 0 0.1973684211rem; }
1997
1998select {
1999 height: 2.5657894737rem;
2000 margin: 0 0 1.0526315789rem;
2001 padding: 0.5263157895rem;
2002 appearance: none;
2003 border: 1px solid #cacaca;
2004 border-radius: 0;
2005 background-color: #fefefe;
2006 font-family: inherit;
2007 font-size: 1.0526315789rem;
2008 font-weight: normal;
2009 line-height: 1.5;
2010 color: #2d3134;
2011 background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
2012 background-origin: content-box;
2013 background-position: right -1.0526315789rem center;
2014 background-repeat: no-repeat;
2015 background-size: 9px 6px;
2016 padding-right: 1.5789473684rem;
2017 transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
2018 @media screen and (min-width: 0\0) {
2019 select {
2020 background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
2021 select:focus {
2022 outline: none;
2023 border: 1px solid #8a8a8a;
2024 background-color: #fefefe;
2025 box-shadow: 0 0 5px #cacaca;
2026 transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
2027 select:disabled {
2028 background-color: #e6e6e6;
2029 cursor: not-allowed; }
2030 select::-ms-expand {
2031 display: none; }
2032 select[multiple] {
2033 height: auto;
2034 background-image: none; }
2035
2036.is-invalid-input:not(:focus) {
2037 border-color: #cc4b37;
2038 background-color: #f9ecea; }
2039 .is-invalid-input:not(:focus)::placeholder {
2040 color: #cc4b37; }
2041
2042.is-invalid-label {
2043 color: #cc4b37; }
2044
2045.form-error {
2046 display: none;
2047 margin-top: -0.5263157895rem;
2048 margin-bottom: 1.0526315789rem;
2049 font-size: 0.7894736842rem;
2050 font-weight: bold;
2051 color: #cc4b37; }
2052 .form-error.is-visible {
2053 display: block; }
2054
2055.hide {
2056 display: none !important; }
2057
2058.invisible {
2059 visibility: hidden; }
2060
2061@media screen and (max-width: 39.9375em) {
2062 .hide-for-small-only {
2063 display: none !important; } }
2064
2065@media screen and (max-width: 0em), screen and (min-width: 40em) {
2066 .show-for-small-only {
2067 display: none !important; } }
2068
2069@media print, screen and (min-width: 40em) {
2070 .hide-for-medium {
2071 display: none !important; } }
2072
2073@media screen and (max-width: 39.9375em) {
2074 .show-for-medium {
2075 display: none !important; } }
2076
2077@media screen and (min-width: 40em) and (max-width: 63.9375em) {
2078 .hide-for-medium-only {
2079 display: none !important; } }
2080
2081@media screen and (max-width: 39.9375em), screen and (min-width: 64em) {
2082 .show-for-medium-only {
2083 display: none !important; } }
2084
2085@media print, screen and (min-width: 64em) {
2086 .hide-for-large {
2087 display: none !important; } }
2088
2089@media screen and (max-width: 63.9375em) {
2090 .show-for-large {
2091 display: none !important; } }
2092
2093@media screen and (min-width: 64em) and (max-width: 74.9375em) {
2094 .hide-for-large-only {
2095 display: none !important; } }
2096
2097@media screen and (max-width: 63.9375em), screen and (min-width: 75em) {
2098 .show-for-large-only {
2099 display: none !important; } }
2100
2101.show-for-sr,
2102.show-on-focus {
2103 position: absolute !important;
2104 width: 1px;
2105 height: 1px;
2106 padding: 0;
2107 overflow: hidden;
2108 clip: rect(0, 0, 0, 0);
2109 white-space: nowrap;
2110 clip-path: inset(50%);
2111 border: 0; }
2112
2113.show-on-focus:active, .show-on-focus:focus {
2114 position: static !important;
2115 width: auto;
2116 height: auto;
2117 overflow: visible;
2118 clip: auto;
2119 white-space: normal;
2120 clip-path: none; }
2121
2122.show-for-landscape,
2123.hide-for-portrait {
2124 display: block !important; }
2125 @media screen and (orientation: landscape) {
2126 .show-for-landscape,
2127 .hide-for-portrait {
2128 display: block !important; } }
2129 @media screen and (orientation: portrait) {
2130 .show-for-landscape,
2131 .hide-for-portrait {
2132 display: none !important; } }
2133
2134.hide-for-landscape,
2135.show-for-portrait {
2136 display: none !important; }
2137 @media screen and (orientation: landscape) {
2138 .hide-for-landscape,
2139 .show-for-portrait {
2140 display: none !important; } }
2141 @media screen and (orientation: portrait) {
2142 .hide-for-landscape,
2143 .show-for-portrait {
2144 display: block !important; } }
2145
2146.float-left {
2147 float: left !important; }
2148
2149.float-right {
2150 float: right !important; }
2151
2152.float-center {
2153 display: block;
2154 margin-right: auto;
2155 margin-left: auto; }
2156
2157.clearfix::before, .clearfix::after {
2158 display: table;
2159 content: ' ';
2160 flex-basis: 0;
2161 order: 1; }
2162
2163.clearfix::after {
2164 clear: both; }
2165
2166.close-button {
2167 position: absolute;
2168 color: #8a8a8a;
2169 cursor: pointer; }
2170 [data-whatinput='mouse'] .close-button {
2171 outline: 0; }
2172 .close-button:hover, .close-button:focus {
2173 color: #2d3134; }
2174 .close-button.small {
2175 right: 0.66rem;
2176 top: 0.33em;
2177 font-size: 1.5em;
2178 line-height: 1; }
2179 .close-button, .close-button.medium {
2180 right: 1rem;
2181 top: 0.5rem;
2182 font-size: 2em;
2183 line-height: 1; }
2184
2185.label {
2186 display: inline-block;
2187 padding: 0.33333rem 0.5rem;
2188 border-radius: 0;
2189 font-size: 0.8rem;
2190 line-height: 1;
2191 white-space: nowrap;
2192 cursor: default;
2193 background: #1779ba;
2194 color: #fefefe; }
2195 .label.primary {
2196 background: #1779ba;
2197 color: #fefefe; }
2198 .label.secondary {
2199 background: #767676;
2200 color: #fefefe; }
2201 .label.success {
2202 background: #3adb76;
2203 color: #2d3134; }
2204 .label.warning {
2205 background: #ffae00;
2206 color: #2d3134; }
2207 .label.alert {
2208 background: #cc4b37;
2209 color: #fefefe; }
2210
2211table {
2212 border-collapse: collapse;
2213 width: 100%;
2214 margin-bottom: 1rem;
2215 border-radius: 0; }
2216 thead,
2217 tbody,
2218 tfoot {
2219 border: 1px solid #f1f1f1;
2220 background-color: #fefefe; }
2221 caption {
2222 padding: 0.5263157895rem 0.6578947368rem 0.6578947368rem;
2223 font-weight: bold; }
2224 thead {
2225 background: #f8f8f8;
2226 color: #2d3134; }
2227 tfoot {
2228 background: #f1f1f1;
2229 color: #2d3134; }
2230 thead tr,
2231 tfoot tr {
2232 background: transparent; }
2233 thead th,
2234 thead td,
2235 tfoot th,
2236 tfoot td {
2237 padding: 0.5263157895rem 0.6578947368rem 0.6578947368rem;
2238 font-weight: bold;
2239 text-align: left; }
2240 tbody th,
2241 tbody td {
2242 padding: 0.5263157895rem 0.6578947368rem 0.6578947368rem; }
2243 tbody tr:nth-child(even) {
2244 border-bottom: 0;
2245 background-color: #f1f1f1; }
2246 table.unstriped tbody {
2247 background-color: #fefefe; }
2248 table.unstriped tbody tr {
2249 border-bottom: 0;
2250 border-bottom: 1px solid #f1f1f1;
2251 background-color: #fefefe; }
2252
2253@media screen and (max-width: 63.9375em) {
2254 table.stack thead {
2255 display: none; }
2256 table.stack tfoot {
2257 display: none; }
2258 table.stack tr,
2259 table.stack th,
2260 table.stack td {
2261 display: block; }
2262 table.stack td {
2263 border-top: 0; } }
2264
2265table.scroll {
2266 display: block;
2267 width: 100%;
2268 overflow-x: auto; }
2269
2270table.hover thead tr:hover {
2271 background-color: #f3f3f3; }
2272
2273table.hover tfoot tr:hover {
2274 background-color: #ececec; }
2275
2276table.hover tbody tr:hover {
2277 background-color: #f9f9f9; }
2278
2279table.hover:not(.unstriped) tr:nth-of-type(even):hover {
2280 background-color: #ececec; }
2281
2282.table-scroll {
2283 overflow-x: auto; }
2284 .table-scroll table {
2285 width: auto; }
diff --git a/support/doc/api/html/stylesheets/foundation.min.css b/support/doc/api/html/stylesheets/foundation.min.css
deleted file mode 100644
index 337beb289..000000000
--- a/support/doc/api/html/stylesheets/foundation.min.css
+++ /dev/null
@@ -1 +0,0 @@
1@charset "UTF-8";/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}main{display:block}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}input{overflow:visible}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;display:table;max-width:100%;padding:0;color:inherit;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}details{display:block}summary{display:list-item}menu{display:block}canvas{display:inline-block}template{display:none}[hidden]{display:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{box-sizing:border-box;font-size:95%}*,::after,::before{box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#2d3134;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;appearance:none;border:0;border-radius:0;background:0 0;line-height:1}[data-whatinput=mouse] button{outline:0}pre{overflow:auto}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}.row{max-width:auto;margin-right:auto;margin-left:auto}.row::after,.row::before{display:table;content:' ';flex-basis:0;order:1}.row::after{clear:both}.row.collapse>.column,.row.collapse>.columns{padding-right:0;padding-left:0}.row .row{margin-right:-.6578947368rem;margin-left:-.6578947368rem}@media print,screen and (min-width:40em){.row .row{margin-right:-.9868421053rem;margin-left:-.9868421053rem}}@media print,screen and (min-width:64em){.row .row{margin-right:-.9868421053rem;margin-left:-.9868421053rem}}.row .row.collapse{margin-right:0;margin-left:0}.row.expanded{max-width:none}.row.expanded .row{margin-right:auto;margin-left:auto}.row:not(.expanded) .row{max-width:none}.row.gutter-small>.column,.row.gutter-small>.columns{padding-right:.6578947368rem;padding-left:.6578947368rem}.row.gutter-medium>.column,.row.gutter-medium>.columns{padding-right:.9868421053rem;padding-left:.9868421053rem}.column,.columns{width:100%;float:left;padding-right:.6578947368rem;padding-left:.6578947368rem}@media print,screen and (min-width:40em){.column,.columns{padding-right:.9868421053rem;padding-left:.9868421053rem}}.column:last-child:not(:first-child),.columns:last-child:not(:first-child){float:right}.column.end:last-child:last-child,.end.columns:last-child:last-child{float:left}.column.row.row,.row.row.columns{float:none}.row .column.row.row,.row .row.row.columns{margin-right:0;margin-left:0;padding-right:0;padding-left:0}.small-1{width:8.3333333333%}.small-push-1{position:relative;left:8.3333333333%}.small-pull-1{position:relative;left:-8.3333333333%}.small-offset-0{margin-left:0}.small-2{width:16.6666666667%}.small-push-2{position:relative;left:16.6666666667%}.small-pull-2{position:relative;left:-16.6666666667%}.small-offset-1{margin-left:8.3333333333%}.small-3{width:25%}.small-push-3{position:relative;left:25%}.small-pull-3{position:relative;left:-25%}.small-offset-2{margin-left:16.6666666667%}.small-4{width:33.3333333333%}.small-push-4{position:relative;left:33.3333333333%}.small-pull-4{position:relative;left:-33.3333333333%}.small-offset-3{margin-left:25%}.small-5{width:41.6666666667%}.small-push-5{position:relative;left:41.6666666667%}.small-pull-5{position:relative;left:-41.6666666667%}.small-offset-4{margin-left:33.3333333333%}.small-6{width:50%}.small-push-6{position:relative;left:50%}.small-pull-6{position:relative;left:-50%}.small-offset-5{margin-left:41.6666666667%}.small-7{width:58.3333333333%}.small-push-7{position:relative;left:58.3333333333%}.small-pull-7{position:relative;left:-58.3333333333%}.small-offset-6{margin-left:50%}.small-8{width:66.6666666667%}.small-push-8{position:relative;left:66.6666666667%}.small-pull-8{position:relative;left:-66.6666666667%}.small-offset-7{margin-left:58.3333333333%}.small-9{width:75%}.small-push-9{position:relative;left:75%}.small-pull-9{position:relative;left:-75%}.small-offset-8{margin-left:66.6666666667%}.small-10{width:83.3333333333%}.small-push-10{position:relative;left:83.3333333333%}.small-pull-10{position:relative;left:-83.3333333333%}.small-offset-9{margin-left:75%}.small-11{width:91.6666666667%}.small-push-11{position:relative;left:91.6666666667%}.small-pull-11{position:relative;left:-91.6666666667%}.small-offset-10{margin-left:83.3333333333%}.small-12{width:100%}.small-offset-11{margin-left:91.6666666667%}.small-up-1>.column,.small-up-1>.columns{float:left;width:100%}.small-up-1>.column:nth-of-type(1n),.small-up-1>.columns:nth-of-type(1n){clear:none}.small-up-1>.column:nth-of-type(1n+1),.small-up-1>.columns:nth-of-type(1n+1){clear:both}.small-up-1>.column:last-child,.small-up-1>.columns:last-child{float:left}.small-up-2>.column,.small-up-2>.columns{float:left;width:50%}.small-up-2>.column:nth-of-type(1n),.small-up-2>.columns:nth-of-type(1n){clear:none}.small-up-2>.column:nth-of-type(2n+1),.small-up-2>.columns:nth-of-type(2n+1){clear:both}.small-up-2>.column:last-child,.small-up-2>.columns:last-child{float:left}.small-up-3>.column,.small-up-3>.columns{float:left;width:33.3333333333%}.small-up-3>.column:nth-of-type(1n),.small-up-3>.columns:nth-of-type(1n){clear:none}.small-up-3>.column:nth-of-type(3n+1),.small-up-3>.columns:nth-of-type(3n+1){clear:both}.small-up-3>.column:last-child,.small-up-3>.columns:last-child{float:left}.small-up-4>.column,.small-up-4>.columns{float:left;width:25%}.small-up-4>.column:nth-of-type(1n),.small-up-4>.columns:nth-of-type(1n){clear:none}.small-up-4>.column:nth-of-type(4n+1),.small-up-4>.columns:nth-of-type(4n+1){clear:both}.small-up-4>.column:last-child,.small-up-4>.columns:last-child{float:left}.small-up-5>.column,.small-up-5>.columns{float:left;width:20%}.small-up-5>.column:nth-of-type(1n),.small-up-5>.columns:nth-of-type(1n){clear:none}.small-up-5>.column:nth-of-type(5n+1),.small-up-5>.columns:nth-of-type(5n+1){clear:both}.small-up-5>.column:last-child,.small-up-5>.columns:last-child{float:left}.small-up-6>.column,.small-up-6>.columns{float:left;width:16.6666666667%}.small-up-6>.column:nth-of-type(1n),.small-up-6>.columns:nth-of-type(1n){clear:none}.small-up-6>.column:nth-of-type(6n+1),.small-up-6>.columns:nth-of-type(6n+1){clear:both}.small-up-6>.column:last-child,.small-up-6>.columns:last-child{float:left}.small-up-7>.column,.small-up-7>.columns{float:left;width:14.2857142857%}.small-up-7>.column:nth-of-type(1n),.small-up-7>.columns:nth-of-type(1n){clear:none}.small-up-7>.column:nth-of-type(7n+1),.small-up-7>.columns:nth-of-type(7n+1){clear:both}.small-up-7>.column:last-child,.small-up-7>.columns:last-child{float:left}.small-up-8>.column,.small-up-8>.columns{float:left;width:12.5%}.small-up-8>.column:nth-of-type(1n),.small-up-8>.columns:nth-of-type(1n){clear:none}.small-up-8>.column:nth-of-type(8n+1),.small-up-8>.columns:nth-of-type(8n+1){clear:both}.small-up-8>.column:last-child,.small-up-8>.columns:last-child{float:left}.small-collapse>.column,.small-collapse>.columns{padding-right:0;padding-left:0}.small-collapse .row{margin-right:0;margin-left:0}.expanded.row .small-collapse.row{margin-right:0;margin-left:0}.small-uncollapse>.column,.small-uncollapse>.columns{padding-right:.6578947368rem;padding-left:.6578947368rem}.small-centered{margin-right:auto;margin-left:auto}.small-centered,.small-centered:last-child:not(:first-child){float:none;clear:both}.small-pull-0,.small-push-0,.small-uncentered{position:static;float:left;margin-right:0;margin-left:0}@media print,screen and (min-width:40em){.medium-1{width:8.3333333333%}.medium-push-1{position:relative;left:8.3333333333%}.medium-pull-1{position:relative;left:-8.3333333333%}.medium-offset-0{margin-left:0}.medium-2{width:16.6666666667%}.medium-push-2{position:relative;left:16.6666666667%}.medium-pull-2{position:relative;left:-16.6666666667%}.medium-offset-1{margin-left:8.3333333333%}.medium-3{width:25%}.medium-push-3{position:relative;left:25%}.medium-pull-3{position:relative;left:-25%}.medium-offset-2{margin-left:16.6666666667%}.medium-4{width:33.3333333333%}.medium-push-4{position:relative;left:33.3333333333%}.medium-pull-4{position:relative;left:-33.3333333333%}.medium-offset-3{margin-left:25%}.medium-5{width:41.6666666667%}.medium-push-5{position:relative;left:41.6666666667%}.medium-pull-5{position:relative;left:-41.6666666667%}.medium-offset-4{margin-left:33.3333333333%}.medium-6{width:50%}.medium-push-6{position:relative;left:50%}.medium-pull-6{position:relative;left:-50%}.medium-offset-5{margin-left:41.6666666667%}.medium-7{width:58.3333333333%}.medium-push-7{position:relative;left:58.3333333333%}.medium-pull-7{position:relative;left:-58.3333333333%}.medium-offset-6{margin-left:50%}.medium-8{width:66.6666666667%}.medium-push-8{position:relative;left:66.6666666667%}.medium-pull-8{position:relative;left:-66.6666666667%}.medium-offset-7{margin-left:58.3333333333%}.medium-9{width:75%}.medium-push-9{position:relative;left:75%}.medium-pull-9{position:relative;left:-75%}.medium-offset-8{margin-left:66.6666666667%}.medium-10{width:83.3333333333%}.medium-push-10{position:relative;left:83.3333333333%}.medium-pull-10{position:relative;left:-83.3333333333%}.medium-offset-9{margin-left:75%}.medium-11{width:91.6666666667%}.medium-push-11{position:relative;left:91.6666666667%}.medium-pull-11{position:relative;left:-91.6666666667%}.medium-offset-10{margin-left:83.3333333333%}.medium-12{width:100%}.medium-offset-11{margin-left:91.6666666667%}.medium-up-1>.column,.medium-up-1>.columns{float:left;width:100%}.medium-up-1>.column:nth-of-type(1n),.medium-up-1>.columns:nth-of-type(1n){clear:none}.medium-up-1>.column:nth-of-type(1n+1),.medium-up-1>.columns:nth-of-type(1n+1){clear:both}.medium-up-1>.column:last-child,.medium-up-1>.columns:last-child{float:left}.medium-up-2>.column,.medium-up-2>.columns{float:left;width:50%}.medium-up-2>.column:nth-of-type(1n),.medium-up-2>.columns:nth-of-type(1n){clear:none}.medium-up-2>.column:nth-of-type(2n+1),.medium-up-2>.columns:nth-of-type(2n+1){clear:both}.medium-up-2>.column:last-child,.medium-up-2>.columns:last-child{float:left}.medium-up-3>.column,.medium-up-3>.columns{float:left;width:33.3333333333%}.medium-up-3>.column:nth-of-type(1n),.medium-up-3>.columns:nth-of-type(1n){clear:none}.medium-up-3>.column:nth-of-type(3n+1),.medium-up-3>.columns:nth-of-type(3n+1){clear:both}.medium-up-3>.column:last-child,.medium-up-3>.columns:last-child{float:left}.medium-up-4>.column,.medium-up-4>.columns{float:left;width:25%}.medium-up-4>.column:nth-of-type(1n),.medium-up-4>.columns:nth-of-type(1n){clear:none}.medium-up-4>.column:nth-of-type(4n+1),.medium-up-4>.columns:nth-of-type(4n+1){clear:both}.medium-up-4>.column:last-child,.medium-up-4>.columns:last-child{float:left}.medium-up-5>.column,.medium-up-5>.columns{float:left;width:20%}.medium-up-5>.column:nth-of-type(1n),.medium-up-5>.columns:nth-of-type(1n){clear:none}.medium-up-5>.column:nth-of-type(5n+1),.medium-up-5>.columns:nth-of-type(5n+1){clear:both}.medium-up-5>.column:last-child,.medium-up-5>.columns:last-child{float:left}.medium-up-6>.column,.medium-up-6>.columns{float:left;width:16.6666666667%}.medium-up-6>.column:nth-of-type(1n),.medium-up-6>.columns:nth-of-type(1n){clear:none}.medium-up-6>.column:nth-of-type(6n+1),.medium-up-6>.columns:nth-of-type(6n+1){clear:both}.medium-up-6>.column:last-child,.medium-up-6>.columns:last-child{float:left}.medium-up-7>.column,.medium-up-7>.columns{float:left;width:14.2857142857%}.medium-up-7>.column:nth-of-type(1n),.medium-up-7>.columns:nth-of-type(1n){clear:none}.medium-up-7>.column:nth-of-type(7n+1),.medium-up-7>.columns:nth-of-type(7n+1){clear:both}.medium-up-7>.column:last-child,.medium-up-7>.columns:last-child{float:left}.medium-up-8>.column,.medium-up-8>.columns{float:left;width:12.5%}.medium-up-8>.column:nth-of-type(1n),.medium-up-8>.columns:nth-of-type(1n){clear:none}.medium-up-8>.column:nth-of-type(8n+1),.medium-up-8>.columns:nth-of-type(8n+1){clear:both}.medium-up-8>.column:last-child,.medium-up-8>.columns:last-child{float:left}.medium-collapse>.column,.medium-collapse>.columns{padding-right:0;padding-left:0}.medium-collapse .row{margin-right:0;margin-left:0}.expanded.row .medium-collapse.row{margin-right:0;margin-left:0}.medium-uncollapse>.column,.medium-uncollapse>.columns{padding-right:.9868421053rem;padding-left:.9868421053rem}.medium-centered{margin-right:auto;margin-left:auto}.medium-centered,.medium-centered:last-child:not(:first-child){float:none;clear:both}.medium-pull-0,.medium-push-0,.medium-uncentered{position:static;float:left;margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-1{width:8.3333333333%}.large-push-1{position:relative;left:8.3333333333%}.large-pull-1{position:relative;left:-8.3333333333%}.large-offset-0{margin-left:0}.large-2{width:16.6666666667%}.large-push-2{position:relative;left:16.6666666667%}.large-pull-2{position:relative;left:-16.6666666667%}.large-offset-1{margin-left:8.3333333333%}.large-3{width:25%}.large-push-3{position:relative;left:25%}.large-pull-3{position:relative;left:-25%}.large-offset-2{margin-left:16.6666666667%}.large-4{width:33.3333333333%}.large-push-4{position:relative;left:33.3333333333%}.large-pull-4{position:relative;left:-33.3333333333%}.large-offset-3{margin-left:25%}.large-5{width:41.6666666667%}.large-push-5{position:relative;left:41.6666666667%}.large-pull-5{position:relative;left:-41.6666666667%}.large-offset-4{margin-left:33.3333333333%}.large-6{width:50%}.large-push-6{position:relative;left:50%}.large-pull-6{position:relative;left:-50%}.large-offset-5{margin-left:41.6666666667%}.large-7{width:58.3333333333%}.large-push-7{position:relative;left:58.3333333333%}.large-pull-7{position:relative;left:-58.3333333333%}.large-offset-6{margin-left:50%}.large-8{width:66.6666666667%}.large-push-8{position:relative;left:66.6666666667%}.large-pull-8{position:relative;left:-66.6666666667%}.large-offset-7{margin-left:58.3333333333%}.large-9{width:75%}.large-push-9{position:relative;left:75%}.large-pull-9{position:relative;left:-75%}.large-offset-8{margin-left:66.6666666667%}.large-10{width:83.3333333333%}.large-push-10{position:relative;left:83.3333333333%}.large-pull-10{position:relative;left:-83.3333333333%}.large-offset-9{margin-left:75%}.large-11{width:91.6666666667%}.large-push-11{position:relative;left:91.6666666667%}.large-pull-11{position:relative;left:-91.6666666667%}.large-offset-10{margin-left:83.3333333333%}.large-12{width:100%}.large-offset-11{margin-left:91.6666666667%}.large-up-1>.column,.large-up-1>.columns{float:left;width:100%}.large-up-1>.column:nth-of-type(1n),.large-up-1>.columns:nth-of-type(1n){clear:none}.large-up-1>.column:nth-of-type(1n+1),.large-up-1>.columns:nth-of-type(1n+1){clear:both}.large-up-1>.column:last-child,.large-up-1>.columns:last-child{float:left}.large-up-2>.column,.large-up-2>.columns{float:left;width:50%}.large-up-2>.column:nth-of-type(1n),.large-up-2>.columns:nth-of-type(1n){clear:none}.large-up-2>.column:nth-of-type(2n+1),.large-up-2>.columns:nth-of-type(2n+1){clear:both}.large-up-2>.column:last-child,.large-up-2>.columns:last-child{float:left}.large-up-3>.column,.large-up-3>.columns{float:left;width:33.3333333333%}.large-up-3>.column:nth-of-type(1n),.large-up-3>.columns:nth-of-type(1n){clear:none}.large-up-3>.column:nth-of-type(3n+1),.large-up-3>.columns:nth-of-type(3n+1){clear:both}.large-up-3>.column:last-child,.large-up-3>.columns:last-child{float:left}.large-up-4>.column,.large-up-4>.columns{float:left;width:25%}.large-up-4>.column:nth-of-type(1n),.large-up-4>.columns:nth-of-type(1n){clear:none}.large-up-4>.column:nth-of-type(4n+1),.large-up-4>.columns:nth-of-type(4n+1){clear:both}.large-up-4>.column:last-child,.large-up-4>.columns:last-child{float:left}.large-up-5>.column,.large-up-5>.columns{float:left;width:20%}.large-up-5>.column:nth-of-type(1n),.large-up-5>.columns:nth-of-type(1n){clear:none}.large-up-5>.column:nth-of-type(5n+1),.large-up-5>.columns:nth-of-type(5n+1){clear:both}.large-up-5>.column:last-child,.large-up-5>.columns:last-child{float:left}.large-up-6>.column,.large-up-6>.columns{float:left;width:16.6666666667%}.large-up-6>.column:nth-of-type(1n),.large-up-6>.columns:nth-of-type(1n){clear:none}.large-up-6>.column:nth-of-type(6n+1),.large-up-6>.columns:nth-of-type(6n+1){clear:both}.large-up-6>.column:last-child,.large-up-6>.columns:last-child{float:left}.large-up-7>.column,.large-up-7>.columns{float:left;width:14.2857142857%}.large-up-7>.column:nth-of-type(1n),.large-up-7>.columns:nth-of-type(1n){clear:none}.large-up-7>.column:nth-of-type(7n+1),.large-up-7>.columns:nth-of-type(7n+1){clear:both}.large-up-7>.column:last-child,.large-up-7>.columns:last-child{float:left}.large-up-8>.column,.large-up-8>.columns{float:left;width:12.5%}.large-up-8>.column:nth-of-type(1n),.large-up-8>.columns:nth-of-type(1n){clear:none}.large-up-8>.column:nth-of-type(8n+1),.large-up-8>.columns:nth-of-type(8n+1){clear:both}.large-up-8>.column:last-child,.large-up-8>.columns:last-child{float:left}.large-collapse>.column,.large-collapse>.columns{padding-right:0;padding-left:0}.large-collapse .row{margin-right:0;margin-left:0}.expanded.row .large-collapse.row{margin-right:0;margin-left:0}.large-uncollapse>.column,.large-uncollapse>.columns{padding-right:.9868421053rem;padding-left:.9868421053rem}.large-centered{margin-right:auto;margin-left:auto}.large-centered,.large-centered:last-child:not(:first-child){float:none;clear:both}.large-pull-0,.large-push-0,.large-uncentered{position:static;float:left;margin-right:0;margin-left:0}}.column-block{margin-bottom:1.3157894737rem}.column-block>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.column-block{margin-bottom:1.9736842105rem}.column-block>:last-child{margin-bottom:0}}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}h1{font-size:1.5789473684rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h2{font-size:1.3157894737rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h3{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h4{font-size:1.1842105263rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h5{font-size:1.1184210526rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h6{font-size:1.0526315789rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){h1{font-size:1.7105263158rem}h2{font-size:1.5789473684rem}h3{font-size:1.3157894737rem}h4{font-size:1.1842105263rem}h5{font-size:1.1184210526rem}h6{font-size:1.0526315789rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:auto;height:0;margin:1.3157894737rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5921052632rem 1.3157894737rem 0 1.25rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}cite{display:block;font-size:.8552631579rem;color:#8a8a8a}cite:before{content:"— "}abbr,abbr[title]{border-bottom:1px dotted #2d3134;cursor:help;text-decoration:none}figure{margin:0}code{padding:.1315789474rem .3289473684rem .0657894737rem;border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#2d3134}kbd{margin:0;padding:.1315789474rem .2631578947rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#2d3134}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:118.75%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;font-family:inherit;padding:.85em 1em;-webkit-appearance:none;border:1px solid transparent;border-radius:0;transition:background-color .25s ease-out,color .25s ease-out;font-size:.9rem;line-height:1;text-align:center;cursor:pointer;background-color:#1779ba;color:#fefefe}[data-whatinput=mouse] .button{outline:0}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button.primary{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success{background-color:#3adb76;color:#2d3134}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#2d3134}.button.warning{background-color:#ffae00;color:#2d3134}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#2d3134}.button.alert{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.disabled.primary,.button[disabled].primary{opacity:.25;cursor:not-allowed}.button.disabled.primary,.button.disabled.primary:focus,.button.disabled.primary:hover,.button[disabled].primary,.button[disabled].primary:focus,.button[disabled].primary:hover{background-color:#1779ba;color:#fefefe}.button.disabled.secondary,.button[disabled].secondary{opacity:.25;cursor:not-allowed}.button.disabled.secondary,.button.disabled.secondary:focus,.button.disabled.secondary:hover,.button[disabled].secondary,.button[disabled].secondary:focus,.button[disabled].secondary:hover{background-color:#767676;color:#fefefe}.button.disabled.success,.button[disabled].success{opacity:.25;cursor:not-allowed}.button.disabled.success,.button.disabled.success:focus,.button.disabled.success:hover,.button[disabled].success,.button[disabled].success:focus,.button[disabled].success:hover{background-color:#3adb76;color:#2d3134}.button.disabled.warning,.button[disabled].warning{opacity:.25;cursor:not-allowed}.button.disabled.warning,.button.disabled.warning:focus,.button.disabled.warning:hover,.button[disabled].warning,.button[disabled].warning:focus,.button[disabled].warning:hover{background-color:#ffae00;color:#2d3134}.button.disabled.alert,.button[disabled].alert{opacity:.25;cursor:not-allowed}.button.disabled.alert,.button.disabled.alert:focus,.button.disabled.alert:hover,.button[disabled].alert,.button[disabled].alert:focus,.button[disabled].alert:hover{background-color:#cc4b37;color:#fefefe}.button.hollow{border:1px solid #1779ba;color:#1779ba}.button.hollow,.button.hollow:focus,.button.hollow:hover{background-color:transparent}.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow:focus.disabled,.button.hollow:focus[disabled],.button.hollow:hover.disabled,.button.hollow:hover[disabled]{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary:focus.disabled,.button.hollow.primary:focus[disabled],.button.hollow.primary:hover.disabled,.button.hollow.primary:hover[disabled]{border:1px solid #1779ba;color:#1779ba}.button.hollow.secondary{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.secondary:focus.disabled,.button.hollow.secondary:focus[disabled],.button.hollow.secondary:hover.disabled,.button.hollow.secondary:hover[disabled]{border:1px solid #767676;color:#767676}.button.hollow.success{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.success:focus.disabled,.button.hollow.success:focus[disabled],.button.hollow.success:hover.disabled,.button.hollow.success:hover[disabled]{border:1px solid #3adb76;color:#3adb76}.button.hollow.warning{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.warning:focus.disabled,.button.hollow.warning:focus[disabled],.button.hollow.warning:hover.disabled,.button.hollow.warning:hover[disabled]{border:1px solid #ffae00;color:#ffae00}.button.hollow.alert{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.hollow.alert:focus.disabled,.button.hollow.alert:focus[disabled],.button.hollow.alert:hover.disabled,.button.hollow.alert:hover[disabled]{border:1px solid #cc4b37;color:#cc4b37}.button.clear{border:1px solid #1779ba;color:#1779ba}.button.clear,.button.clear:focus,.button.clear:hover{background-color:transparent}.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{background-color:transparent}.button.clear:focus,.button.clear:hover{border-color:#0c3d5d;color:#0c3d5d}.button.clear:focus.disabled,.button.clear:focus[disabled],.button.clear:hover.disabled,.button.clear:hover[disabled]{border:1px solid #1779ba;color:#1779ba}.button.clear,.button.clear.disabled,.button.clear:focus,.button.clear:focus.disabled,.button.clear:focus[disabled],.button.clear:hover,.button.clear:hover.disabled,.button.clear:hover[disabled],.button.clear[disabled]{border-color:transparent}.button.clear.primary{border:1px solid #1779ba;color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.clear.primary:focus.disabled,.button.clear.primary:focus[disabled],.button.clear.primary:hover.disabled,.button.clear.primary:hover[disabled]{border:1px solid #1779ba;color:#1779ba}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary:focus,.button.clear.primary:focus.disabled,.button.clear.primary:focus[disabled],.button.clear.primary:hover,.button.clear.primary:hover.disabled,.button.clear.primary:hover[disabled],.button.clear.primary[disabled]{border-color:transparent}.button.clear.secondary{border:1px solid #767676;color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.clear.secondary:focus.disabled,.button.clear.secondary:focus[disabled],.button.clear.secondary:hover.disabled,.button.clear.secondary:hover[disabled]{border:1px solid #767676;color:#767676}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary:focus,.button.clear.secondary:focus.disabled,.button.clear.secondary:focus[disabled],.button.clear.secondary:hover,.button.clear.secondary:hover.disabled,.button.clear.secondary:hover[disabled],.button.clear.secondary[disabled]{border-color:transparent}.button.clear.success{border:1px solid #3adb76;color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{border-color:#157539;color:#157539}.button.clear.success:focus.disabled,.button.clear.success:focus[disabled],.button.clear.success:hover.disabled,.button.clear.success:hover[disabled]{border:1px solid #3adb76;color:#3adb76}.button.clear.success,.button.clear.success.disabled,.button.clear.success:focus,.button.clear.success:focus.disabled,.button.clear.success:focus[disabled],.button.clear.success:hover,.button.clear.success:hover.disabled,.button.clear.success:hover[disabled],.button.clear.success[disabled]{border-color:transparent}.button.clear.warning{border:1px solid #ffae00;color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{border-color:#805700;color:#805700}.button.clear.warning:focus.disabled,.button.clear.warning:focus[disabled],.button.clear.warning:hover.disabled,.button.clear.warning:hover[disabled]{border:1px solid #ffae00;color:#ffae00}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning:focus,.button.clear.warning:focus.disabled,.button.clear.warning:focus[disabled],.button.clear.warning:hover,.button.clear.warning:hover.disabled,.button.clear.warning:hover[disabled],.button.clear.warning[disabled]{border-color:transparent}.button.clear.alert{border:1px solid #cc4b37;color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{border-color:#67251a;color:#67251a}.button.clear.alert:focus.disabled,.button.clear.alert:focus[disabled],.button.clear.alert:hover.disabled,.button.clear.alert:hover[disabled]{border:1px solid #cc4b37;color:#cc4b37}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert:focus,.button.clear.alert:focus.disabled,.button.clear.alert:focus[disabled],.button.clear.alert:hover,.button.clear.alert:hover.disabled,.button.clear.alert:hover[disabled],.button.clear.alert[disabled]{border-color:transparent}.button.dropdown::after{display:block;width:0;height:0;border:inset .4em;content:'';border-bottom-width:0;border-top-style:solid;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;box-sizing:border-box;width:100%;height:2.5657894737rem;margin:0 0 1.0526315789rem;padding:.5263157895rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;box-shadow:inset 0 1px 2px rgba(45,49,52,.1);font-family:inherit;font-size:1.0526315789rem;font-weight:400;line-height:1.5;color:#2d3134;transition:box-shadow .5s,border-color .25s ease-in-out;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;box-shadow:0 0 5px #cacaca;transition:box-shadow .5s,border-color .25s ease-in-out}textarea{max-width:100%}textarea[rows]{height:auto}input::placeholder,textarea::placeholder{color:#cacaca}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{appearance:none;border-radius:0}input[type=search]{box-sizing:border-box}[type=checkbox],[type=file],[type=radio]{margin:0 0 1.0526315789rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5263157895rem;margin-right:1.0526315789rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5263157895rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.9210526316rem;font-weight:400;line-height:1.8;color:#2d3134}label.middle{margin:0 0 1.0526315789rem;padding:.5921052632rem 0}.help-text{margin-top:-.5263157895rem;font-size:.8552631579rem;font-style:italic;color:#2d3134}.input-group{display:flex;width:100%;margin-bottom:1.0526315789rem;align-items:stretch}.input-group>:first-child{border-radius:0}.input-group>:last-child>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#2d3134;text-align:center;white-space:nowrap;display:flex;flex:0 0 auto;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;flex:1 1 0px;height:auto;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{height:2.6315789474rem;padding-top:0;padding-bottom:0;font-size:1.0526315789rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5263157895rem}.fieldset{margin:1.1842105263rem 0;padding:1.3157894737rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1973684211rem;padding:0 .1973684211rem}select{height:2.5657894737rem;margin:0 0 1.0526315789rem;padding:.5263157895rem;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1.0526315789rem;font-weight:400;line-height:1.5;color:#2d3134;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");background-origin:content-box;background-position:right -1.0526315789rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5789473684rem;transition:box-shadow .5s,border-color .25s ease-in-out}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;box-shadow:0 0 5px #cacaca;transition:box-shadow .5s,border-color .25s ease-in-out}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5263157895rem;margin-bottom:1.0526315789rem;font-size:.7894736842rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}.hide{display:none!important}.invisible{visibility:hidden}@media screen and (max-width:39.9375em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.9375em){.show-for-medium{display:none!important}}@media screen and (min-width:40em) and (max-width:63.9375em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.9375em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.9375em){.show-for-large{display:none!important}}@media screen and (min-width:64em) and (max-width:74.9375em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.9375em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);border:0}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;clip-path:none}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' ';flex-basis:0;order:1}.clearfix::after{clear:both}.close-button{position:absolute;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#2d3134}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#2d3134}.label.warning{background:#ffae00;color:#2d3134}.label.alert{background:#cc4b37;color:#fefefe}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5263157895rem .6578947368rem .6578947368rem;font-weight:700}thead{background:#f8f8f8;color:#2d3134}tfoot{background:#f1f1f1;color:#2d3134}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5263157895rem .6578947368rem .6578947368rem;font-weight:700;text-align:left}tbody td,tbody th{padding:.5263157895rem .6578947368rem .6578947368rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:0;border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media screen and (max-width:63.9375em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.table-scroll table{width:auto} \ No newline at end of file
diff --git a/support/doc/api/html/stylesheets/spectacle.css b/support/doc/api/html/stylesheets/spectacle.css
deleted file mode 100644
index fe9b945d1..000000000
--- a/support/doc/api/html/stylesheets/spectacle.css
+++ /dev/null
@@ -1,1375 +0,0 @@
1@charset "UTF-8";
2/**
3 * Foundation for Sites by ZURB
4 * Version 6.4.1
5 * foundation.zurb.com
6 * Licensed under MIT Open Source
7 */
8#spectacle {
9 /*
10
11Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/
12
13*/ }
14 #spectacle .swagger-operation-path:before {
15 content: "Path";
16 display: block;
17 margin-bottom: 0.5em;
18 color: #f68b1f;
19 text-transform: uppercase;
20 font-size: 0.9rem; }
21 #spectacle .swagger-operation-description:before {
22 content: "Description";
23 display: block;
24 margin-bottom: 0.5em;
25 color: #f68b1f;
26 text-transform: uppercase;
27 font-size: 0.9rem; }
28 #spectacle .swagger-request-params:before {
29 content: "Request parameters";
30 display: block;
31 margin-bottom: 0.5em;
32 color: #f68b1f;
33 text-transform: uppercase;
34 font-size: 0.9rem; }
35 #spectacle .swagger-request-body:before {
36 content: "Request body";
37 display: block;
38 margin-bottom: 0.5em;
39 color: #f68b1f;
40 text-transform: uppercase;
41 font-size: 0.9rem; }
42 #spectacle .swagger-request-body .json-schema-properties:before {
43 display: none; }
44 #spectacle .swagger-responses:before {
45 content: "Responses";
46 display: block;
47 margin-bottom: 0.5em;
48 color: #f68b1f;
49 text-transform: uppercase;
50 font-size: 0.9rem; }
51 #spectacle .swagger-global:before {
52 display: inline-block;
53 padding: 0.33333rem 0.5rem;
54 border-radius: 0;
55 font-size: 0.8rem;
56 line-height: 1;
57 white-space: nowrap;
58 cursor: default;
59 background: #cc4b37;
60 color: #fefefe;
61 font-size: 0.75rem;
62 border-radius: 4px;
63 padding: 3px 6px;
64 content: "global"; }
65 #spectacle table.table th.swagger-param-key {
66 width: auto; }
67 #spectacle table.table th.swagger-param-key:before {
68 content: "Key"; }
69 #spectacle table.table th.swagger-param-name {
70 width: auto; }
71 #spectacle table.table th.swagger-param-name:before {
72 content: "Name"; }
73 #spectacle table.table th.swagger-param-description {
74 width: auto; }
75 #spectacle table.table th.swagger-param-description:before {
76 content: "Description"; }
77 #spectacle table.table th.swagger-param-data-type {
78 width: auto; }
79 #spectacle table.table th.swagger-param-data-type:before {
80 content: "Data type"; }
81 #spectacle table.table th.swagger-param-type {
82 width: auto; }
83 #spectacle table.table th.swagger-param-type:before {
84 content: "Type"; }
85 #spectacle table.table th.swagger-request-security-schema {
86 width: auto; }
87 #spectacle table.table th.swagger-request-security-schema:before {
88 content: "Schema"; }
89 #spectacle table.table th.swagger-request-security-scopes {
90 width: auto; }
91 #spectacle table.table th.swagger-request-security-scopes:before {
92 content: "Scopes"; }
93 #spectacle table.table th.swagger-response-header-name {
94 width: auto; }
95 #spectacle table.table th.swagger-response-header-name:before {
96 content: "Header"; }
97 #spectacle table.table th.swagger-response-header-description {
98 width: auto; }
99 #spectacle table.table th.swagger-response-header-description:before {
100 content: "Description"; }
101 #spectacle table.table th.swagger-response-header-data-type {
102 width: auto; }
103 #spectacle table.table th.swagger-response-header-data-type:before {
104 content: "Data type"; }
105 #spectacle table.table th.swagger-response-code {
106 width: auto; }
107 #spectacle table.table th.swagger-response-code:before {
108 content: "Code"; }
109 #spectacle table.table th.swagger-response-description {
110 width: auto; }
111 #spectacle table.table th.swagger-response-description:before {
112 content: "Description"; }
113 #spectacle table.table th.swagger-response-schema {
114 width: auto; }
115 #spectacle table.table th.swagger-response-schema:before {
116 content: "Schema"; }
117 #spectacle .swagger-response-name-value {
118 font-weight: bold; }
119 #spectacle .swagger-response-description-text {
120 padding-bottom: 0.5em; }
121 #spectacle .swagger-request-security:before {
122 content: "Security";
123 display: block;
124 margin-bottom: 0.5em;
125 color: #f68b1f;
126 text-transform: uppercase;
127 font-size: 0.9rem; }
128 #spectacle .swagger-security-definition-basic:before {
129 color: #cacaca;
130 content: "(HTTP Basic Authentication)"; }
131 #spectacle .swagger-security-definition-oauth2:before {
132 color: #cacaca;
133 content: "(OAuth2 Authentication)"; }
134 #spectacle .swagger-security-definition-apiKey:before {
135 color: #cacaca;
136 content: "(API Key Authentication)"; }
137 #spectacle .json-schema-description:before {
138 content: "Description";
139 display: block;
140 margin-bottom: 0.5em;
141 color: #f68b1f;
142 text-transform: uppercase;
143 font-size: 0.9rem; }
144 #spectacle .json-schema-properties:before {
145 content: "Properties";
146 display: block;
147 margin-bottom: 0.5em;
148 color: #f68b1f;
149 text-transform: uppercase;
150 font-size: 0.9rem; }
151 #spectacle .json-schema-properties dl {
152 margin: 0; }
153 #spectacle .json-schema-properties dt {
154 margin-bottom: .25rem; }
155 #spectacle .json-schema-properties dt.has-description {
156 margin-bottom: 0; }
157 #spectacle .json-schema-properties dd {
158 color: #8a8a8a; }
159 #spectacle .json-schema-properties dd:not(:last-child) {
160 padding-bottom: 0.5rem; }
161 #spectacle .json-schema-description + .json-schema-properties {
162 margin-top: 1.5rem; }
163 #spectacle .json-schema-ref-array:before {
164 color: #8a8a8a;
165 content: "Array<"; }
166 #spectacle .json-schema-ref-array:after {
167 color: #8a8a8a;
168 content: ">"; }
169 #spectacle .json-schema-example:before {
170 content: "Example";
171 display: block;
172 margin-bottom: 0.5em;
173 color: #f68b1f;
174 text-transform: uppercase;
175 font-size: 0.9rem; }
176 #spectacle .json-schema-array-items:before {
177 content: "Items";
178 display: block;
179 margin-bottom: 0.5em;
180 color: #f68b1f;
181 text-transform: uppercase;
182 font-size: 0.9rem; }
183 #spectacle .json-schema-allOf-inherited:before {
184 content: "Inherited";
185 display: block;
186 margin-bottom: 0.5em;
187 color: #f68b1f;
188 text-transform: uppercase;
189 font-size: 0.9rem; }
190 #spectacle .json-schema-anyOf > dl {
191 padding-left: 1em; }
192 #spectacle .json-schema-anyOf > dl dt:not(:first-child):before {
193 content: "or "; }
194 #spectacle .json-schema-anyOf > dl dt:first-child:before {
195 content: "either "; }
196 #spectacle .json-schema-additionalProperties:before {
197 content: "Additional properties";
198 display: block;
199 margin-bottom: 0.5em;
200 color: #f68b1f;
201 text-transform: uppercase;
202 font-size: 0.9rem; }
203 #spectacle .json-inner-schema .json-schema-properties,
204 #spectacle .json-inner-schema .json-schema-array-items,
205 #spectacle .json-inner-schema .json-schema-description,
206 #spectacle .json-inner-schema .json-schema-example {
207 padding-left: 1em;
208 margin-top: 0.5em;
209 padding-bottom: 0.5em; }
210 #spectacle .json-property-discriminator:before {
211 display: inline-block;
212 padding: 0.33333rem 0.5rem;
213 border-radius: 0;
214 font-size: 0.8rem;
215 line-height: 1;
216 white-space: nowrap;
217 cursor: default;
218 background: #cc4b37;
219 color: #fefefe;
220 font-size: 0.75rem;
221 border-radius: 4px;
222 padding: 3px 6px;
223 content: "discriminator"; }
224 #spectacle .json-property-required:before {
225 display: inline-block;
226 padding: 0.33333rem 0.5rem;
227 border-radius: 0;
228 font-size: 0.8rem;
229 line-height: 1;
230 white-space: nowrap;
231 cursor: default;
232 background: #cc4b37;
233 color: #fefefe;
234 font-size: 0.75rem;
235 border-radius: 4px;
236 padding: 3px 6px;
237 content: "required"; }
238 #spectacle .json-property-read-only:before {
239 display: inline-block;
240 padding: 0.33333rem 0.5rem;
241 border-radius: 0;
242 font-size: 0.8rem;
243 line-height: 1;
244 white-space: nowrap;
245 cursor: default;
246 background: #cc4b37;
247 color: #fefefe;
248 font-size: 0.75rem;
249 border-radius: 4px;
250 padding: 3px 6px;
251 content: "read only"; }
252 #spectacle .json-property-format {
253 font-style: italic; }
254 #spectacle .json-property-enum:before {
255 content: 'enum: ['; }
256 #spectacle .json-property-enum:after {
257 content: ']'; }
258 #spectacle .json-property-default-value:before {
259 content: 'default: '; }
260 #spectacle .json-property-range:empty {
261 display: none !important; }
262 #spectacle .json-property-range:before {
263 content: 'range: '; }
264 #spectacle .json-property-enum-item {
265 font-weight: lighter;
266 font-size: small; }
267 #spectacle .json-schema-reference {
268 font-size: 90%; }
269 #spectacle .no-padding {
270 padding: 0 !important; }
271 #spectacle .no-margin {
272 margin: 0 !important; }
273 #spectacle button:focus {
274 outline: none; }
275 #spectacle .default-label {
276 display: inline-block;
277 padding: 0.33333rem 0.5rem;
278 border-radius: 0;
279 font-size: 0.8rem;
280 line-height: 1;
281 white-space: nowrap;
282 cursor: default;
283 background: #767676;
284 color: #fefefe;
285 font-size: 0.75rem;
286 border-radius: 4px;
287 padding: 3px 6px; }
288 #spectacle #logo {
289 text-align: center;
290 padding-right: 0.5rem;
291 padding-top: 1rem;
292 padding-bottom: 0.25rem; }
293 #spectacle #logo img {
294 max-height: 75px; }
295 #spectacle .row, #spectacle article .prop-row, #spectacle article .doc-row {
296 max-width: auto;
297 margin-right: auto;
298 margin-left: auto; }
299 #spectacle .row::before, #spectacle article .prop-row::before, #spectacle article .doc-row::before, #spectacle .row::after, #spectacle article .prop-row::after, #spectacle article .doc-row::after {
300 display: table;
301 content: ' ';
302 flex-basis: 0;
303 order: 1; }
304 #spectacle .row::after, #spectacle article .prop-row::after, #spectacle article .doc-row::after {
305 clear: both; }
306 #spectacle .row.collapse > .column, #spectacle article .prop-row > .column, #spectacle article .doc-row > .column, #spectacle .row.collapse > .columns, #spectacle article .prop-row > .columns, #spectacle article .doc-row > .columns, #spectacle article .prop-row .row.collapse > .prop-name, #spectacle article .prop-row > .prop-name, #spectacle article .prop-row .doc-row > .prop-name, #spectacle article .prop-row .row.collapse > .prop-value, #spectacle article .prop-row > .prop-value, #spectacle article .prop-row .doc-row > .prop-value, #spectacle article .row.collapse > .doc-copy, #spectacle article .prop-row > .doc-copy, #spectacle article .doc-row > .doc-copy, #spectacle article .row.collapse > .doc-examples, #spectacle article .prop-row > .doc-examples, #spectacle article .doc-row > .doc-examples {
307 padding-right: 0;
308 padding-left: 0; }
309 #spectacle .row .row, #spectacle article .prop-row .row, #spectacle article .doc-row .row, #spectacle .row article .prop-row, #spectacle article .row .prop-row, #spectacle article .prop-row .prop-row, #spectacle article .doc-row .prop-row, #spectacle .row article .doc-row, #spectacle article .row .doc-row, #spectacle article .prop-row .doc-row, #spectacle article .doc-row .doc-row {
310 margin-right: -0.6578947368rem;
311 margin-left: -0.6578947368rem; }
312 @media print, screen and (min-width: 40em) {
313 #spectacle .row .row, #spectacle article .prop-row .row, #spectacle article .doc-row .row, #spectacle .row article .prop-row, #spectacle article .row .prop-row, #spectacle article .prop-row .prop-row, #spectacle article .doc-row .prop-row, #spectacle .row article .doc-row, #spectacle article .row .doc-row, #spectacle article .prop-row .doc-row, #spectacle article .doc-row .doc-row {
314 margin-right: -0.9868421053rem;
315 margin-left: -0.9868421053rem; } }
316 @media print, screen and (min-width: 64em) {
317 #spectacle .row .row, #spectacle article .prop-row .row, #spectacle article .doc-row .row, #spectacle .row article .prop-row, #spectacle article .row .prop-row, #spectacle article .prop-row .prop-row, #spectacle article .doc-row .prop-row, #spectacle .row article .doc-row, #spectacle article .row .doc-row, #spectacle article .prop-row .doc-row, #spectacle article .doc-row .doc-row {
318 margin-right: -0.9868421053rem;
319 margin-left: -0.9868421053rem; } }
320 #spectacle .row .row.collapse, #spectacle article .prop-row .row.collapse, #spectacle article .doc-row .row.collapse, #spectacle .row article .prop-row, #spectacle article .row .prop-row, #spectacle article .prop-row .prop-row, #spectacle article .doc-row .prop-row, #spectacle .row article .doc-row, #spectacle article .row .doc-row, #spectacle article .prop-row .doc-row, #spectacle article .doc-row .doc-row {
321 margin-right: 0;
322 margin-left: 0; }
323 #spectacle .row.expanded, #spectacle article .expanded.prop-row, #spectacle article .expanded.doc-row {
324 max-width: none; }
325 #spectacle .row.expanded .row, #spectacle article .expanded.prop-row .row, #spectacle article .expanded.doc-row .row, #spectacle .row.expanded article .prop-row, #spectacle article .row.expanded .prop-row, #spectacle article .expanded.prop-row .prop-row, #spectacle article .expanded.doc-row .prop-row, #spectacle .row.expanded article .doc-row, #spectacle article .row.expanded .doc-row, #spectacle article .expanded.prop-row .doc-row, #spectacle article .expanded.doc-row .doc-row {
326 margin-right: auto;
327 margin-left: auto; }
328 #spectacle .row:not(.expanded) .row, #spectacle article .prop-row:not(.expanded) .row, #spectacle article .doc-row:not(.expanded) .row, #spectacle .row:not(.expanded) article .prop-row, #spectacle article .row:not(.expanded) .prop-row, #spectacle article .prop-row:not(.expanded) .prop-row, #spectacle article .doc-row:not(.expanded) .prop-row, #spectacle .row:not(.expanded) article .doc-row, #spectacle article .row:not(.expanded) .doc-row, #spectacle article .prop-row:not(.expanded) .doc-row, #spectacle article .doc-row:not(.expanded) .doc-row {
329 max-width: none; }
330 #spectacle .row.gutter-small > .column, #spectacle article .gutter-small.prop-row > .column, #spectacle article .gutter-small.doc-row > .column, #spectacle .row.gutter-small > .columns, #spectacle article .gutter-small.prop-row > .columns, #spectacle article .gutter-small.doc-row > .columns, #spectacle article .prop-row .row.gutter-small > .prop-name, #spectacle article .gutter-small.prop-row > .prop-name, #spectacle article .prop-row .gutter-small.doc-row > .prop-name, #spectacle article .prop-row .row.gutter-small > .prop-value, #spectacle article .gutter-small.prop-row > .prop-value, #spectacle article .prop-row .gutter-small.doc-row > .prop-value, #spectacle article .row.gutter-small > .doc-copy, #spectacle article .gutter-small.prop-row > .doc-copy, #spectacle article .gutter-small.doc-row > .doc-copy, #spectacle article .row.gutter-small > .doc-examples, #spectacle article .gutter-small.prop-row > .doc-examples, #spectacle article .gutter-small.doc-row > .doc-examples {
331 padding-right: 0.6578947368rem;
332 padding-left: 0.6578947368rem; }
333 #spectacle .row.gutter-medium > .column, #spectacle article .gutter-medium.prop-row > .column, #spectacle article .gutter-medium.doc-row > .column, #spectacle .row.gutter-medium > .columns, #spectacle article .gutter-medium.prop-row > .columns, #spectacle article .gutter-medium.doc-row > .columns, #spectacle article .prop-row .row.gutter-medium > .prop-name, #spectacle article .gutter-medium.prop-row > .prop-name, #spectacle article .prop-row .gutter-medium.doc-row > .prop-name, #spectacle article .prop-row .row.gutter-medium > .prop-value, #spectacle article .gutter-medium.prop-row > .prop-value, #spectacle article .prop-row .gutter-medium.doc-row > .prop-value, #spectacle article .row.gutter-medium > .doc-copy, #spectacle article .gutter-medium.prop-row > .doc-copy, #spectacle article .gutter-medium.doc-row > .doc-copy, #spectacle article .row.gutter-medium > .doc-examples, #spectacle article .gutter-medium.prop-row > .doc-examples, #spectacle article .gutter-medium.doc-row > .doc-examples {
334 padding-right: 0.9868421053rem;
335 padding-left: 0.9868421053rem; }
336 #spectacle .column, #spectacle .columns, #spectacle article .prop-row .prop-name, #spectacle article .prop-row .prop-value, #spectacle article .doc-copy, #spectacle article .doc-examples {
337 width: 100%;
338 float: left;
339 padding-right: 0.6578947368rem;
340 padding-left: 0.6578947368rem; }
341 @media print, screen and (min-width: 40em) {
342 #spectacle .column, #spectacle .columns, #spectacle article .prop-row .prop-name, #spectacle article .prop-row .prop-value, #spectacle article .doc-copy, #spectacle article .doc-examples {
343 padding-right: 0.9868421053rem;
344 padding-left: 0.9868421053rem; } }
345 #spectacle .column:last-child:not(:first-child), #spectacle .columns:last-child:not(:first-child), #spectacle article .prop-row .prop-name:last-child:not(:first-child), #spectacle article .prop-row .prop-value:last-child:not(:first-child), #spectacle article .doc-copy:last-child:not(:first-child), #spectacle article .doc-examples:last-child:not(:first-child) {
346 float: right; }
347 #spectacle .column.end:last-child:last-child, #spectacle .end.columns:last-child:last-child, #spectacle article .prop-row .end.prop-name:last-child:last-child, #spectacle article .prop-row .end.prop-value:last-child:last-child, #spectacle article .end.doc-copy:last-child:last-child, #spectacle article .end.doc-examples:last-child:last-child {
348 float: left; }
349 #spectacle .column.row.row, #spectacle .row.row.columns, #spectacle article .columns.prop-row, #spectacle article .prop-row .prop-row.prop-name, #spectacle article .prop-row .prop-row.prop-value, #spectacle article .prop-row.doc-copy, #spectacle article .prop-row.doc-examples, #spectacle article .prop-row .row.row.prop-name, #spectacle article .prop-row .prop-name.doc-row, #spectacle article .prop-row .row.row.prop-value, #spectacle article .prop-row .prop-value.doc-row, #spectacle article .columns.doc-row, #spectacle article .doc-row.doc-copy, #spectacle article .doc-row.doc-examples, #spectacle article .row.row.doc-copy, #spectacle article .row.row.doc-examples, #spectacle article .column.prop-row, #spectacle article .column.doc-row {
350 float: none; }
351 #spectacle .row .column.row.row, #spectacle article .prop-row .column.row.row, #spectacle article .doc-row .column.row.row, #spectacle .row .row.row.columns, #spectacle article .prop-row .row.row.columns, #spectacle article .doc-row .row.row.columns, #spectacle .row article .columns.prop-row, #spectacle article .row .columns.prop-row, #spectacle article .prop-row .columns.prop-row, #spectacle article .doc-row .columns.prop-row, #spectacle .row article .prop-row .prop-row.prop-name, #spectacle article .prop-row .row .prop-row.prop-name, #spectacle article .prop-row .prop-row.prop-name, #spectacle .row article .prop-row .prop-row.prop-value, #spectacle article .prop-row .row .prop-row.prop-value, #spectacle article .prop-row .prop-row.prop-value, #spectacle .row article .prop-row.doc-copy, #spectacle article .row .prop-row.doc-copy, #spectacle article .prop-row .prop-row.doc-copy, #spectacle article .doc-row .prop-row.doc-copy, #spectacle .row article .prop-row.doc-examples, #spectacle article .row .prop-row.doc-examples, #spectacle article .prop-row .prop-row.doc-examples, #spectacle article .doc-row .prop-row.doc-examples, #spectacle article .prop-row .row.row.prop-name, #spectacle .row article .prop-row .prop-name.doc-row, #spectacle article .prop-row .row .prop-name.doc-row, #spectacle article .prop-row .prop-name.doc-row, #spectacle article .prop-row .row.row.prop-value, #spectacle .row article .prop-row .prop-value.doc-row, #spectacle article .prop-row .row .prop-value.doc-row, #spectacle article .prop-row .prop-value.doc-row, #spectacle .row article .columns.doc-row, #spectacle article .row .columns.doc-row, #spectacle article .prop-row .columns.doc-row, #spectacle article .doc-row .columns.doc-row, #spectacle .row article .doc-row.doc-copy, #spectacle article .row .doc-row.doc-copy, #spectacle article .prop-row .doc-row.doc-copy, #spectacle article .doc-row .doc-row.doc-copy, #spectacle .row article .doc-row.doc-examples, #spectacle article .row .doc-row.doc-examples, #spectacle article .prop-row .doc-row.doc-examples, #spectacle article .doc-row .doc-row.doc-examples, #spectacle .row article .row.row.doc-copy, #spectacle article .row .row.row.doc-copy, #spectacle article .prop-row .row.row.doc-copy, #spectacle article .doc-row .row.row.doc-copy, #spectacle .row article .row.row.doc-examples, #spectacle article .row .row.row.doc-examples, #spectacle article .prop-row .row.row.doc-examples, #spectacle article .doc-row .row.row.doc-examples, #spectacle .row article .column.prop-row, #spectacle article .row .column.prop-row, #spectacle article .prop-row .column.prop-row, #spectacle article .doc-row .column.prop-row, #spectacle .row article .column.doc-row, #spectacle article .row .column.doc-row, #spectacle article .prop-row .column.doc-row, #spectacle article .doc-row .column.doc-row {
352 margin-right: 0;
353 margin-left: 0;
354 padding-right: 0;
355 padding-left: 0; }
356 #spectacle .small-1 {
357 width: 8.3333333333%; }
358 #spectacle .small-push-1 {
359 position: relative;
360 left: 8.3333333333%; }
361 #spectacle .small-pull-1 {
362 position: relative;
363 left: -8.3333333333%; }
364 #spectacle .small-offset-0 {
365 margin-left: 0%; }
366 #spectacle .small-2 {
367 width: 16.6666666667%; }
368 #spectacle .small-push-2 {
369 position: relative;
370 left: 16.6666666667%; }
371 #spectacle .small-pull-2 {
372 position: relative;
373 left: -16.6666666667%; }
374 #spectacle .small-offset-1 {
375 margin-left: 8.3333333333%; }
376 #spectacle .small-3 {
377 width: 25%; }
378 #spectacle .small-push-3 {
379 position: relative;
380 left: 25%; }
381 #spectacle .small-pull-3 {
382 position: relative;
383 left: -25%; }
384 #spectacle .small-offset-2 {
385 margin-left: 16.6666666667%; }
386 #spectacle .small-4 {
387 width: 33.3333333333%; }
388 #spectacle .small-push-4 {
389 position: relative;
390 left: 33.3333333333%; }
391 #spectacle .small-pull-4 {
392 position: relative;
393 left: -33.3333333333%; }
394 #spectacle .small-offset-3 {
395 margin-left: 25%; }
396 #spectacle .small-5, #spectacle article .prop-row .prop-name {
397 width: 41.6666666667%; }
398 #spectacle .small-push-5 {
399 position: relative;
400 left: 41.6666666667%; }
401 #spectacle .small-pull-5 {
402 position: relative;
403 left: -41.6666666667%; }
404 #spectacle .small-offset-4 {
405 margin-left: 33.3333333333%; }
406 #spectacle .small-6 {
407 width: 50%; }
408 #spectacle .small-push-6 {
409 position: relative;
410 left: 50%; }
411 #spectacle .small-pull-6 {
412 position: relative;
413 left: -50%; }
414 #spectacle .small-offset-5 {
415 margin-left: 41.6666666667%; }
416 #spectacle .small-7, #spectacle article .prop-row .prop-value {
417 width: 58.3333333333%; }
418 #spectacle .small-push-7 {
419 position: relative;
420 left: 58.3333333333%; }
421 #spectacle .small-pull-7 {
422 position: relative;
423 left: -58.3333333333%; }
424 #spectacle .small-offset-6 {
425 margin-left: 50%; }
426 #spectacle .small-8 {
427 width: 66.6666666667%; }
428 #spectacle .small-push-8 {
429 position: relative;
430 left: 66.6666666667%; }
431 #spectacle .small-pull-8 {
432 position: relative;
433 left: -66.6666666667%; }
434 #spectacle .small-offset-7 {
435 margin-left: 58.3333333333%; }
436 #spectacle .small-9 {
437 width: 75%; }
438 #spectacle .small-push-9 {
439 position: relative;
440 left: 75%; }
441 #spectacle .small-pull-9 {
442 position: relative;
443 left: -75%; }
444 #spectacle .small-offset-8 {
445 margin-left: 66.6666666667%; }
446 #spectacle .small-10 {
447 width: 83.3333333333%; }
448 #spectacle .small-push-10 {
449 position: relative;
450 left: 83.3333333333%; }
451 #spectacle .small-pull-10 {
452 position: relative;
453 left: -83.3333333333%; }
454 #spectacle .small-offset-9 {
455 margin-left: 75%; }
456 #spectacle .small-11 {
457 width: 91.6666666667%; }
458 #spectacle .small-push-11 {
459 position: relative;
460 left: 91.6666666667%; }
461 #spectacle .small-pull-11 {
462 position: relative;
463 left: -91.6666666667%; }
464 #spectacle .small-offset-10 {
465 margin-left: 83.3333333333%; }
466 #spectacle .small-12 {
467 width: 100%; }
468 #spectacle .small-offset-11 {
469 margin-left: 91.6666666667%; }
470 #spectacle .small-up-1 > .column, #spectacle .small-up-1 > .columns, #spectacle article .prop-row .small-up-1 > .prop-name, #spectacle article .prop-row .small-up-1 > .prop-value, #spectacle article .small-up-1 > .doc-copy, #spectacle article .small-up-1 > .doc-examples {
471 float: left;
472 width: 100%; }
473 #spectacle .small-up-1 > .column:nth-of-type(1n), #spectacle .small-up-1 > .columns:nth-of-type(1n), #spectacle article .prop-row .small-up-1 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .small-up-1 > .prop-value:nth-of-type(1n), #spectacle article .small-up-1 > .doc-copy:nth-of-type(1n), #spectacle article .small-up-1 > .doc-examples:nth-of-type(1n) {
474 clear: none; }
475 #spectacle .small-up-1 > .column:nth-of-type(1n+1), #spectacle .small-up-1 > .columns:nth-of-type(1n+1), #spectacle article .prop-row .small-up-1 > .prop-name:nth-of-type(1n+1), #spectacle article .prop-row .small-up-1 > .prop-value:nth-of-type(1n+1), #spectacle article .small-up-1 > .doc-copy:nth-of-type(1n+1), #spectacle article .small-up-1 > .doc-examples:nth-of-type(1n+1) {
476 clear: both; }
477 #spectacle .small-up-1 > .column:last-child, #spectacle .small-up-1 > .columns:last-child, #spectacle article .prop-row .small-up-1 > .prop-name:last-child, #spectacle article .prop-row .small-up-1 > .prop-value:last-child, #spectacle article .small-up-1 > .doc-copy:last-child, #spectacle article .small-up-1 > .doc-examples:last-child {
478 float: left; }
479 #spectacle .small-up-2 > .column, #spectacle .small-up-2 > .columns, #spectacle article .prop-row .small-up-2 > .prop-name, #spectacle article .prop-row .small-up-2 > .prop-value, #spectacle article .small-up-2 > .doc-copy, #spectacle article .small-up-2 > .doc-examples {
480 float: left;
481 width: 50%; }
482 #spectacle .small-up-2 > .column:nth-of-type(1n), #spectacle .small-up-2 > .columns:nth-of-type(1n), #spectacle article .prop-row .small-up-2 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .small-up-2 > .prop-value:nth-of-type(1n), #spectacle article .small-up-2 > .doc-copy:nth-of-type(1n), #spectacle article .small-up-2 > .doc-examples:nth-of-type(1n) {
483 clear: none; }
484 #spectacle .small-up-2 > .column:nth-of-type(2n+1), #spectacle .small-up-2 > .columns:nth-of-type(2n+1), #spectacle article .prop-row .small-up-2 > .prop-name:nth-of-type(2n+1), #spectacle article .prop-row .small-up-2 > .prop-value:nth-of-type(2n+1), #spectacle article .small-up-2 > .doc-copy:nth-of-type(2n+1), #spectacle article .small-up-2 > .doc-examples:nth-of-type(2n+1) {
485 clear: both; }
486 #spectacle .small-up-2 > .column:last-child, #spectacle .small-up-2 > .columns:last-child, #spectacle article .prop-row .small-up-2 > .prop-name:last-child, #spectacle article .prop-row .small-up-2 > .prop-value:last-child, #spectacle article .small-up-2 > .doc-copy:last-child, #spectacle article .small-up-2 > .doc-examples:last-child {
487 float: left; }
488 #spectacle .small-up-3 > .column, #spectacle .small-up-3 > .columns, #spectacle article .prop-row .small-up-3 > .prop-name, #spectacle article .prop-row .small-up-3 > .prop-value, #spectacle article .small-up-3 > .doc-copy, #spectacle article .small-up-3 > .doc-examples {
489 float: left;
490 width: 33.3333333333%; }
491 #spectacle .small-up-3 > .column:nth-of-type(1n), #spectacle .small-up-3 > .columns:nth-of-type(1n), #spectacle article .prop-row .small-up-3 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .small-up-3 > .prop-value:nth-of-type(1n), #spectacle article .small-up-3 > .doc-copy:nth-of-type(1n), #spectacle article .small-up-3 > .doc-examples:nth-of-type(1n) {
492 clear: none; }
493 #spectacle .small-up-3 > .column:nth-of-type(3n+1), #spectacle .small-up-3 > .columns:nth-of-type(3n+1), #spectacle article .prop-row .small-up-3 > .prop-name:nth-of-type(3n+1), #spectacle article .prop-row .small-up-3 > .prop-value:nth-of-type(3n+1), #spectacle article .small-up-3 > .doc-copy:nth-of-type(3n+1), #spectacle article .small-up-3 > .doc-examples:nth-of-type(3n+1) {
494 clear: both; }
495 #spectacle .small-up-3 > .column:last-child, #spectacle .small-up-3 > .columns:last-child, #spectacle article .prop-row .small-up-3 > .prop-name:last-child, #spectacle article .prop-row .small-up-3 > .prop-value:last-child, #spectacle article .small-up-3 > .doc-copy:last-child, #spectacle article .small-up-3 > .doc-examples:last-child {
496 float: left; }
497 #spectacle .small-up-4 > .column, #spectacle .small-up-4 > .columns, #spectacle article .prop-row .small-up-4 > .prop-name, #spectacle article .prop-row .small-up-4 > .prop-value, #spectacle article .small-up-4 > .doc-copy, #spectacle article .small-up-4 > .doc-examples {
498 float: left;
499 width: 25%; }
500 #spectacle .small-up-4 > .column:nth-of-type(1n), #spectacle .small-up-4 > .columns:nth-of-type(1n), #spectacle article .prop-row .small-up-4 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .small-up-4 > .prop-value:nth-of-type(1n), #spectacle article .small-up-4 > .doc-copy:nth-of-type(1n), #spectacle article .small-up-4 > .doc-examples:nth-of-type(1n) {
501 clear: none; }
502 #spectacle .small-up-4 > .column:nth-of-type(4n+1), #spectacle .small-up-4 > .columns:nth-of-type(4n+1), #spectacle article .prop-row .small-up-4 > .prop-name:nth-of-type(4n+1), #spectacle article .prop-row .small-up-4 > .prop-value:nth-of-type(4n+1), #spectacle article .small-up-4 > .doc-copy:nth-of-type(4n+1), #spectacle article .small-up-4 > .doc-examples:nth-of-type(4n+1) {
503 clear: both; }
504 #spectacle .small-up-4 > .column:last-child, #spectacle .small-up-4 > .columns:last-child, #spectacle article .prop-row .small-up-4 > .prop-name:last-child, #spectacle article .prop-row .small-up-4 > .prop-value:last-child, #spectacle article .small-up-4 > .doc-copy:last-child, #spectacle article .small-up-4 > .doc-examples:last-child {
505 float: left; }
506 #spectacle .small-up-5 > .column, #spectacle .small-up-5 > .columns, #spectacle article .prop-row .small-up-5 > .prop-name, #spectacle article .prop-row .small-up-5 > .prop-value, #spectacle article .small-up-5 > .doc-copy, #spectacle article .small-up-5 > .doc-examples {
507 float: left;
508 width: 20%; }
509 #spectacle .small-up-5 > .column:nth-of-type(1n), #spectacle .small-up-5 > .columns:nth-of-type(1n), #spectacle article .prop-row .small-up-5 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .small-up-5 > .prop-value:nth-of-type(1n), #spectacle article .small-up-5 > .doc-copy:nth-of-type(1n), #spectacle article .small-up-5 > .doc-examples:nth-of-type(1n) {
510 clear: none; }
511 #spectacle .small-up-5 > .column:nth-of-type(5n+1), #spectacle .small-up-5 > .columns:nth-of-type(5n+1), #spectacle article .prop-row .small-up-5 > .prop-name:nth-of-type(5n+1), #spectacle article .prop-row .small-up-5 > .prop-value:nth-of-type(5n+1), #spectacle article .small-up-5 > .doc-copy:nth-of-type(5n+1), #spectacle article .small-up-5 > .doc-examples:nth-of-type(5n+1) {
512 clear: both; }
513 #spectacle .small-up-5 > .column:last-child, #spectacle .small-up-5 > .columns:last-child, #spectacle article .prop-row .small-up-5 > .prop-name:last-child, #spectacle article .prop-row .small-up-5 > .prop-value:last-child, #spectacle article .small-up-5 > .doc-copy:last-child, #spectacle article .small-up-5 > .doc-examples:last-child {
514 float: left; }
515 #spectacle .small-up-6 > .column, #spectacle .small-up-6 > .columns, #spectacle article .prop-row .small-up-6 > .prop-name, #spectacle article .prop-row .small-up-6 > .prop-value, #spectacle article .small-up-6 > .doc-copy, #spectacle article .small-up-6 > .doc-examples {
516 float: left;
517 width: 16.6666666667%; }
518 #spectacle .small-up-6 > .column:nth-of-type(1n), #spectacle .small-up-6 > .columns:nth-of-type(1n), #spectacle article .prop-row .small-up-6 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .small-up-6 > .prop-value:nth-of-type(1n), #spectacle article .small-up-6 > .doc-copy:nth-of-type(1n), #spectacle article .small-up-6 > .doc-examples:nth-of-type(1n) {
519 clear: none; }
520 #spectacle .small-up-6 > .column:nth-of-type(6n+1), #spectacle .small-up-6 > .columns:nth-of-type(6n+1), #spectacle article .prop-row .small-up-6 > .prop-name:nth-of-type(6n+1), #spectacle article .prop-row .small-up-6 > .prop-value:nth-of-type(6n+1), #spectacle article .small-up-6 > .doc-copy:nth-of-type(6n+1), #spectacle article .small-up-6 > .doc-examples:nth-of-type(6n+1) {
521 clear: both; }
522 #spectacle .small-up-6 > .column:last-child, #spectacle .small-up-6 > .columns:last-child, #spectacle article .prop-row .small-up-6 > .prop-name:last-child, #spectacle article .prop-row .small-up-6 > .prop-value:last-child, #spectacle article .small-up-6 > .doc-copy:last-child, #spectacle article .small-up-6 > .doc-examples:last-child {
523 float: left; }
524 #spectacle .small-up-7 > .column, #spectacle .small-up-7 > .columns, #spectacle article .prop-row .small-up-7 > .prop-name, #spectacle article .prop-row .small-up-7 > .prop-value, #spectacle article .small-up-7 > .doc-copy, #spectacle article .small-up-7 > .doc-examples {
525 float: left;
526 width: 14.2857142857%; }
527 #spectacle .small-up-7 > .column:nth-of-type(1n), #spectacle .small-up-7 > .columns:nth-of-type(1n), #spectacle article .prop-row .small-up-7 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .small-up-7 > .prop-value:nth-of-type(1n), #spectacle article .small-up-7 > .doc-copy:nth-of-type(1n), #spectacle article .small-up-7 > .doc-examples:nth-of-type(1n) {
528 clear: none; }
529 #spectacle .small-up-7 > .column:nth-of-type(7n+1), #spectacle .small-up-7 > .columns:nth-of-type(7n+1), #spectacle article .prop-row .small-up-7 > .prop-name:nth-of-type(7n+1), #spectacle article .prop-row .small-up-7 > .prop-value:nth-of-type(7n+1), #spectacle article .small-up-7 > .doc-copy:nth-of-type(7n+1), #spectacle article .small-up-7 > .doc-examples:nth-of-type(7n+1) {
530 clear: both; }
531 #spectacle .small-up-7 > .column:last-child, #spectacle .small-up-7 > .columns:last-child, #spectacle article .prop-row .small-up-7 > .prop-name:last-child, #spectacle article .prop-row .small-up-7 > .prop-value:last-child, #spectacle article .small-up-7 > .doc-copy:last-child, #spectacle article .small-up-7 > .doc-examples:last-child {
532 float: left; }
533 #spectacle .small-up-8 > .column, #spectacle .small-up-8 > .columns, #spectacle article .prop-row .small-up-8 > .prop-name, #spectacle article .prop-row .small-up-8 > .prop-value, #spectacle article .small-up-8 > .doc-copy, #spectacle article .small-up-8 > .doc-examples {
534 float: left;
535 width: 12.5%; }
536 #spectacle .small-up-8 > .column:nth-of-type(1n), #spectacle .small-up-8 > .columns:nth-of-type(1n), #spectacle article .prop-row .small-up-8 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .small-up-8 > .prop-value:nth-of-type(1n), #spectacle article .small-up-8 > .doc-copy:nth-of-type(1n), #spectacle article .small-up-8 > .doc-examples:nth-of-type(1n) {
537 clear: none; }
538 #spectacle .small-up-8 > .column:nth-of-type(8n+1), #spectacle .small-up-8 > .columns:nth-of-type(8n+1), #spectacle article .prop-row .small-up-8 > .prop-name:nth-of-type(8n+1), #spectacle article .prop-row .small-up-8 > .prop-value:nth-of-type(8n+1), #spectacle article .small-up-8 > .doc-copy:nth-of-type(8n+1), #spectacle article .small-up-8 > .doc-examples:nth-of-type(8n+1) {
539 clear: both; }
540 #spectacle .small-up-8 > .column:last-child, #spectacle .small-up-8 > .columns:last-child, #spectacle article .prop-row .small-up-8 > .prop-name:last-child, #spectacle article .prop-row .small-up-8 > .prop-value:last-child, #spectacle article .small-up-8 > .doc-copy:last-child, #spectacle article .small-up-8 > .doc-examples:last-child {
541 float: left; }
542 #spectacle .small-collapse > .column, #spectacle .small-collapse > .columns, #spectacle article .prop-row .small-collapse > .prop-name, #spectacle article .prop-row .small-collapse > .prop-value, #spectacle article .small-collapse > .doc-copy, #spectacle article .small-collapse > .doc-examples {
543 padding-right: 0;
544 padding-left: 0; }
545 #spectacle .small-collapse .row, #spectacle .small-collapse article .prop-row, #spectacle article .small-collapse .prop-row, #spectacle .small-collapse article .doc-row, #spectacle article .small-collapse .doc-row {
546 margin-right: 0;
547 margin-left: 0; }
548 #spectacle .expanded.row .small-collapse.row, #spectacle article .expanded.prop-row .small-collapse.row, #spectacle article .expanded.doc-row .small-collapse.row, #spectacle .expanded.row article .small-collapse.prop-row, #spectacle article .expanded.row .small-collapse.prop-row, #spectacle article .expanded.prop-row .small-collapse.prop-row, #spectacle article .expanded.doc-row .small-collapse.prop-row, #spectacle .expanded.row article .small-collapse.doc-row, #spectacle article .expanded.row .small-collapse.doc-row, #spectacle article .expanded.prop-row .small-collapse.doc-row, #spectacle article .expanded.doc-row .small-collapse.doc-row {
549 margin-right: 0;
550 margin-left: 0; }
551 #spectacle .small-uncollapse > .column, #spectacle .small-uncollapse > .columns, #spectacle article .prop-row .small-uncollapse > .prop-name, #spectacle article .prop-row .small-uncollapse > .prop-value, #spectacle article .small-uncollapse > .doc-copy, #spectacle article .small-uncollapse > .doc-examples {
552 padding-right: 0.6578947368rem;
553 padding-left: 0.6578947368rem; }
554 #spectacle .small-centered {
555 margin-right: auto;
556 margin-left: auto; }
557 #spectacle .small-centered, #spectacle .small-centered:last-child:not(:first-child) {
558 float: none;
559 clear: both; }
560 #spectacle .small-uncentered,
561 #spectacle .small-push-0,
562 #spectacle .small-pull-0 {
563 position: static;
564 float: left;
565 margin-right: 0;
566 margin-left: 0; }
567 @media print, screen and (min-width: 40em) {
568 #spectacle .medium-1 {
569 width: 8.3333333333%; }
570 #spectacle .medium-push-1 {
571 position: relative;
572 left: 8.3333333333%; }
573 #spectacle .medium-pull-1 {
574 position: relative;
575 left: -8.3333333333%; }
576 #spectacle .medium-offset-0 {
577 margin-left: 0%; }
578 #spectacle .medium-2 {
579 width: 16.6666666667%; }
580 #spectacle .medium-push-2 {
581 position: relative;
582 left: 16.6666666667%; }
583 #spectacle .medium-pull-2 {
584 position: relative;
585 left: -16.6666666667%; }
586 #spectacle .medium-offset-1 {
587 margin-left: 8.3333333333%; }
588 #spectacle .medium-3 {
589 width: 25%; }
590 #spectacle .medium-push-3 {
591 position: relative;
592 left: 25%; }
593 #spectacle .medium-pull-3 {
594 position: relative;
595 left: -25%; }
596 #spectacle .medium-offset-2 {
597 margin-left: 16.6666666667%; }
598 #spectacle .medium-4 {
599 width: 33.3333333333%; }
600 #spectacle .medium-push-4 {
601 position: relative;
602 left: 33.3333333333%; }
603 #spectacle .medium-pull-4 {
604 position: relative;
605 left: -33.3333333333%; }
606 #spectacle .medium-offset-3 {
607 margin-left: 25%; }
608 #spectacle .medium-5 {
609 width: 41.6666666667%; }
610 #spectacle .medium-push-5 {
611 position: relative;
612 left: 41.6666666667%; }
613 #spectacle .medium-pull-5 {
614 position: relative;
615 left: -41.6666666667%; }
616 #spectacle .medium-offset-4 {
617 margin-left: 33.3333333333%; }
618 #spectacle .medium-6 {
619 width: 50%; }
620 #spectacle .medium-push-6 {
621 position: relative;
622 left: 50%; }
623 #spectacle .medium-pull-6 {
624 position: relative;
625 left: -50%; }
626 #spectacle .medium-offset-5 {
627 margin-left: 41.6666666667%; }
628 #spectacle .medium-7 {
629 width: 58.3333333333%; }
630 #spectacle .medium-push-7 {
631 position: relative;
632 left: 58.3333333333%; }
633 #spectacle .medium-pull-7 {
634 position: relative;
635 left: -58.3333333333%; }
636 #spectacle .medium-offset-6 {
637 margin-left: 50%; }
638 #spectacle .medium-8 {
639 width: 66.6666666667%; }
640 #spectacle .medium-push-8 {
641 position: relative;
642 left: 66.6666666667%; }
643 #spectacle .medium-pull-8 {
644 position: relative;
645 left: -66.6666666667%; }
646 #spectacle .medium-offset-7 {
647 margin-left: 58.3333333333%; }
648 #spectacle .medium-9 {
649 width: 75%; }
650 #spectacle .medium-push-9 {
651 position: relative;
652 left: 75%; }
653 #spectacle .medium-pull-9 {
654 position: relative;
655 left: -75%; }
656 #spectacle .medium-offset-8 {
657 margin-left: 66.6666666667%; }
658 #spectacle .medium-10 {
659 width: 83.3333333333%; }
660 #spectacle .medium-push-10 {
661 position: relative;
662 left: 83.3333333333%; }
663 #spectacle .medium-pull-10 {
664 position: relative;
665 left: -83.3333333333%; }
666 #spectacle .medium-offset-9 {
667 margin-left: 75%; }
668 #spectacle .medium-11 {
669 width: 91.6666666667%; }
670 #spectacle .medium-push-11 {
671 position: relative;
672 left: 91.6666666667%; }
673 #spectacle .medium-pull-11 {
674 position: relative;
675 left: -91.6666666667%; }
676 #spectacle .medium-offset-10 {
677 margin-left: 83.3333333333%; }
678 #spectacle .medium-12 {
679 width: 100%; }
680 #spectacle .medium-offset-11 {
681 margin-left: 91.6666666667%; }
682 #spectacle .medium-up-1 > .column, #spectacle .medium-up-1 > .columns, #spectacle article .prop-row .medium-up-1 > .prop-name, #spectacle article .prop-row .medium-up-1 > .prop-value, #spectacle article .medium-up-1 > .doc-copy, #spectacle article .medium-up-1 > .doc-examples {
683 float: left;
684 width: 100%; }
685 #spectacle .medium-up-1 > .column:nth-of-type(1n), #spectacle .medium-up-1 > .columns:nth-of-type(1n), #spectacle article .prop-row .medium-up-1 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .medium-up-1 > .prop-value:nth-of-type(1n), #spectacle article .medium-up-1 > .doc-copy:nth-of-type(1n), #spectacle article .medium-up-1 > .doc-examples:nth-of-type(1n) {
686 clear: none; }
687 #spectacle .medium-up-1 > .column:nth-of-type(1n+1), #spectacle .medium-up-1 > .columns:nth-of-type(1n+1), #spectacle article .prop-row .medium-up-1 > .prop-name:nth-of-type(1n+1), #spectacle article .prop-row .medium-up-1 > .prop-value:nth-of-type(1n+1), #spectacle article .medium-up-1 > .doc-copy:nth-of-type(1n+1), #spectacle article .medium-up-1 > .doc-examples:nth-of-type(1n+1) {
688 clear: both; }
689 #spectacle .medium-up-1 > .column:last-child, #spectacle .medium-up-1 > .columns:last-child, #spectacle article .prop-row .medium-up-1 > .prop-name:last-child, #spectacle article .prop-row .medium-up-1 > .prop-value:last-child, #spectacle article .medium-up-1 > .doc-copy:last-child, #spectacle article .medium-up-1 > .doc-examples:last-child {
690 float: left; }
691 #spectacle .medium-up-2 > .column, #spectacle .medium-up-2 > .columns, #spectacle article .prop-row .medium-up-2 > .prop-name, #spectacle article .prop-row .medium-up-2 > .prop-value, #spectacle article .medium-up-2 > .doc-copy, #spectacle article .medium-up-2 > .doc-examples {
692 float: left;
693 width: 50%; }
694 #spectacle .medium-up-2 > .column:nth-of-type(1n), #spectacle .medium-up-2 > .columns:nth-of-type(1n), #spectacle article .prop-row .medium-up-2 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .medium-up-2 > .prop-value:nth-of-type(1n), #spectacle article .medium-up-2 > .doc-copy:nth-of-type(1n), #spectacle article .medium-up-2 > .doc-examples:nth-of-type(1n) {
695 clear: none; }
696 #spectacle .medium-up-2 > .column:nth-of-type(2n+1), #spectacle .medium-up-2 > .columns:nth-of-type(2n+1), #spectacle article .prop-row .medium-up-2 > .prop-name:nth-of-type(2n+1), #spectacle article .prop-row .medium-up-2 > .prop-value:nth-of-type(2n+1), #spectacle article .medium-up-2 > .doc-copy:nth-of-type(2n+1), #spectacle article .medium-up-2 > .doc-examples:nth-of-type(2n+1) {
697 clear: both; }
698 #spectacle .medium-up-2 > .column:last-child, #spectacle .medium-up-2 > .columns:last-child, #spectacle article .prop-row .medium-up-2 > .prop-name:last-child, #spectacle article .prop-row .medium-up-2 > .prop-value:last-child, #spectacle article .medium-up-2 > .doc-copy:last-child, #spectacle article .medium-up-2 > .doc-examples:last-child {
699 float: left; }
700 #spectacle .medium-up-3 > .column, #spectacle .medium-up-3 > .columns, #spectacle article .prop-row .medium-up-3 > .prop-name, #spectacle article .prop-row .medium-up-3 > .prop-value, #spectacle article .medium-up-3 > .doc-copy, #spectacle article .medium-up-3 > .doc-examples {
701 float: left;
702 width: 33.3333333333%; }
703 #spectacle .medium-up-3 > .column:nth-of-type(1n), #spectacle .medium-up-3 > .columns:nth-of-type(1n), #spectacle article .prop-row .medium-up-3 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .medium-up-3 > .prop-value:nth-of-type(1n), #spectacle article .medium-up-3 > .doc-copy:nth-of-type(1n), #spectacle article .medium-up-3 > .doc-examples:nth-of-type(1n) {
704 clear: none; }
705 #spectacle .medium-up-3 > .column:nth-of-type(3n+1), #spectacle .medium-up-3 > .columns:nth-of-type(3n+1), #spectacle article .prop-row .medium-up-3 > .prop-name:nth-of-type(3n+1), #spectacle article .prop-row .medium-up-3 > .prop-value:nth-of-type(3n+1), #spectacle article .medium-up-3 > .doc-copy:nth-of-type(3n+1), #spectacle article .medium-up-3 > .doc-examples:nth-of-type(3n+1) {
706 clear: both; }
707 #spectacle .medium-up-3 > .column:last-child, #spectacle .medium-up-3 > .columns:last-child, #spectacle article .prop-row .medium-up-3 > .prop-name:last-child, #spectacle article .prop-row .medium-up-3 > .prop-value:last-child, #spectacle article .medium-up-3 > .doc-copy:last-child, #spectacle article .medium-up-3 > .doc-examples:last-child {
708 float: left; }
709 #spectacle .medium-up-4 > .column, #spectacle .medium-up-4 > .columns, #spectacle article .prop-row .medium-up-4 > .prop-name, #spectacle article .prop-row .medium-up-4 > .prop-value, #spectacle article .medium-up-4 > .doc-copy, #spectacle article .medium-up-4 > .doc-examples {
710 float: left;
711 width: 25%; }
712 #spectacle .medium-up-4 > .column:nth-of-type(1n), #spectacle .medium-up-4 > .columns:nth-of-type(1n), #spectacle article .prop-row .medium-up-4 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .medium-up-4 > .prop-value:nth-of-type(1n), #spectacle article .medium-up-4 > .doc-copy:nth-of-type(1n), #spectacle article .medium-up-4 > .doc-examples:nth-of-type(1n) {
713 clear: none; }
714 #spectacle .medium-up-4 > .column:nth-of-type(4n+1), #spectacle .medium-up-4 > .columns:nth-of-type(4n+1), #spectacle article .prop-row .medium-up-4 > .prop-name:nth-of-type(4n+1), #spectacle article .prop-row .medium-up-4 > .prop-value:nth-of-type(4n+1), #spectacle article .medium-up-4 > .doc-copy:nth-of-type(4n+1), #spectacle article .medium-up-4 > .doc-examples:nth-of-type(4n+1) {
715 clear: both; }
716 #spectacle .medium-up-4 > .column:last-child, #spectacle .medium-up-4 > .columns:last-child, #spectacle article .prop-row .medium-up-4 > .prop-name:last-child, #spectacle article .prop-row .medium-up-4 > .prop-value:last-child, #spectacle article .medium-up-4 > .doc-copy:last-child, #spectacle article .medium-up-4 > .doc-examples:last-child {
717 float: left; }
718 #spectacle .medium-up-5 > .column, #spectacle .medium-up-5 > .columns, #spectacle article .prop-row .medium-up-5 > .prop-name, #spectacle article .prop-row .medium-up-5 > .prop-value, #spectacle article .medium-up-5 > .doc-copy, #spectacle article .medium-up-5 > .doc-examples {
719 float: left;
720 width: 20%; }
721 #spectacle .medium-up-5 > .column:nth-of-type(1n), #spectacle .medium-up-5 > .columns:nth-of-type(1n), #spectacle article .prop-row .medium-up-5 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .medium-up-5 > .prop-value:nth-of-type(1n), #spectacle article .medium-up-5 > .doc-copy:nth-of-type(1n), #spectacle article .medium-up-5 > .doc-examples:nth-of-type(1n) {
722 clear: none; }
723 #spectacle .medium-up-5 > .column:nth-of-type(5n+1), #spectacle .medium-up-5 > .columns:nth-of-type(5n+1), #spectacle article .prop-row .medium-up-5 > .prop-name:nth-of-type(5n+1), #spectacle article .prop-row .medium-up-5 > .prop-value:nth-of-type(5n+1), #spectacle article .medium-up-5 > .doc-copy:nth-of-type(5n+1), #spectacle article .medium-up-5 > .doc-examples:nth-of-type(5n+1) {
724 clear: both; }
725 #spectacle .medium-up-5 > .column:last-child, #spectacle .medium-up-5 > .columns:last-child, #spectacle article .prop-row .medium-up-5 > .prop-name:last-child, #spectacle article .prop-row .medium-up-5 > .prop-value:last-child, #spectacle article .medium-up-5 > .doc-copy:last-child, #spectacle article .medium-up-5 > .doc-examples:last-child {
726 float: left; }
727 #spectacle .medium-up-6 > .column, #spectacle .medium-up-6 > .columns, #spectacle article .prop-row .medium-up-6 > .prop-name, #spectacle article .prop-row .medium-up-6 > .prop-value, #spectacle article .medium-up-6 > .doc-copy, #spectacle article .medium-up-6 > .doc-examples {
728 float: left;
729 width: 16.6666666667%; }
730 #spectacle .medium-up-6 > .column:nth-of-type(1n), #spectacle .medium-up-6 > .columns:nth-of-type(1n), #spectacle article .prop-row .medium-up-6 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .medium-up-6 > .prop-value:nth-of-type(1n), #spectacle article .medium-up-6 > .doc-copy:nth-of-type(1n), #spectacle article .medium-up-6 > .doc-examples:nth-of-type(1n) {
731 clear: none; }
732 #spectacle .medium-up-6 > .column:nth-of-type(6n+1), #spectacle .medium-up-6 > .columns:nth-of-type(6n+1), #spectacle article .prop-row .medium-up-6 > .prop-name:nth-of-type(6n+1), #spectacle article .prop-row .medium-up-6 > .prop-value:nth-of-type(6n+1), #spectacle article .medium-up-6 > .doc-copy:nth-of-type(6n+1), #spectacle article .medium-up-6 > .doc-examples:nth-of-type(6n+1) {
733 clear: both; }
734 #spectacle .medium-up-6 > .column:last-child, #spectacle .medium-up-6 > .columns:last-child, #spectacle article .prop-row .medium-up-6 > .prop-name:last-child, #spectacle article .prop-row .medium-up-6 > .prop-value:last-child, #spectacle article .medium-up-6 > .doc-copy:last-child, #spectacle article .medium-up-6 > .doc-examples:last-child {
735 float: left; }
736 #spectacle .medium-up-7 > .column, #spectacle .medium-up-7 > .columns, #spectacle article .prop-row .medium-up-7 > .prop-name, #spectacle article .prop-row .medium-up-7 > .prop-value, #spectacle article .medium-up-7 > .doc-copy, #spectacle article .medium-up-7 > .doc-examples {
737 float: left;
738 width: 14.2857142857%; }
739 #spectacle .medium-up-7 > .column:nth-of-type(1n), #spectacle .medium-up-7 > .columns:nth-of-type(1n), #spectacle article .prop-row .medium-up-7 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .medium-up-7 > .prop-value:nth-of-type(1n), #spectacle article .medium-up-7 > .doc-copy:nth-of-type(1n), #spectacle article .medium-up-7 > .doc-examples:nth-of-type(1n) {
740 clear: none; }
741 #spectacle .medium-up-7 > .column:nth-of-type(7n+1), #spectacle .medium-up-7 > .columns:nth-of-type(7n+1), #spectacle article .prop-row .medium-up-7 > .prop-name:nth-of-type(7n+1), #spectacle article .prop-row .medium-up-7 > .prop-value:nth-of-type(7n+1), #spectacle article .medium-up-7 > .doc-copy:nth-of-type(7n+1), #spectacle article .medium-up-7 > .doc-examples:nth-of-type(7n+1) {
742 clear: both; }
743 #spectacle .medium-up-7 > .column:last-child, #spectacle .medium-up-7 > .columns:last-child, #spectacle article .prop-row .medium-up-7 > .prop-name:last-child, #spectacle article .prop-row .medium-up-7 > .prop-value:last-child, #spectacle article .medium-up-7 > .doc-copy:last-child, #spectacle article .medium-up-7 > .doc-examples:last-child {
744 float: left; }
745 #spectacle .medium-up-8 > .column, #spectacle .medium-up-8 > .columns, #spectacle article .prop-row .medium-up-8 > .prop-name, #spectacle article .prop-row .medium-up-8 > .prop-value, #spectacle article .medium-up-8 > .doc-copy, #spectacle article .medium-up-8 > .doc-examples {
746 float: left;
747 width: 12.5%; }
748 #spectacle .medium-up-8 > .column:nth-of-type(1n), #spectacle .medium-up-8 > .columns:nth-of-type(1n), #spectacle article .prop-row .medium-up-8 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .medium-up-8 > .prop-value:nth-of-type(1n), #spectacle article .medium-up-8 > .doc-copy:nth-of-type(1n), #spectacle article .medium-up-8 > .doc-examples:nth-of-type(1n) {
749 clear: none; }
750 #spectacle .medium-up-8 > .column:nth-of-type(8n+1), #spectacle .medium-up-8 > .columns:nth-of-type(8n+1), #spectacle article .prop-row .medium-up-8 > .prop-name:nth-of-type(8n+1), #spectacle article .prop-row .medium-up-8 > .prop-value:nth-of-type(8n+1), #spectacle article .medium-up-8 > .doc-copy:nth-of-type(8n+1), #spectacle article .medium-up-8 > .doc-examples:nth-of-type(8n+1) {
751 clear: both; }
752 #spectacle .medium-up-8 > .column:last-child, #spectacle .medium-up-8 > .columns:last-child, #spectacle article .prop-row .medium-up-8 > .prop-name:last-child, #spectacle article .prop-row .medium-up-8 > .prop-value:last-child, #spectacle article .medium-up-8 > .doc-copy:last-child, #spectacle article .medium-up-8 > .doc-examples:last-child {
753 float: left; }
754 #spectacle .medium-collapse > .column, #spectacle .medium-collapse > .columns, #spectacle article .prop-row .medium-collapse > .prop-name, #spectacle article .prop-row .medium-collapse > .prop-value, #spectacle article .medium-collapse > .doc-copy, #spectacle article .medium-collapse > .doc-examples {
755 padding-right: 0;
756 padding-left: 0; }
757 #spectacle .medium-collapse .row, #spectacle .medium-collapse article .prop-row, #spectacle article .medium-collapse .prop-row, #spectacle .medium-collapse article .doc-row, #spectacle article .medium-collapse .doc-row {
758 margin-right: 0;
759 margin-left: 0; }
760 #spectacle .expanded.row .medium-collapse.row, #spectacle article .expanded.prop-row .medium-collapse.row, #spectacle article .expanded.doc-row .medium-collapse.row, #spectacle .expanded.row article .medium-collapse.prop-row, #spectacle article .expanded.row .medium-collapse.prop-row, #spectacle article .expanded.prop-row .medium-collapse.prop-row, #spectacle article .expanded.doc-row .medium-collapse.prop-row, #spectacle .expanded.row article .medium-collapse.doc-row, #spectacle article .expanded.row .medium-collapse.doc-row, #spectacle article .expanded.prop-row .medium-collapse.doc-row, #spectacle article .expanded.doc-row .medium-collapse.doc-row {
761 margin-right: 0;
762 margin-left: 0; }
763 #spectacle .medium-uncollapse > .column, #spectacle .medium-uncollapse > .columns, #spectacle article .prop-row .medium-uncollapse > .prop-name, #spectacle article .prop-row .medium-uncollapse > .prop-value, #spectacle article .medium-uncollapse > .doc-copy, #spectacle article .medium-uncollapse > .doc-examples {
764 padding-right: 0.9868421053rem;
765 padding-left: 0.9868421053rem; }
766 #spectacle .medium-centered {
767 margin-right: auto;
768 margin-left: auto; }
769 #spectacle .medium-centered, #spectacle .medium-centered:last-child:not(:first-child) {
770 float: none;
771 clear: both; }
772 #spectacle .medium-uncentered,
773 #spectacle .medium-push-0,
774 #spectacle .medium-pull-0 {
775 position: static;
776 float: left;
777 margin-right: 0;
778 margin-left: 0; } }
779 @media print, screen and (min-width: 64em) {
780 #spectacle .large-1 {
781 width: 8.3333333333%; }
782 #spectacle .large-push-1 {
783 position: relative;
784 left: 8.3333333333%; }
785 #spectacle .large-pull-1 {
786 position: relative;
787 left: -8.3333333333%; }
788 #spectacle .large-offset-0 {
789 margin-left: 0%; }
790 #spectacle .large-2 {
791 width: 16.6666666667%; }
792 #spectacle .large-push-2 {
793 position: relative;
794 left: 16.6666666667%; }
795 #spectacle .large-pull-2 {
796 position: relative;
797 left: -16.6666666667%; }
798 #spectacle .large-offset-1 {
799 margin-left: 8.3333333333%; }
800 #spectacle .large-3 {
801 width: 25%; }
802 #spectacle .large-push-3 {
803 position: relative;
804 left: 25%; }
805 #spectacle .large-pull-3 {
806 position: relative;
807 left: -25%; }
808 #spectacle .large-offset-2 {
809 margin-left: 16.6666666667%; }
810 #spectacle .large-4 {
811 width: 33.3333333333%; }
812 #spectacle .large-push-4 {
813 position: relative;
814 left: 33.3333333333%; }
815 #spectacle .large-pull-4 {
816 position: relative;
817 left: -33.3333333333%; }
818 #spectacle .large-offset-3 {
819 margin-left: 25%; }
820 #spectacle .large-5 {
821 width: 41.6666666667%; }
822 #spectacle .large-push-5 {
823 position: relative;
824 left: 41.6666666667%; }
825 #spectacle .large-pull-5 {
826 position: relative;
827 left: -41.6666666667%; }
828 #spectacle .large-offset-4 {
829 margin-left: 33.3333333333%; }
830 #spectacle .large-6, #spectacle .doc-content, #spectacle article h1.doc-title, #spectacle article > h1, #spectacle article > h2, #spectacle article .panel > h2, #spectacle article .panel > h3, #spectacle article .doc-copy, #spectacle article .doc-examples {
831 width: 50%; }
832 #spectacle .large-push-6 {
833 position: relative;
834 left: 50%; }
835 #spectacle .large-pull-6 {
836 position: relative;
837 left: -50%; }
838 #spectacle .large-offset-5 {
839 margin-left: 41.6666666667%; }
840 #spectacle .large-7 {
841 width: 58.3333333333%; }
842 #spectacle .large-push-7 {
843 position: relative;
844 left: 58.3333333333%; }
845 #spectacle .large-pull-7 {
846 position: relative;
847 left: -58.3333333333%; }
848 #spectacle .large-offset-6 {
849 margin-left: 50%; }
850 #spectacle .large-8 {
851 width: 66.6666666667%; }
852 #spectacle .large-push-8 {
853 position: relative;
854 left: 66.6666666667%; }
855 #spectacle .large-pull-8 {
856 position: relative;
857 left: -66.6666666667%; }
858 #spectacle .large-offset-7 {
859 margin-left: 58.3333333333%; }
860 #spectacle .large-9 {
861 width: 75%; }
862 #spectacle .large-push-9 {
863 position: relative;
864 left: 75%; }
865 #spectacle .large-pull-9 {
866 position: relative;
867 left: -75%; }
868 #spectacle .large-offset-8 {
869 margin-left: 66.6666666667%; }
870 #spectacle .large-10 {
871 width: 83.3333333333%; }
872 #spectacle .large-push-10 {
873 position: relative;
874 left: 83.3333333333%; }
875 #spectacle .large-pull-10 {
876 position: relative;
877 left: -83.3333333333%; }
878 #spectacle .large-offset-9 {
879 margin-left: 75%; }
880 #spectacle .large-11 {
881 width: 91.6666666667%; }
882 #spectacle .large-push-11 {
883 position: relative;
884 left: 91.6666666667%; }
885 #spectacle .large-pull-11 {
886 position: relative;
887 left: -91.6666666667%; }
888 #spectacle .large-offset-10 {
889 margin-left: 83.3333333333%; }
890 #spectacle .large-12 {
891 width: 100%; }
892 #spectacle .large-offset-11 {
893 margin-left: 91.6666666667%; }
894 #spectacle .large-up-1 > .column, #spectacle .large-up-1 > .columns, #spectacle article .prop-row .large-up-1 > .prop-name, #spectacle article .prop-row .large-up-1 > .prop-value, #spectacle article .large-up-1 > .doc-copy, #spectacle article .large-up-1 > .doc-examples {
895 float: left;
896 width: 100%; }
897 #spectacle .large-up-1 > .column:nth-of-type(1n), #spectacle .large-up-1 > .columns:nth-of-type(1n), #spectacle article .prop-row .large-up-1 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .large-up-1 > .prop-value:nth-of-type(1n), #spectacle article .large-up-1 > .doc-copy:nth-of-type(1n), #spectacle article .large-up-1 > .doc-examples:nth-of-type(1n) {
898 clear: none; }
899 #spectacle .large-up-1 > .column:nth-of-type(1n+1), #spectacle .large-up-1 > .columns:nth-of-type(1n+1), #spectacle article .prop-row .large-up-1 > .prop-name:nth-of-type(1n+1), #spectacle article .prop-row .large-up-1 > .prop-value:nth-of-type(1n+1), #spectacle article .large-up-1 > .doc-copy:nth-of-type(1n+1), #spectacle article .large-up-1 > .doc-examples:nth-of-type(1n+1) {
900 clear: both; }
901 #spectacle .large-up-1 > .column:last-child, #spectacle .large-up-1 > .columns:last-child, #spectacle article .prop-row .large-up-1 > .prop-name:last-child, #spectacle article .prop-row .large-up-1 > .prop-value:last-child, #spectacle article .large-up-1 > .doc-copy:last-child, #spectacle article .large-up-1 > .doc-examples:last-child {
902 float: left; }
903 #spectacle .large-up-2 > .column, #spectacle .large-up-2 > .columns, #spectacle article .prop-row .large-up-2 > .prop-name, #spectacle article .prop-row .large-up-2 > .prop-value, #spectacle article .large-up-2 > .doc-copy, #spectacle article .large-up-2 > .doc-examples {
904 float: left;
905 width: 50%; }
906 #spectacle .large-up-2 > .column:nth-of-type(1n), #spectacle .large-up-2 > .columns:nth-of-type(1n), #spectacle article .prop-row .large-up-2 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .large-up-2 > .prop-value:nth-of-type(1n), #spectacle article .large-up-2 > .doc-copy:nth-of-type(1n), #spectacle article .large-up-2 > .doc-examples:nth-of-type(1n) {
907 clear: none; }
908 #spectacle .large-up-2 > .column:nth-of-type(2n+1), #spectacle .large-up-2 > .columns:nth-of-type(2n+1), #spectacle article .prop-row .large-up-2 > .prop-name:nth-of-type(2n+1), #spectacle article .prop-row .large-up-2 > .prop-value:nth-of-type(2n+1), #spectacle article .large-up-2 > .doc-copy:nth-of-type(2n+1), #spectacle article .large-up-2 > .doc-examples:nth-of-type(2n+1) {
909 clear: both; }
910 #spectacle .large-up-2 > .column:last-child, #spectacle .large-up-2 > .columns:last-child, #spectacle article .prop-row .large-up-2 > .prop-name:last-child, #spectacle article .prop-row .large-up-2 > .prop-value:last-child, #spectacle article .large-up-2 > .doc-copy:last-child, #spectacle article .large-up-2 > .doc-examples:last-child {
911 float: left; }
912 #spectacle .large-up-3 > .column, #spectacle .large-up-3 > .columns, #spectacle article .prop-row .large-up-3 > .prop-name, #spectacle article .prop-row .large-up-3 > .prop-value, #spectacle article .large-up-3 > .doc-copy, #spectacle article .large-up-3 > .doc-examples {
913 float: left;
914 width: 33.3333333333%; }
915 #spectacle .large-up-3 > .column:nth-of-type(1n), #spectacle .large-up-3 > .columns:nth-of-type(1n), #spectacle article .prop-row .large-up-3 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .large-up-3 > .prop-value:nth-of-type(1n), #spectacle article .large-up-3 > .doc-copy:nth-of-type(1n), #spectacle article .large-up-3 > .doc-examples:nth-of-type(1n) {
916 clear: none; }
917 #spectacle .large-up-3 > .column:nth-of-type(3n+1), #spectacle .large-up-3 > .columns:nth-of-type(3n+1), #spectacle article .prop-row .large-up-3 > .prop-name:nth-of-type(3n+1), #spectacle article .prop-row .large-up-3 > .prop-value:nth-of-type(3n+1), #spectacle article .large-up-3 > .doc-copy:nth-of-type(3n+1), #spectacle article .large-up-3 > .doc-examples:nth-of-type(3n+1) {
918 clear: both; }
919 #spectacle .large-up-3 > .column:last-child, #spectacle .large-up-3 > .columns:last-child, #spectacle article .prop-row .large-up-3 > .prop-name:last-child, #spectacle article .prop-row .large-up-3 > .prop-value:last-child, #spectacle article .large-up-3 > .doc-copy:last-child, #spectacle article .large-up-3 > .doc-examples:last-child {
920 float: left; }
921 #spectacle .large-up-4 > .column, #spectacle .large-up-4 > .columns, #spectacle article .prop-row .large-up-4 > .prop-name, #spectacle article .prop-row .large-up-4 > .prop-value, #spectacle article .large-up-4 > .doc-copy, #spectacle article .large-up-4 > .doc-examples {
922 float: left;
923 width: 25%; }
924 #spectacle .large-up-4 > .column:nth-of-type(1n), #spectacle .large-up-4 > .columns:nth-of-type(1n), #spectacle article .prop-row .large-up-4 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .large-up-4 > .prop-value:nth-of-type(1n), #spectacle article .large-up-4 > .doc-copy:nth-of-type(1n), #spectacle article .large-up-4 > .doc-examples:nth-of-type(1n) {
925 clear: none; }
926 #spectacle .large-up-4 > .column:nth-of-type(4n+1), #spectacle .large-up-4 > .columns:nth-of-type(4n+1), #spectacle article .prop-row .large-up-4 > .prop-name:nth-of-type(4n+1), #spectacle article .prop-row .large-up-4 > .prop-value:nth-of-type(4n+1), #spectacle article .large-up-4 > .doc-copy:nth-of-type(4n+1), #spectacle article .large-up-4 > .doc-examples:nth-of-type(4n+1) {
927 clear: both; }
928 #spectacle .large-up-4 > .column:last-child, #spectacle .large-up-4 > .columns:last-child, #spectacle article .prop-row .large-up-4 > .prop-name:last-child, #spectacle article .prop-row .large-up-4 > .prop-value:last-child, #spectacle article .large-up-4 > .doc-copy:last-child, #spectacle article .large-up-4 > .doc-examples:last-child {
929 float: left; }
930 #spectacle .large-up-5 > .column, #spectacle .large-up-5 > .columns, #spectacle article .prop-row .large-up-5 > .prop-name, #spectacle article .prop-row .large-up-5 > .prop-value, #spectacle article .large-up-5 > .doc-copy, #spectacle article .large-up-5 > .doc-examples {
931 float: left;
932 width: 20%; }
933 #spectacle .large-up-5 > .column:nth-of-type(1n), #spectacle .large-up-5 > .columns:nth-of-type(1n), #spectacle article .prop-row .large-up-5 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .large-up-5 > .prop-value:nth-of-type(1n), #spectacle article .large-up-5 > .doc-copy:nth-of-type(1n), #spectacle article .large-up-5 > .doc-examples:nth-of-type(1n) {
934 clear: none; }
935 #spectacle .large-up-5 > .column:nth-of-type(5n+1), #spectacle .large-up-5 > .columns:nth-of-type(5n+1), #spectacle article .prop-row .large-up-5 > .prop-name:nth-of-type(5n+1), #spectacle article .prop-row .large-up-5 > .prop-value:nth-of-type(5n+1), #spectacle article .large-up-5 > .doc-copy:nth-of-type(5n+1), #spectacle article .large-up-5 > .doc-examples:nth-of-type(5n+1) {
936 clear: both; }
937 #spectacle .large-up-5 > .column:last-child, #spectacle .large-up-5 > .columns:last-child, #spectacle article .prop-row .large-up-5 > .prop-name:last-child, #spectacle article .prop-row .large-up-5 > .prop-value:last-child, #spectacle article .large-up-5 > .doc-copy:last-child, #spectacle article .large-up-5 > .doc-examples:last-child {
938 float: left; }
939 #spectacle .large-up-6 > .column, #spectacle .large-up-6 > .columns, #spectacle article .prop-row .large-up-6 > .prop-name, #spectacle article .prop-row .large-up-6 > .prop-value, #spectacle article .large-up-6 > .doc-copy, #spectacle article .large-up-6 > .doc-examples {
940 float: left;
941 width: 16.6666666667%; }
942 #spectacle .large-up-6 > .column:nth-of-type(1n), #spectacle .large-up-6 > .columns:nth-of-type(1n), #spectacle article .prop-row .large-up-6 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .large-up-6 > .prop-value:nth-of-type(1n), #spectacle article .large-up-6 > .doc-copy:nth-of-type(1n), #spectacle article .large-up-6 > .doc-examples:nth-of-type(1n) {
943 clear: none; }
944 #spectacle .large-up-6 > .column:nth-of-type(6n+1), #spectacle .large-up-6 > .columns:nth-of-type(6n+1), #spectacle article .prop-row .large-up-6 > .prop-name:nth-of-type(6n+1), #spectacle article .prop-row .large-up-6 > .prop-value:nth-of-type(6n+1), #spectacle article .large-up-6 > .doc-copy:nth-of-type(6n+1), #spectacle article .large-up-6 > .doc-examples:nth-of-type(6n+1) {
945 clear: both; }
946 #spectacle .large-up-6 > .column:last-child, #spectacle .large-up-6 > .columns:last-child, #spectacle article .prop-row .large-up-6 > .prop-name:last-child, #spectacle article .prop-row .large-up-6 > .prop-value:last-child, #spectacle article .large-up-6 > .doc-copy:last-child, #spectacle article .large-up-6 > .doc-examples:last-child {
947 float: left; }
948 #spectacle .large-up-7 > .column, #spectacle .large-up-7 > .columns, #spectacle article .prop-row .large-up-7 > .prop-name, #spectacle article .prop-row .large-up-7 > .prop-value, #spectacle article .large-up-7 > .doc-copy, #spectacle article .large-up-7 > .doc-examples {
949 float: left;
950 width: 14.2857142857%; }
951 #spectacle .large-up-7 > .column:nth-of-type(1n), #spectacle .large-up-7 > .columns:nth-of-type(1n), #spectacle article .prop-row .large-up-7 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .large-up-7 > .prop-value:nth-of-type(1n), #spectacle article .large-up-7 > .doc-copy:nth-of-type(1n), #spectacle article .large-up-7 > .doc-examples:nth-of-type(1n) {
952 clear: none; }
953 #spectacle .large-up-7 > .column:nth-of-type(7n+1), #spectacle .large-up-7 > .columns:nth-of-type(7n+1), #spectacle article .prop-row .large-up-7 > .prop-name:nth-of-type(7n+1), #spectacle article .prop-row .large-up-7 > .prop-value:nth-of-type(7n+1), #spectacle article .large-up-7 > .doc-copy:nth-of-type(7n+1), #spectacle article .large-up-7 > .doc-examples:nth-of-type(7n+1) {
954 clear: both; }
955 #spectacle .large-up-7 > .column:last-child, #spectacle .large-up-7 > .columns:last-child, #spectacle article .prop-row .large-up-7 > .prop-name:last-child, #spectacle article .prop-row .large-up-7 > .prop-value:last-child, #spectacle article .large-up-7 > .doc-copy:last-child, #spectacle article .large-up-7 > .doc-examples:last-child {
956 float: left; }
957 #spectacle .large-up-8 > .column, #spectacle .large-up-8 > .columns, #spectacle article .prop-row .large-up-8 > .prop-name, #spectacle article .prop-row .large-up-8 > .prop-value, #spectacle article .large-up-8 > .doc-copy, #spectacle article .large-up-8 > .doc-examples {
958 float: left;
959 width: 12.5%; }
960 #spectacle .large-up-8 > .column:nth-of-type(1n), #spectacle .large-up-8 > .columns:nth-of-type(1n), #spectacle article .prop-row .large-up-8 > .prop-name:nth-of-type(1n), #spectacle article .prop-row .large-up-8 > .prop-value:nth-of-type(1n), #spectacle article .large-up-8 > .doc-copy:nth-of-type(1n), #spectacle article .large-up-8 > .doc-examples:nth-of-type(1n) {
961 clear: none; }
962 #spectacle .large-up-8 > .column:nth-of-type(8n+1), #spectacle .large-up-8 > .columns:nth-of-type(8n+1), #spectacle article .prop-row .large-up-8 > .prop-name:nth-of-type(8n+1), #spectacle article .prop-row .large-up-8 > .prop-value:nth-of-type(8n+1), #spectacle article .large-up-8 > .doc-copy:nth-of-type(8n+1), #spectacle article .large-up-8 > .doc-examples:nth-of-type(8n+1) {
963 clear: both; }
964 #spectacle .large-up-8 > .column:last-child, #spectacle .large-up-8 > .columns:last-child, #spectacle article .prop-row .large-up-8 > .prop-name:last-child, #spectacle article .prop-row .large-up-8 > .prop-value:last-child, #spectacle article .large-up-8 > .doc-copy:last-child, #spectacle article .large-up-8 > .doc-examples:last-child {
965 float: left; }
966 #spectacle .large-collapse > .column, #spectacle .large-collapse > .columns, #spectacle article .prop-row .large-collapse > .prop-name, #spectacle article .prop-row .large-collapse > .prop-value, #spectacle article .large-collapse > .doc-copy, #spectacle article .large-collapse > .doc-examples {
967 padding-right: 0;
968 padding-left: 0; }
969 #spectacle .large-collapse .row, #spectacle .large-collapse article .prop-row, #spectacle article .large-collapse .prop-row, #spectacle .large-collapse article .doc-row, #spectacle article .large-collapse .doc-row {
970 margin-right: 0;
971 margin-left: 0; }
972 #spectacle .expanded.row .large-collapse.row, #spectacle article .expanded.prop-row .large-collapse.row, #spectacle article .expanded.doc-row .large-collapse.row, #spectacle .expanded.row article .large-collapse.prop-row, #spectacle article .expanded.row .large-collapse.prop-row, #spectacle article .expanded.prop-row .large-collapse.prop-row, #spectacle article .expanded.doc-row .large-collapse.prop-row, #spectacle .expanded.row article .large-collapse.doc-row, #spectacle article .expanded.row .large-collapse.doc-row, #spectacle article .expanded.prop-row .large-collapse.doc-row, #spectacle article .expanded.doc-row .large-collapse.doc-row {
973 margin-right: 0;
974 margin-left: 0; }
975 #spectacle .large-uncollapse > .column, #spectacle .large-uncollapse > .columns, #spectacle article .prop-row .large-uncollapse > .prop-name, #spectacle article .prop-row .large-uncollapse > .prop-value, #spectacle article .large-uncollapse > .doc-copy, #spectacle article .large-uncollapse > .doc-examples {
976 padding-right: 0.9868421053rem;
977 padding-left: 0.9868421053rem; }
978 #spectacle .large-centered {
979 margin-right: auto;
980 margin-left: auto; }
981 #spectacle .large-centered, #spectacle .large-centered:last-child:not(:first-child) {
982 float: none;
983 clear: both; }
984 #spectacle .large-uncentered,
985 #spectacle .large-push-0,
986 #spectacle .large-pull-0 {
987 position: static;
988 float: left;
989 margin-right: 0;
990 margin-left: 0; } }
991 #spectacle .column-block {
992 margin-bottom: 1.3157894737rem; }
993 #spectacle .column-block > :last-child {
994 margin-bottom: 0; }
995 @media print, screen and (min-width: 40em) {
996 #spectacle .column-block {
997 margin-bottom: 1.9736842105rem; }
998 #spectacle .column-block > :last-child {
999 margin-bottom: 0; } }
1000 #spectacle #sidebar {
1001 padding-top: 1.5rem;
1002 padding-left: 1.5rem;
1003 padding-right: 1rem;
1004 padding-bottom: 2rem;
1005 border-right: 1px solid #eee;
1006 background-color: #f6f6f6;
1007 height: 100vh;
1008 overflow: auto;
1009 position: fixed;
1010 bottom: 0;
1011 left: 0;
1012 top: 0;
1013 width: 250px; }
1014 #spectacle #sidebar h5 {
1015 margin: 1.5rem 0 0.65rem;
1016 text-transform: uppercase;
1017 color: #b6b6b6;
1018 font-size: 0.9rem; }
1019 #spectacle #sidebar a {
1020 display: block;
1021 margin: 0 0 0.25rem;
1022 color: #4a5055;
1023 white-space: nowrap;
1024 overflow: hidden;
1025 -o-text-overflow: ellipsis;
1026 text-overflow: ellipsis; }
1027 #spectacle #sidebar a.active {
1028 color: #1779ba; }
1029 #spectacle #sidebar ul {
1030 list-style-type: none;
1031 padding: 0;
1032 margin: 0 0 0.75rem 0.75rem; }
1033 #spectacle #sidebar section > ul {
1034 display: none; }
1035 #spectacle #sidebar section.expand > ul {
1036 display: block; }
1037 #spectacle #sidebar .close-button {
1038 opacity: 0.5; }
1039 #spectacle .doc-content, #spectacle article h1.doc-title, #spectacle article > h1, #spectacle article > h2, #spectacle article .panel > h2, #spectacle article .panel > h3, #spectacle article .doc-copy, #spectacle article .doc-examples {
1040 padding-left: 2.25rem !important;
1041 padding-right: 2.25rem !important; }
1042 #spectacle .doc-separator, #spectacle article h2 {
1043 margin-top: 2em;
1044 padding-top: 2em;
1045 padding-bottom: 2em;
1046 border-top: 1px solid #e2e2e2; }
1047 #spectacle #docs {
1048 background: #fefefe;
1049 overflow: hidden;
1050 position: relative; }
1051 #spectacle #docs .example-box {
1052 display: none; }
1053 @media print, screen and (min-width: 64em) {
1054 #spectacle #docs .example-box {
1055 display: block;
1056 background-color: #2d3134;
1057 position: absolute;
1058 right: 0;
1059 top: 0;
1060 bottom: 0; } }
1061 #spectacle article {
1062 position: relative; }
1063 #spectacle article .no-description {
1064 color: #8a8a8a; }
1065 #spectacle article dt {
1066 color: #2d3134; }
1067 #spectacle article table.table {
1068 width: 100%; }
1069 #spectacle article code {
1070 font-size: 0.9em;
1071 border-radius: 3px; }
1072 #spectacle article p:last-child:first-child {
1073 margin-bottom: 0; }
1074 #spectacle article h1 {
1075 margin: 2.5rem 0 0;
1076 padding-top: 0.75rem;
1077 padding-bottom: 0.75rem;
1078 padding-left: 2.25rem;
1079 padding-right: 2.25rem;
1080 border-top: 1px solid #e8e8e8;
1081 border-bottom: 1px solid #e2e2e2;
1082 background-color: #f6f6f6; }
1083 #spectacle article h1.doc-title {
1084 margin: 0;
1085 padding-top: 2.15rem;
1086 padding-bottom: 0;
1087 font-weight: bold;
1088 background: transparent;
1089 border: none;
1090 color: #535b60; }
1091 #spectacle article h1.doc-title span {
1092 display: none;
1093 opacity: 0.65;
1094 margin-left: 5px;
1095 font-weight: normal; }
1096 #spectacle article h2 {
1097 margin-bottom: 0;
1098 padding-left: 2.25rem;
1099 padding-right: 2.25rem;
1100 padding-bottom: 0.25rem;
1101 background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi…gd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g");
1102 background-size: 100%;
1103 background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(255, 255, 255, 0.4)), color-stop(100%, rgba(255, 255, 255, 0)));
1104 background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0));
1105 background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0));
1106 background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0)); }
1107 #spectacle article h3 {
1108 margin: 0rem 0 0.75rem; }
1109 #spectacle article h1 + .panel > h2 {
1110 margin-top: 0;
1111 border-top: none; }
1112 #spectacle article h1 + .tag-description + .panel > h2 {
1113 margin-top: 2rem; }
1114 #spectacle article h1 + .panel h3 {
1115 margin-top: 1rem; }
1116 #spectacle article .panel {
1117 position: relative; }
1118 #spectacle article .prop-row {
1119 padding-top: 0.75em;
1120 padding-bottom: 0.75em;
1121 border-top: 1px solid #eee; }
1122 #spectacle article .prop-row:first-child, #spectacle article .prop-row.prop-group {
1123 border-top: 1px solid #ddd; }
1124 #spectacle article .prop-row .prop-title {
1125 font-weight: bold; }
1126 #spectacle article .prop-row .prop-type {
1127 font-weight: 400; }
1128 #spectacle article .prop-row .prop-subtitle {
1129 font-weight: 400;
1130 font-size: 80%; }
1131 #spectacle article .prop-row .prop-name {
1132 text-align: right;
1133 padding-right: 0.85rem !important;
1134 word-break: break-word; }
1135 #spectacle article .prop-row .prop-value {
1136 padding-left: 0.85rem !important;
1137 word-wrap: break-word; }
1138 #spectacle article .prop-row.prop-inner {
1139 padding-top: 0.5em;
1140 padding-bottom: 0.5em;
1141 font-size: 80%; }
1142 #spectacle article .prop-row.prop-inner .prop-name {
1143 color: #8a8a8a; }
1144 #spectacle article .prop-row.prop-inner .prop-value > span {
1145 display: block; }
1146 #spectacle article .prop-row.prop-inner .prop-value > span:before {
1147 color: #8a8a8a; }
1148 #spectacle article .prop-row.prop-inner .prop-value > span:after {
1149 color: #8a8a8a; }
1150 #spectacle article .prop-row.prop-inner .prop-value > span.json-property-type, #spectacle article .prop-row.prop-inner .prop-value > span.json-property-format {
1151 display: inline-block; }
1152 #spectacle article .doc-row {
1153 margin: 2rem 0 20px; }
1154 #spectacle article .doc-examples {
1155 padding-left: 2.25rem !important;
1156 padding-right: 2.25rem !important;
1157 color: #fefefe;
1158 background-color: #2d3134; }
1159 #spectacle article .doc-examples h5 {
1160 color: #fefefe;
1161 font-size: 1rem;
1162 opacity: 0.8; }
1163 #spectacle article .doc-examples h5 span {
1164 opacity: 0.5; }
1165 @media screen and (max-width: 63.9375em) {
1166 #spectacle article .doc-examples:not(:empty) {
1167 margin-top: 1.5rem;
1168 padding-top: 1.5rem;
1169 padding-bottom: 0.5rem; } }
1170 #spectacle article .doc-examples code {
1171 display: block;
1172 margin-bottom: 1.5rem;
1173 padding: 1.5rem;
1174 font-family: Consolas, "Liberation Mono", Courier, monospace;
1175 font-weight: inherit;
1176 color: inherit;
1177 background-color: transparent;
1178 border: none;
1179 border-top: 1px solid #000;
1180 border-bottom: 1px solid #404040;
1181 border-radius: 5px;
1182 box-shadow: 0 0 200px rgba(0, 0, 0, 0.33) inset;
1183 word-spacing: normal;
1184 white-space: pre-wrap;
1185 word-break: normal; }
1186 #spectacle article .doc-examples tbody tr:nth-child(even) {
1187 border-bottom: 0;
1188 background-color: #353a3d; }
1189 #spectacle article .doc-examples tbody, #spectacle article .doc-examples tfoot, #spectacle article .doc-examples thead {
1190 color: #FFFFFF;
1191 background-color: #2d3134;
1192 border: 0px; }
1193 #spectacle article .doc-examples thead {
1194 background-color: #2d3134; }
1195 #spectacle article .doc-examples .swagger-response-headers {
1196 background-color: transparent;
1197 border: none;
1198 border-top: 1px solid #000;
1199 border-bottom: 1px solid #404040;
1200 border-radius: 5px;
1201 box-shadow: 0 0 200px rgba(0, 0, 0, 0.33) inset;
1202 margin-bottom: 1.5rem; }
1203 #spectacle article .doc-examples .swagger-response-headers thead {
1204 color: #fefefe;
1205 font-size: 1rem;
1206 opacity: 0.8;
1207 background-color: transparent;
1208 border: none; }
1209 #spectacle article .doc-examples .swagger-response-headers tbody {
1210 border: none;
1211 background-color: transparent; }
1212 #spectacle article .doc-examples .swagger-response-headers tbody tr {
1213 background-color: transparent;
1214 border-top: 1px solid #404040; }
1215 #spectacle article .powered-by {
1216 font-size: 80%;
1217 color: #cacaca; }
1218 #spectacle article .powered-by span {
1219 color: #f68b1f; }
1220 #spectacle article .operation .operation-tags {
1221 position: absolute;
1222 top: 0;
1223 text-align: right;
1224 right: 0; }
1225 #spectacle article .operation .operation-tags .label {
1226 cursor: pointer; }
1227 #spectacle article .operation .operation-tags .label:hover {
1228 color: #e6e6e6; }
1229 @media print, screen and (min-width: 64em) {
1230 #spectacle article .operation .operation-tags {
1231 right: 50%; } }
1232 #spectacle article .operation .operation-path {
1233 word-break: break-all; }
1234 #spectacle article .security-definition-description {
1235 margin-top: 1.5rem;
1236 margin-bottom: .5rem; }
1237 #spectacle article .security-definition-scope-description {
1238 color: #8a8a8a;
1239 margin-bottom: .5rem; }
1240 #spectacle article .definition .doc-examples h5 {
1241 margin-top: -1rem; }
1242 #spectacle article .definition .doc-copy > section {
1243 margin-bottom: 1rem; }
1244 #spectacle article .definition .doc-copy > section > .json-property-type {
1245 display: none; }
1246 #spectacle article .definition dl dt {
1247 font-weight: normal; }
1248 #spectacle article .definition dl dd {
1249 font-style: italic; }
1250 #spectacle article .definition .json-property-name {
1251 font-weight: bold; }
1252 #spectacle article .hljs {
1253 line-height: 1.25;
1254 overflow-x: auto;
1255 padding: 1.5rem;
1256 margin-bottom: 1rem;
1257 border: none; }
1258 #spectacle .drawer-layout .drawer {
1259 box-shadow: 0 0 10px rgba(45, 49, 52, 0.5);
1260 transition: transform 0.5s ease;
1261 backface-visibility: hidden; }
1262 #spectacle .drawer-layout .drawer.slide-left {
1263 transform: translateX(-250px); }
1264 #spectacle .drawer-layout .drawer.slide-right {
1265 transform: translateX(250px); }
1266 #spectacle .drawer-layout .drawer .drawer-overlay {
1267 position: absolute;
1268 top: 0;
1269 left: 0;
1270 right: 0;
1271 bottom: 0;
1272 background-color: rgba(254, 254, 254, 0.25); }
1273 @media print, screen and (min-width: 64em) {
1274 #spectacle .drawer-layout .drawer.slide-left {
1275 transform: none;
1276 margin-left: -250px; }
1277 #spectacle .drawer-layout .drawer.slide-right {
1278 transform: none;
1279 margin-left: 250px; }
1280 #spectacle .drawer-layout .drawer .drawer-overlay {
1281 display: none; } }
1282 @media print, screen and (min-width: 64em) {
1283 #spectacle .drawer-layout.drawer-slide-left-large .drawer {
1284 margin-left: -250px; }
1285 #spectacle .drawer-layout.drawer-slide-left-large .floating-menu-icon {
1286 opacity: 0; }
1287 #spectacle .drawer-layout.drawer-slide-right-large .drawer {
1288 margin-left: 250px; }
1289 #spectacle .drawer-layout.drawer-slide-right-large .floating-menu-icon {
1290 opacity: 0; } }
1291 #spectacle .drawer-layout.drawer-open .floating-menu-icon {
1292 opacity: 0; }
1293 #spectacle .drawer-layout .floating-menu-icon {
1294 position: fixed;
1295 top: 0.75rem;
1296 right: 0.75rem;
1297 background-color: rgba(45, 49, 52, 0.75);
1298 padding: 0.65rem;
1299 z-index: 1;
1300 border-radius: 5px;
1301 transition: opacity 0.5s linear; }
1302 #spectacle .drawer-layout .floating-menu-icon .hamburger {
1303 position: relative;
1304 display: inline-block;
1305 vertical-align: middle;
1306 width: 20px;
1307 height: 16px;
1308 cursor: pointer; }
1309 #spectacle .drawer-layout .floating-menu-icon .hamburger::after {
1310 position: absolute;
1311 top: 0;
1312 left: 0;
1313 display: block;
1314 width: 100%;
1315 height: 2px;
1316 background: #fefefe;
1317 box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
1318 content: ''; }
1319 #spectacle .drawer-layout .floating-menu-icon .hamburger:hover::after {
1320 background: #cacaca;
1321 box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }
1322 #spectacle .hljs {
1323 display: block;
1324 overflow-x: auto;
1325 padding: 0.5em;
1326 background: #23241f; }
1327 #spectacle .hljs,
1328 #spectacle .hljs-tag,
1329 #spectacle .hljs-subst {
1330 color: #f8f8f2; }
1331 #spectacle .hljs-strong,
1332 #spectacle .hljs-emphasis {
1333 color: #a8a8a2; }
1334 #spectacle .hljs-bullet,
1335 #spectacle .hljs-quote,
1336 #spectacle .hljs-number,
1337 #spectacle .hljs-regexp,
1338 #spectacle .hljs-literal,
1339 #spectacle .hljs-link {
1340 color: #ae81ff; }
1341 #spectacle .hljs-code,
1342 #spectacle .hljs-title,
1343 #spectacle .hljs-section,
1344 #spectacle .hljs-selector-class {
1345 color: #a6e22e; }
1346 #spectacle .hljs-strong {
1347 font-weight: bold; }
1348 #spectacle .hljs-emphasis {
1349 font-style: italic; }
1350 #spectacle .hljs-keyword,
1351 #spectacle .hljs-selector-tag,
1352 #spectacle .hljs-name,
1353 #spectacle .hljs-attr {
1354 color: #f92672; }
1355 #spectacle .hljs-symbol,
1356 #spectacle .hljs-attribute {
1357 color: #66d9ef; }
1358 #spectacle .hljs-params,
1359 #spectacle .hljs-class .hljs-title {
1360 color: #f8f8f2; }
1361 #spectacle .hljs-string,
1362 #spectacle .hljs-type,
1363 #spectacle .hljs-built_in,
1364 #spectacle .hljs-builtin-name,
1365 #spectacle .hljs-selector-id,
1366 #spectacle .hljs-selector-attr,
1367 #spectacle .hljs-selector-pseudo,
1368 #spectacle .hljs-addition,
1369 #spectacle .hljs-variable,
1370 #spectacle .hljs-template-variable {
1371 color: #e6db74; }
1372 #spectacle .hljs-comment,
1373 #spectacle .hljs-deletion,
1374 #spectacle .hljs-meta {
1375 color: #75715e; }
diff --git a/support/doc/api/html/stylesheets/spectacle.min.css b/support/doc/api/html/stylesheets/spectacle.min.css
deleted file mode 100644
index 802d2ef69..000000000
--- a/support/doc/api/html/stylesheets/spectacle.min.css
+++ /dev/null
@@ -1 +0,0 @@
1@charset "UTF-8";#spectacle .swagger-operation-path:before{content:"Path";display:block;margin-bottom:.5em;color:#f68b1f;text-transform:uppercase;font-size:.9rem}#spectacle .swagger-operation-description:before{content:"Description";display:block;margin-bottom:.5em;color:#f68b1f;text-transform:uppercase;font-size:.9rem}#spectacle .swagger-request-params:before{content:"Request parameters";display:block;margin-bottom:.5em;color:#f68b1f;text-transform:uppercase;font-size:.9rem}#spectacle .swagger-request-body:before{content:"Request body";display:block;margin-bottom:.5em;color:#f68b1f;text-transform:uppercase;font-size:.9rem}#spectacle .swagger-request-body .json-schema-properties:before{display:none}#spectacle .swagger-responses:before{content:"Responses";display:block;margin-bottom:.5em;color:#f68b1f;text-transform:uppercase;font-size:.9rem}#spectacle .swagger-global:before{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#cc4b37;color:#fefefe;font-size:.75rem;border-radius:4px;padding:3px 6px;content:"global"}#spectacle table.table th.swagger-param-key{width:auto}#spectacle table.table th.swagger-param-key:before{content:"Key"}#spectacle table.table th.swagger-param-name{width:auto}#spectacle table.table th.swagger-param-name:before{content:"Name"}#spectacle table.table th.swagger-param-description{width:auto}#spectacle table.table th.swagger-param-description:before{content:"Description"}#spectacle table.table th.swagger-param-data-type{width:auto}#spectacle table.table th.swagger-param-data-type:before{content:"Data type"}#spectacle table.table th.swagger-param-type{width:auto}#spectacle table.table th.swagger-param-type:before{content:"Type"}#spectacle table.table th.swagger-request-security-schema{width:auto}#spectacle table.table th.swagger-request-security-schema:before{content:"Schema"}#spectacle table.table th.swagger-request-security-scopes{width:auto}#spectacle table.table th.swagger-request-security-scopes:before{content:"Scopes"}#spectacle table.table th.swagger-response-header-name{width:auto}#spectacle table.table th.swagger-response-header-name:before{content:"Header"}#spectacle table.table th.swagger-response-header-description{width:auto}#spectacle table.table th.swagger-response-header-description:before{content:"Description"}#spectacle table.table th.swagger-response-header-data-type{width:auto}#spectacle table.table th.swagger-response-header-data-type:before{content:"Data type"}#spectacle table.table th.swagger-response-code{width:auto}#spectacle table.table th.swagger-response-code:before{content:"Code"}#spectacle table.table th.swagger-response-description{width:auto}#spectacle table.table th.swagger-response-description:before{content:"Description"}#spectacle table.table th.swagger-response-schema{width:auto}#spectacle table.table th.swagger-response-schema:before{content:"Schema"}#spectacle .swagger-response-name-value{font-weight:700}#spectacle .swagger-response-description-text{padding-bottom:.5em}#spectacle .swagger-request-security:before{content:"Security";display:block;margin-bottom:.5em;color:#f68b1f;text-transform:uppercase;font-size:.9rem}#spectacle .swagger-security-definition-basic:before{color:#cacaca;content:"(HTTP Basic Authentication)"}#spectacle .swagger-security-definition-oauth2:before{color:#cacaca;content:"(OAuth2 Authentication)"}#spectacle .swagger-security-definition-apiKey:before{color:#cacaca;content:"(API Key Authentication)"}#spectacle .json-schema-description:before{content:"Description";display:block;margin-bottom:.5em;color:#f68b1f;text-transform:uppercase;font-size:.9rem}#spectacle .json-schema-properties:before{content:"Properties";display:block;margin-bottom:.5em;color:#f68b1f;text-transform:uppercase;font-size:.9rem}#spectacle .json-schema-properties dl{margin:0}#spectacle .json-schema-properties dt{margin-bottom:.25rem}#spectacle .json-schema-properties dt.has-description{margin-bottom:0}#spectacle .json-schema-properties dd{color:#8a8a8a}#spectacle .json-schema-properties dd:not(:last-child){padding-bottom:.5rem}#spectacle .json-schema-description+.json-schema-properties{margin-top:1.5rem}#spectacle .json-schema-ref-array:before{color:#8a8a8a;content:"Array<"}#spectacle .json-schema-ref-array:after{color:#8a8a8a;content:">"}#spectacle .json-schema-example:before{content:"Example";display:block;margin-bottom:.5em;color:#f68b1f;text-transform:uppercase;font-size:.9rem}#spectacle .json-schema-array-items:before{content:"Items";display:block;margin-bottom:.5em;color:#f68b1f;text-transform:uppercase;font-size:.9rem}#spectacle .json-schema-allOf-inherited:before{content:"Inherited";display:block;margin-bottom:.5em;color:#f68b1f;text-transform:uppercase;font-size:.9rem}#spectacle .json-schema-anyOf>dl{padding-left:1em}#spectacle .json-schema-anyOf>dl dt:not(:first-child):before{content:"or "}#spectacle .json-schema-anyOf>dl dt:first-child:before{content:"either "}#spectacle .json-schema-additionalProperties:before{content:"Additional properties";display:block;margin-bottom:.5em;color:#f68b1f;text-transform:uppercase;font-size:.9rem}#spectacle .json-inner-schema .json-schema-array-items,#spectacle .json-inner-schema .json-schema-description,#spectacle .json-inner-schema .json-schema-example,#spectacle .json-inner-schema .json-schema-properties{padding-left:1em;margin-top:.5em;padding-bottom:.5em}#spectacle .json-property-discriminator:before{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#cc4b37;color:#fefefe;font-size:.75rem;border-radius:4px;padding:3px 6px;content:"discriminator"}#spectacle .json-property-required:before{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#cc4b37;color:#fefefe;font-size:.75rem;border-radius:4px;padding:3px 6px;content:"required"}#spectacle .json-property-read-only:before{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#cc4b37;color:#fefefe;font-size:.75rem;border-radius:4px;padding:3px 6px;content:"read only"}#spectacle .json-property-format{font-style:italic}#spectacle .json-property-enum:before{content:'enum: ['}#spectacle .json-property-enum:after{content:']'}#spectacle .json-property-default-value:before{content:'default: '}#spectacle .json-property-range:empty{display:none!important}#spectacle .json-property-range:before{content:'range: '}#spectacle .json-property-enum-item{font-weight:lighter;font-size:small}#spectacle .json-schema-reference{font-size:90%}#spectacle .no-padding{padding:0!important}#spectacle .no-margin{margin:0!important}#spectacle button:focus{outline:0}#spectacle .default-label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#767676;color:#fefefe;font-size:.75rem;border-radius:4px;padding:3px 6px}#spectacle #logo{text-align:center;padding-right:.5rem;padding-top:1rem;padding-bottom:.25rem}#spectacle #logo img{max-height:75px}#spectacle .row,#spectacle article .doc-row,#spectacle article .prop-row{max-width:auto;margin-right:auto;margin-left:auto}#spectacle .row::after,#spectacle .row::before,#spectacle article .doc-row::after,#spectacle article .doc-row::before,#spectacle article .prop-row::after,#spectacle article .prop-row::before{display:table;content:' ';flex-basis:0;order:1}#spectacle .row::after,#spectacle article .doc-row::after,#spectacle article .prop-row::after{clear:both}#spectacle .row.collapse>.column,#spectacle .row.collapse>.columns,#spectacle article .doc-row>.column,#spectacle article .doc-row>.columns,#spectacle article .doc-row>.doc-copy,#spectacle article .doc-row>.doc-examples,#spectacle article .prop-row .doc-row>.prop-name,#spectacle article .prop-row .doc-row>.prop-value,#spectacle article .prop-row .row.collapse>.prop-name,#spectacle article .prop-row .row.collapse>.prop-value,#spectacle article .prop-row>.column,#spectacle article .prop-row>.columns,#spectacle article .prop-row>.doc-copy,#spectacle article .prop-row>.doc-examples,#spectacle article .prop-row>.prop-name,#spectacle article .prop-row>.prop-value,#spectacle article .row.collapse>.doc-copy,#spectacle article .row.collapse>.doc-examples{padding-right:0;padding-left:0}#spectacle .row .row,#spectacle .row article .doc-row,#spectacle .row article .prop-row,#spectacle article .doc-row .doc-row,#spectacle article .doc-row .prop-row,#spectacle article .doc-row .row,#spectacle article .prop-row .doc-row,#spectacle article .prop-row .prop-row,#spectacle article .prop-row .row,#spectacle article .row .doc-row,#spectacle article .row .prop-row{margin-right:-.6578947368rem;margin-left:-.6578947368rem}@media print,screen and (min-width:40em){#spectacle .row .row,#spectacle .row article .doc-row,#spectacle .row article .prop-row,#spectacle article .doc-row .doc-row,#spectacle article .doc-row .prop-row,#spectacle article .doc-row .row,#spectacle article .prop-row .doc-row,#spectacle article .prop-row .prop-row,#spectacle article .prop-row .row,#spectacle article .row .doc-row,#spectacle article .row .prop-row{margin-right:-.9868421053rem;margin-left:-.9868421053rem}}@media print,screen and (min-width:64em){#spectacle .row .row,#spectacle .row article .doc-row,#spectacle .row article .prop-row,#spectacle article .doc-row .doc-row,#spectacle article .doc-row .prop-row,#spectacle article .doc-row .row,#spectacle article .prop-row .doc-row,#spectacle article .prop-row .prop-row,#spectacle article .prop-row .row,#spectacle article .row .doc-row,#spectacle article .row .prop-row{margin-right:-.9868421053rem;margin-left:-.9868421053rem}}#spectacle .row .row.collapse,#spectacle .row article .doc-row,#spectacle .row article .prop-row,#spectacle article .doc-row .doc-row,#spectacle article .doc-row .prop-row,#spectacle article .doc-row .row.collapse,#spectacle article .prop-row .doc-row,#spectacle article .prop-row .prop-row,#spectacle article .prop-row .row.collapse,#spectacle article .row .doc-row,#spectacle article .row .prop-row{margin-right:0;margin-left:0}#spectacle .row.expanded,#spectacle article .expanded.doc-row,#spectacle article .expanded.prop-row{max-width:none}#spectacle .row.expanded .row,#spectacle .row.expanded article .doc-row,#spectacle .row.expanded article .prop-row,#spectacle article .expanded.doc-row .doc-row,#spectacle article .expanded.doc-row .prop-row,#spectacle article .expanded.doc-row .row,#spectacle article .expanded.prop-row .doc-row,#spectacle article .expanded.prop-row .prop-row,#spectacle article .expanded.prop-row .row,#spectacle article .row.expanded .doc-row,#spectacle article .row.expanded .prop-row{margin-right:auto;margin-left:auto}#spectacle .row:not(.expanded) .row,#spectacle .row:not(.expanded) article .doc-row,#spectacle .row:not(.expanded) article .prop-row,#spectacle article .doc-row:not(.expanded) .doc-row,#spectacle article .doc-row:not(.expanded) .prop-row,#spectacle article .doc-row:not(.expanded) .row,#spectacle article .prop-row:not(.expanded) .doc-row,#spectacle article .prop-row:not(.expanded) .prop-row,#spectacle article .prop-row:not(.expanded) .row,#spectacle article .row:not(.expanded) .doc-row,#spectacle article .row:not(.expanded) .prop-row{max-width:none}#spectacle .row.gutter-small>.column,#spectacle .row.gutter-small>.columns,#spectacle article .gutter-small.doc-row>.column,#spectacle article .gutter-small.doc-row>.columns,#spectacle article .gutter-small.doc-row>.doc-copy,#spectacle article .gutter-small.doc-row>.doc-examples,#spectacle article .gutter-small.prop-row>.column,#spectacle article .gutter-small.prop-row>.columns,#spectacle article .gutter-small.prop-row>.doc-copy,#spectacle article .gutter-small.prop-row>.doc-examples,#spectacle article .gutter-small.prop-row>.prop-name,#spectacle article .gutter-small.prop-row>.prop-value,#spectacle article .prop-row .gutter-small.doc-row>.prop-name,#spectacle article .prop-row .gutter-small.doc-row>.prop-value,#spectacle article .prop-row .row.gutter-small>.prop-name,#spectacle article .prop-row .row.gutter-small>.prop-value,#spectacle article .row.gutter-small>.doc-copy,#spectacle article .row.gutter-small>.doc-examples{padding-right:.6578947368rem;padding-left:.6578947368rem}#spectacle .row.gutter-medium>.column,#spectacle .row.gutter-medium>.columns,#spectacle article .gutter-medium.doc-row>.column,#spectacle article .gutter-medium.doc-row>.columns,#spectacle article .gutter-medium.doc-row>.doc-copy,#spectacle article .gutter-medium.doc-row>.doc-examples,#spectacle article .gutter-medium.prop-row>.column,#spectacle article .gutter-medium.prop-row>.columns,#spectacle article .gutter-medium.prop-row>.doc-copy,#spectacle article .gutter-medium.prop-row>.doc-examples,#spectacle article .gutter-medium.prop-row>.prop-name,#spectacle article .gutter-medium.prop-row>.prop-value,#spectacle article .prop-row .gutter-medium.doc-row>.prop-name,#spectacle article .prop-row .gutter-medium.doc-row>.prop-value,#spectacle article .prop-row .row.gutter-medium>.prop-name,#spectacle article .prop-row .row.gutter-medium>.prop-value,#spectacle article .row.gutter-medium>.doc-copy,#spectacle article .row.gutter-medium>.doc-examples{padding-right:.9868421053rem;padding-left:.9868421053rem}#spectacle .column,#spectacle .columns,#spectacle article .doc-copy,#spectacle article .doc-examples,#spectacle article .prop-row .prop-name,#spectacle article .prop-row .prop-value{width:100%;float:left;padding-right:.6578947368rem;padding-left:.6578947368rem}@media print,screen and (min-width:40em){#spectacle .column,#spectacle .columns,#spectacle article .doc-copy,#spectacle article .doc-examples,#spectacle article .prop-row .prop-name,#spectacle article .prop-row .prop-value{padding-right:.9868421053rem;padding-left:.9868421053rem}}#spectacle .column:last-child:not(:first-child),#spectacle .columns:last-child:not(:first-child),#spectacle article .doc-copy:last-child:not(:first-child),#spectacle article .doc-examples:last-child:not(:first-child),#spectacle article .prop-row .prop-name:last-child:not(:first-child),#spectacle article .prop-row .prop-value:last-child:not(:first-child){float:right}#spectacle .column.end:last-child:last-child,#spectacle .end.columns:last-child:last-child,#spectacle article .end.doc-copy:last-child:last-child,#spectacle article .end.doc-examples:last-child:last-child,#spectacle article .prop-row .end.prop-name:last-child:last-child,#spectacle article .prop-row .end.prop-value:last-child:last-child{float:left}#spectacle .column.row.row,#spectacle .row.row.columns,#spectacle article .column.doc-row,#spectacle article .column.prop-row,#spectacle article .columns.doc-row,#spectacle article .columns.prop-row,#spectacle article .doc-row.doc-copy,#spectacle article .doc-row.doc-examples,#spectacle article .prop-row .prop-name.doc-row,#spectacle article .prop-row .prop-row.prop-name,#spectacle article .prop-row .prop-row.prop-value,#spectacle article .prop-row .prop-value.doc-row,#spectacle article .prop-row .row.row.prop-name,#spectacle article .prop-row .row.row.prop-value,#spectacle article .prop-row.doc-copy,#spectacle article .prop-row.doc-examples,#spectacle article .row.row.doc-copy,#spectacle article .row.row.doc-examples{float:none}#spectacle .row .column.row.row,#spectacle .row .row.row.columns,#spectacle .row article .column.doc-row,#spectacle .row article .column.prop-row,#spectacle .row article .columns.doc-row,#spectacle .row article .columns.prop-row,#spectacle .row article .doc-row.doc-copy,#spectacle .row article .doc-row.doc-examples,#spectacle .row article .prop-row .prop-name.doc-row,#spectacle .row article .prop-row .prop-row.prop-name,#spectacle .row article .prop-row .prop-row.prop-value,#spectacle .row article .prop-row .prop-value.doc-row,#spectacle .row article .prop-row.doc-copy,#spectacle .row article .prop-row.doc-examples,#spectacle .row article .row.row.doc-copy,#spectacle .row article .row.row.doc-examples,#spectacle article .doc-row .column.doc-row,#spectacle article .doc-row .column.prop-row,#spectacle article .doc-row .column.row.row,#spectacle article .doc-row .columns.doc-row,#spectacle article .doc-row .columns.prop-row,#spectacle article .doc-row .doc-row.doc-copy,#spectacle article .doc-row .doc-row.doc-examples,#spectacle article .doc-row .prop-row.doc-copy,#spectacle article .doc-row .prop-row.doc-examples,#spectacle article .doc-row .row.row.columns,#spectacle article .doc-row .row.row.doc-copy,#spectacle article .doc-row .row.row.doc-examples,#spectacle article .prop-row .column.doc-row,#spectacle article .prop-row .column.prop-row,#spectacle article .prop-row .column.row.row,#spectacle article .prop-row .columns.doc-row,#spectacle article .prop-row .columns.prop-row,#spectacle article .prop-row .doc-row.doc-copy,#spectacle article .prop-row .doc-row.doc-examples,#spectacle article .prop-row .prop-name.doc-row,#spectacle article .prop-row .prop-row.doc-copy,#spectacle article .prop-row .prop-row.doc-examples,#spectacle article .prop-row .prop-row.prop-name,#spectacle article .prop-row .prop-row.prop-value,#spectacle article .prop-row .prop-value.doc-row,#spectacle article .prop-row .row .prop-name.doc-row,#spectacle article .prop-row .row .prop-row.prop-name,#spectacle article .prop-row .row .prop-row.prop-value,#spectacle article .prop-row .row .prop-value.doc-row,#spectacle article .prop-row .row.row.columns,#spectacle article .prop-row .row.row.doc-copy,#spectacle article .prop-row .row.row.doc-examples,#spectacle article .prop-row .row.row.prop-name,#spectacle article .prop-row .row.row.prop-value,#spectacle article .row .column.doc-row,#spectacle article .row .column.prop-row,#spectacle article .row .columns.doc-row,#spectacle article .row .columns.prop-row,#spectacle article .row .doc-row.doc-copy,#spectacle article .row .doc-row.doc-examples,#spectacle article .row .prop-row.doc-copy,#spectacle article .row .prop-row.doc-examples,#spectacle article .row .row.row.doc-copy,#spectacle article .row .row.row.doc-examples{margin-right:0;margin-left:0;padding-right:0;padding-left:0}#spectacle .small-1{width:8.3333333333%}#spectacle .small-push-1{position:relative;left:8.3333333333%}#spectacle .small-pull-1{position:relative;left:-8.3333333333%}#spectacle .small-offset-0{margin-left:0}#spectacle .small-2{width:16.6666666667%}#spectacle .small-push-2{position:relative;left:16.6666666667%}#spectacle .small-pull-2{position:relative;left:-16.6666666667%}#spectacle .small-offset-1{margin-left:8.3333333333%}#spectacle .small-3{width:25%}#spectacle .small-push-3{position:relative;left:25%}#spectacle .small-pull-3{position:relative;left:-25%}#spectacle .small-offset-2{margin-left:16.6666666667%}#spectacle .small-4{width:33.3333333333%}#spectacle .small-push-4{position:relative;left:33.3333333333%}#spectacle .small-pull-4{position:relative;left:-33.3333333333%}#spectacle .small-offset-3{margin-left:25%}#spectacle .small-5,#spectacle article .prop-row .prop-name{width:41.6666666667%}#spectacle .small-push-5{position:relative;left:41.6666666667%}#spectacle .small-pull-5{position:relative;left:-41.6666666667%}#spectacle .small-offset-4{margin-left:33.3333333333%}#spectacle .small-6{width:50%}#spectacle .small-push-6{position:relative;left:50%}#spectacle .small-pull-6{position:relative;left:-50%}#spectacle .small-offset-5{margin-left:41.6666666667%}#spectacle .small-7,#spectacle article .prop-row .prop-value{width:58.3333333333%}#spectacle .small-push-7{position:relative;left:58.3333333333%}#spectacle .small-pull-7{position:relative;left:-58.3333333333%}#spectacle .small-offset-6{margin-left:50%}#spectacle .small-8{width:66.6666666667%}#spectacle .small-push-8{position:relative;left:66.6666666667%}#spectacle .small-pull-8{position:relative;left:-66.6666666667%}#spectacle .small-offset-7{margin-left:58.3333333333%}#spectacle .small-9{width:75%}#spectacle .small-push-9{position:relative;left:75%}#spectacle .small-pull-9{position:relative;left:-75%}#spectacle .small-offset-8{margin-left:66.6666666667%}#spectacle .small-10{width:83.3333333333%}#spectacle .small-push-10{position:relative;left:83.3333333333%}#spectacle .small-pull-10{position:relative;left:-83.3333333333%}#spectacle .small-offset-9{margin-left:75%}#spectacle .small-11{width:91.6666666667%}#spectacle .small-push-11{position:relative;left:91.6666666667%}#spectacle .small-pull-11{position:relative;left:-91.6666666667%}#spectacle .small-offset-10{margin-left:83.3333333333%}#spectacle .small-12{width:100%}#spectacle .small-offset-11{margin-left:91.6666666667%}#spectacle .small-up-1>.column,#spectacle .small-up-1>.columns,#spectacle article .prop-row .small-up-1>.prop-name,#spectacle article .prop-row .small-up-1>.prop-value,#spectacle article .small-up-1>.doc-copy,#spectacle article .small-up-1>.doc-examples{float:left;width:100%}#spectacle .small-up-1>.column:nth-of-type(1n),#spectacle .small-up-1>.columns:nth-of-type(1n),#spectacle article .prop-row .small-up-1>.prop-name:nth-of-type(1n),#spectacle article .prop-row .small-up-1>.prop-value:nth-of-type(1n),#spectacle article .small-up-1>.doc-copy:nth-of-type(1n),#spectacle article .small-up-1>.doc-examples:nth-of-type(1n){clear:none}#spectacle .small-up-1>.column:nth-of-type(1n+1),#spectacle .small-up-1>.columns:nth-of-type(1n+1),#spectacle article .prop-row .small-up-1>.prop-name:nth-of-type(1n+1),#spectacle article .prop-row .small-up-1>.prop-value:nth-of-type(1n+1),#spectacle article .small-up-1>.doc-copy:nth-of-type(1n+1),#spectacle article .small-up-1>.doc-examples:nth-of-type(1n+1){clear:both}#spectacle .small-up-1>.column:last-child,#spectacle .small-up-1>.columns:last-child,#spectacle article .prop-row .small-up-1>.prop-name:last-child,#spectacle article .prop-row .small-up-1>.prop-value:last-child,#spectacle article .small-up-1>.doc-copy:last-child,#spectacle article .small-up-1>.doc-examples:last-child{float:left}#spectacle .small-up-2>.column,#spectacle .small-up-2>.columns,#spectacle article .prop-row .small-up-2>.prop-name,#spectacle article .prop-row .small-up-2>.prop-value,#spectacle article .small-up-2>.doc-copy,#spectacle article .small-up-2>.doc-examples{float:left;width:50%}#spectacle .small-up-2>.column:nth-of-type(1n),#spectacle .small-up-2>.columns:nth-of-type(1n),#spectacle article .prop-row .small-up-2>.prop-name:nth-of-type(1n),#spectacle article .prop-row .small-up-2>.prop-value:nth-of-type(1n),#spectacle article .small-up-2>.doc-copy:nth-of-type(1n),#spectacle article .small-up-2>.doc-examples:nth-of-type(1n){clear:none}#spectacle .small-up-2>.column:nth-of-type(2n+1),#spectacle .small-up-2>.columns:nth-of-type(2n+1),#spectacle article .prop-row .small-up-2>.prop-name:nth-of-type(2n+1),#spectacle article .prop-row .small-up-2>.prop-value:nth-of-type(2n+1),#spectacle article .small-up-2>.doc-copy:nth-of-type(2n+1),#spectacle article .small-up-2>.doc-examples:nth-of-type(2n+1){clear:both}#spectacle .small-up-2>.column:last-child,#spectacle .small-up-2>.columns:last-child,#spectacle article .prop-row .small-up-2>.prop-name:last-child,#spectacle article .prop-row .small-up-2>.prop-value:last-child,#spectacle article .small-up-2>.doc-copy:last-child,#spectacle article .small-up-2>.doc-examples:last-child{float:left}#spectacle .small-up-3>.column,#spectacle .small-up-3>.columns,#spectacle article .prop-row .small-up-3>.prop-name,#spectacle article .prop-row .small-up-3>.prop-value,#spectacle article .small-up-3>.doc-copy,#spectacle article .small-up-3>.doc-examples{float:left;width:33.3333333333%}#spectacle .small-up-3>.column:nth-of-type(1n),#spectacle .small-up-3>.columns:nth-of-type(1n),#spectacle article .prop-row .small-up-3>.prop-name:nth-of-type(1n),#spectacle article .prop-row .small-up-3>.prop-value:nth-of-type(1n),#spectacle article .small-up-3>.doc-copy:nth-of-type(1n),#spectacle article .small-up-3>.doc-examples:nth-of-type(1n){clear:none}#spectacle .small-up-3>.column:nth-of-type(3n+1),#spectacle .small-up-3>.columns:nth-of-type(3n+1),#spectacle article .prop-row .small-up-3>.prop-name:nth-of-type(3n+1),#spectacle article .prop-row .small-up-3>.prop-value:nth-of-type(3n+1),#spectacle article .small-up-3>.doc-copy:nth-of-type(3n+1),#spectacle article .small-up-3>.doc-examples:nth-of-type(3n+1){clear:both}#spectacle .small-up-3>.column:last-child,#spectacle .small-up-3>.columns:last-child,#spectacle article .prop-row .small-up-3>.prop-name:last-child,#spectacle article .prop-row .small-up-3>.prop-value:last-child,#spectacle article .small-up-3>.doc-copy:last-child,#spectacle article .small-up-3>.doc-examples:last-child{float:left}#spectacle .small-up-4>.column,#spectacle .small-up-4>.columns,#spectacle article .prop-row .small-up-4>.prop-name,#spectacle article .prop-row .small-up-4>.prop-value,#spectacle article .small-up-4>.doc-copy,#spectacle article .small-up-4>.doc-examples{float:left;width:25%}#spectacle .small-up-4>.column:nth-of-type(1n),#spectacle .small-up-4>.columns:nth-of-type(1n),#spectacle article .prop-row .small-up-4>.prop-name:nth-of-type(1n),#spectacle article .prop-row .small-up-4>.prop-value:nth-of-type(1n),#spectacle article .small-up-4>.doc-copy:nth-of-type(1n),#spectacle article .small-up-4>.doc-examples:nth-of-type(1n){clear:none}#spectacle .small-up-4>.column:nth-of-type(4n+1),#spectacle .small-up-4>.columns:nth-of-type(4n+1),#spectacle article .prop-row .small-up-4>.prop-name:nth-of-type(4n+1),#spectacle article .prop-row .small-up-4>.prop-value:nth-of-type(4n+1),#spectacle article .small-up-4>.doc-copy:nth-of-type(4n+1),#spectacle article .small-up-4>.doc-examples:nth-of-type(4n+1){clear:both}#spectacle .small-up-4>.column:last-child,#spectacle .small-up-4>.columns:last-child,#spectacle article .prop-row .small-up-4>.prop-name:last-child,#spectacle article .prop-row .small-up-4>.prop-value:last-child,#spectacle article .small-up-4>.doc-copy:last-child,#spectacle article .small-up-4>.doc-examples:last-child{float:left}#spectacle .small-up-5>.column,#spectacle .small-up-5>.columns,#spectacle article .prop-row .small-up-5>.prop-name,#spectacle article .prop-row .small-up-5>.prop-value,#spectacle article .small-up-5>.doc-copy,#spectacle article .small-up-5>.doc-examples{float:left;width:20%}#spectacle .small-up-5>.column:nth-of-type(1n),#spectacle .small-up-5>.columns:nth-of-type(1n),#spectacle article .prop-row .small-up-5>.prop-name:nth-of-type(1n),#spectacle article .prop-row .small-up-5>.prop-value:nth-of-type(1n),#spectacle article .small-up-5>.doc-copy:nth-of-type(1n),#spectacle article .small-up-5>.doc-examples:nth-of-type(1n){clear:none}#spectacle .small-up-5>.column:nth-of-type(5n+1),#spectacle .small-up-5>.columns:nth-of-type(5n+1),#spectacle article .prop-row .small-up-5>.prop-name:nth-of-type(5n+1),#spectacle article .prop-row .small-up-5>.prop-value:nth-of-type(5n+1),#spectacle article .small-up-5>.doc-copy:nth-of-type(5n+1),#spectacle article .small-up-5>.doc-examples:nth-of-type(5n+1){clear:both}#spectacle .small-up-5>.column:last-child,#spectacle .small-up-5>.columns:last-child,#spectacle article .prop-row .small-up-5>.prop-name:last-child,#spectacle article .prop-row .small-up-5>.prop-value:last-child,#spectacle article .small-up-5>.doc-copy:last-child,#spectacle article .small-up-5>.doc-examples:last-child{float:left}#spectacle .small-up-6>.column,#spectacle .small-up-6>.columns,#spectacle article .prop-row .small-up-6>.prop-name,#spectacle article .prop-row .small-up-6>.prop-value,#spectacle article .small-up-6>.doc-copy,#spectacle article .small-up-6>.doc-examples{float:left;width:16.6666666667%}#spectacle .small-up-6>.column:nth-of-type(1n),#spectacle .small-up-6>.columns:nth-of-type(1n),#spectacle article .prop-row .small-up-6>.prop-name:nth-of-type(1n),#spectacle article .prop-row .small-up-6>.prop-value:nth-of-type(1n),#spectacle article .small-up-6>.doc-copy:nth-of-type(1n),#spectacle article .small-up-6>.doc-examples:nth-of-type(1n){clear:none}#spectacle .small-up-6>.column:nth-of-type(6n+1),#spectacle .small-up-6>.columns:nth-of-type(6n+1),#spectacle article .prop-row .small-up-6>.prop-name:nth-of-type(6n+1),#spectacle article .prop-row .small-up-6>.prop-value:nth-of-type(6n+1),#spectacle article .small-up-6>.doc-copy:nth-of-type(6n+1),#spectacle article .small-up-6>.doc-examples:nth-of-type(6n+1){clear:both}#spectacle .small-up-6>.column:last-child,#spectacle .small-up-6>.columns:last-child,#spectacle article .prop-row .small-up-6>.prop-name:last-child,#spectacle article .prop-row .small-up-6>.prop-value:last-child,#spectacle article .small-up-6>.doc-copy:last-child,#spectacle article .small-up-6>.doc-examples:last-child{float:left}#spectacle .small-up-7>.column,#spectacle .small-up-7>.columns,#spectacle article .prop-row .small-up-7>.prop-name,#spectacle article .prop-row .small-up-7>.prop-value,#spectacle article .small-up-7>.doc-copy,#spectacle article .small-up-7>.doc-examples{float:left;width:14.2857142857%}#spectacle .small-up-7>.column:nth-of-type(1n),#spectacle .small-up-7>.columns:nth-of-type(1n),#spectacle article .prop-row .small-up-7>.prop-name:nth-of-type(1n),#spectacle article .prop-row .small-up-7>.prop-value:nth-of-type(1n),#spectacle article .small-up-7>.doc-copy:nth-of-type(1n),#spectacle article .small-up-7>.doc-examples:nth-of-type(1n){clear:none}#spectacle .small-up-7>.column:nth-of-type(7n+1),#spectacle .small-up-7>.columns:nth-of-type(7n+1),#spectacle article .prop-row .small-up-7>.prop-name:nth-of-type(7n+1),#spectacle article .prop-row .small-up-7>.prop-value:nth-of-type(7n+1),#spectacle article .small-up-7>.doc-copy:nth-of-type(7n+1),#spectacle article .small-up-7>.doc-examples:nth-of-type(7n+1){clear:both}#spectacle .small-up-7>.column:last-child,#spectacle .small-up-7>.columns:last-child,#spectacle article .prop-row .small-up-7>.prop-name:last-child,#spectacle article .prop-row .small-up-7>.prop-value:last-child,#spectacle article .small-up-7>.doc-copy:last-child,#spectacle article .small-up-7>.doc-examples:last-child{float:left}#spectacle .small-up-8>.column,#spectacle .small-up-8>.columns,#spectacle article .prop-row .small-up-8>.prop-name,#spectacle article .prop-row .small-up-8>.prop-value,#spectacle article .small-up-8>.doc-copy,#spectacle article .small-up-8>.doc-examples{float:left;width:12.5%}#spectacle .small-up-8>.column:nth-of-type(1n),#spectacle .small-up-8>.columns:nth-of-type(1n),#spectacle article .prop-row .small-up-8>.prop-name:nth-of-type(1n),#spectacle article .prop-row .small-up-8>.prop-value:nth-of-type(1n),#spectacle article .small-up-8>.doc-copy:nth-of-type(1n),#spectacle article .small-up-8>.doc-examples:nth-of-type(1n){clear:none}#spectacle .small-up-8>.column:nth-of-type(8n+1),#spectacle .small-up-8>.columns:nth-of-type(8n+1),#spectacle article .prop-row .small-up-8>.prop-name:nth-of-type(8n+1),#spectacle article .prop-row .small-up-8>.prop-value:nth-of-type(8n+1),#spectacle article .small-up-8>.doc-copy:nth-of-type(8n+1),#spectacle article .small-up-8>.doc-examples:nth-of-type(8n+1){clear:both}#spectacle .small-up-8>.column:last-child,#spectacle .small-up-8>.columns:last-child,#spectacle article .prop-row .small-up-8>.prop-name:last-child,#spectacle article .prop-row .small-up-8>.prop-value:last-child,#spectacle article .small-up-8>.doc-copy:last-child,#spectacle article .small-up-8>.doc-examples:last-child{float:left}#spectacle .small-collapse>.column,#spectacle .small-collapse>.columns,#spectacle article .prop-row .small-collapse>.prop-name,#spectacle article .prop-row .small-collapse>.prop-value,#spectacle article .small-collapse>.doc-copy,#spectacle article .small-collapse>.doc-examples{padding-right:0;padding-left:0}#spectacle .small-collapse .row,#spectacle .small-collapse article .doc-row,#spectacle .small-collapse article .prop-row,#spectacle article .small-collapse .doc-row,#spectacle article .small-collapse .prop-row{margin-right:0;margin-left:0}#spectacle .expanded.row .small-collapse.row,#spectacle .expanded.row article .small-collapse.doc-row,#spectacle .expanded.row article .small-collapse.prop-row,#spectacle article .expanded.doc-row .small-collapse.doc-row,#spectacle article .expanded.doc-row .small-collapse.prop-row,#spectacle article .expanded.doc-row .small-collapse.row,#spectacle article .expanded.prop-row .small-collapse.doc-row,#spectacle article .expanded.prop-row .small-collapse.prop-row,#spectacle article .expanded.prop-row .small-collapse.row,#spectacle article .expanded.row .small-collapse.doc-row,#spectacle article .expanded.row .small-collapse.prop-row{margin-right:0;margin-left:0}#spectacle .small-uncollapse>.column,#spectacle .small-uncollapse>.columns,#spectacle article .prop-row .small-uncollapse>.prop-name,#spectacle article .prop-row .small-uncollapse>.prop-value,#spectacle article .small-uncollapse>.doc-copy,#spectacle article .small-uncollapse>.doc-examples{padding-right:.6578947368rem;padding-left:.6578947368rem}#spectacle .small-centered{margin-right:auto;margin-left:auto}#spectacle .small-centered,#spectacle .small-centered:last-child:not(:first-child){float:none;clear:both}#spectacle .small-pull-0,#spectacle .small-push-0,#spectacle .small-uncentered{position:static;float:left;margin-right:0;margin-left:0}@media print,screen and (min-width:40em){#spectacle .medium-1{width:8.3333333333%}#spectacle .medium-push-1{position:relative;left:8.3333333333%}#spectacle .medium-pull-1{position:relative;left:-8.3333333333%}#spectacle .medium-offset-0{margin-left:0}#spectacle .medium-2{width:16.6666666667%}#spectacle .medium-push-2{position:relative;left:16.6666666667%}#spectacle .medium-pull-2{position:relative;left:-16.6666666667%}#spectacle .medium-offset-1{margin-left:8.3333333333%}#spectacle .medium-3{width:25%}#spectacle .medium-push-3{position:relative;left:25%}#spectacle .medium-pull-3{position:relative;left:-25%}#spectacle .medium-offset-2{margin-left:16.6666666667%}#spectacle .medium-4{width:33.3333333333%}#spectacle .medium-push-4{position:relative;left:33.3333333333%}#spectacle .medium-pull-4{position:relative;left:-33.3333333333%}#spectacle .medium-offset-3{margin-left:25%}#spectacle .medium-5{width:41.6666666667%}#spectacle .medium-push-5{position:relative;left:41.6666666667%}#spectacle .medium-pull-5{position:relative;left:-41.6666666667%}#spectacle .medium-offset-4{margin-left:33.3333333333%}#spectacle .medium-6{width:50%}#spectacle .medium-push-6{position:relative;left:50%}#spectacle .medium-pull-6{position:relative;left:-50%}#spectacle .medium-offset-5{margin-left:41.6666666667%}#spectacle .medium-7{width:58.3333333333%}#spectacle .medium-push-7{position:relative;left:58.3333333333%}#spectacle .medium-pull-7{position:relative;left:-58.3333333333%}#spectacle .medium-offset-6{margin-left:50%}#spectacle .medium-8{width:66.6666666667%}#spectacle .medium-push-8{position:relative;left:66.6666666667%}#spectacle .medium-pull-8{position:relative;left:-66.6666666667%}#spectacle .medium-offset-7{margin-left:58.3333333333%}#spectacle .medium-9{width:75%}#spectacle .medium-push-9{position:relative;left:75%}#spectacle .medium-pull-9{position:relative;left:-75%}#spectacle .medium-offset-8{margin-left:66.6666666667%}#spectacle .medium-10{width:83.3333333333%}#spectacle .medium-push-10{position:relative;left:83.3333333333%}#spectacle .medium-pull-10{position:relative;left:-83.3333333333%}#spectacle .medium-offset-9{margin-left:75%}#spectacle .medium-11{width:91.6666666667%}#spectacle .medium-push-11{position:relative;left:91.6666666667%}#spectacle .medium-pull-11{position:relative;left:-91.6666666667%}#spectacle .medium-offset-10{margin-left:83.3333333333%}#spectacle .medium-12{width:100%}#spectacle .medium-offset-11{margin-left:91.6666666667%}#spectacle .medium-up-1>.column,#spectacle .medium-up-1>.columns,#spectacle article .medium-up-1>.doc-copy,#spectacle article .medium-up-1>.doc-examples,#spectacle article .prop-row .medium-up-1>.prop-name,#spectacle article .prop-row .medium-up-1>.prop-value{float:left;width:100%}#spectacle .medium-up-1>.column:nth-of-type(1n),#spectacle .medium-up-1>.columns:nth-of-type(1n),#spectacle article .medium-up-1>.doc-copy:nth-of-type(1n),#spectacle article .medium-up-1>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .medium-up-1>.prop-name:nth-of-type(1n),#spectacle article .prop-row .medium-up-1>.prop-value:nth-of-type(1n){clear:none}#spectacle .medium-up-1>.column:nth-of-type(1n+1),#spectacle .medium-up-1>.columns:nth-of-type(1n+1),#spectacle article .medium-up-1>.doc-copy:nth-of-type(1n+1),#spectacle article .medium-up-1>.doc-examples:nth-of-type(1n+1),#spectacle article .prop-row .medium-up-1>.prop-name:nth-of-type(1n+1),#spectacle article .prop-row .medium-up-1>.prop-value:nth-of-type(1n+1){clear:both}#spectacle .medium-up-1>.column:last-child,#spectacle .medium-up-1>.columns:last-child,#spectacle article .medium-up-1>.doc-copy:last-child,#spectacle article .medium-up-1>.doc-examples:last-child,#spectacle article .prop-row .medium-up-1>.prop-name:last-child,#spectacle article .prop-row .medium-up-1>.prop-value:last-child{float:left}#spectacle .medium-up-2>.column,#spectacle .medium-up-2>.columns,#spectacle article .medium-up-2>.doc-copy,#spectacle article .medium-up-2>.doc-examples,#spectacle article .prop-row .medium-up-2>.prop-name,#spectacle article .prop-row .medium-up-2>.prop-value{float:left;width:50%}#spectacle .medium-up-2>.column:nth-of-type(1n),#spectacle .medium-up-2>.columns:nth-of-type(1n),#spectacle article .medium-up-2>.doc-copy:nth-of-type(1n),#spectacle article .medium-up-2>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .medium-up-2>.prop-name:nth-of-type(1n),#spectacle article .prop-row .medium-up-2>.prop-value:nth-of-type(1n){clear:none}#spectacle .medium-up-2>.column:nth-of-type(2n+1),#spectacle .medium-up-2>.columns:nth-of-type(2n+1),#spectacle article .medium-up-2>.doc-copy:nth-of-type(2n+1),#spectacle article .medium-up-2>.doc-examples:nth-of-type(2n+1),#spectacle article .prop-row .medium-up-2>.prop-name:nth-of-type(2n+1),#spectacle article .prop-row .medium-up-2>.prop-value:nth-of-type(2n+1){clear:both}#spectacle .medium-up-2>.column:last-child,#spectacle .medium-up-2>.columns:last-child,#spectacle article .medium-up-2>.doc-copy:last-child,#spectacle article .medium-up-2>.doc-examples:last-child,#spectacle article .prop-row .medium-up-2>.prop-name:last-child,#spectacle article .prop-row .medium-up-2>.prop-value:last-child{float:left}#spectacle .medium-up-3>.column,#spectacle .medium-up-3>.columns,#spectacle article .medium-up-3>.doc-copy,#spectacle article .medium-up-3>.doc-examples,#spectacle article .prop-row .medium-up-3>.prop-name,#spectacle article .prop-row .medium-up-3>.prop-value{float:left;width:33.3333333333%}#spectacle .medium-up-3>.column:nth-of-type(1n),#spectacle .medium-up-3>.columns:nth-of-type(1n),#spectacle article .medium-up-3>.doc-copy:nth-of-type(1n),#spectacle article .medium-up-3>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .medium-up-3>.prop-name:nth-of-type(1n),#spectacle article .prop-row .medium-up-3>.prop-value:nth-of-type(1n){clear:none}#spectacle .medium-up-3>.column:nth-of-type(3n+1),#spectacle .medium-up-3>.columns:nth-of-type(3n+1),#spectacle article .medium-up-3>.doc-copy:nth-of-type(3n+1),#spectacle article .medium-up-3>.doc-examples:nth-of-type(3n+1),#spectacle article .prop-row .medium-up-3>.prop-name:nth-of-type(3n+1),#spectacle article .prop-row .medium-up-3>.prop-value:nth-of-type(3n+1){clear:both}#spectacle .medium-up-3>.column:last-child,#spectacle .medium-up-3>.columns:last-child,#spectacle article .medium-up-3>.doc-copy:last-child,#spectacle article .medium-up-3>.doc-examples:last-child,#spectacle article .prop-row .medium-up-3>.prop-name:last-child,#spectacle article .prop-row .medium-up-3>.prop-value:last-child{float:left}#spectacle .medium-up-4>.column,#spectacle .medium-up-4>.columns,#spectacle article .medium-up-4>.doc-copy,#spectacle article .medium-up-4>.doc-examples,#spectacle article .prop-row .medium-up-4>.prop-name,#spectacle article .prop-row .medium-up-4>.prop-value{float:left;width:25%}#spectacle .medium-up-4>.column:nth-of-type(1n),#spectacle .medium-up-4>.columns:nth-of-type(1n),#spectacle article .medium-up-4>.doc-copy:nth-of-type(1n),#spectacle article .medium-up-4>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .medium-up-4>.prop-name:nth-of-type(1n),#spectacle article .prop-row .medium-up-4>.prop-value:nth-of-type(1n){clear:none}#spectacle .medium-up-4>.column:nth-of-type(4n+1),#spectacle .medium-up-4>.columns:nth-of-type(4n+1),#spectacle article .medium-up-4>.doc-copy:nth-of-type(4n+1),#spectacle article .medium-up-4>.doc-examples:nth-of-type(4n+1),#spectacle article .prop-row .medium-up-4>.prop-name:nth-of-type(4n+1),#spectacle article .prop-row .medium-up-4>.prop-value:nth-of-type(4n+1){clear:both}#spectacle .medium-up-4>.column:last-child,#spectacle .medium-up-4>.columns:last-child,#spectacle article .medium-up-4>.doc-copy:last-child,#spectacle article .medium-up-4>.doc-examples:last-child,#spectacle article .prop-row .medium-up-4>.prop-name:last-child,#spectacle article .prop-row .medium-up-4>.prop-value:last-child{float:left}#spectacle .medium-up-5>.column,#spectacle .medium-up-5>.columns,#spectacle article .medium-up-5>.doc-copy,#spectacle article .medium-up-5>.doc-examples,#spectacle article .prop-row .medium-up-5>.prop-name,#spectacle article .prop-row .medium-up-5>.prop-value{float:left;width:20%}#spectacle .medium-up-5>.column:nth-of-type(1n),#spectacle .medium-up-5>.columns:nth-of-type(1n),#spectacle article .medium-up-5>.doc-copy:nth-of-type(1n),#spectacle article .medium-up-5>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .medium-up-5>.prop-name:nth-of-type(1n),#spectacle article .prop-row .medium-up-5>.prop-value:nth-of-type(1n){clear:none}#spectacle .medium-up-5>.column:nth-of-type(5n+1),#spectacle .medium-up-5>.columns:nth-of-type(5n+1),#spectacle article .medium-up-5>.doc-copy:nth-of-type(5n+1),#spectacle article .medium-up-5>.doc-examples:nth-of-type(5n+1),#spectacle article .prop-row .medium-up-5>.prop-name:nth-of-type(5n+1),#spectacle article .prop-row .medium-up-5>.prop-value:nth-of-type(5n+1){clear:both}#spectacle .medium-up-5>.column:last-child,#spectacle .medium-up-5>.columns:last-child,#spectacle article .medium-up-5>.doc-copy:last-child,#spectacle article .medium-up-5>.doc-examples:last-child,#spectacle article .prop-row .medium-up-5>.prop-name:last-child,#spectacle article .prop-row .medium-up-5>.prop-value:last-child{float:left}#spectacle .medium-up-6>.column,#spectacle .medium-up-6>.columns,#spectacle article .medium-up-6>.doc-copy,#spectacle article .medium-up-6>.doc-examples,#spectacle article .prop-row .medium-up-6>.prop-name,#spectacle article .prop-row .medium-up-6>.prop-value{float:left;width:16.6666666667%}#spectacle .medium-up-6>.column:nth-of-type(1n),#spectacle .medium-up-6>.columns:nth-of-type(1n),#spectacle article .medium-up-6>.doc-copy:nth-of-type(1n),#spectacle article .medium-up-6>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .medium-up-6>.prop-name:nth-of-type(1n),#spectacle article .prop-row .medium-up-6>.prop-value:nth-of-type(1n){clear:none}#spectacle .medium-up-6>.column:nth-of-type(6n+1),#spectacle .medium-up-6>.columns:nth-of-type(6n+1),#spectacle article .medium-up-6>.doc-copy:nth-of-type(6n+1),#spectacle article .medium-up-6>.doc-examples:nth-of-type(6n+1),#spectacle article .prop-row .medium-up-6>.prop-name:nth-of-type(6n+1),#spectacle article .prop-row .medium-up-6>.prop-value:nth-of-type(6n+1){clear:both}#spectacle .medium-up-6>.column:last-child,#spectacle .medium-up-6>.columns:last-child,#spectacle article .medium-up-6>.doc-copy:last-child,#spectacle article .medium-up-6>.doc-examples:last-child,#spectacle article .prop-row .medium-up-6>.prop-name:last-child,#spectacle article .prop-row .medium-up-6>.prop-value:last-child{float:left}#spectacle .medium-up-7>.column,#spectacle .medium-up-7>.columns,#spectacle article .medium-up-7>.doc-copy,#spectacle article .medium-up-7>.doc-examples,#spectacle article .prop-row .medium-up-7>.prop-name,#spectacle article .prop-row .medium-up-7>.prop-value{float:left;width:14.2857142857%}#spectacle .medium-up-7>.column:nth-of-type(1n),#spectacle .medium-up-7>.columns:nth-of-type(1n),#spectacle article .medium-up-7>.doc-copy:nth-of-type(1n),#spectacle article .medium-up-7>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .medium-up-7>.prop-name:nth-of-type(1n),#spectacle article .prop-row .medium-up-7>.prop-value:nth-of-type(1n){clear:none}#spectacle .medium-up-7>.column:nth-of-type(7n+1),#spectacle .medium-up-7>.columns:nth-of-type(7n+1),#spectacle article .medium-up-7>.doc-copy:nth-of-type(7n+1),#spectacle article .medium-up-7>.doc-examples:nth-of-type(7n+1),#spectacle article .prop-row .medium-up-7>.prop-name:nth-of-type(7n+1),#spectacle article .prop-row .medium-up-7>.prop-value:nth-of-type(7n+1){clear:both}#spectacle .medium-up-7>.column:last-child,#spectacle .medium-up-7>.columns:last-child,#spectacle article .medium-up-7>.doc-copy:last-child,#spectacle article .medium-up-7>.doc-examples:last-child,#spectacle article .prop-row .medium-up-7>.prop-name:last-child,#spectacle article .prop-row .medium-up-7>.prop-value:last-child{float:left}#spectacle .medium-up-8>.column,#spectacle .medium-up-8>.columns,#spectacle article .medium-up-8>.doc-copy,#spectacle article .medium-up-8>.doc-examples,#spectacle article .prop-row .medium-up-8>.prop-name,#spectacle article .prop-row .medium-up-8>.prop-value{float:left;width:12.5%}#spectacle .medium-up-8>.column:nth-of-type(1n),#spectacle .medium-up-8>.columns:nth-of-type(1n),#spectacle article .medium-up-8>.doc-copy:nth-of-type(1n),#spectacle article .medium-up-8>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .medium-up-8>.prop-name:nth-of-type(1n),#spectacle article .prop-row .medium-up-8>.prop-value:nth-of-type(1n){clear:none}#spectacle .medium-up-8>.column:nth-of-type(8n+1),#spectacle .medium-up-8>.columns:nth-of-type(8n+1),#spectacle article .medium-up-8>.doc-copy:nth-of-type(8n+1),#spectacle article .medium-up-8>.doc-examples:nth-of-type(8n+1),#spectacle article .prop-row .medium-up-8>.prop-name:nth-of-type(8n+1),#spectacle article .prop-row .medium-up-8>.prop-value:nth-of-type(8n+1){clear:both}#spectacle .medium-up-8>.column:last-child,#spectacle .medium-up-8>.columns:last-child,#spectacle article .medium-up-8>.doc-copy:last-child,#spectacle article .medium-up-8>.doc-examples:last-child,#spectacle article .prop-row .medium-up-8>.prop-name:last-child,#spectacle article .prop-row .medium-up-8>.prop-value:last-child{float:left}#spectacle .medium-collapse>.column,#spectacle .medium-collapse>.columns,#spectacle article .medium-collapse>.doc-copy,#spectacle article .medium-collapse>.doc-examples,#spectacle article .prop-row .medium-collapse>.prop-name,#spectacle article .prop-row .medium-collapse>.prop-value{padding-right:0;padding-left:0}#spectacle .medium-collapse .row,#spectacle .medium-collapse article .doc-row,#spectacle .medium-collapse article .prop-row,#spectacle article .medium-collapse .doc-row,#spectacle article .medium-collapse .prop-row{margin-right:0;margin-left:0}#spectacle .expanded.row .medium-collapse.row,#spectacle .expanded.row article .medium-collapse.doc-row,#spectacle .expanded.row article .medium-collapse.prop-row,#spectacle article .expanded.doc-row .medium-collapse.doc-row,#spectacle article .expanded.doc-row .medium-collapse.prop-row,#spectacle article .expanded.doc-row .medium-collapse.row,#spectacle article .expanded.prop-row .medium-collapse.doc-row,#spectacle article .expanded.prop-row .medium-collapse.prop-row,#spectacle article .expanded.prop-row .medium-collapse.row,#spectacle article .expanded.row .medium-collapse.doc-row,#spectacle article .expanded.row .medium-collapse.prop-row{margin-right:0;margin-left:0}#spectacle .medium-uncollapse>.column,#spectacle .medium-uncollapse>.columns,#spectacle article .medium-uncollapse>.doc-copy,#spectacle article .medium-uncollapse>.doc-examples,#spectacle article .prop-row .medium-uncollapse>.prop-name,#spectacle article .prop-row .medium-uncollapse>.prop-value{padding-right:.9868421053rem;padding-left:.9868421053rem}#spectacle .medium-centered{margin-right:auto;margin-left:auto}#spectacle .medium-centered,#spectacle .medium-centered:last-child:not(:first-child){float:none;clear:both}#spectacle .medium-pull-0,#spectacle .medium-push-0,#spectacle .medium-uncentered{position:static;float:left;margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){#spectacle .large-1{width:8.3333333333%}#spectacle .large-push-1{position:relative;left:8.3333333333%}#spectacle .large-pull-1{position:relative;left:-8.3333333333%}#spectacle .large-offset-0{margin-left:0}#spectacle .large-2{width:16.6666666667%}#spectacle .large-push-2{position:relative;left:16.6666666667%}#spectacle .large-pull-2{position:relative;left:-16.6666666667%}#spectacle .large-offset-1{margin-left:8.3333333333%}#spectacle .large-3{width:25%}#spectacle .large-push-3{position:relative;left:25%}#spectacle .large-pull-3{position:relative;left:-25%}#spectacle .large-offset-2{margin-left:16.6666666667%}#spectacle .large-4{width:33.3333333333%}#spectacle .large-push-4{position:relative;left:33.3333333333%}#spectacle .large-pull-4{position:relative;left:-33.3333333333%}#spectacle .large-offset-3{margin-left:25%}#spectacle .large-5{width:41.6666666667%}#spectacle .large-push-5{position:relative;left:41.6666666667%}#spectacle .large-pull-5{position:relative;left:-41.6666666667%}#spectacle .large-offset-4{margin-left:33.3333333333%}#spectacle .doc-content,#spectacle .large-6,#spectacle article .doc-copy,#spectacle article .doc-examples,#spectacle article .panel>h2,#spectacle article .panel>h3,#spectacle article h1.doc-title,#spectacle article>h1,#spectacle article>h2{width:50%}#spectacle .large-push-6{position:relative;left:50%}#spectacle .large-pull-6{position:relative;left:-50%}#spectacle .large-offset-5{margin-left:41.6666666667%}#spectacle .large-7{width:58.3333333333%}#spectacle .large-push-7{position:relative;left:58.3333333333%}#spectacle .large-pull-7{position:relative;left:-58.3333333333%}#spectacle .large-offset-6{margin-left:50%}#spectacle .large-8{width:66.6666666667%}#spectacle .large-push-8{position:relative;left:66.6666666667%}#spectacle .large-pull-8{position:relative;left:-66.6666666667%}#spectacle .large-offset-7{margin-left:58.3333333333%}#spectacle .large-9{width:75%}#spectacle .large-push-9{position:relative;left:75%}#spectacle .large-pull-9{position:relative;left:-75%}#spectacle .large-offset-8{margin-left:66.6666666667%}#spectacle .large-10{width:83.3333333333%}#spectacle .large-push-10{position:relative;left:83.3333333333%}#spectacle .large-pull-10{position:relative;left:-83.3333333333%}#spectacle .large-offset-9{margin-left:75%}#spectacle .large-11{width:91.6666666667%}#spectacle .large-push-11{position:relative;left:91.6666666667%}#spectacle .large-pull-11{position:relative;left:-91.6666666667%}#spectacle .large-offset-10{margin-left:83.3333333333%}#spectacle .large-12{width:100%}#spectacle .large-offset-11{margin-left:91.6666666667%}#spectacle .large-up-1>.column,#spectacle .large-up-1>.columns,#spectacle article .large-up-1>.doc-copy,#spectacle article .large-up-1>.doc-examples,#spectacle article .prop-row .large-up-1>.prop-name,#spectacle article .prop-row .large-up-1>.prop-value{float:left;width:100%}#spectacle .large-up-1>.column:nth-of-type(1n),#spectacle .large-up-1>.columns:nth-of-type(1n),#spectacle article .large-up-1>.doc-copy:nth-of-type(1n),#spectacle article .large-up-1>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .large-up-1>.prop-name:nth-of-type(1n),#spectacle article .prop-row .large-up-1>.prop-value:nth-of-type(1n){clear:none}#spectacle .large-up-1>.column:nth-of-type(1n+1),#spectacle .large-up-1>.columns:nth-of-type(1n+1),#spectacle article .large-up-1>.doc-copy:nth-of-type(1n+1),#spectacle article .large-up-1>.doc-examples:nth-of-type(1n+1),#spectacle article .prop-row .large-up-1>.prop-name:nth-of-type(1n+1),#spectacle article .prop-row .large-up-1>.prop-value:nth-of-type(1n+1){clear:both}#spectacle .large-up-1>.column:last-child,#spectacle .large-up-1>.columns:last-child,#spectacle article .large-up-1>.doc-copy:last-child,#spectacle article .large-up-1>.doc-examples:last-child,#spectacle article .prop-row .large-up-1>.prop-name:last-child,#spectacle article .prop-row .large-up-1>.prop-value:last-child{float:left}#spectacle .large-up-2>.column,#spectacle .large-up-2>.columns,#spectacle article .large-up-2>.doc-copy,#spectacle article .large-up-2>.doc-examples,#spectacle article .prop-row .large-up-2>.prop-name,#spectacle article .prop-row .large-up-2>.prop-value{float:left;width:50%}#spectacle .large-up-2>.column:nth-of-type(1n),#spectacle .large-up-2>.columns:nth-of-type(1n),#spectacle article .large-up-2>.doc-copy:nth-of-type(1n),#spectacle article .large-up-2>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .large-up-2>.prop-name:nth-of-type(1n),#spectacle article .prop-row .large-up-2>.prop-value:nth-of-type(1n){clear:none}#spectacle .large-up-2>.column:nth-of-type(2n+1),#spectacle .large-up-2>.columns:nth-of-type(2n+1),#spectacle article .large-up-2>.doc-copy:nth-of-type(2n+1),#spectacle article .large-up-2>.doc-examples:nth-of-type(2n+1),#spectacle article .prop-row .large-up-2>.prop-name:nth-of-type(2n+1),#spectacle article .prop-row .large-up-2>.prop-value:nth-of-type(2n+1){clear:both}#spectacle .large-up-2>.column:last-child,#spectacle .large-up-2>.columns:last-child,#spectacle article .large-up-2>.doc-copy:last-child,#spectacle article .large-up-2>.doc-examples:last-child,#spectacle article .prop-row .large-up-2>.prop-name:last-child,#spectacle article .prop-row .large-up-2>.prop-value:last-child{float:left}#spectacle .large-up-3>.column,#spectacle .large-up-3>.columns,#spectacle article .large-up-3>.doc-copy,#spectacle article .large-up-3>.doc-examples,#spectacle article .prop-row .large-up-3>.prop-name,#spectacle article .prop-row .large-up-3>.prop-value{float:left;width:33.3333333333%}#spectacle .large-up-3>.column:nth-of-type(1n),#spectacle .large-up-3>.columns:nth-of-type(1n),#spectacle article .large-up-3>.doc-copy:nth-of-type(1n),#spectacle article .large-up-3>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .large-up-3>.prop-name:nth-of-type(1n),#spectacle article .prop-row .large-up-3>.prop-value:nth-of-type(1n){clear:none}#spectacle .large-up-3>.column:nth-of-type(3n+1),#spectacle .large-up-3>.columns:nth-of-type(3n+1),#spectacle article .large-up-3>.doc-copy:nth-of-type(3n+1),#spectacle article .large-up-3>.doc-examples:nth-of-type(3n+1),#spectacle article .prop-row .large-up-3>.prop-name:nth-of-type(3n+1),#spectacle article .prop-row .large-up-3>.prop-value:nth-of-type(3n+1){clear:both}#spectacle .large-up-3>.column:last-child,#spectacle .large-up-3>.columns:last-child,#spectacle article .large-up-3>.doc-copy:last-child,#spectacle article .large-up-3>.doc-examples:last-child,#spectacle article .prop-row .large-up-3>.prop-name:last-child,#spectacle article .prop-row .large-up-3>.prop-value:last-child{float:left}#spectacle .large-up-4>.column,#spectacle .large-up-4>.columns,#spectacle article .large-up-4>.doc-copy,#spectacle article .large-up-4>.doc-examples,#spectacle article .prop-row .large-up-4>.prop-name,#spectacle article .prop-row .large-up-4>.prop-value{float:left;width:25%}#spectacle .large-up-4>.column:nth-of-type(1n),#spectacle .large-up-4>.columns:nth-of-type(1n),#spectacle article .large-up-4>.doc-copy:nth-of-type(1n),#spectacle article .large-up-4>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .large-up-4>.prop-name:nth-of-type(1n),#spectacle article .prop-row .large-up-4>.prop-value:nth-of-type(1n){clear:none}#spectacle .large-up-4>.column:nth-of-type(4n+1),#spectacle .large-up-4>.columns:nth-of-type(4n+1),#spectacle article .large-up-4>.doc-copy:nth-of-type(4n+1),#spectacle article .large-up-4>.doc-examples:nth-of-type(4n+1),#spectacle article .prop-row .large-up-4>.prop-name:nth-of-type(4n+1),#spectacle article .prop-row .large-up-4>.prop-value:nth-of-type(4n+1){clear:both}#spectacle .large-up-4>.column:last-child,#spectacle .large-up-4>.columns:last-child,#spectacle article .large-up-4>.doc-copy:last-child,#spectacle article .large-up-4>.doc-examples:last-child,#spectacle article .prop-row .large-up-4>.prop-name:last-child,#spectacle article .prop-row .large-up-4>.prop-value:last-child{float:left}#spectacle .large-up-5>.column,#spectacle .large-up-5>.columns,#spectacle article .large-up-5>.doc-copy,#spectacle article .large-up-5>.doc-examples,#spectacle article .prop-row .large-up-5>.prop-name,#spectacle article .prop-row .large-up-5>.prop-value{float:left;width:20%}#spectacle .large-up-5>.column:nth-of-type(1n),#spectacle .large-up-5>.columns:nth-of-type(1n),#spectacle article .large-up-5>.doc-copy:nth-of-type(1n),#spectacle article .large-up-5>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .large-up-5>.prop-name:nth-of-type(1n),#spectacle article .prop-row .large-up-5>.prop-value:nth-of-type(1n){clear:none}#spectacle .large-up-5>.column:nth-of-type(5n+1),#spectacle .large-up-5>.columns:nth-of-type(5n+1),#spectacle article .large-up-5>.doc-copy:nth-of-type(5n+1),#spectacle article .large-up-5>.doc-examples:nth-of-type(5n+1),#spectacle article .prop-row .large-up-5>.prop-name:nth-of-type(5n+1),#spectacle article .prop-row .large-up-5>.prop-value:nth-of-type(5n+1){clear:both}#spectacle .large-up-5>.column:last-child,#spectacle .large-up-5>.columns:last-child,#spectacle article .large-up-5>.doc-copy:last-child,#spectacle article .large-up-5>.doc-examples:last-child,#spectacle article .prop-row .large-up-5>.prop-name:last-child,#spectacle article .prop-row .large-up-5>.prop-value:last-child{float:left}#spectacle .large-up-6>.column,#spectacle .large-up-6>.columns,#spectacle article .large-up-6>.doc-copy,#spectacle article .large-up-6>.doc-examples,#spectacle article .prop-row .large-up-6>.prop-name,#spectacle article .prop-row .large-up-6>.prop-value{float:left;width:16.6666666667%}#spectacle .large-up-6>.column:nth-of-type(1n),#spectacle .large-up-6>.columns:nth-of-type(1n),#spectacle article .large-up-6>.doc-copy:nth-of-type(1n),#spectacle article .large-up-6>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .large-up-6>.prop-name:nth-of-type(1n),#spectacle article .prop-row .large-up-6>.prop-value:nth-of-type(1n){clear:none}#spectacle .large-up-6>.column:nth-of-type(6n+1),#spectacle .large-up-6>.columns:nth-of-type(6n+1),#spectacle article .large-up-6>.doc-copy:nth-of-type(6n+1),#spectacle article .large-up-6>.doc-examples:nth-of-type(6n+1),#spectacle article .prop-row .large-up-6>.prop-name:nth-of-type(6n+1),#spectacle article .prop-row .large-up-6>.prop-value:nth-of-type(6n+1){clear:both}#spectacle .large-up-6>.column:last-child,#spectacle .large-up-6>.columns:last-child,#spectacle article .large-up-6>.doc-copy:last-child,#spectacle article .large-up-6>.doc-examples:last-child,#spectacle article .prop-row .large-up-6>.prop-name:last-child,#spectacle article .prop-row .large-up-6>.prop-value:last-child{float:left}#spectacle .large-up-7>.column,#spectacle .large-up-7>.columns,#spectacle article .large-up-7>.doc-copy,#spectacle article .large-up-7>.doc-examples,#spectacle article .prop-row .large-up-7>.prop-name,#spectacle article .prop-row .large-up-7>.prop-value{float:left;width:14.2857142857%}#spectacle .large-up-7>.column:nth-of-type(1n),#spectacle .large-up-7>.columns:nth-of-type(1n),#spectacle article .large-up-7>.doc-copy:nth-of-type(1n),#spectacle article .large-up-7>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .large-up-7>.prop-name:nth-of-type(1n),#spectacle article .prop-row .large-up-7>.prop-value:nth-of-type(1n){clear:none}#spectacle .large-up-7>.column:nth-of-type(7n+1),#spectacle .large-up-7>.columns:nth-of-type(7n+1),#spectacle article .large-up-7>.doc-copy:nth-of-type(7n+1),#spectacle article .large-up-7>.doc-examples:nth-of-type(7n+1),#spectacle article .prop-row .large-up-7>.prop-name:nth-of-type(7n+1),#spectacle article .prop-row .large-up-7>.prop-value:nth-of-type(7n+1){clear:both}#spectacle .large-up-7>.column:last-child,#spectacle .large-up-7>.columns:last-child,#spectacle article .large-up-7>.doc-copy:last-child,#spectacle article .large-up-7>.doc-examples:last-child,#spectacle article .prop-row .large-up-7>.prop-name:last-child,#spectacle article .prop-row .large-up-7>.prop-value:last-child{float:left}#spectacle .large-up-8>.column,#spectacle .large-up-8>.columns,#spectacle article .large-up-8>.doc-copy,#spectacle article .large-up-8>.doc-examples,#spectacle article .prop-row .large-up-8>.prop-name,#spectacle article .prop-row .large-up-8>.prop-value{float:left;width:12.5%}#spectacle .large-up-8>.column:nth-of-type(1n),#spectacle .large-up-8>.columns:nth-of-type(1n),#spectacle article .large-up-8>.doc-copy:nth-of-type(1n),#spectacle article .large-up-8>.doc-examples:nth-of-type(1n),#spectacle article .prop-row .large-up-8>.prop-name:nth-of-type(1n),#spectacle article .prop-row .large-up-8>.prop-value:nth-of-type(1n){clear:none}#spectacle .large-up-8>.column:nth-of-type(8n+1),#spectacle .large-up-8>.columns:nth-of-type(8n+1),#spectacle article .large-up-8>.doc-copy:nth-of-type(8n+1),#spectacle article .large-up-8>.doc-examples:nth-of-type(8n+1),#spectacle article .prop-row .large-up-8>.prop-name:nth-of-type(8n+1),#spectacle article .prop-row .large-up-8>.prop-value:nth-of-type(8n+1){clear:both}#spectacle .large-up-8>.column:last-child,#spectacle .large-up-8>.columns:last-child,#spectacle article .large-up-8>.doc-copy:last-child,#spectacle article .large-up-8>.doc-examples:last-child,#spectacle article .prop-row .large-up-8>.prop-name:last-child,#spectacle article .prop-row .large-up-8>.prop-value:last-child{float:left}#spectacle .large-collapse>.column,#spectacle .large-collapse>.columns,#spectacle article .large-collapse>.doc-copy,#spectacle article .large-collapse>.doc-examples,#spectacle article .prop-row .large-collapse>.prop-name,#spectacle article .prop-row .large-collapse>.prop-value{padding-right:0;padding-left:0}#spectacle .large-collapse .row,#spectacle .large-collapse article .doc-row,#spectacle .large-collapse article .prop-row,#spectacle article .large-collapse .doc-row,#spectacle article .large-collapse .prop-row{margin-right:0;margin-left:0}#spectacle .expanded.row .large-collapse.row,#spectacle .expanded.row article .large-collapse.doc-row,#spectacle .expanded.row article .large-collapse.prop-row,#spectacle article .expanded.doc-row .large-collapse.doc-row,#spectacle article .expanded.doc-row .large-collapse.prop-row,#spectacle article .expanded.doc-row .large-collapse.row,#spectacle article .expanded.prop-row .large-collapse.doc-row,#spectacle article .expanded.prop-row .large-collapse.prop-row,#spectacle article .expanded.prop-row .large-collapse.row,#spectacle article .expanded.row .large-collapse.doc-row,#spectacle article .expanded.row .large-collapse.prop-row{margin-right:0;margin-left:0}#spectacle .large-uncollapse>.column,#spectacle .large-uncollapse>.columns,#spectacle article .large-uncollapse>.doc-copy,#spectacle article .large-uncollapse>.doc-examples,#spectacle article .prop-row .large-uncollapse>.prop-name,#spectacle article .prop-row .large-uncollapse>.prop-value{padding-right:.9868421053rem;padding-left:.9868421053rem}#spectacle .large-centered{margin-right:auto;margin-left:auto}#spectacle .large-centered,#spectacle .large-centered:last-child:not(:first-child){float:none;clear:both}#spectacle .large-pull-0,#spectacle .large-push-0,#spectacle .large-uncentered{position:static;float:left;margin-right:0;margin-left:0}}#spectacle .column-block{margin-bottom:1.3157894737rem}#spectacle .column-block>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){#spectacle .column-block{margin-bottom:1.9736842105rem}#spectacle .column-block>:last-child{margin-bottom:0}}#spectacle #sidebar{padding-top:1.5rem;padding-left:1.5rem;padding-right:1rem;padding-bottom:2rem;border-right:1px solid #eee;background-color:#f6f6f6;height:100vh;overflow:auto;position:fixed;bottom:0;left:0;top:0;width:250px}#spectacle #sidebar h5{margin:1.5rem 0 .65rem;text-transform:uppercase;color:#b6b6b6;font-size:.9rem}#spectacle #sidebar a{display:block;margin:0 0 .25rem;color:#4a5055;white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}#spectacle #sidebar a.active{color:#1779ba}#spectacle #sidebar ul{list-style-type:none;padding:0;margin:0 0 .75rem .75rem}#spectacle #sidebar section>ul{display:none}#spectacle #sidebar section.expand>ul{display:block}#spectacle #sidebar .close-button{opacity:.5}#spectacle .doc-content,#spectacle article .doc-copy,#spectacle article .doc-examples,#spectacle article .panel>h2,#spectacle article .panel>h3,#spectacle article h1.doc-title,#spectacle article>h1,#spectacle article>h2{padding-left:2.25rem!important;padding-right:2.25rem!important}#spectacle .doc-separator,#spectacle article h2{margin-top:2em;padding-top:2em;padding-bottom:2em;border-top:1px solid #e2e2e2}#spectacle #docs{background:#fefefe;overflow:hidden;position:relative}#spectacle #docs .example-box{display:none}@media print,screen and (min-width:64em){#spectacle #docs .example-box{display:block;background-color:#2d3134;position:absolute;right:0;top:0;bottom:0}}#spectacle article{position:relative}#spectacle article .no-description{color:#8a8a8a}#spectacle article dt{color:#2d3134}#spectacle article table.table{width:100%}#spectacle article code{font-size:.9em;border-radius:3px}#spectacle article p:last-child:first-child{margin-bottom:0}#spectacle article h1{margin:2.5rem 0 0;padding-top:.75rem;padding-bottom:.75rem;padding-left:2.25rem;padding-right:2.25rem;border-top:1px solid #e8e8e8;border-bottom:1px solid #e2e2e2;background-color:#f6f6f6}#spectacle article h1.doc-title{margin:0;padding-top:2.15rem;padding-bottom:0;font-weight:700;background:0 0;border:none;color:#535b60}#spectacle article h1.doc-title span{display:none;opacity:.65;margin-left:5px;font-weight:400}#spectacle article h2{margin-bottom:0;padding-left:2.25rem;padding-right:2.25rem;padding-bottom:.25rem;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi…gd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g);background-size:100%;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0,rgba(255,255,255,.4)),color-stop(100%,rgba(255,255,255,0)));background-image:-moz-linear-gradient(top,rgba(255,255,255,.4),rgba(255,255,255,0));background-image:-webkit-linear-gradient(top,rgba(255,255,255,.4),rgba(255,255,255,0));background-image:linear-gradient(to bottom,rgba(255,255,255,.4),rgba(255,255,255,0))}#spectacle article h3{margin:0 0 .75rem}#spectacle article h1+.panel>h2{margin-top:0;border-top:none}#spectacle article h1+.tag-description+.panel>h2{margin-top:2rem}#spectacle article h1+.panel h3{margin-top:1rem}#spectacle article .panel{position:relative}#spectacle article .prop-row{padding-top:.75em;padding-bottom:.75em;border-top:1px solid #eee}#spectacle article .prop-row.prop-group,#spectacle article .prop-row:first-child{border-top:1px solid #ddd}#spectacle article .prop-row .prop-title{font-weight:700}#spectacle article .prop-row .prop-type{font-weight:400}#spectacle article .prop-row .prop-subtitle{font-weight:400;font-size:80%}#spectacle article .prop-row .prop-name{text-align:right;padding-right:.85rem!important;word-break:break-word}#spectacle article .prop-row .prop-value{padding-left:.85rem!important;word-wrap:break-word}#spectacle article .prop-row.prop-inner{padding-top:.5em;padding-bottom:.5em;font-size:80%}#spectacle article .prop-row.prop-inner .prop-name{color:#8a8a8a}#spectacle article .prop-row.prop-inner .prop-value>span{display:block}#spectacle article .prop-row.prop-inner .prop-value>span:before{color:#8a8a8a}#spectacle article .prop-row.prop-inner .prop-value>span:after{color:#8a8a8a}#spectacle article .prop-row.prop-inner .prop-value>span.json-property-format,#spectacle article .prop-row.prop-inner .prop-value>span.json-property-type{display:inline-block}#spectacle article .doc-row{margin:2rem 0 20px}#spectacle article .doc-examples{padding-left:2.25rem!important;padding-right:2.25rem!important;color:#fefefe;background-color:#2d3134}#spectacle article .doc-examples h5{color:#fefefe;font-size:1rem;opacity:.8}#spectacle article .doc-examples h5 span{opacity:.5}@media screen and (max-width:63.9375em){#spectacle article .doc-examples:not(:empty){margin-top:1.5rem;padding-top:1.5rem;padding-bottom:.5rem}}#spectacle article .doc-examples code{display:block;margin-bottom:1.5rem;padding:1.5rem;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:inherit;color:inherit;background-color:transparent;border:none;border-top:1px solid #000;border-bottom:1px solid #404040;border-radius:5px;box-shadow:0 0 200px rgba(0,0,0,.33) inset;word-spacing:normal;white-space:pre-wrap;word-break:normal}#spectacle article .doc-examples tbody tr:nth-child(even){border-bottom:0;background-color:#353a3d}#spectacle article .doc-examples tbody,#spectacle article .doc-examples tfoot,#spectacle article .doc-examples thead{color:#fff;background-color:#2d3134;border:0}#spectacle article .doc-examples thead{background-color:#2d3134}#spectacle article .doc-examples .swagger-response-headers{background-color:transparent;border:none;border-top:1px solid #000;border-bottom:1px solid #404040;border-radius:5px;box-shadow:0 0 200px rgba(0,0,0,.33) inset;margin-bottom:1.5rem}#spectacle article .doc-examples .swagger-response-headers thead{color:#fefefe;font-size:1rem;opacity:.8;background-color:transparent;border:none}#spectacle article .doc-examples .swagger-response-headers tbody{border:none;background-color:transparent}#spectacle article .doc-examples .swagger-response-headers tbody tr{background-color:transparent;border-top:1px solid #404040}#spectacle article .powered-by{font-size:80%;color:#cacaca}#spectacle article .powered-by span{color:#f68b1f}#spectacle article .operation .operation-tags{position:absolute;top:0;text-align:right;right:0}#spectacle article .operation .operation-tags .label{cursor:pointer}#spectacle article .operation .operation-tags .label:hover{color:#e6e6e6}@media print,screen and (min-width:64em){#spectacle article .operation .operation-tags{right:50%}}#spectacle article .operation .operation-path{word-break:break-all}#spectacle article .security-definition-description{margin-top:1.5rem;margin-bottom:.5rem}#spectacle article .security-definition-scope-description{color:#8a8a8a;margin-bottom:.5rem}#spectacle article .definition .doc-examples h5{margin-top:-1rem}#spectacle article .definition .doc-copy>section{margin-bottom:1rem}#spectacle article .definition .doc-copy>section>.json-property-type{display:none}#spectacle article .definition dl dt{font-weight:400}#spectacle article .definition dl dd{font-style:italic}#spectacle article .definition .json-property-name{font-weight:700}#spectacle article .hljs{line-height:1.25;overflow-x:auto;padding:1.5rem;margin-bottom:1rem;border:none}#spectacle .drawer-layout .drawer{box-shadow:0 0 10px rgba(45,49,52,.5);transition:transform .5s ease;backface-visibility:hidden}#spectacle .drawer-layout .drawer.slide-left{transform:translateX(-250px)}#spectacle .drawer-layout .drawer.slide-right{transform:translateX(250px)}#spectacle .drawer-layout .drawer .drawer-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(254,254,254,.25)}@media print,screen and (min-width:64em){#spectacle .drawer-layout .drawer.slide-left{transform:none;margin-left:-250px}#spectacle .drawer-layout .drawer.slide-right{transform:none;margin-left:250px}#spectacle .drawer-layout .drawer .drawer-overlay{display:none}}@media print,screen and (min-width:64em){#spectacle .drawer-layout.drawer-slide-left-large .drawer{margin-left:-250px}#spectacle .drawer-layout.drawer-slide-left-large .floating-menu-icon{opacity:0}#spectacle .drawer-layout.drawer-slide-right-large .drawer{margin-left:250px}#spectacle .drawer-layout.drawer-slide-right-large .floating-menu-icon{opacity:0}}#spectacle .drawer-layout.drawer-open .floating-menu-icon{opacity:0}#spectacle .drawer-layout .floating-menu-icon{position:fixed;top:.75rem;right:.75rem;background-color:rgba(45,49,52,.75);padding:.65rem;z-index:1;border-radius:5px;transition:opacity .5s linear}#spectacle .drawer-layout .floating-menu-icon .hamburger{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}#spectacle .drawer-layout .floating-menu-icon .hamburger::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}#spectacle .drawer-layout .floating-menu-icon .hamburger:hover::after{background:#cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}#spectacle .hljs{display:block;overflow-x:auto;padding:.5em;background:#23241f}#spectacle .hljs,#spectacle .hljs-subst,#spectacle .hljs-tag{color:#f8f8f2}#spectacle .hljs-emphasis,#spectacle .hljs-strong{color:#a8a8a2}#spectacle .hljs-bullet,#spectacle .hljs-link,#spectacle .hljs-literal,#spectacle .hljs-number,#spectacle .hljs-quote,#spectacle .hljs-regexp{color:#ae81ff}#spectacle .hljs-code,#spectacle .hljs-section,#spectacle .hljs-selector-class,#spectacle .hljs-title{color:#a6e22e}#spectacle .hljs-strong{font-weight:700}#spectacle .hljs-emphasis{font-style:italic}#spectacle .hljs-attr,#spectacle .hljs-keyword,#spectacle .hljs-name,#spectacle .hljs-selector-tag{color:#f92672}#spectacle .hljs-attribute,#spectacle .hljs-symbol{color:#66d9ef}#spectacle .hljs-class .hljs-title,#spectacle .hljs-params{color:#f8f8f2}#spectacle .hljs-addition,#spectacle .hljs-built_in,#spectacle .hljs-builtin-name,#spectacle .hljs-selector-attr,#spectacle .hljs-selector-id,#spectacle .hljs-selector-pseudo,#spectacle .hljs-string,#spectacle .hljs-template-variable,#spectacle .hljs-type,#spectacle .hljs-variable{color:#e6db74}#spectacle .hljs-comment,#spectacle .hljs-deletion,#spectacle .hljs-meta{color:#75715e} \ No newline at end of file
diff --git a/support/doc/api/openapi.yaml b/support/doc/api/openapi.yaml
index 8ff81d317..f2bb945f9 100644
--- a/support/doc/api/openapi.yaml
+++ b/support/doc/api/openapi.yaml
@@ -1,1388 +1,2089 @@
1swagger: '2.0' 1openapi: 3.0.0
2info: 2info:
3 title: PeerTube 3 title: PeerTube
4 version: 1.0.0-beta 4 version: 1.2.0
5 description: Federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular. 5 contact:
6host: peertube.example.com 6 name: PeerTube Community
7securityDefinitions: 7 url: 'https://joinpeertube.org'
8 OAuth2: 8 license:
9 description: 'In the header: *Authorization: Bearer mytoken*' 9 name: AGPLv3.0
10 type: oauth2 10 url: 'https://github.com/Chocobozzz/PeerTube/blob/master/LICENSE'
11 flow: password 11 x-logo:
12 # Not implemented yet 12 url: 'https://joinpeertube.org/img/brand.png'
13 # authorizationUrl: https://example.com/oauth/authorize 13 altText: PeerTube Project Homepage
14 tokenUrl: https://peertube.example.com/api/v1/users/token 14 description: |
15basePath: '/api/v1' 15 # Introduction
16schemes: 16 The PeerTube API is built on HTTP(S). Our API is RESTful. It has predictable
17 - https 17 resource URLs. It returns HTTP response codes to indicate errors. It also
18 accepts and returns JSON in the HTTP body. You can use your favorite
19 HTTP/REST library for your programming language to use PeerTube. No official
20 SDK is currently provided, but the spec API is fully compatible with
21 [openapi-generator](https://github.com/OpenAPITools/openapi-generator/wiki/API-client-generator-HOWTO)
22 which generates a client SDK in the language of your choice.
23
24 # Authentication
25 When you sign up for an account, you are given the possibility to generate
26 sessions, and authenticate using this session token. One session token can
27 currently be used at a time.
28
29 # Errors
30 The API uses standard HTTP status codes to indicate the success or failure
31 of the API call. The body of the response will be JSON in the following
32 format.
33
34 ```
35 {
36 "code": "unauthorized_request", // example inner error code
37 "error": "Token is invalid." // example exposed error message
38 }
39 ```
40externalDocs:
41 url: https://docs.joinpeertube.org/api.html
42tags:
43 - name: Accounts
44 description: >
45 Using some features of PeerTube require authentication, for which Accounts
46 provide different levels of permission as well as associated user
47 information. Accounts also encompass remote accounts discovered across the federation.
48 - name: Config
49 description: >
50 Each server exposes public information regarding supported videos and
51 options.
52 - name: Feeds
53 description: |
54 Feeds of videos and feeds of comments allow to see updates and get them in
55 an aggregator or script of your choice.
56 - name: Job
57 description: >
58 Jobs are long-running tasks enqueued and processed by the instance
59 itself. No additional worker registration is currently available.
60 - name: Server Following
61 description: >
62 Managing servers which the instance interacts with is crucial to the
63 concept of federation in PeerTube and external video indexation. The PeerTube
64 server then deals with inter-server ActivityPub operations and propagates
65 information across its social graph by posting activities to actors' inbox
66 endpoints.
67 - name: Video Abuse
68 description: |
69 Video abuses deal with reports of local or remote videos alike.
70 - name: Video
71 description: |
72 Operations dealing with listing, uploading, fetching or modifying videos.
73 - name: Search
74 description: |
75 The search helps to find _videos_ from within the instance and beyond.
76 Videos from other instances federated by the instance (that is, instances
77 followed by the instance) can be found via keywords and other criteria of
78 the advanced search.
79 - name: Video Comment
80 description: >
81 Operations dealing with comments to a video. Comments are organized in
82 threads.
83 - name: Video Channel
84 description: >
85 Operations dealing with creation, modification and video listing of a
86 user's channels.
87 - name: Video Blacklist
88 description: >
89 Operations dealing with blacklisting videos (removing them from view and
90 preventing interactions).
91 - name: Video Rate
92 description: >
93 Voting for a video.
94x-tagGroups:
95 - name: Accounts
96 tags:
97 - Accounts
98 - User
99 - name: Videos
100 tags:
101 - Video
102 - Video Channel
103 - Video Comment
104 - Video Following
105 - Video Rate
106 - name: Moderation
107 tags:
108 - Video Abuse
109 - Video Blacklist
110 - name: Instance Configuration
111 tags:
112 - Config
113 - Server Following
114 - name: Notifications
115 tags:
116 - Feeds
117 - name: Jobs
118 tags:
119 - Job
120 - name: Search
121 tags:
122 - Search
18paths: 123paths:
19 '/accounts/{name}': 124 '/accounts/{name}':
20 get: 125 get:
21 tags: 126 tags:
22 - Accounts 127 - Accounts
23 consumes: 128 summary: Get the account by name
24 - application/json
25 produces:
26 - application/json
27 parameters: 129 parameters:
28 - $ref: "accounts.yaml#/parameters/name" 130 - $ref: '#/components/parameters/name'
29 - $ref: "commons.yaml#/parameters/start" 131 - $ref: '#/components/parameters/start'
30 - $ref: "commons.yaml#/parameters/count" 132 - $ref: '#/components/parameters/count'
31 - $ref: "commons.yaml#/parameters/sort" 133 - $ref: '#/components/parameters/sort'
32 responses: 134 responses:
33 '200': 135 '200':
34 description: successful operation 136 description: successful operation
35 schema: 137 content:
36 $ref: '#/definitions/Account' 138 application/json:
139 schema:
140 $ref: '#/components/schemas/Account'
37 '/accounts/{name}/videos': 141 '/accounts/{name}/videos':
38 get: 142 get:
39 tags: 143 tags:
40 - Accounts 144 - Accounts
41 consumes: 145 - Video
42 - application/json 146 summary: 'Get videos for an account, provided the name of that account'
43 produces:
44 - application/json
45 parameters: 147 parameters:
46 - $ref: "accounts.yaml#/parameters/name" 148 - $ref: '#/components/parameters/name'
47 responses: 149 responses:
48 '200': 150 '200':
49 description: successful operation 151 description: successful operation
50 schema: 152 content:
51 $ref: '#/definitions/Video' 153 application/json:
154 schema:
155 $ref: '#/components/schemas/Video'
156 x-code-samples:
157 - lang: JavaScript
158 source: |
159 fetch('https://peertube2.cpy.re/api/v1/accounts/{name}/videos')
160 .then(function(response) {
161 return response.json()
162 }).then(function(data) {
163 console.log(data)
164 })
165 - lang: Shell
166 source: |
167 # pip install httpie
168 http -b GET https://peertube2.cpy.re/api/v1/accounts/{name}/videos
169 - lang: Ruby
170 source: |
171 require 'uri'
172 require 'net/http'
173
174 url = URI("https://peertube2.cpy.re/api/v1/accounts/{name}/videos")
175
176 http = Net::HTTP.new(url.host, url.port)
177 http.use_ssl = true
178 http.verify_mode = OpenSSL::SSL::VERIFY_NONE
179
180 request = Net::HTTP::Post.new(url)
181 request["content-type"] = 'application/json'
182 response = http.request(request)
183 puts response.read_body
184 - lang: Python
185 source: |
186 import http.client
187
188 conn = http.client.HTTPSConnection("https://peertube2.cpy.re/api/v1")
189
190 headers = {
191 'content-type': "application/json"
192 }
193
194 conn.request("POST", "/accounts/{name}/videos", None, headers)
195
196 res = conn.getresponse()
197 data = res.read()
198
199 print(data.decode("utf-8"))
52 /accounts: 200 /accounts:
53 get: 201 get:
54 tags: 202 tags:
55 - Accounts 203 - Accounts
56 consumes: 204 summary: Get all accounts
57 - application/json
58 produces:
59 - application/json
60 responses: 205 responses:
61 '200': 206 '200':
62 description: successful operation 207 description: successful operation
63 schema: 208 content:
64 type: array 209 'application/json':
65 items: 210 schema:
66 $ref: '#/definitions/Account' 211 type: array
212 items:
213 $ref: '#/components/schemas/Account'
67 /config: 214 /config:
68 get: 215 get:
69 tags: 216 tags:
70 - Config 217 - Config
71 consumes: 218 summary: Get the public configuration of the server
72 - application/json
73 produces:
74 - application/json
75 responses: 219 responses:
76 '200': 220 '200':
77 description: successful operation 221 description: successful operation
78 schema: 222 content:
79 $ref: '#/definitions/ServerConfig' 223 application/json:
80 /feeds/videos.{format}: 224 schema:
225 $ref: '#/components/schemas/ServerConfig'
226 /config/about:
227 get:
228 summary: Get the instance about page content
229 tags:
230 - Config
231 responses:
232 '200':
233 description: successful operation
234 /config/custom:
81 get: 235 get:
236 summary: Get the runtime configuration of the server
237 tags:
238 - Config
239 security:
240 - OAuth2:
241 - admin
242 responses:
243 '200':
244 description: successful operation
245 put:
246 summary: Set the runtime configuration of the server
247 tags:
248 - Config
249 security:
250 - OAuth2:
251 - admin
252 responses:
253 '200':
254 description: successful operation
255 delete:
256 summary: Delete the runtime configuration of the server
257 tags:
258 - Config
259 security:
260 - OAuth2:
261 - admin
262 responses:
263 '200':
264 description: successful operation
265 '/feeds/videos.{format}':
266 get:
267 summary: >-
268 Get the feed of videos for the server, with optional filter by account
269 name or id
82 tags: 270 tags:
83 - Feeds 271 - Feeds
84 produces:
85 - application/atom+xml
86 - application/rss+xml
87 - application/json
88 parameters: 272 parameters:
89 - name: format 273 - name: format
90 in: path 274 in: path
91 required: true 275 required: true
92 type: string 276 description: >-
93 enum: [ 'xml', 'atom', 'json'] 277 The format expected (xml defaults to RSS 2.0, atom to ATOM 1.0 and
94 default: 'xml' 278 json to JSON FEED 1.0
95 description: 'The format expected (xml defaults to RSS 2.0, atom to ATOM 1.0 and json to JSON FEED 1.0' 279 schema:
280 type: string
281 enum:
282 - xml
283 - atom
284 - json
285 default: xml
96 - name: accountId 286 - name: accountId
97 in: query 287 in: query
98 required: false 288 required: false
99 type: number 289 description: >-
100 description: 'The id of the local account to filter to (beware, users IDs and not actors IDs which will return empty feeds' 290 The id of the local account to filter to (beware, users IDs and not
291 actors IDs which will return empty feeds
292 schema:
293 type: number
101 - name: accountName 294 - name: accountName
102 in: query 295 in: query
103 required: false 296 required: false
104 type: string 297 description: The name of the local account to filter to
105 description: 'The name of the local account to filter to' 298 schema:
299 type: string
106 responses: 300 responses:
107 '200': 301 '200':
108 description: successful operation 302 description: successful operation
109 /jobs: 303 /jobs/{state}:
110 get: 304 get:
305 summary: Get list of jobs
111 security: 306 security:
112 - OAuth2: [ ] 307 - OAuth2:
308 - admin
113 tags: 309 tags:
114 - Job 310 - Job
115 consumes:
116 - application/json
117 produces:
118 - application/json
119 parameters: 311 parameters:
120 - name: state 312 - name: state
121 in: path 313 in: path
122 required: true 314 required: true
123 type: string 315 description: The state of the job
124 description: 'The state of the job' 316 schema:
125 - $ref: "commons.yaml#/parameters/start" 317 type: string
126 - $ref: "commons.yaml#/parameters/count" 318 enum:
127 - $ref: "commons.yaml#/parameters/sort" 319 - active
320 - completed
321 - failed
322 - waiting
323 - delayed
324 - $ref: '#/components/parameters/start'
325 - $ref: '#/components/parameters/count'
326 - $ref: '#/components/parameters/sort'
128 responses: 327 responses:
129 '200': 328 '200':
130 description: successful operation 329 description: successful operation
131 schema: 330 content:
132 type: array 331 application/json:
133 items: 332 schema:
134 $ref: '#/definitions/Job' 333 type: array
334 items:
335 $ref: '#/components/schemas/Job'
135 '/server/following/{host}': 336 '/server/following/{host}':
136 delete: 337 delete:
137 security: 338 security:
138 - OAuth2: [ ] 339 - OAuth2:
340 - admin
139 tags: 341 tags:
140 - ServerFollowing 342 - Server Following
141 consumes: 343 summary: Unfollow a server by hostname
142 - application/json
143 produces:
144 - application/json
145 parameters: 344 parameters:
146 - name: host 345 - name: host
147 in: path 346 in: path
148 required: true 347 required: true
149 type: string
150 description: 'The host to unfollow ' 348 description: 'The host to unfollow '
349 schema:
350 type: string
151 responses: 351 responses:
152 '201': 352 '201':
153 description: successful operation 353 description: successful operation
154 /server/followers: 354 /server/followers:
155 get: 355 get:
156 tags: 356 tags:
157 - ServerFollowing 357 - Server Following
158 consumes: 358 summary: Get followers of the server
159 - application/json
160 produces:
161 - application/json
162 parameters: 359 parameters:
163 - $ref: "commons.yaml#/parameters/start" 360 - $ref: '#/components/parameters/start'
164 - $ref: "commons.yaml#/parameters/count" 361 - $ref: '#/components/parameters/count'
165 - $ref: "commons.yaml#/parameters/sort" 362 - $ref: '#/components/parameters/sort'
166 responses: 363 responses:
167 '200': 364 '200':
168 description: successful operation 365 description: successful operation
169 schema: 366 content:
170 type: array 367 application/json:
171 items: 368 schema:
172 $ref: '#/definitions/Follow' 369 type: array
370 items:
371 $ref: '#/components/schemas/Follow'
173 /server/following: 372 /server/following:
174 get: 373 get:
175 tags: 374 tags:
176 - ServerFollowing 375 - Server Following
177 consumes: 376 summary: Get servers followed by the server
178 - application/json
179 produces:
180 - application/json
181 parameters: 377 parameters:
182 - $ref: "commons.yaml#/parameters/start" 378 - $ref: '#/components/parameters/start'
183 - $ref: "commons.yaml#/parameters/count" 379 - $ref: '#/components/parameters/count'
184 - $ref: "commons.yaml#/parameters/sort" 380 - $ref: '#/components/parameters/sort'
185 responses: 381 responses:
186 '200': 382 '200':
187 description: successful operation 383 description: successful operation
188 schema: 384 content:
189 type: array 385 application/json:
190 items: 386 schema:
191 $ref: '#/definitions/Follow' 387 type: array
388 items:
389 $ref: '#/components/schemas/Follow'
192 post: 390 post:
193 security: 391 security:
194 - OAuth2: [ ] 392 - OAuth2:
393 - admin
195 tags: 394 tags:
196 - ServerFollowing 395 - Server Following
197 consumes: 396 summary: Follow a server
198 - application/json
199 produces:
200 - application/json
201 parameters:
202 - in: body
203 name: body
204 schema:
205 $ref: '#/definitions/Follow'
206 responses: 397 responses:
207 '204': 398 '204':
208 $ref: "commons.yaml#/responses/emptySuccess" 399 $ref: '#/paths/~1users~1me/put/responses/204'
400 requestBody:
401 content:
402 application/json:
403 schema:
404 $ref: '#/components/schemas/Follow'
209 /users: 405 /users:
210 post: 406 post:
407 summary: Creates user
211 security: 408 security:
212 - OAuth2: [ ] 409 - OAuth2:
410 - admin
213 tags: 411 tags:
214 - User 412 - User
215 consumes:
216 - application/json
217 produces:
218 - application/json
219 parameters:
220 - in: body
221 name: body
222 required: true
223 description: 'User to create'
224 schema:
225 $ref: '#/definitions/AddUser'
226 responses: 413 responses:
227 '200': 414 '200':
228 description: successful operation 415 description: successful operation
229 schema: 416 content:
230 $ref: '#/definitions/AddUserResponse' 417 application/json:
418 schema:
419 $ref: '#/components/schemas/AddUserResponse'
420 requestBody:
421 content:
422 application/json:
423 schema:
424 $ref: '#/components/schemas/AddUser'
425 description: User to create
426 required: true
231 get: 427 get:
428 summary: Get a list of users
232 security: 429 security:
233 - OAuth2: [ ] 430 - OAuth2: []
234 tags: 431 tags:
235 - User 432 - User
236 consumes:
237 - application/json
238 produces:
239 - application/json
240 parameters: 433 parameters:
241 - $ref: "commons.yaml#/parameters/start" 434 - $ref: '#/components/parameters/start'
242 - $ref: "commons.yaml#/parameters/count" 435 - $ref: '#/components/parameters/count'
243 - $ref: "commons.yaml#/parameters/sort" 436 - $ref: '#/components/parameters/usersSort'
244 responses: 437 responses:
245 '200': 438 '200':
246 description: successful operation 439 description: successful operation
247 schema: 440 content:
248 type: array 441 application/json:
249 items: 442 schema:
250 $ref: '#/definitions/User' 443 type: array
444 items:
445 $ref: '#/components/schemas/User'
251 '/users/{id}': 446 '/users/{id}':
252 delete: 447 delete:
448 summary: Delete a user by its id
253 security: 449 security:
254 - OAuth2: [ ] 450 - OAuth2:
451 - admin
255 tags: 452 tags:
256 - User 453 - User
257 consumes:
258 - application/json
259 produces:
260 - application/json
261 parameters: 454 parameters:
262 - $ref: "users.yaml#/parameters/id" 455 - $ref: '#/components/parameters/id'
263 responses: 456 responses:
264 '204': 457 '204':
265 $ref: "commons.yaml#/responses/emptySuccess" 458 $ref: '#/paths/~1users~1me/put/responses/204'
266 get: 459 get:
460 summary: Get user by its id
267 security: 461 security:
268 - OAuth2: [ ] 462 - OAuth2: []
269 tags: 463 tags:
270 - User 464 - User
271 consumes:
272 - application/json
273 produces:
274 - application/json
275 parameters: 465 parameters:
276 - $ref: "users.yaml#/parameters/id" 466 - $ref: '#/components/parameters/id'
277 responses: 467 responses:
278 '200': 468 '200':
279 description: successful operation 469 description: successful operation
280 schema: 470 content:
281 $ref: '#/definitions/User' 471 application/json:
472 schema:
473 $ref: '#/components/schemas/User'
282 put: 474 put:
475 summary: Update user profile by its id
283 security: 476 security:
284 - OAuth2: [ ] 477 - OAuth2: []
285 tags: 478 tags:
286 - User 479 - User
287 consumes:
288 - application/json
289 produces:
290 - application/json
291 parameters: 480 parameters:
292 - $ref: "users.yaml#/parameters/id" 481 - $ref: '#/components/parameters/id'
293 - in: body
294 name: body
295 required: true
296 schema:
297 $ref: '#/definitions/UpdateUser'
298 responses: 482 responses:
299 '204': 483 '204':
300 $ref: "commons.yaml#/responses/emptySuccess" 484 $ref: '#/paths/~1users~1me/put/responses/204'
485 requestBody:
486 content:
487 application/json:
488 schema:
489 $ref: '#/components/schemas/UpdateUser'
490 required: true
301 /users/me: 491 /users/me:
302 get: 492 get:
493 summary: Get current user information
303 security: 494 security:
304 - OAuth2: [ ] 495 - OAuth2:
496 - user
305 tags: 497 tags:
306 - User 498 - User
307 consumes:
308 - application/json
309 produces:
310 - application/json
311 responses: 499 responses:
312 '200': 500 '200':
313 description: successful operation 501 description: successful operation
314 schema: 502 content:
315 type: array 503 application/json:
316 items: 504 schema:
317 $ref: '#/definitions/User' 505 type: array
506 items:
507 $ref: '#/components/schemas/User'
318 put: 508 put:
509 summary: Update current user information
319 security: 510 security:
320 - OAuth2: [ ] 511 - OAuth2:
512 - user
321 tags: 513 tags:
322 - User 514 - User
323 consumes:
324 - application/json
325 produces:
326 - application/json
327 parameters:
328 - in: body
329 name: body
330 required: true
331 schema:
332 $ref: '#/definitions/UpdateMe'
333 responses: 515 responses:
334 '204': 516 '204':
335 $ref: "commons.yaml#/responses/emptySuccess" 517 description: Successful operation
518 requestBody:
519 content:
520 application/json:
521 schema:
522 $ref: '#/components/schemas/UpdateMe'
523 required: true
336 /users/me/video-quota-used: 524 /users/me/video-quota-used:
337 get: 525 get:
526 summary: Get current user used quota
338 security: 527 security:
339 - OAuth2: [ ] 528 - OAuth2:
529 - user
340 tags: 530 tags:
341 - User 531 - User
342 consumes:
343 - application/json
344 produces:
345 - application/json
346 parameters: []
347 responses: 532 responses:
348 '200': 533 '200':
349 description: successful operation 534 description: successful operation
350 schema: 535 content:
351 type: number 536 application/json:
537 schema:
538 type: number
352 '/users/me/videos/{videoId}/rating': 539 '/users/me/videos/{videoId}/rating':
353 get: 540 get:
541 summary: 'Get rating of video by its id, among those of the current user'
354 security: 542 security:
355 - OAuth2: [ ] 543 - OAuth2: []
356 tags: 544 tags:
357 - User 545 - User
358 consumes:
359 - application/json
360 produces:
361 - application/json
362 parameters: 546 parameters:
363 - name: videoId 547 - name: videoId
364 in: path 548 in: path
365 required: true 549 required: true
366 type: string
367 description: 'The video id ' 550 description: 'The video id '
551 schema:
552 type: string
368 responses: 553 responses:
369 '200': 554 '200':
370 description: successful operation 555 description: successful operation
371 schema: 556 content:
372 $ref: '#/definitions/GetMeVideoRating' 557 application/json:
558 schema:
559 $ref: '#/components/schemas/GetMeVideoRating'
373 /users/me/videos: 560 /users/me/videos:
374 get: 561 get:
562 summary: Get videos of the current user
375 security: 563 security:
376 - OAuth2: [ ] 564 - OAuth2:
565 - user
377 tags: 566 tags:
378 - User 567 - User
379 consumes:
380 - application/json
381 produces:
382 - application/json
383 parameters: 568 parameters:
384 - $ref: "commons.yaml#/parameters/start" 569 - $ref: '#/components/parameters/start'
385 - $ref: "commons.yaml#/parameters/count" 570 - $ref: '#/components/parameters/count'
386 - $ref: "commons.yaml#/parameters/sort" 571 - $ref: '#/components/parameters/sort'
572 responses:
573 '200':
574 description: successful operation
575 content:
576 application/json:
577 schema:
578 type: array
579 items:
580 $ref: '#/components/schemas/Video'
581 /users/me/subscriptions:
582 get:
583 summary: Get subscriptions of the current user
584 security:
585 - OAuth2:
586 - user
587 tags:
588 - User
589 parameters:
590 - $ref: '#/components/parameters/start'
591 - $ref: '#/components/parameters/count'
592 - $ref: '#/components/parameters/sort'
387 responses: 593 responses:
388 '200': 594 '200':
389 description: successful operation 595 description: successful operation
390 schema:
391 type: array
392 items:
393 $ref: '#/definitions/Video'
394 /users/register:
395 post: 596 post:
597 summary: Add subscription to the current user
598 security:
599 - OAuth2:
600 - user
601 tags:
602 - User
603 responses:
604 '200':
605 description: successful operation
606 /users/me/subscriptions/exist:
607 get:
608 summary: Get if subscriptions exist for the current user
609 security:
610 - OAuth2:
611 - user
396 tags: 612 tags:
397 - User 613 - User
398 consumes:
399 - application/json
400 produces:
401 - application/json
402 parameters: 614 parameters:
403 - in: body 615 - $ref: '#/components/parameters/subscriptionsUris'
404 name: body 616 responses:
405 required: true 617 '200':
406 schema: 618 description: successful operation
407 $ref: '#/definitions/RegisterUser' 619 content:
620 application/json:
621 schema:
622 type: object
623 /users/me/subscriptions/videos:
624 get:
625 summary: Get videos of subscriptions of the current user
626 security:
627 - OAuth2:
628 - user
629 tags:
630 - User
631 parameters:
632 - $ref: '#/components/parameters/start'
633 - $ref: '#/components/parameters/count'
634 - $ref: '#/components/parameters/sort'
635 responses:
636 '200':
637 description: successful operation
638 content:
639 application/json:
640 schema:
641 type: array
642 items:
643 $ref: '#/components/schemas/Video'
644 '/users/me/subscriptions/{uri}':
645 get:
646 summary: Get subscription of the current user for a given uri
647 security:
648 - OAuth2:
649 - user
650 tags:
651 - User
652 responses:
653 '200':
654 description: successful operation
655 content:
656 application/json:
657 schema:
658 $ref: '#/components/schemas/VideoChannel'
659 delete:
660 summary: Delete subscription of the current user for a given uri
661 security:
662 - OAuth2:
663 - user
664 tags:
665 - User
666 responses:
667 '200':
668 description: successful operation
669 /users/register:
670 post:
671 summary: Register a user
672 tags:
673 - User
408 responses: 674 responses:
409 '204': 675 '204':
410 $ref: "commons.yaml#/responses/emptySuccess" 676 $ref: '#/paths/~1users~1me/put/responses/204'
677 requestBody:
678 content:
679 application/json:
680 schema:
681 $ref: '#/components/schemas/RegisterUser'
682 required: true
411 /users/me/avatar/pick: 683 /users/me/avatar/pick:
412 post: 684 post:
685 summary: Update current user avatar
413 security: 686 security:
414 - OAuth2: [ ] 687 - OAuth2: []
415 tags: 688 tags:
416 - User 689 - User
417 consumes:
418 - multipart/form-data
419 produces:
420 - application/json
421 parameters:
422 - in: formData
423 name: avatarfile
424 type: file
425 description: The file to upload.
426 responses: 690 responses:
427 '200': 691 '200':
428 description: successful operation 692 description: successful operation
429 schema: 693 content:
430 $ref: '#/definitions/Avatar' 694 application/json:
695 schema:
696 $ref: '#/components/schemas/Avatar'
697 requestBody:
698 content:
699 multipart/form-data:
700 schema:
701 type: object
702 properties:
703 avatarfile:
704 description: The file to upload.
705 type: string
706 format: binary
707 encoding:
708 profileImage:
709 # only accept png/jpeg
710 contentType: image/png, image/jpeg
431 /videos: 711 /videos:
432 get: 712 get:
713 summary: Get list of videos
433 tags: 714 tags:
434 - Video 715 - Video
435 consumes:
436 - application/json
437 produces:
438 - application/json
439 parameters: 716 parameters:
440 - name: category 717 - $ref: '#/components/parameters/categoryOneOf'
441 in: query 718 - $ref: '#/components/parameters/tagsOneOf'
442 required: false 719 - $ref: '#/components/parameters/tagsAllOf'
443 type: number 720 - $ref: '#/components/parameters/licenceOneOf'
444 description: category id of the video 721 - $ref: '#/components/parameters/languageOneOf'
445 - $ref: "commons.yaml#/parameters/start" 722 - $ref: '#/components/parameters/nsfw'
446 - $ref: "commons.yaml#/parameters/count" 723 - $ref: '#/components/parameters/filter'
447 - $ref: "commons.yaml#/parameters/sort" 724 - $ref: '#/components/parameters/start'
725 - $ref: '#/components/parameters/count'
726 - $ref: '#/components/parameters/videosSort'
448 responses: 727 responses:
449 '200': 728 '200':
450 description: successful operation 729 description: successful operation
451 schema: 730 content:
452 type: array 731 application/json:
453 items: 732 schema:
454 $ref: '#/definitions/Video' 733 type: array
734 items:
735 $ref: '#/components/schemas/Video'
455 /videos/categories: 736 /videos/categories:
456 get: 737 get:
738 summary: Get list of video licences known by the server
457 tags: 739 tags:
458 - Video 740 - Video
459 consumes:
460 - application/json
461 produces:
462 - application/json
463 responses: 741 responses:
464 '200': 742 '200':
465 description: successful operation 743 description: successful operation
466 schema: 744 content:
467 type: array 745 application/json:
468 items: 746 schema:
469 type: string 747 type: array
748 items:
749 type: string
470 /videos/licences: 750 /videos/licences:
471 get: 751 get:
752 summary: Get list of video licences known by the server
472 tags: 753 tags:
473 - Video 754 - Video
474 consumes:
475 - application/json
476 produces:
477 - application/json
478 responses: 755 responses:
479 '200': 756 '200':
480 description: successful operation 757 description: successful operation
481 schema: 758 content:
482 type: array 759 application/json:
483 items: 760 schema:
484 type: string 761 type: array
762 items:
763 type: string
485 /videos/languages: 764 /videos/languages:
486 get: 765 get:
766 summary: Get list of languages known by the server
487 tags: 767 tags:
488 - Video 768 - Video
489 consumes:
490 - application/json
491 produces:
492 - application/json
493 responses: 769 responses:
494 '200': 770 '200':
495 description: successful operation 771 description: successful operation
496 schema: 772 content:
497 type: array 773 application/json:
498 items: 774 schema:
499 type: string 775 type: array
776 items:
777 type: string
500 /videos/privacies: 778 /videos/privacies:
501 get: 779 get:
780 summary: Get list of privacy policies supported by the server
502 tags: 781 tags:
503 - Video 782 - Video
504 consumes:
505 - application/json
506 produces:
507 - application/json
508 responses: 783 responses:
509 '200': 784 '200':
510 description: successful operation 785 description: successful operation
511 schema: 786 content:
512 type: array 787 application/json:
513 items: 788 schema:
514 type: string 789 type: array
515 "/videos/{id}": 790 items:
791 type: string
792 '/videos/{id}':
516 put: 793 put:
794 summary: Update metadata for a video by its id
517 security: 795 security:
518 - OAuth2: [ ] 796 - OAuth2: []
519 tags: 797 tags:
520 - Video 798 - Video
521 consumes:
522 - multipart/form-data
523 produces:
524 - application/json
525 parameters: 799 parameters:
526 - $ref: "videos.yaml#/parameters/id" 800 - $ref: '#/components/parameters/id2'
527 - $ref: "videos.yaml#/parameters/thumbnailfile"
528 - $ref: "videos.yaml#/parameters/previewfile"
529 - $ref: "videos.yaml#/parameters/category"
530 - $ref: "videos.yaml#/parameters/licence"
531 - $ref: "videos.yaml#/parameters/language"
532 - $ref: "videos.yaml#/parameters/description"
533 - $ref: "videos.yaml#/parameters/waitTranscoding"
534 - $ref: "videos.yaml#/parameters/support"
535 - $ref: "videos.yaml#/parameters/nsfw"
536 - $ref: "videos.yaml#/parameters/name"
537 - $ref: "videos.yaml#/parameters/tags"
538 - $ref: "videos.yaml#/parameters/commentsEnabled"
539 - $ref: "videos.yaml#/parameters/downloadEnabled"
540 - $ref: "videos.yaml#/parameters/privacy"
541 - $ref: "videos.yaml#/parameters/scheduleUpdate"
542 responses: 801 responses:
543 '200': 802 '200':
544 description: successful operation 803 description: successful operation
545 schema: 804 content:
546 $ref: '#/definitions/Video' 805 application/json:
806 schema:
807 $ref: '#/components/schemas/Video'
808 requestBody:
809 content:
810 multipart/form-data:
811 schema:
812 type: object
813 properties:
814 thumbnailfile:
815 description: Video thumbnail file
816 type: string
817 previewfile:
818 description: Video preview file
819 type: string
820 category:
821 description: Video category
822 type: string
823 licence:
824 description: Video licence
825 type: string
826 language:
827 description: Video language
828 type: string
829 description:
830 description: Video description
831 type: string
832 waitTranscoding:
833 description: Whether or not we wait transcoding before publish the video
834 type: string
835 support:
836 description: Text describing how to support the video uploader
837 type: string
838 nsfw:
839 description: Whether or not this video contains sensitive content
840 type: string
841 name:
842 description: Video name
843 type: string
844 tags:
845 description: Video tags
846 type: array
847 items:
848 type: string
849 commentsEnabled:
850 description: Enable or disable comments for this video
851 type: string
852 scheduleUpdate: &ref_0
853 type: object
854 properties:
855 privacy:
856 type: string
857 enum:
858 - Public
859 - Unlisted
860 description: Video privacy target
861 updateAt:
862 type: string
863 format: date
864 description: When to update the video
865 required:
866 - updateAt
547 get: 867 get:
868 summary: Get a video by its id
548 tags: 869 tags:
549 - Video 870 - Video
550 consumes:
551 - application/json
552 produces:
553 - application/json
554 parameters: 871 parameters:
555 - $ref: "videos.yaml#/parameters/id" 872 - $ref: '#/components/parameters/id2'
556 responses: 873 responses:
557 '200': 874 '200':
558 description: successful operation 875 description: successful operation
559 schema: 876 content:
560 $ref: '#/definitions/Video' 877 application/json:
878 schema:
879 $ref: '#/components/schemas/Video'
561 delete: 880 delete:
881 summary: Delete a video by its id
562 security: 882 security:
563 - OAuth2: [ ] 883 - OAuth2: []
564 tags: 884 tags:
565 - Video 885 - Video
566 consumes:
567 - application/json
568 produces:
569 - application/json
570 parameters: 886 parameters:
571 - $ref: "videos.yaml#/parameters/id" 887 - $ref: '#/components/parameters/id2'
572 responses: 888 responses:
573 '204': 889 '204':
574 $ref: "commons.yaml#/responses/emptySuccess" 890 $ref: '#/paths/~1users~1me/put/responses/204'
575 "/videos/{id}/description": 891 '/videos/{id}/description':
576 get: 892 get:
893 summary: Get a video description by its id
577 tags: 894 tags:
578 - Video 895 - Video
579 consumes:
580 - application/json
581 produces:
582 - application/json
583 parameters: 896 parameters:
584 - $ref: "videos.yaml#/parameters/id" 897 - $ref: '#/components/parameters/id2'
585 responses: 898 responses:
586 '200': 899 '200':
587 description: successful operation 900 description: successful operation
588 schema: 901 content:
589 type: string 902 application/json:
590 "/videos/{id}/views": 903 schema:
904 type: string
905 '/videos/{id}/views':
591 post: 906 post:
907 summary: Add a view to the video by its id
592 tags: 908 tags:
593 - Video 909 - Video
594 consumes:
595 - application/json
596 produces:
597 - application/json
598 parameters: 910 parameters:
599 - $ref: "videos.yaml#/parameters/id" 911 - $ref: '#/components/parameters/id2'
600 responses: 912 responses:
601 '204': 913 '204':
602 $ref: "commons.yaml#/responses/emptySuccess" 914 $ref: '#/paths/~1users~1me/put/responses/204'
603 /videos/upload: 915 '/videos/{id}/watching':
916 put:
917 summary: Set watching progress of a video by its id for a user
918 tags:
919 - Video
920 security:
921 - OAuth2: []
922 parameters:
923 - $ref: '#/components/parameters/id2'
924 requestBody:
925 content:
926 application/json:
927 schema:
928 $ref: '#/components/schemas/UserWatchingVideo'
929 required: true
930 responses:
931 '204':
932 $ref: '#/paths/~1users~1me/put/responses/204'
933 /videos/ownership:
934 get:
935 summary: Get list of video ownership changes requests
936 tags:
937 - Video
938 security:
939 - OAuth2: []
940 parameters:
941 - $ref: '#/components/parameters/id2'
942 responses:
943 '200':
944 description: successful operation
945 '/videos/ownership/{id}/accept':
604 post: 946 post:
947 summary: Refuse ownership change request for video by its id
948 tags:
949 - Video
605 security: 950 security:
606 - OAuth2: [ ] 951 - OAuth2: []
952 parameters:
953 - $ref: '#/components/parameters/id2'
954 responses:
955 '204':
956 $ref: '#/paths/~1users~1me/put/responses/204'
957 '/videos/ownership/{id}/refuse':
958 post:
959 summary: Accept ownership change request for video by its id
607 tags: 960 tags:
608 - Video 961 - Video
609 consumes: 962 security:
610 - multipart/form-data 963 - OAuth2: []
611 produces:
612 - application/json
613 parameters: 964 parameters:
614 - name: videofile 965 - $ref: '#/components/parameters/id2'
615 in: formData 966 responses:
616 type: file 967 '204':
617 required: true 968 $ref: '#/paths/~1users~1me/put/responses/204'
618 description: 'Video file' 969 '/videos/{id}/give-ownership':
619 - name: channelId 970 post:
620 in: formData 971 summary: Request change of ownership for a video you own, by its id
621 required: true 972 tags:
622 type: number 973 - Video
623 description: 'Channel id that will contain this video' 974 security:
624 - $ref: "videos.yaml#/parameters/thumbnailfile" 975 - OAuth2: []
625 - $ref: "videos.yaml#/parameters/previewfile" 976 parameters:
626 - $ref: "videos.yaml#/parameters/category" 977 - $ref: '#/components/parameters/id2'
627 - $ref: "videos.yaml#/parameters/licence" 978 requestBody:
628 - $ref: "videos.yaml#/parameters/language" 979 required: true
629 - $ref: "videos.yaml#/parameters/description" 980 content:
630 - $ref: "videos.yaml#/parameters/waitTranscoding" 981 application/x-www-form-urlencoded:
631 - $ref: "videos.yaml#/parameters/support" 982 schema:
632 - $ref: "videos.yaml#/parameters/nsfw" 983 type: object
633 - $ref: "videos.yaml#/parameters/name" 984 properties:
634 - $ref: "videos.yaml#/parameters/tags" 985 username:
635 - $ref: "videos.yaml#/parameters/commentsEnabled" 986 type: string
636 - $ref: "videos.yaml#/parameters/downloadEnabled" 987 required:
637 - $ref: "videos.yaml#/parameters/privacy" 988 - username
638 - $ref: "videos.yaml#/parameters/scheduleUpdate" 989 responses:
990 '204':
991 $ref: '#/paths/~1users~1me/put/responses/204'
992 '400':
993 description: 'Changing video ownership to a remote account is not supported yet'
994 /videos/upload:
995 post:
996 summary: Upload a video file with its metadata
997 security:
998 - OAuth2: []
999 tags:
1000 - Video
639 responses: 1001 responses:
640 '200': 1002 '200':
641 description: successful operation 1003 description: successful operation
642 schema: 1004 content:
643 $ref: '#/definitions/VideoUploadResponse' 1005 application/json:
1006 schema:
1007 $ref: '#/components/schemas/VideoUploadResponse'
1008 requestBody:
1009 content:
1010 multipart/form-data:
1011 schema:
1012 type: object
1013 properties:
1014 videofile:
1015 description: Video file
1016 type: string
1017 format: binary
1018 channelId:
1019 description: Channel id that will contain this video
1020 type: number
1021 thumbnailfile:
1022 description: Video thumbnail file
1023 type: string
1024 previewfile:
1025 description: Video preview file
1026 type: string
1027 privacy:
1028 $ref: '#/components/schemas/VideoPrivacy'
1029 category:
1030 description: Video category
1031 type: string
1032 licence:
1033 description: Video licence
1034 type: string
1035 language:
1036 description: Video language
1037 type: string
1038 description:
1039 description: Video description
1040 type: string
1041 waitTranscoding:
1042 description: Whether or not we wait transcoding before publish the video
1043 type: string
1044 support:
1045 description: Text describing how to support the video uploader
1046 type: string
1047 nsfw:
1048 description: Whether or not this video contains sensitive content
1049 type: string
1050 name:
1051 description: Video name
1052 type: string
1053 tags:
1054 description: Video tags
1055 type: array
1056 items:
1057 type: string
1058 commentsEnabled:
1059 description: Enable or disable comments for this video
1060 type: string
1061 scheduleUpdate: *ref_0
1062 required:
1063 - videofile
1064 - channelId
1065 - name
1066 x-code-samples:
1067 - lang: Shell
1068 source: |
1069 ## DEPENDENCIES: httpie, jq
1070 # pip install httpie
1071 USERNAME="<your_username>"
1072 PASSWORD="<your_password>"
1073 FILE_PATH="<your_file_path>"
1074 CHANNEL_ID="<your_channel_id>"
1075 NAME="<video_name>"
1076
1077 API_PATH="https://peertube2.cpy.re/api/v1"
1078 ## AUTH
1079 client_id=$(http -b GET "$API_PATH/oauth-clients/local" | jq -r ".client_id")
1080 client_secret=$(http -b GET "$API_PATH/oauth-clients/local" | jq -r ".client_secret")
1081 token=$(http -b --form POST "$API_PATH/users/token" \
1082 client_id="$client_id" client_secret="$client_secret" grant_type=password response_type=code \
1083 username=$USERNAME \
1084 password=$PASSWORD \
1085 | jq -r ".access_token")
1086 ## VIDEO UPLOAD
1087 http -b --form POST "$API_PATH/videos/upload" \
1088 videofile@$FILE_PATH \
1089 channelId=$CHANNEL_ID \
1090 name=$NAME \
1091 "Authorization:Bearer $token"
644 /videos/abuse: 1092 /videos/abuse:
645 get: 1093 get:
1094 summary: Get list of reported video abuses
646 security: 1095 security:
647 - OAuth2: [ ] 1096 - OAuth2: []
648 tags: 1097 tags:
649 - VideoAbuse 1098 - Video Abuse
650 consumes:
651 - application/json
652 produces:
653 - application/json
654 parameters: 1099 parameters:
655 - $ref: "commons.yaml#/parameters/start" 1100 - $ref: '#/components/parameters/start'
656 - $ref: "commons.yaml#/parameters/count" 1101 - $ref: '#/components/parameters/count'
657 - $ref: "commons.yaml#/parameters/sort" 1102 - $ref: '#/components/parameters/abusesSort'
658 responses: 1103 responses:
659 '200': 1104 '200':
660 description: successful operation 1105 description: successful operation
661 schema: 1106 content:
662 type: array 1107 application/json:
663 items: 1108 schema:
664 $ref: '#/definitions/VideoAbuse' 1109 type: array
665 "/videos/{id}/abuse": 1110 items:
1111 $ref: '#/components/schemas/VideoAbuse'
1112 '/videos/{id}/abuse':
666 post: 1113 post:
1114 summary: 'Report an abuse, on a video by its id'
667 security: 1115 security:
668 - OAuth2: [ ] 1116 - OAuth2: []
669 tags: 1117 tags:
670 - VideoAbuse 1118 - Video Abuse
671 consumes:
672 - application/json
673 produces:
674 - application/json
675 parameters: 1119 parameters:
676 - $ref: "videos.yaml#/parameters/id" 1120 - $ref: '#/components/parameters/id2'
677 responses: 1121 responses:
678 '204': 1122 '204':
679 $ref: "commons.yaml#/responses/emptySuccess" 1123 $ref: '#/paths/~1users~1me/put/responses/204'
680 "/videos/{id}/blacklist": 1124 '/videos/{id}/blacklist':
681 post: 1125 post:
1126 summary: Put on blacklist a video by its id
682 security: 1127 security:
683 - OAuth2: [ ] 1128 - OAuth2:
1129 - admin
1130 - moderator
684 tags: 1131 tags:
685 - VideoBlacklist 1132 - Video Blacklist
686 consumes:
687 - application/json
688 produces:
689 - application/json
690 parameters: 1133 parameters:
691 - $ref: "videos.yaml#/parameters/id" 1134 - $ref: '#/components/parameters/id2'
692 responses: 1135 responses:
693 '204': 1136 '204':
694 $ref: "commons.yaml#/responses/emptySuccess" 1137 $ref: '#/paths/~1users~1me/put/responses/204'
695 delete: 1138 delete:
1139 summary: Delete an entry of the blacklist of a video by its id
696 security: 1140 security:
697 - OAuth2: [ ] 1141 - OAuth2:
1142 - admin
1143 - moderator
698 tags: 1144 tags:
699 - VideoBlacklist 1145 - Video Blacklist
700 consumes:
701 - application/json
702 produces:
703 - application/json
704 parameters: 1146 parameters:
705 - $ref: "videos.yaml#/parameters/id" 1147 - $ref: '#/components/parameters/id2'
706 responses: 1148 responses:
707 '204': 1149 '204':
708 $ref: "commons.yaml#/responses/emptySuccess" 1150 $ref: '#/paths/~1users~1me/put/responses/204'
709 /videos/blacklist: 1151 /videos/blacklist:
710 get: 1152 get:
1153 summary: Get list of videos on blacklist
711 security: 1154 security:
712 - OAuth2: [ ] 1155 - OAuth2:
1156 - admin
1157 - moderator
713 tags: 1158 tags:
714 - VideoBlacklist 1159 - Video Blacklist
715 consumes:
716 - application/json
717 produces:
718 - application/json
719 parameters: 1160 parameters:
720 - $ref: "commons.yaml#/parameters/start" 1161 - $ref: '#/components/parameters/start'
721 - $ref: "commons.yaml#/parameters/count" 1162 - $ref: '#/components/parameters/count'
722 - $ref: "commons.yaml#/parameters/sort" 1163 - $ref: '#/components/parameters/blacklistsSort'
723 responses: 1164 responses:
724 '200': 1165 '200':
725 description: successful operation 1166 description: successful operation
726 schema: 1167 content:
727 type: array 1168 application/json:
728 items: 1169 schema:
729 $ref: '#/definitions/VideoBlacklist' 1170 type: array
1171 items:
1172 $ref: '#/components/schemas/VideoBlacklist'
730 /video-channels: 1173 /video-channels:
731 get: 1174 get:
1175 summary: Get list of video channels
732 tags: 1176 tags:
733 - VideoChannel 1177 - Video Channel
734 consumes:
735 - application/json
736 produces:
737 - application/json
738 parameters: 1178 parameters:
739 - $ref: "commons.yaml#/parameters/start" 1179 - $ref: '#/components/parameters/start'
740 - $ref: "commons.yaml#/parameters/count" 1180 - $ref: '#/components/parameters/count'
741 - $ref: "commons.yaml#/parameters/sort" 1181 - $ref: '#/components/parameters/sort'
742 responses: 1182 responses:
743 '200': 1183 '200':
744 description: successful operation 1184 description: successful operation
745 schema: 1185 content:
746 type: array 1186 application/json:
747 items: 1187 schema:
748 $ref: '#/definitions/VideoChannel' 1188 type: array
1189 items:
1190 $ref: '#/components/schemas/VideoChannel'
749 post: 1191 post:
1192 summary: Creates a video channel for the current user
750 security: 1193 security:
751 - OAuth2: [ ] 1194 - OAuth2: []
752 tags: 1195 tags:
753 - VideoChannel 1196 - Video Channel
754 consumes:
755 - application/json
756 produces:
757 - application/json
758 parameters:
759 - in: body
760 name: body
761 schema:
762 $ref: '#/definitions/VideoChannelInput'
763 responses: 1197 responses:
764 '204': 1198 '204':
765 $ref: "commons.yaml#/responses/emptySuccess" 1199 $ref: '#/paths/~1users~1me/put/responses/204'
766 "/video-channels/{id}": 1200 requestBody:
1201 $ref: '#/components/requestBodies/VideoChannelInput'
1202 '/video-channels/{id}':
767 get: 1203 get:
1204 summary: Get a video channel by its id
768 tags: 1205 tags:
769 - VideoChannel 1206 - Video Channel
770 consumes:
771 - application/json
772 produces:
773 - application/json
774 parameters: 1207 parameters:
775 - $ref: "video-channels.yaml#/parameters/id" 1208 - $ref: '#/components/parameters/id3'
776 responses: 1209 responses:
777 '200': 1210 '200':
778 description: successful operation 1211 description: successful operation
779 schema: 1212 content:
780 $ref: '#/definitions/VideoChannel' 1213 application/json:
1214 schema:
1215 $ref: '#/components/schemas/VideoChannel'
781 put: 1216 put:
1217 summary: Update a video channel by its id
782 security: 1218 security:
783 - OAuth2: [ ] 1219 - OAuth2: []
784 tags: 1220 tags:
785 - VideoChannel 1221 - Video Channel
786 consumes:
787 - application/json
788 produces:
789 - application/json
790 parameters: 1222 parameters:
791 - $ref: "video-channels.yaml#/parameters/id" 1223 - $ref: '#/components/parameters/id3'
792 - in: body
793 name: body
794 schema:
795 $ref: '#/definitions/VideoChannelInput'
796 responses: 1224 responses:
797 '204': 1225 '204':
798 $ref: "commons.yaml#/responses/emptySuccess" 1226 $ref: '#/paths/~1users~1me/put/responses/204'
1227 requestBody:
1228 $ref: '#/components/requestBodies/VideoChannelInput'
799 delete: 1229 delete:
1230 summary: Delete a video channel by its id
800 security: 1231 security:
801 - OAuth2: [ ] 1232 - OAuth2: []
802 tags: 1233 tags:
803 - VideoChannel 1234 - Video Channel
804 consumes:
805 - application/json
806 produces:
807 - application/json
808 parameters: 1235 parameters:
809 - $ref: "video-channels.yaml#/parameters/id" 1236 - $ref: '#/components/parameters/id3'
810 responses: 1237 responses:
811 '204': 1238 '204':
812 $ref: "commons.yaml#/responses/emptySuccess" 1239 $ref: '#/paths/~1users~1me/put/responses/204'
813 "/video-channels/{id}/videos": 1240 '/video-channels/{id}/videos':
814 get: 1241 get:
1242 summary: Get videos of a video channel by its id
815 tags: 1243 tags:
816 - VideoChannel 1244 - Video Channel
817 consumes:
818 - application/json
819 produces:
820 - application/json
821 parameters: 1245 parameters:
822 - $ref: "video-channels.yaml#/parameters/id" 1246 - $ref: '#/components/parameters/id3'
823 responses: 1247 responses:
824 '200': 1248 '200':
825 description: successful operation 1249 description: successful operation
826 schema: 1250 content:
827 $ref: '#/definitions/Video' 1251 application/json:
828 /accounts/{name}/video-channels: 1252 schema:
1253 $ref: '#/components/schemas/Video'
1254 '/accounts/{name}/video-channels':
829 get: 1255 get:
1256 summary: Get video channels of an account by its name
830 tags: 1257 tags:
831 - VideoChannel 1258 - Video Channel
832 consumes:
833 - application/json
834 produces:
835 - application/json
836 parameters: 1259 parameters:
837 - $ref: "accounts.yaml#/parameters/name" 1260 - $ref: '#/components/parameters/name'
838 responses: 1261 responses:
839 '200': 1262 '200':
840 description: successful operation 1263 description: successful operation
841 schema: 1264 content:
842 type: array 1265 application/json:
843 items: 1266 schema:
844 $ref: '#/definitions/VideoChannel' 1267 type: array
845 "/videos/{id}/comment-threads": 1268 items:
1269 $ref: '#/components/schemas/VideoChannel'
1270 '/videos/{id}/comment-threads':
846 get: 1271 get:
1272 summary: Get the comment threads of a video by its id
847 tags: 1273 tags:
848 - VideoComment 1274 - Video Comment
849 consumes:
850 - application/json
851 produces:
852 - application/json
853 parameters: 1275 parameters:
854 - $ref: "videos.yaml#/parameters/id" 1276 - $ref: '#/components/parameters/id2'
855 - $ref: "commons.yaml#/parameters/start" 1277 - $ref: '#/components/parameters/start'
856 - $ref: "commons.yaml#/parameters/count" 1278 - $ref: '#/components/parameters/count'
857 - $ref: "commons.yaml#/parameters/sort" 1279 - $ref: '#/components/parameters/sort'
858 responses: 1280 responses:
859 '200': 1281 '200':
860 description: successful operation 1282 description: successful operation
861 schema: 1283 content:
862 $ref: '#/definitions/CommentThreadResponse' 1284 application/json:
1285 schema:
1286 $ref: '#/components/schemas/CommentThreadResponse'
863 post: 1287 post:
1288 summary: 'Creates a comment thread, on a video by its id'
864 security: 1289 security:
865 - OAuth2: [ ] 1290 - OAuth2: []
866 tags: 1291 tags:
867 - VideoComment 1292 - Video Comment
868 consumes:
869 - application/json
870 produces:
871 - application/json
872 parameters: 1293 parameters:
873 - $ref: "videos.yaml#/parameters/id" 1294 - $ref: '#/components/parameters/id2'
874 responses: 1295 responses:
875 '200': 1296 '200':
876 description: successful operation 1297 description: successful operation
877 schema: 1298 content:
878 $ref: '#/definitions/CommentThreadPostResponse' 1299 application/json:
879 "/videos/{id}/comment-threads/{threadId}": 1300 schema:
1301 $ref: '#/components/schemas/CommentThreadPostResponse'
1302 '/videos/{id}/comment-threads/{threadId}':
880 get: 1303 get:
1304 summary: 'Get the comment thread by its id, of a video by its id'
881 tags: 1305 tags:
882 - VideoComment 1306 - Video Comment
883 consumes:
884 - application/json
885 produces:
886 - application/json
887 parameters: 1307 parameters:
888 - $ref: "videos.yaml#/parameters/id" 1308 - $ref: '#/components/parameters/id2'
889 - $ref: "video-comments.yaml#/parameters/threadId" 1309 - name: threadId
1310 in: path
1311 required: true
1312 description: The thread id (root comment id)
1313 schema:
1314 type: number
890 responses: 1315 responses:
891 '200': 1316 '200':
892 description: successful operation 1317 description: successful operation
893 schema: 1318 content:
894 $ref: '#/definitions/VideoCommentThreadTree' 1319 application/json:
895 "/videos/{id}/comments/{commentId}": 1320 schema:
1321 $ref: '#/components/schemas/VideoCommentThreadTree'
1322 '/videos/{id}/comments/{commentId}':
896 post: 1323 post:
1324 summary: 'Creates a comment in a comment thread by its id, of a video by its id'
897 security: 1325 security:
898 - OAuth2: [ ] 1326 - OAuth2: []
899 tags: 1327 tags:
900 - VideoComment 1328 - Video Comment
901 consumes:
902 - application/json
903 produces:
904 - application/json
905 parameters: 1329 parameters:
906 - $ref: "videos.yaml#/parameters/id" 1330 - $ref: '#/components/parameters/id2'
907 - $ref: "video-comments.yaml#/parameters/commentId" 1331 - $ref: '#/components/parameters/commentId'
908 responses: 1332 responses:
909 '200': 1333 '200':
910 description: successful operation 1334 description: successful operation
911 schema: 1335 content:
912 $ref: '#/definitions/CommentThreadPostResponse' 1336 application/json:
1337 schema:
1338 $ref: '#/components/schemas/CommentThreadPostResponse'
913 delete: 1339 delete:
1340 summary: 'Delete a comment in a comment therad by its id, of a video by its id'
914 security: 1341 security:
915 - OAuth2: [ ] 1342 - OAuth2: []
916 tags: 1343 tags:
917 - VideoComment 1344 - Video Comment
918 consumes:
919 - application/json
920 produces:
921 - application/json
922 parameters: 1345 parameters:
923 - $ref: "videos.yaml#/parameters/id" 1346 - $ref: '#/components/parameters/id2'
924 - $ref: "video-comments.yaml#/parameters/commentId" 1347 - $ref: '#/components/parameters/commentId'
925 responses: 1348 responses:
926 '204': 1349 '204':
927 $ref: "commons.yaml#/responses/emptySuccess" 1350 $ref: '#/paths/~1users~1me/put/responses/204'
928 "/videos/{id}/rate": 1351 '/videos/{id}/rate':
929 put: 1352 put:
1353 summary: Vote for a video by its id
930 security: 1354 security:
931 - OAuth2: [ ] 1355 - OAuth2: []
932 tags: 1356 tags:
933 - VideoRate 1357 - Video Rate
934 consumes:
935 - application/json
936 produces:
937 - application/json
938 parameters: 1358 parameters:
939 - $ref: "videos.yaml#/parameters/id" 1359 - $ref: '#/components/parameters/id2'
940 responses: 1360 responses:
941 '204': 1361 '204':
942 $ref: "commons.yaml#/responses/emptySuccess" 1362 $ref: '#/paths/~1users~1me/put/responses/204'
943 /search/videos: 1363 /search/videos:
944 get: 1364 get:
945 tags: 1365 tags:
946 - Search 1366 - Search
947 consumes: 1367 summary: Get the videos corresponding to a given query
948 - application/json
949 produces:
950 - application/json
951 parameters: 1368 parameters:
952 - $ref: "commons.yaml#/parameters/start" 1369 - $ref: '#/components/parameters/start'
953 - $ref: "commons.yaml#/parameters/count" 1370 - $ref: '#/components/parameters/count'
954 - $ref: "commons.yaml#/parameters/sort" 1371 - $ref: '#/components/parameters/videosSearchSort'
955 - name: search 1372 - name: search
956 in: query 1373 in: query
957 required: true 1374 required: true
958 type: string 1375 description: String to search
959 description: 'String to search' 1376 schema:
1377 type: string
960 responses: 1378 responses:
961 '200': 1379 '200':
962 description: successful operation 1380 description: successful operation
963 schema: 1381 content:
964 type: array 1382 application/json:
965 items: 1383 schema:
966 $ref: '#/definitions/Video' 1384 type: array
967definitions: 1385 items:
968 VideoConstantNumber: 1386 $ref: '#/components/schemas/Video'
969 properties: 1387servers:
970 id: 1388 - url: 'https://peertube.cpy.re/api/v1'
971 type: number 1389 description: Live Test Server (live data - stable version)
972 label: 1390 - url: 'https://peertube2.cpy.re/api/v1'
973 type: string 1391 description: Live Test Server (live data - bleeding edge version)
974 VideoConstantString: 1392 - url: 'https://peertube3.cpy.re/api/v1'
975 properties: 1393 description: Live Test Server (live data - bleeding edge version)
976 id: 1394components:
977 type: string 1395 parameters:
978 label: 1396 start:
979 type: string 1397 name: start
980 VideoPrivacy: 1398 in: query
981 type: string 1399 required: false
982 enum: [Public, Unlisted, Private] 1400 description: Offset
983 Video: 1401 schema:
984 properties:
985 id:
986 type: number
987 uuid:
988 type: string
989 createdAt:
990 type: string
991 publishedAt:
992 type: string
993 updatedAt:
994 type: string
995 category:
996 $ref: "#/definitions/VideoConstantNumber"
997 licence:
998 $ref: "#/definitions/VideoConstantNumber"
999 language:
1000 $ref: "#/definitions/VideoConstantString"
1001 privacy:
1002 $ref: "#/definitions/VideoPrivacy"
1003 description:
1004 type: string
1005 duration:
1006 type: number
1007 isLocal:
1008 type: boolean
1009 name:
1010 type: string
1011 thumbnailPath:
1012 type: string
1013 previewPath:
1014 type: string
1015 embedPath:
1016 type: string
1017 views:
1018 type: number 1402 type: number
1019 likes: 1403 count:
1404 name: count
1405 in: query
1406 required: false
1407 description: Number of items
1408 schema:
1020 type: number 1409 type: number
1021 dislikes: 1410 sort:
1411 name: sort
1412 in: query
1413 required: false
1414 description: Sort column (-createdAt for example)
1415 schema:
1416 type: string
1417 videosSort:
1418 name: sort
1419 in: query
1420 required: false
1421 description: Sort videos by criteria
1422 schema:
1423 type: string
1424 enum:
1425 - -name
1426 - -duration
1427 - -createdAt
1428 - -publishedAt
1429 - -views
1430 - -likes
1431 - -trending
1432 videosSearchSort:
1433 name: sort
1434 in: query
1435 required: false
1436 description: Sort videos by criteria
1437 schema:
1438 type: string
1439 enum:
1440 - -name
1441 - -duration
1442 - -createdAt
1443 - -publishedAt
1444 - -views
1445 - -likes
1446 - -match
1447 blacklistsSort:
1448 name: sort
1449 in: query
1450 required: false
1451 description: Sort blacklists by criteria
1452 schema:
1453 type: string
1454 enum:
1455 - -id
1456 - -name
1457 - -duration
1458 - -views
1459 - -likes
1460 - -dislikes
1461 - -uuid
1462 - -createdAt
1463 usersSort:
1464 name: sort
1465 in: query
1466 required: false
1467 description: Sort users by criteria
1468 schema:
1469 type: string
1470 enum:
1471 - -id
1472 - -username
1473 - -createdAt
1474 abusesSort:
1475 name: sort
1476 in: query
1477 required: false
1478 description: Sort abuses by criteria
1479 schema:
1480 type: string
1481 enum:
1482 - -id
1483 - -createdAt
1484 - -state
1485 name:
1486 name: name
1487 in: path
1488 required: true
1489 description: >-
1490 The name of the account (chocobozzz or chocobozzz@peertube.cpy.re for
1491 example)
1492 schema:
1493 type: string
1494 id:
1495 name: id
1496 in: path
1497 required: true
1498 description: The user id
1499 schema:
1022 type: number 1500 type: number
1023 nsfw: 1501 id2:
1024 type: boolean 1502 name: id
1025 account: 1503 in: path
1026 type: object 1504 required: true
1027 properties: 1505 description: The video id or uuid
1028 name: 1506 schema:
1029 type: string 1507 type: string
1030 displayName: 1508 id3:
1031 type: string 1509 name: id
1032 url: 1510 in: path
1033 type: string 1511 required: true
1034 host: 1512 description: The video channel id or uuid
1035 type: string 1513 schema:
1036 avatar: 1514 type: string
1037 $ref: "#/definitions/Avatar" 1515 commentId:
1038 VideoAbuse: 1516 name: threadId
1039 properties: 1517 in: path
1040 id: 1518 required: true
1519 description: The comment id
1520 schema:
1041 type: number 1521 type: number
1042 reason: 1522 categoryOneOf:
1043 type: string 1523 name: categoryOneOf
1044 reporterAccount: 1524 in: query
1045 $ref: "#/definitions/Account" 1525 required: false
1046 video: 1526 description: category id of the video
1047 type: object 1527 schema:
1048 properties: 1528 oneOf:
1049 id: 1529 - type: number
1530 - type: array
1531 items:
1050 type: number 1532 type: number
1051 name: 1533 style: form
1534 explode: false
1535 tagsOneOf:
1536 name: tagsOneOf
1537 in: query
1538 required: false
1539 description: tag(s) of the video
1540 schema:
1541 oneOf:
1542 - type: string
1543 - type: array
1544 items:
1052 type: string 1545 type: string
1053 uuid: 1546 style: form
1547 explode: false
1548 tagsAllOf:
1549 name: tagsAllOf
1550 in: query
1551 required: false
1552 description: tag(s) of the video, where all should be present in the video
1553 schema:
1554 oneOf:
1555 - type: string
1556 - type: array
1557 items:
1054 type: string 1558 type: string
1055 url: 1559 style: form
1560 explode: false
1561 languageOneOf:
1562 name: languageOneOf
1563 in: query
1564 required: false
1565 description: language id of the video
1566 schema:
1567 oneOf:
1568 - type: string
1569 - type: array
1570 items:
1056 type: string 1571 type: string
1057 createdAt: 1572 style: form
1058 type: string 1573 explode: false
1059 VideoBlacklist: 1574 licenceOneOf:
1060 properties: 1575 name: licenceOneOf
1061 id: 1576 in: query
1062 type: number 1577 required: false
1063 videoId: 1578 description: licence id of the video
1064 type: number 1579 schema:
1065 createdAt: 1580 oneOf:
1066 type: string 1581 - type: number
1067 updatedAt: 1582 - type: array
1068 type: string 1583 items:
1069 name:
1070 type: string
1071 uuid:
1072 type: string
1073 description:
1074 type: string
1075 duration:
1076 type: number
1077 views:
1078 type: number
1079 likes:
1080 type: number
1081 dislikes:
1082 type: number
1083 nsfw:
1084 type: boolean
1085 VideoChannel:
1086 properties:
1087 displayName:
1088 type: string
1089 description:
1090 type: string
1091 isLocal:
1092 type: boolean
1093 ownerAccount:
1094 type: object
1095 properties:
1096 id:
1097 type: number 1584 type: number
1098 uuid: 1585 style: form
1099 type: string 1586 explode: false
1100 VideoComment: 1587 nsfw:
1101 properties: 1588 name: nsfw
1102 id: 1589 in: query
1103 type: number 1590 required: false
1104 url: 1591 description: whether to include nsfw videos, if any
1105 type: string 1592 schema:
1106 text: 1593 type: string
1107 type: string 1594 enum:
1108 threadId: 1595 - 'true'
1109 type: number 1596 - 'false'
1110 inReplyToCommentId: 1597 filter:
1111 type: number 1598 name: filter
1112 videoId: 1599 in: query
1113 type: number 1600 required: false
1114 createdAt: 1601 description: >
1115 type: string 1602 Special filters (local for instance) which might require special rights:
1116 updatedAt: 1603 * `local` - only videos local to the instance
1117 type: string 1604 * `all-local` - only videos local to the instance, but showing private and unlisted videos (requires Admin privileges)
1118 totalReplies: 1605 schema:
1119 type: number 1606 type: string
1120 account: 1607 enum:
1121 $ref: "#/definitions/Account" 1608 - local
1122 VideoCommentThreadTree: 1609 - all-local
1123 properties: 1610 subscriptionsUris:
1124 comment: 1611 name: uris
1125 $ref: "#/definitions/VideoComment" 1612 in: query
1126 children: 1613 required: true
1614 description: list of uris to check if each is part of the user subscriptions
1615 schema:
1127 type: array 1616 type: array
1128 items: 1617 items:
1129 $ref: "#/definitions/VideoCommentThreadTree" 1618 type: string
1130 Avatar: 1619 requestBodies:
1131 properties: 1620 VideoChannelInput:
1132 path: 1621 content:
1133 type: string 1622 application/json:
1134 createdAt: 1623 schema:
1135 type: string 1624 $ref: '#/components/schemas/VideoChannelInput'
1136 updatedAt: 1625 securitySchemes:
1137 type: string 1626 OAuth2:
1138 Actor: 1627 description: >
1139 properties: 1628 In the header: *Authorization: Bearer <token\>*
1140 id: 1629
1141 type: number 1630
1142 uuid: 1631 Authenticating via OAuth requires the following steps:
1143 type: string 1632
1144 url: 1633
1145 type: string 1634 - Have an account with sufficient authorization levels
1146 name: 1635
1147 type: string 1636 - [Generate](https://docs.joinpeertube.org/lang/en/devdocs/rest.html) a
1148 host: 1637 Bearer Token
1149 type: string 1638
1150 followingCount: 1639 - Make Authenticated Requests
1151 type: number 1640 type: oauth2
1152 followersCount: 1641 flows:
1153 type: number 1642 password:
1154 createdAt: 1643 tokenUrl: 'https://peertube.example.com/api/v1/users/token'
1155 type: string 1644 scopes:
1156 updatedAt: 1645 admin: Admin scope
1157 type: string 1646 moderator: Moderator scope
1158 avatar: 1647 user: User scope
1159 $ref: "#/definitions/Avatar" 1648 schemas:
1160 Account: 1649 VideoConstantNumber:
1161 allOf: 1650 properties:
1162 - $ref: "#/definitions/Actor" 1651 id:
1163 - properties: 1652 type: number
1164 displayName: 1653 label:
1165 type: string 1654 type: string
1166 User: 1655 VideoConstantString:
1167 properties: 1656 properties:
1168 id: 1657 id:
1169 type: number 1658 type: string
1170 username: 1659 label:
1171 type: string 1660 type: string
1172 email: 1661 VideoPrivacy:
1173 type: string 1662 type: string
1174 displayNSFW: 1663 enum:
1175 type: boolean 1664 - Public
1176 autoPlayVideo: 1665 - Unlisted
1177 type: boolean 1666 - Private
1178 role: 1667 Video:
1179 type: string 1668 properties:
1180 enum: [User, Moderator, Administrator] 1669 id:
1181 videoQuota: 1670 type: number
1182 type: number 1671 uuid:
1183 createdAt: 1672 type: string
1184 type: string 1673 createdAt:
1185 account: 1674 type: string
1186 $ref: "#/definitions/Account" 1675 publishedAt:
1187 videoChannels: 1676 type: string
1188 type: array 1677 updatedAt:
1189 items: 1678 type: string
1190 $ref: "#/definitions/VideoChannel" 1679 category:
1191 ServerConfig: 1680 $ref: '#/components/schemas/VideoConstantNumber'
1192 properties: 1681 licence:
1193 signup: 1682 $ref: '#/components/schemas/VideoConstantNumber'
1194 type: object 1683 language:
1195 properties: 1684 $ref: '#/components/schemas/VideoConstantString'
1196 allowed: 1685 privacy:
1197 type: boolean 1686 $ref: '#/components/schemas/VideoPrivacy'
1198 transcoding: 1687 description:
1199 type: object 1688 type: string
1200 properties: 1689 duration:
1201 enabledResolutions: 1690 type: number
1202 type: array 1691 isLocal:
1203 items: 1692 type: boolean
1693 name:
1694 type: string
1695 thumbnailPath:
1696 type: string
1697 previewPath:
1698 type: string
1699 embedPath:
1700 type: string
1701 views:
1702 type: number
1703 likes:
1704 type: number
1705 dislikes:
1706 type: number
1707 nsfw:
1708 type: boolean
1709 account:
1710 type: object
1711 properties:
1712 name:
1713 type: string
1714 displayName:
1715 type: string
1716 url:
1717 type: string
1718 host:
1719 type: string
1720 avatar:
1721 $ref: '#/components/schemas/Avatar'
1722 VideoAbuse:
1723 properties:
1724 id:
1725 type: number
1726 reason:
1727 type: string
1728 reporterAccount:
1729 $ref: '#/components/schemas/Account'
1730 video:
1731 type: object
1732 properties:
1733 id:
1204 type: number 1734 type: number
1205 avatar: 1735 name:
1206 type: object
1207 properties:
1208 file:
1209 type: object
1210 properties:
1211 size:
1212 type: object
1213 properties:
1214 max:
1215 type: number
1216 extensions:
1217 type: array
1218 items:
1219 type: string 1736 type: string
1220 video: 1737 uuid:
1221 type: object 1738 type: string
1222 properties: 1739 url:
1223 file: 1740 type: string
1224 type: object 1741 createdAt:
1225 properties: 1742 type: string
1226 extensions: 1743 VideoBlacklist:
1227 type: array 1744 properties:
1228 items: 1745 id:
1229 type: string 1746 type: number
1230 Follow: 1747 videoId:
1231 properties: 1748 type: number
1232 id: 1749 createdAt:
1233 type: number 1750 type: string
1234 follower: 1751 updatedAt:
1235 $ref: "#/definitions/Actor" 1752 type: string
1236 following: 1753 name:
1237 $ref: "#/definitions/Actor" 1754 type: string
1238 score: 1755 uuid:
1239 type: number 1756 type: string
1240 state: 1757 description:
1241 type: string 1758 type: string
1242 enum: [pending, accepted] 1759 duration:
1243 createdAt: 1760 type: number
1244 type: string 1761 views:
1245 updatedAt: 1762 type: number
1246 type: string 1763 likes:
1247 Job: 1764 type: number
1248 properties: 1765 dislikes:
1249 id: 1766 type: number
1250 type: number 1767 nsfw:
1251 state: 1768 type: boolean
1252 type: string 1769 VideoChannel:
1253 enum: [pending, processing, error, success] 1770 properties:
1254 category: 1771 displayName:
1255 type: string 1772 type: string
1256 enum: [transcoding, activitypub-http] 1773 description:
1257 handlerName: 1774 type: string
1258 type: string 1775 isLocal:
1259 handlerInputData: 1776 type: boolean
1260 type: string 1777 ownerAccount:
1261 createdAt: 1778 type: object
1262 type: string 1779 properties:
1263 updatedAt: 1780 id:
1264 type: string 1781 type: number
1265 1782 uuid:
1266# Api responses 1783 type: string
1267 AddUserResponse: 1784 VideoComment:
1268 properties: 1785 properties:
1269 id: 1786 id:
1270 type: number 1787 type: number
1271 uuid: 1788 url:
1272 type: string 1789 type: string
1273 VideoUploadResponse: 1790 text:
1274 properties: 1791 type: string
1275 video: 1792 threadId:
1276 type: object 1793 type: number
1277 properties: 1794 inReplyToCommentId:
1278 id: 1795 type: number
1279 type: number 1796 videoId:
1280 uuid: 1797 type: number
1281 type: string 1798 createdAt:
1282 CommentThreadResponse: 1799 type: string
1283 properties: 1800 updatedAt:
1284 total: 1801 type: string
1285 type: number 1802 totalReplies:
1286 data: 1803 type: number
1287 type: array 1804 account:
1288 items: 1805 $ref: '#/components/schemas/Account'
1289 $ref: "#/definitions/VideoComment" 1806 VideoCommentThreadTree:
1290 CommentThreadPostResponse: 1807 properties:
1291 properties: 1808 comment:
1292 comment: 1809 $ref: '#/components/schemas/VideoComment'
1293 $ref: "#/definitions/VideoComment" 1810 children:
1811 type: array
1812 items:
1813 $ref: '#/components/schemas/VideoCommentThreadTree'
1814 Avatar:
1815 properties:
1816 path:
1817 type: string
1818 createdAt:
1819 type: string
1820 updatedAt:
1821 type: string
1822 Actor:
1823 properties:
1824 id:
1825 type: number
1826 uuid:
1827 type: string
1828 url:
1829 type: string
1830 name:
1831 type: string
1832 host:
1833 type: string
1834 followingCount:
1835 type: number
1836 followersCount:
1837 type: number
1838 createdAt:
1839 type: string
1840 updatedAt:
1841 type: string
1842 avatar:
1843 $ref: '#/components/schemas/Avatar'
1844 Account:
1845 allOf:
1846 - $ref: '#/components/schemas/Actor'
1847 - properties:
1848 displayName:
1849 type: string
1850 User:
1851 properties:
1852 id:
1853 type: number
1854 username:
1855 type: string
1856 email:
1857 type: string
1858 displayNSFW:
1859 type: boolean
1860 autoPlayVideo:
1861 type: boolean
1862 role:
1863 type: string
1864 enum:
1865 - User
1866 - Moderator
1867 - Administrator
1868 videoQuota:
1869 type: number
1870 createdAt:
1871 type: string
1872 account:
1873 $ref: '#/components/schemas/Account'
1874 videoChannels:
1875 type: array
1876 items:
1877 $ref: '#/components/schemas/VideoChannel'
1878 UserWatchingVideo:
1879 properties:
1880 currentTime:
1881 type: number
1882 ServerConfig:
1883 properties:
1884 signup:
1885 type: object
1886 properties:
1887 allowed:
1888 type: boolean
1889 transcoding:
1890 type: object
1891 properties:
1892 enabledResolutions:
1893 type: array
1894 items:
1895 type: number
1896 avatar:
1897 type: object
1898 properties:
1899 file:
1900 type: object
1901 properties:
1902 size:
1903 type: object
1904 properties:
1905 max:
1906 type: number
1907 extensions:
1908 type: array
1909 items:
1910 type: string
1911 video:
1912 type: object
1913 properties:
1914 file:
1915 type: object
1916 properties:
1917 extensions:
1918 type: array
1919 items:
1920 type: string
1921 Follow:
1922 properties:
1923 id:
1924 type: number
1925 follower:
1926 $ref: '#/components/schemas/Actor'
1927 following:
1928 $ref: '#/components/schemas/Actor'
1929 score:
1930 type: number
1931 state:
1932 type: string
1933 enum:
1934 - pending
1935 - accepted
1936 createdAt:
1937 type: string
1938 updatedAt:
1939 type: string
1940 Job:
1941 properties:
1942 id:
1943 type: number
1944 state:
1945 type: string
1946 enum:
1947 - pending
1948 - processing
1949 - error
1950 - success
1951 category:
1952 type: string
1953 enum:
1954 - transcoding
1955 - activitypub-http
1956 handlerName:
1957 type: string
1958 handlerInputData:
1959 type: string
1960 createdAt:
1961 type: string
1962 updatedAt:
1963 type: string
1964 AddUserResponse:
1965 properties:
1966 id:
1967 type: number
1968 uuid:
1969 type: string
1970 VideoUploadResponse:
1971 properties:
1972 video:
1973 type: object
1974 properties:
1975 id:
1976 type: number
1977 uuid:
1978 type: string
1979 CommentThreadResponse:
1980 properties:
1981 total:
1982 type: number
1983 data:
1984 type: array
1985 items:
1986 $ref: '#/components/schemas/VideoComment'
1987 CommentThreadPostResponse:
1988 properties:
1989 comment:
1990 $ref: '#/components/schemas/VideoComment'
1991 AddUser:
1992 properties:
1993 username:
1994 type: string
1995 description: 'The user username '
1996 password:
1997 type: string
1998 description: 'The user password '
1999 email:
2000 type: string
2001 description: 'The user email '
2002 videoQuota:
2003 type: string
2004 description: 'The user videoQuota '
2005 role:
2006 type: integer
2007 format: int32
2008 enum:
2009 - 0
2010 - 1
2011 - 2
2012 description: 'The user role '
2013 required:
2014 - username
2015 - password
2016 - email
2017 - videoQuota
2018 - role
2019 UpdateUser:
2020 properties:
2021 id:
2022 type: string
2023 description: 'The user id '
2024 email:
2025 type: string
2026 description: 'The updated email of the user '
2027 videoQuota:
2028 type: string
2029 description: 'The updated videoQuota of the user '
2030 role:
2031 type: string
2032 description: 'The updated role of the user '
2033 required:
2034 - id
2035 - email
2036 - videoQuota
2037 - role
2038 UpdateMe:
2039 properties:
2040 password:
2041 type: string
2042 description: 'Your new password '
2043 email:
2044 type: string
2045 description: 'Your new email '
2046 displayNSFW:
2047 type: string
2048 description: 'Your new displayNSFW '
2049 autoPlayVideo:
2050 type: string
2051 description: 'Your new autoPlayVideo '
2052 required:
2053 - password
2054 - email
2055 - displayNSFW
2056 - autoPlayVideo
2057 GetMeVideoRating:
2058 properties:
2059 id:
2060 type: string
2061 description: 'Id of the video '
2062 rating:
2063 type: number
2064 description: 'Rating of the video '
2065 required:
2066 - id
2067 - rating
2068 RegisterUser:
2069 properties:
2070 username:
2071 type: string
2072 description: 'The username of the user '
2073 password:
2074 type: string
2075 description: 'The password of the user '
2076 email:
2077 type: string
2078 description: 'The email of the user '
2079 required:
2080 - username
2081 - password
2082 - email
2083 VideoChannelInput:
2084 properties:
2085 name:
2086 type: string
2087 description:
2088 type: string
1294 2089
1295# Request bodies
1296 AddUser:
1297 properties:
1298 username:
1299 type: string
1300 description: 'The user username '
1301 password:
1302 type: string
1303 description: 'The user password '
1304 email:
1305 type: string
1306 description: 'The user email '
1307 videoQuota:
1308 type: string
1309 description: 'The user videoQuota '
1310 role:
1311 type: string
1312 description: 'The user role '
1313 required:
1314 - username
1315 - password
1316 - email
1317 - videoQuota
1318 - role
1319 UpdateUser:
1320 properties:
1321 id:
1322 type: string
1323 description: 'The user id '
1324 email:
1325 type: string
1326 description: 'The updated email of the user '
1327 videoQuota:
1328 type: string
1329 description: 'The updated videoQuota of the user '
1330 role:
1331 type: string
1332 description: 'The updated role of the user '
1333 required:
1334 - id
1335 - email
1336 - videoQuota
1337 - role
1338 UpdateMe:
1339 properties:
1340 password:
1341 type: string
1342 description: 'Your new password '
1343 email:
1344 type: string
1345 description: 'Your new email '
1346 displayNSFW:
1347 type: string
1348 description: 'Your new displayNSFW '
1349 autoPlayVideo:
1350 type: string
1351 description: 'Your new autoPlayVideo '
1352 required:
1353 - password
1354 - email
1355 - displayNSFW
1356 - autoPlayVideo
1357 GetMeVideoRating:
1358 properties:
1359 id:
1360 type: string
1361 description: 'Id of the video '
1362 rating:
1363 type: number
1364 description: 'Rating of the video '
1365 required:
1366 - id
1367 - rating
1368 RegisterUser:
1369 properties:
1370 username:
1371 type: string
1372 description: 'The username of the user '
1373 password:
1374 type: string
1375 description: 'The password of the user '
1376 email:
1377 type: string
1378 description: 'The email of the user '
1379 required:
1380 - username
1381 - password
1382 - email
1383 VideoChannelInput:
1384 properties:
1385 name:
1386 type: string
1387 description:
1388 type: string \ No newline at end of file
diff --git a/support/doc/api/quickstart.md b/support/doc/api/quickstart.md
index 844248a7f..00874a1c9 100644
--- a/support/doc/api/quickstart.md
+++ b/support/doc/api/quickstart.md
@@ -6,13 +6,13 @@
6 6
7Some endpoints need authentication. We use OAuth 2.0 so first fetch the client tokens: 7Some endpoints need authentication. We use OAuth 2.0 so first fetch the client tokens:
8 8
9``` 9```bash
10$ curl https://peertube.example.com/api/v1/oauth-clients/local 10$ curl https://peertube.example.com/api/v1/oauth-clients/local
11``` 11```
12 12
13Response example: 13Response example:
14 14
15``` 15```json
16{ 16{
17 "client_id": "v1ikx5hnfop4mdpnci8nsqh93c45rldf", 17 "client_id": "v1ikx5hnfop4mdpnci8nsqh93c45rldf",
18 "client_secret": "AjWiOapPltI6EnsWQwlFarRtLh4u8tDt" 18 "client_secret": "AjWiOapPltI6EnsWQwlFarRtLh4u8tDt"
@@ -23,7 +23,7 @@ Response example:
23 23
24Now you can fetch the user token: 24Now you can fetch the user token:
25 25
26``` 26```bash
27$ curl -X POST \ 27$ curl -X POST \
28 -d "client_id=v1ikx5hnfop4mdpnci8nsqh93c45rldf&client_secret=AjWiOapPltI6EnsWQwlFarRtLh4u8tDt&grant_type=password&response_type=code&username=your_user&password=your_password" \ 28 -d "client_id=v1ikx5hnfop4mdpnci8nsqh93c45rldf&client_secret=AjWiOapPltI6EnsWQwlFarRtLh4u8tDt&grant_type=password&response_type=code&username=your_user&password=your_password" \
29 https://peertube.example.com/api/v1/users/token 29 https://peertube.example.com/api/v1/users/token
@@ -31,7 +31,7 @@ $ curl -X POST \
31 31
32Response example: 32Response example:
33 33
34``` 34```json
35{ 35{
36 "access_token": "90286a0bdf0f7315d9d3fe8dabf9e1d2be9c97d0", 36 "access_token": "90286a0bdf0f7315d9d3fe8dabf9e1d2be9c97d0",
37 "token_type": "Bearer", 37 "token_type": "Bearer",
@@ -42,13 +42,13 @@ Response example:
42 42
43Just use the `access_token` in the `Authorization` header: 43Just use the `access_token` in the `Authorization` header:
44 44
45``` 45```bash
46$ curl -H 'Authorization: Bearer 90286a0bdf0f7315d9d3fe8dabf9e1d2be9c97d0' https://peertube.example.com/api/v1/jobs/complete 46$ curl -H 'Authorization: Bearer 90286a0bdf0f7315d9d3fe8dabf9e1d2be9c97d0' https://peertube.example.com/api/v1/jobs/completed
47``` 47```
48 48
49 49
50### List videos 50### List videos
51 51
52``` 52```bash
53$ curl https://peertube.example.com/api/v1/videos 53$ curl https://peertube.example.com/api/v1/videos
54``` \ No newline at end of file 54```
diff --git a/support/doc/api/users.yaml b/support/doc/api/users.yaml
deleted file mode 100644
index 84e963261..000000000
--- a/support/doc/api/users.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
1parameters:
2 id:
3 name: id
4 in: path
5 required: true
6 type: number
7 description: 'The user id' \ No newline at end of file
diff --git a/support/doc/api/video-channels.yaml b/support/doc/api/video-channels.yaml
deleted file mode 100644
index bbfffc81f..000000000
--- a/support/doc/api/video-channels.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
1parameters:
2 id:
3 name: id
4 in: path
5 required: true
6 type: string
7 description: 'The video channel id or uuid' \ No newline at end of file
diff --git a/support/doc/api/video-comments.yaml b/support/doc/api/video-comments.yaml
deleted file mode 100644
index 0085eccbc..000000000
--- a/support/doc/api/video-comments.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
1parameters:
2 threadId:
3 name: threadId
4 in: path
5 required: true
6 type: number
7 description: 'The thread id (root comment id)'
8 commentId:
9 name: threadId
10 in: path
11 required: true
12 type: number
13 description: 'The comment id' \ No newline at end of file
diff --git a/support/doc/api/videos.yaml b/support/doc/api/videos.yaml
deleted file mode 100644
index 0c611e3a8..000000000
--- a/support/doc/api/videos.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
1parameters:
2 id:
3 name: id
4 in: path
5 required: true
6 type: string
7 description: 'The video id or uuid'
8 thumbnailfile:
9 name: thumbnailfile
10 in: formData
11 type: file
12 description: 'Video thumbnail file'
13 previewfile:
14 name: previewfile
15 in: formData
16 type: file
17 description: 'Video preview file'
18 category:
19 name: category
20 in: formData
21 type: number
22 description: 'Video category'
23 licence:
24 name: licence
25 in: formData
26 type: number
27 description: 'Video licence'
28 language:
29 name: language
30 in: formData
31 type: string
32 description: 'Video language'
33 description:
34 name: description
35 in: formData
36 type: string
37 description: 'Video description'
38 waitTranscoding:
39 name: waitTranscoding
40 in: formData
41 type: boolean
42 description: 'Whether or not we wait transcoding before publish the video'
43 support:
44 name: support
45 in: formData
46 type: string
47 description: 'Text describing how to support the video uploader'
48 nsfw:
49 name: nsfw
50 in: formData
51 type: boolean
52 description: 'Whether or not this video contains sensitive content'
53 name:
54 name: name
55 in: formData
56 type: string
57 description: 'Video name'
58 tags:
59 name: tags
60 in: formData
61 type: string[]
62 description: 'Video tags'
63 commentsEnabled:
64 name: commentsEnabled
65 in: formData
66 type: boolean
67 description: 'Enable or disable comments for this video'
68 downloadEnabled:
69 name: downloadEnabled
70 in: formData
71 type: boolean
72 description: 'Enable or disable downloading for this video'
73 privacy:
74 name: privacy
75 in: formData
76 type: string
77 enum: [Public, Unlisted]
78 description: 'Video privacy'
79 scheduleUpdate:
80 name: scheduleUpdate
81 in: formData
82 required: false
83 description: 'Schedule an update at a specific datetime'
84 properties:
85 updateAt:
86 type: dateTime
87 description: 'When to update the video'
88 required: true
89 privacy:
90 type: string
91 enum: [Public, Unlisted]
92 description: 'Video privacy target'
diff --git a/support/doc/development/server/code.md b/support/doc/development/server/code.md
index e9ab7373c..3894c2542 100644
--- a/support/doc/development/server/code.md
+++ b/support/doc/development/server/code.md
@@ -41,18 +41,18 @@ Uses [JavaScript Standard Style](http://standardjs.com/).
41 41
42The server is composed by: 42The server is composed by:
43 43
44 * a REST API (Express framework) 44 * a REST API (relying on the Express framework) documented on http://docs.joinpeertube.org/api.html
45 * a WebTorrent Tracker 45 * a WebTorrent Tracker (slightly custom version of [webtorrent/bittorrent-tracker](https://github.com/webtorrent/bittorrent-tracker#server))
46 46
47A video is seeded by the server with the [WebSeed](http://www.bittorrent.org/beps/bep_0019.html) protocol (HTTP). 47A video is seeded by the server with the [WebSeed](http://www.bittorrent.org/beps/bep_0019.html) protocol (HTTP).
48 48
49![Architecture scheme](/support/doc/development/server/upload-video.png) 49![Architecture scheme](/support/doc/development/server/upload-video.png)
50 50
51When a user uploads a video, the rest API create the torrent file and then adds it to its database. 51When a user uploads a video, the REST API creates the torrent file and then adds it to its database.
52 52
53If a user wants to watch the video, the tracker will indicate all other users that are watching the video + the HTTP url for the WebSeed. 53If a user wants to watch the video, the tracker will indicate all other users that are watching the video + the HTTP url for the WebSeed.
54 54
55## Newcomers 55## Newcomers
56 56
57The server entrypoint is [server.ts](/server.ts). You can begin to look at this file. 57The server entrypoint is [server.ts](/server.ts). Looking at this file is a good start.
58Then you can try to understand the [controllers](/server/controllers): they are the entrypoint of each API request. 58Then you can try to understand the [controllers](/server/controllers): they are the entrypoints of each API request.
diff --git a/support/doc/docker.md b/support/doc/docker.md
index cab336344..c20746486 100644
--- a/support/doc/docker.md
+++ b/support/doc/docker.md
@@ -63,7 +63,6 @@ Pull the latest images and rerun PeerTube:
63 63
64```shell 64```shell
65$ cd /your/peertube/directory 65$ cd /your/peertube/directory
66$ docker-compose down
67$ docker-compose pull 66$ docker-compose pull
68$ docker-compose up -d 67$ docker-compose up -d
69``` 68```
diff --git a/support/doc/production.md b/support/doc/production.md
index 35c7de3b5..16efe17c4 100644
--- a/support/doc/production.md
+++ b/support/doc/production.md
@@ -185,9 +185,8 @@ $ sudo journalctl -feu peertube
185On FreeBSD, copy the startup script and update rc.conf: 185On FreeBSD, copy the startup script and update rc.conf:
186 186
187``` 187```
188$ sudo cp /var/www/peertube/peertube-latest/support/freebsd/peertube /usr/local/etc/rc.d/ 188$ sudo install -m 0555 /var/www/peertube/peertube-latest/support/freebsd/peertube /usr/local/etc/rc.d/
189$ sudo chmod +x /usr/local/etc/rc.d/peertube 189$ sudo sysrc peertube_enable="YES"
190$ sudo echo peertube_enable="YES" >> /etc/rc.conf
191``` 190```
192 191
193Run: 192Run:
diff --git a/support/doc/redundancy.md b/support/doc/redundancy.md
deleted file mode 100644
index 00442fd85..000000000
--- a/support/doc/redundancy.md
+++ /dev/null
@@ -1,52 +0,0 @@
1# Redundancy
2
3A PeerTube instance can cache other PeerTube videos to improve bandwidth of popular videos or small instances.
4
5## How it works
6
7The instance administrator can choose between multiple redundancy strategies (cache trending videos or recently uploaded videos etc), set their maximum size and the minimum duplication lifetime.
8Then, they choose the instances they want to cache in `Manage follows -> Following` admin table.
9
10<p align="center">
11
12<img src="user/redundancy.png" alt="Redundancy" />
13
14</p>
15
16Videos are kept in the cache for at least `min_lifetime`, and then evicted when the cache is full.
17
18When PeerTube chooses a video to duplicate, it imports all the resolution files (to avoid consistency issues) using their magnet URI and put them in the `storage.videos` directory.
19Then it sends a `Create -> CacheFile` ActivityPub message to other federated instances. This new instance is injected as [WebSeed](https://github.com/Chocobozzz/PeerTube/blob/develop/FAQ.md#what-is-webseed) in the magnet URI by instances that received this ActivityPub message.
20
21## Stats
22
23See the `/api/v1/server/stats` endpoint. For example:
24
25```
26{
27 ...
28 "videosRedundancy": [
29 {
30 "totalUsed": 0,
31 "totalVideos": 0,
32 "totalVideoFiles": 0,
33 "strategy": "most-views",
34 "totalSize": 104857600
35 },
36 {
37 "totalUsed": 0,
38 "totalVideos": 0,
39 "totalVideoFiles": 0,
40 "strategy": "trending",
41 "totalSize": 104857600
42 },
43 {
44 "totalUsed": 0,
45 "totalVideos": 0,
46 "totalVideoFiles": 0,
47 "strategy": "recently-added",
48 "totalSize": 104857600
49 }
50 ]
51}
52```
diff --git a/support/doc/tools.md b/support/doc/tools.md
index 1db29edc0..1a9ba7d2b 100644
--- a/support/doc/tools.md
+++ b/support/doc/tools.md
@@ -1,18 +1,66 @@
1# CLI tools guide 1# CLI tools guide
2 - [CLI wrapper](#cli-wrapper)
3 - [Remote tools](#remote-tools)
4 - [peertube-import-videos.js](#peertube-import-videosjs)
5 - [peertube-upload.js](#peertube-uploadjs)
6 - [peertube-watch.js](#peertube-watch)
7 - [Server tools](#server-tools)
8 - [parse-log](#parse-log)
9 - [create-transcoding-job.js](#create-transcoding-jobjs)
10 - [create-import-video-file-job.js](#create-import-video-file-jobjs)
11 - [prune-storage.js](#prune-storagejs)
12 2
13## CLI wrapper 3<!-- START doctoc generated TOC please keep comment here to allow auto update -->
4<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
5**Table of Contents**
6
7- [Remote Tools](#remote-tools)
8 - [Dependencies](#dependencies)
9 - [Installation](#installation)
10 - [CLI wrapper](#cli-wrapper)
11 - [peertube-import-videos.js](#peertube-import-videosjs)
12 - [peertube-upload.js](#peertube-uploadjs)
13 - [peertube-watch.js](#peertube-watchjs)
14- [Server tools](#server-tools)
15 - [parse-log](#parse-log)
16 - [create-transcoding-job.js](#create-transcoding-jobjs)
17 - [create-import-video-file-job.js](#create-import-video-file-jobjs)
18 - [prune-storage.js](#prune-storagejs)
19 - [optimize-old-videos.js](#optimize-old-videosjs)
20 - [update-host.js](#update-hostjs)
21 - [REPL (Read Eval Print Loop)](#repl-read-eval-print-loop)
22 - [.help](#help)
23 - [Lodash example](#lodash-example)
24 - [YoutubeDL example](#youtubedl-example)
25 - [Models examples](#models-examples)
26
27<!-- END doctoc generated TOC please keep comment here to allow auto update -->
14 28
15The wrapper provides a convenient interface to most scripts, and requires the [same dependencies](#dependencies). You can access it as `peertube` via an alias in your `.bashrc` like `alias peertube="node ${PEERTUBE_PATH}/dist/server/tools/peertube.js"`: 29## Remote Tools
30
31You need at least 512MB RAM to run the script.
32Scripts can be launched directly from a PeerTube server, or from a separate server, even a desktop PC.
33You need to follow all the following steps even if you are on a PeerTube server (including cloning the git repository in a different directory than your production installation because the scripts utilize non-production dependencies).
34
35### Dependencies
36
37Install the [PeerTube dependencies](dependencies.md).
38
39### Installation
40
41Clone the PeerTube repo to get the latest version (even if you are on your PeerTube server):
42
43```
44$ git clone https://github.com/Chocobozzz/PeerTube.git
45$ CLONE="$(pwd)/PeerTube"
46```
47
48Run ``yarn install --pure-lockfile``
49```
50$ cd ${CLONE}
51$ yarn install --pure-lockfile
52```
53
54Build server tools:
55```
56$ cd ${CLONE}
57$ npm run build:server
58```
59
60### CLI wrapper
61
62The wrapper provides a convenient interface to the following scripts.
63You can access it as `peertube` via an alias in your `.bashrc` like `alias peertube="cd /your/peertube/directory/ && node ./dist/server/tools/peertube.js"` (you have to keep the `cd` command):
16 64
17``` 65```
18 Usage: peertube [command] [options] 66 Usage: peertube [command] [options]
@@ -28,18 +76,19 @@ The wrapper provides a convenient interface to most scripts, and requires the [s
28 upload|up upload a video 76 upload|up upload a video
29 import-videos|import import a video from a streaming platform 77 import-videos|import import a video from a streaming platform
30 watch|w watch a video in the terminal ✩°。⋆ 78 watch|w watch a video in the terminal ✩°。⋆
79 repl initiate a REPL to access internals
31 help [cmd] display help for [cmd] 80 help [cmd] display help for [cmd]
32``` 81```
33 82
34The wrapper can keep track of instances you have an account on. We limit to one account per instance for now. 83The wrapper can keep track of instances you have an account on. We limit to one account per instance for now.
35 84
36```bash 85```bash
37$ peertube auth add -u "PEERTUBE_URL" -U "PEERTUBE_USER" --password "PEERTUBE_PASSWORD" 86$ peertube auth add -u 'PEERTUBE_URL' -U 'PEERTUBE_USER' --password 'PEERTUBE_PASSWORD'
38$ peertube auth list 87$ peertube auth list
39┌──────────────────────────────┬──────────────────────────────┐ 88┌──────────────────────────────┬──────────────────────────────┐
40│ instance │ login │ 89│ instance │ login │
41├──────────────────────────────┼──────────────────────────────┤ 90├──────────────────────────────┼──────────────────────────────┤
42"PEERTUBE_URL""PEERTUBE_USER" 91'PEERTUBE_URL''PEERTUBE_USER'
43└──────────────────────────────┴──────────────────────────────┘ 92└──────────────────────────────┴──────────────────────────────┘
44``` 93```
45 94
@@ -55,53 +104,22 @@ And now that your video is online, you can watch it from the confort of your ter
55$ peertube watch https://peertube.cpy.re/videos/watch/e8a1af4e-414a-4d58-bfe6-2146eed06d10 104$ peertube watch https://peertube.cpy.re/videos/watch/e8a1af4e-414a-4d58-bfe6-2146eed06d10
56``` 105```
57 106
58## Remote Tools 107#### peertube-import-videos.js
59
60You need at least 512MB RAM to run the script.
61Scripts can be launched directly from a PeerTube server, or from a separate server, even a desktop PC.
62You need to follow all the following steps even if you are on a PeerTube server (including cloning the git repository in a different directory than your production installation because the scripts utilize non-production dependencies).
63
64### Dependencies
65
66Install the [PeerTube dependencies](dependencies.md).
67
68### Installation
69
70Clone the PeerTube repo to get the latest version (even if you are on your PeerTube server):
71
72```
73$ git clone https://github.com/Chocobozzz/PeerTube.git
74$ CLONE="$(pwd)/PeerTube"
75```
76
77Run ``yarn install``
78```
79$ cd ${CLONE}
80$ yarn install
81```
82
83Build server tools:
84```
85$ cd ${CLONE}
86$ npm run build:server
87```
88
89### peertube-import-videos.js
90 108
91You can use this script to import videos from all [supported sites of youtube-dl](https://rg3.github.io/youtube-dl/supportedsites.html) into PeerTube. 109You can use this script to import videos from all [supported sites of youtube-dl](https://rg3.github.io/youtube-dl/supportedsites.html) into PeerTube.
92Be sure you own the videos or have the author's authorization to do so. 110Be sure you own the videos or have the author's authorization to do so.
93 111
94```sh 112```sh
95$ node dist/server/tools/peertube-import-videos.js \ 113$ node dist/server/tools/peertube-import-videos.js \
96 -u "PEERTUBE_URL" \ 114 -u 'PEERTUBE_URL' \
97 -U "PEERTUBE_USER" \ 115 -U 'PEERTUBE_USER' \
98 --password "PEERTUBE_PASSWORD" \ 116 --password 'PEERTUBE_PASSWORD' \
99 -t "TARGET_URL" 117 -t 'TARGET_URL'
100``` 118```
101 119
102* `PEERTUBE_URL` : the full URL of your PeerTube server where you want to import, eg: https://peertube.cpy.re 120* `PEERTUBE_URL` : the full URL of your PeerTube server where you want to import, eg: https://peertube.cpy.re
103* `PEERTUBE_USER` : your PeerTube account where videos will be uploaded 121* `PEERTUBE_USER` : your PeerTube account where videos will be uploaded
104* `PEERTUBE_PASSWORD` : password of your PeerTube account (if omitted, you will be prompted for it) 122* `PEERTUBE_PASSWORD` : password of your PeerTube account (if `PEERTUBE_PASSWORD` is omitted, you will be prompted for it)
105* `TARGET_URL` : the target url you want to import. Examples: 123* `TARGET_URL` : the target url you want to import. Examples:
106 * YouTube: 124 * YouTube:
107 * Channel: https://www.youtube.com/channel/ChannelId 125 * Channel: https://www.youtube.com/channel/ChannelId
@@ -116,7 +134,7 @@ Already downloaded videos will not be uploaded twice, so you can run and re-run
116Videos will be publicly available after transcoding (you can see them before that in your account on the web interface). 134Videos will be publicly available after transcoding (you can see them before that in your account on the web interface).
117 135
118 136
119### peertube-upload.js 137#### peertube-upload.js
120 138
121You can use this script to import videos directly from the CLI. 139You can use this script to import videos directly from the CLI.
122 140
@@ -127,7 +145,7 @@ $ cd ${CLONE}
127$ node dist/server/tools/peertube-upload.js --help 145$ node dist/server/tools/peertube-upload.js --help
128``` 146```
129 147
130### peertube-watch.js 148#### peertube-watch.js
131 149
132You can use this script to play videos directly from the CLI. 150You can use this script to play videos directly from the CLI.
133 151
@@ -159,7 +177,7 @@ $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production
159 177
160### create-transcoding-job.js 178### create-transcoding-job.js
161 179
162You can use this script to force transcoding of an existing video. 180You can use this script to force transcoding of an existing video. PeerTube needs to be running.
163 181
164``` 182```
165$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-transcoding-job -- -v [videoUUID] 183$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-transcoding-job -- -v [videoUUID]
@@ -172,7 +190,7 @@ $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production
172 190
173### create-import-video-file-job.js 191### create-import-video-file-job.js
174 192
175You can use this script to import a video file to replace an already uploaded file or to add a new resolution to a video. 193You can use this script to import a video file to replace an already uploaded file or to add a new resolution to a video. PeerTube needs to be running.
176 194
177``` 195```
178$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-import-video-file-job -- -v [videoUUID] -i [videoFile] 196$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-import-video-file-job -- -v [videoUUID] -i [videoFile]
@@ -181,17 +199,161 @@ $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production
181### prune-storage.js 199### prune-storage.js
182 200
183Some transcoded videos or shutdown at a bad time can leave some unused files on your storage. 201Some transcoded videos or shutdown at a bad time can leave some unused files on your storage.
184To delete them (a confirmation will be demanded first): 202Stop PeerTube and delete these files (a confirmation will be demanded first):
185 203
186``` 204```
187$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run prune-storage 205$ sudo systemctl stop peertube && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run prune-storage
188``` 206```
189 207
208### optimize-old-videos.js
209
210Before version v1.0.0-beta.16, Peertube did not specify a bitrate for the
211transcoding of uploaded videos. This means that videos might be encoded into
212very large files that are too large for streaming. This script re-transcodes
213these videos so that they can be watched properly, even on slow connections.
214
215```
216$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run optimize-old-videos
217```
218
219
190### update-host.js 220### update-host.js
191 221
192If you started PeerTube with a domain, and then changed it you will have invalid torrent files and invalid URLs in your database. 222If you started PeerTube with a domain, and then changed it you will have
193To fix this, you have to run: 223invalid torrent files and invalid URLs in your database. To fix this, you have
224to run:
194 225
195``` 226```
196$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run update-host 227$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run update-host
197``` 228```
229
230### REPL ([Read Eval Print Loop](https://nodejs.org/docs/latest-v8.x/api/repl.html))
231
232If you want to interact with the application libraries and objects even when PeerTube is not running, there is a REPL for that.
233
234usage: `node ./dist/server/tools/peertube-repl.js`
235
236"The default evaluator will, by default, assign the result of the most recently evaluated expression to the special variable `_` (underscore). Explicitly setting `_` to a value will disable this behavior."
237
238- type `.help` to list commands available in the repl, notice it starts with a dot
239- type `.exit` to exit, note that you still have to press CTRL-C to actually exit, or press CTRL-C (3 times) without typing `.exit` to exit
240- type `context` to list all available objects and libraries in the context, note: `Promise` is also available but it's not listed in the context, in case you need promises for something
241- type `env` to see the loaded environment variables
242- type `path` to access path library
243- type `lodash` to access lodash library
244- type `uuidv1` to access uuid/v1 library
245- type `uuidv3` to access uuid/v3 library
246- type `uuidv4` to access uuid/v4 library
247- type `uuidv5` to access uuid/v5 library
248- type `YoutubeDL` to access youtube-dl library
249- type `cli` to access the cli helpers object
250- type `logger` to access the logger; if you log to it, it will write to stdout and to the peertube.log file
251- type `constants` to access the constants loaded by the server
252- type `coreUtils` to access the core-utils helpers object
253- type `ffmpegUtils` to access the ffmpeg-utils helpers object
254- type `peertubeCryptoUtils` to access the peertube-crypto helpers object
255- type `signupUtils` to access the signup helpers object
256- type `utils` to access the utils helpers object
257- type `YoutubeDLUtils` to access the youtube-dl helpers object
258- type `sequelizeTypescript` to access sequelizeTypescript
259- type `modelsUtils` to access the models/utils
260- type `models` to access the shortcut to sequelizeTypescript.models
261- type `transaction` to access the shortcut to sequelizeTypescript.transaction
262- type `query` to access the shortcut to sequelizeTypescript.query
263- type `queryInterface` to access the shortcut to sequelizeTypescript.queryInterface
264
265#### .help
266
267```
268PeerTube [1.0.0] (b10eb595)> .help
269.break Sometimes you get stuck, this gets you out
270.clear Break, and also clear the local context
271.editor Enter editor mode
272.exit Exit the repl
273.help Print this help message
274.load Load JS from a file into the REPL session
275.r Reset REPL
276.reset Reset REPL
277.save Save all evaluated commands in this REPL session to a file
278PeerTube [1.0.0] (b10eb595)>
279```
280
281#### Lodash example
282
283```
284PeerTube [1.0.0] (b10eb595)> lodash.keys(context)
285[ 'global',
286 'console',
287 'DTRACE_NET_SERVER_CONNECTION',
288 'DTRACE_NET_STREAM_END',
289 'DTRACE_HTTP_SERVER_REQUEST',
290 'DTRACE_HTTP_SERVER_RESPONSE',
291 'DTRACE_HTTP_CLIENT_REQUEST',
292 'DTRACE_HTTP_CLIENT_RESPONSE',
293 'process',
294 'Buffer',
295 'clearImmediate',
296 'clearInterval',
297 'clearTimeout',
298 'setImmediate',
299 'setInterval',
300 'setTimeout',
301 'XMLHttpRequest',
302 'compact2string',
303 'module',
304 'require',
305 'path',
306 'repl',
307 'context',
308 'env',
309 'lodash',
310 'uuidv1',
311 'uuidv3',
312 'uuidv4',
313 'uuidv5',
314 'cli',
315 'logger',
316 'constants',
317 'Sequelize',
318 'sequelizeTypescript',
319 'modelsUtils',
320 'models',
321 'transaction',
322 'query',
323 'queryInterface',
324 'YoutubeDL',
325 'coreUtils',
326 'ffmpegUtils',
327 'peertubeCryptoUtils',
328 'signupUtils',
329 'utils',
330 'YoutubeDLUtils' ]
331PeerTube [1.0.0] (b10eb595)>
332```
333
334#### YoutubeDL example
335```
336YoutubeDL.getInfo('https://www.youtube.com/watch?v=I5ZN289jjDo', function(err, data) {console.log(err, data)})
337```
338
339#### Models examples
340```
341PeerTube [1.0.0] (b10eb595)> new models.ActorModel({id: 3}).getVideoChannel().then(function(data){console.log(data.dataValues.name)})
342Promise {
343 _bitField: 0,
344 _fulfillmentHandler0: undefined,
345 _rejectionHandler0: undefined,
346 _promise0: undefined,
347 _receiver0: undefined }
348PeerTube [1.0.0] (b10eb595)> Main root channel
349PeerTube [1.0.0] (b10eb595)> let out; new models.UserModel({id: 1}).getAccount().then(function (data) {out = data.dataValues.id})
350Promise {
351 _bitField: 0,
352 _fulfillmentHandler0: undefined,
353 _rejectionHandler0: undefined,
354 _promise0: undefined,
355 _receiver0: undefined }
356PeerTube [1.0.0] (b10eb595)> out
3572
358PeerTube [1.0.0] (b10eb595)>
359```
diff --git a/support/doc/user/decentralized.png b/support/doc/user/decentralized.png
deleted file mode 100644
index 8c23e2832..000000000
--- a/support/doc/user/decentralized.png
+++ /dev/null
Binary files differ
diff --git a/support/doc/user/decentralized.xml b/support/doc/user/decentralized.xml
deleted file mode 100644
index 952b9f4e7..000000000
--- a/support/doc/user/decentralized.xml
+++ /dev/null
@@ -1 +0,0 @@
1<mxfile userAgent="Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0" version="9.1.8" editor="www.draw.io" type="device"><diagram id="2f5eda5b-dbab-6be5-4dc5-833b4d942388" name="Page-1">7Vptb9owEP41kdYPQ4lNAv24vm37sGkaq7p9NMlBooaYOaZAf/3sxM6rw2gVKFuL1Co+n8/O85zvzgYLXy42HxlZhl9oALGF7GBj4SsLoRGyxX8p2OaC4VAJ5iwKcpFTCibRIyihVltFAaQ1RU5pzKNlXejTJAGf12SEMbquq81oXJ91SebQEkx8Ereld1HAw1w6du1S/gmieahndmzVMyX+/ZzRVaLmsxCeZZ+8e0G0LaWfhiSg64oIX1v4klHK86fF5hJiCa2GLR9309FbrJtBwvcZMM4HPJB4BXrF2br4VmORvQ1IfdvCF+sw4jBZEl/2rgX5QhbyRSxajnhMOaP3cEljyrLR2M4+RY9GU+rOojiuaM5m4Pm+lNOEmyyQOJonQuaLdwPRedF+WfX+D8A4bCoi9fIfgS6As61Q0b2eGqIdVRO5Lml3NVlhlXJPCYlytXlhu4RbPCjEzeiPTgf9gMB49tLoj/cEH6MewMct8CfAxNqFbBcNzuFoSGgCR2bAdeoMOAb/d0wU9OH+w24G8KthANkvyIDXYuA2lfj3iv0YTbHn7RWEXBgHwyMTgJspwDsiAbrg2ZUCIAk+yJqm9M+UE8a1zI9Jmkb+8zYA2gG2gJRtf6rMkzV+ycbAlc1NxH/WWr+KmcXabqJYr0SsXrXsXXyldMV8qMUFYWgOSkuhAkGtbmtzWs0cBsq0jEFMePRQr/ZMPKoZvtFIrLczb3m44Qr526hR1fKrYQg1wq87bhjKMWgZEtyTbUVtKRXS7gWjxoKxUysLxUNusfTZAtP93FjvulN2Y+cpbvwMt8Vvbtuz27qjw7ot6i5ANL//fwHSzH+mKvxw+a9dA+4KHEfIdXkk0GHC6QwSO8PCiWz4od1R2jx1wzcN4eF+G/45e7Jdk1rIiwUwF0H0IB7nPEM+F021AA+0SEwwLdXsiXCfVNqLAqBynmRG2UKgSpO0MsRguyJ695UswEJi8fYPyjK6kX37/fNgMDiz5N4w2+nvLF9kzBMLHkPPqzmGc94OHucHih3G65OGW6But1CBPuWUgXQQkgSyCZC5Cw+h4jTv7mA6ET1nr4JTXOcU43E7IbjDA5FqupFskOp0kZofXu3VMqYkY5GIvwTWJZP/P3toVGfPdKPpOAfakth0nH0L3v+IqxwzeGPTiTEnQkJQw977vaK6432afVn0QZbo3nJTdmriLoh/DzKUF6zm9l4PrZ7e3Tp+6xxdoXVkulXvg9b2rXo/tN4wofXG698i+8F4NZ3TnsYrcky8XoGEiAm8HiHIsjVfU3ZfpAjWDOyvkPgiCOsTepv3Iib3HqddA/F/vdk7idN5x/Xi7gvqgKRhcckjG98IF0QmmUReC2lGG0d8A8UvdupHzsCtR4pnn/tbpvo7+Ytm+TuHXL38LQm+/gM=</diagram></mxfile> \ No newline at end of file
diff --git a/support/doc/user/redundancy.png b/support/doc/user/redundancy.png
deleted file mode 100644
index 0184fb78e..000000000
--- a/support/doc/user/redundancy.png
+++ /dev/null
Binary files differ
diff --git a/support/doc/user/redundancy.xml b/support/doc/user/redundancy.xml
deleted file mode 100644
index c501b63d5..000000000
--- a/support/doc/user/redundancy.xml
+++ /dev/null
@@ -1 +0,0 @@
1<mxfile userAgent="Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0" version="9.1.8" editor="www.draw.io" type="device"><diagram id="2f5eda5b-dbab-6be5-4dc5-833b4d942388" name="Page-1">7Vpbc5s4FP41zLQP8YAE2HmM3aa7D7vTadpp+yiDMJpg5AU5tvfXrwQSFyG8xMWJJ25m2jFHQpfzHX3nIiy4WO8/ZWgT/0VDnFjADvcW/GABMJva/H8hOJQC15WCVUbCUuTUggfyL5ZC1W1LQpy3OjJKE0Y2bWFA0xQHrCVDWUZ37W4RTdqzbtAKdwQPAUq60u8kZLHclmfX8j8wWcVqZseWLUsUPK4yuk3lfBaAUfFXNq+RGkv2z2MU0l1DBD9acJFRyspf6/0CJ0K1Sm3le/c9rdW6M5yyIS/MyheeULLFasXFuthB6aLYDRb9bQvOdzFh+GGDAtG64+BzWczWCX9y+M+cZfQRL2hCs+JtaBd/VYvSpugbkSRp9Iwi7AeBkNOUmUZACVmlXBbwvWHeOO9uVu7/CWcM7xsiuflPmK4xyw68i2r15SvKUBWQuxp2T4EVNyH3pRBJU1tVY9fq5j+kxs3an16O9kOEZ9Fra382UPkQjKB82FH+A8742rnsGAzO+WBIaYpfGAHPaSPgGOzfMUEwhvm7/QjAq0EA2K+IgN9B4Fsu9D+q7mdgCX1/EAl5eBa6LwwA1F2A/4IAqIDnmAvAaXgnYpraPnOGMqZkQYLynASnHQBwRNlcpdnhh/Q8xcNP8TDxxOOesB+tp59yZr7aeyL2W7zWi09Ot1mAWzzAN7XCspfUAg5bcVoXw6anMECkZBlOECNP7ejOhJuc4TMlfL29fsqHGvTlbuRbzXBLGwhodOvNtIFKHXQG4lijQ6PbRnTI+xcMtAVDpxUG8h/liLWNVjodZrbqlF2y2TrPMdtibdJwTzRj+NuMRzZjb3peMwb9AYjC9+0HILr/M0Xh5/N/3RjwGJG8gK+bAK/JG06LNUCTNgYTg3/pxOA6fssEXB3aocSgDwTdYcRwytntxq4W8BOumHlInvjPFSvwKUVLJYATJeITLOtudnXyc25vuRiYhJiKCdOIZmuuXprmjXcNkzRE7/5Ga2wBvgv7K80K6wD2ty9/TiaT98IUxMARTRK6I+mqmFTMXo2/zPSx9RnHKxNUzvnSeMmdcS/dYiaVFjaZyYXnYSZjcUYzJjDAmHBhTCzGDZN69x0vH3jL+2vA0YUaJ8DZy/kXY4FTQ9HpQ7HMhe3tJqGoQBHxfyne1Ui+ffTArW1m9AZ6tybPdPvr4EFTllEiJVTQ0r3/z5aqhpu8uFC4E2Gcv9nXjQrbOQoeOcs3YC/Hux5y9R0NVt/vwDo1wKpnDCfB2q28jgPrfcZ7/ca1FckZqolnw9UUyz8PV+CYcP2CQw4USoPD0fjo2rDWqRl0oa586Nh+FXonRd9un6u9N8TCwiKuNvgFbWyNtwImvzvKzdiAe8lude98Gfm0k5GHKI+rUox4+IwY131aSETxxlxs/BqT1Dq51tfM36ULu5T8XbOW0/N3qBXcvGH5+7MLexp1qe9Dxirswf6wv0EkCxSItGxgSi9ztoGcxM85ax+KDHM/h5ZFB2FnUke8tze3vA8mIhF8QQKU3MmGNQlD8f48QUuczKtvTTSi6lpwdaJ1Aqo+oZELs5qfoZiIyZ44vj9tgXfjjGLE0NfS/Zsq/1eD0CjK8a8WjuDtZbFbt974Kuz21qgMaFTW+WBnrKs297xUpoY/I5U9u9p4YeSmDvQFk9sN1IcFZ6A296Rr2ZGpreeW9zgtDaC8QXEZeJtk5qo6ZlWF08xnvHsV938yO1sd5DpPT3DEuln7De8b0l0qiqeWrJgWpXBaKDvZWGV5fDgLnbqKlDISCdTLKjzNyIp7SpVoCmuISRCLQUNVrF+XuuUMUhKrLSmz9wboClJSCNoOVd3dNlPS6W3/YXpGSsof62+gSyOuvzOHH/8D</diagram></mxfile> \ No newline at end of file
diff --git a/support/doc/user/watch-p2p.png b/support/doc/user/watch-p2p.png
deleted file mode 100644
index 873309434..000000000
--- a/support/doc/user/watch-p2p.png
+++ /dev/null
Binary files differ
diff --git a/support/doc/user/watch-p2p.xml b/support/doc/user/watch-p2p.xml
deleted file mode 100644
index 7f2cdb627..000000000
--- a/support/doc/user/watch-p2p.xml
+++ /dev/null
@@ -1 +0,0 @@
1<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0" version="9.1.0" editor="www.draw.io" type="device"><diagram id="cb5ce52d-ab91-b6cb-bd1a-da918a399df8" name="Page-1">7VpLc5swEP41nmkO7YAEmB5jN2kvncnU6aQ5yrA2TDByhfzqr68EEpiHiRNjx23sQ5BWK2l3v88rsXEPD2frr4zMg+/Uh6iHDH/dw196CJkWssRDSjaZpG+bmWDKQl8pFYJR+AeU0FDSRehDUlLklEY8nJeFHo1j8HhJRhijq7LahEblXedkCjXByCNRXfoQ+jzIpK5tFPJvEE4DvbNpqJEx8Z6mjC5itV8P4Un6yYZnRK+l9JOA+HS1JcI3PTxklPKsNVsPIZKx1WHL5t3uGM3tZhDzfSYonJYkWoC2OLWLb3QsUm9A6hs9PFgFIYfRnHhydCXQF7KAzyLRM0Uz4Yw+wZBGlKWzsZF+8hEdTak7CaNoS3MyAcfzpJzGvGkFEoXTWMg84RuIwYGyHRiH9U7/zTyqgq1AZ8DZRqjoCY6aoohqaSBXBey2BivYgjxHkCiqTfO1i3CLhop4c/Tt84m+T8CdvHX0Rfj3i77pdBB9txb9n4nwDBm4BQXzFSi4aIwdZy8UbHB968Qo2KjyHbDrKJhNKHQBgmnWUBgBW6Y4mB3jsOe3IaYxnBgCXP0iOKeEoCkNORFXMSgh4PxeUD3wMUnP7WuJlDNfF4OiNZXPgTgMQZyEajFhR7ZeNtplqlOQnR2ujr7QbDTOTg3XfgOsuAtYnSPBesuE1gXX564Nx8IV1TOmOrfabg//4blVTZonPbf0Va2OQten1pmjkDv8JijscYMWmepavhJKvyOSJKGXxpIwXhe/4vaAWuItQsg2v2Ti+yQsVf1HtQGsQ56N2ar3qFJk5gL4tXfUCibCTbpgHpQZKTybQv5i2ozd9v26ARotYxARHi7LZjThpXa4o2F6sOTX+3KWdKrpLzNfzdp+S60shCrp1nYrC2U+1xYSAJPNltpcKiS7DUaVjIJdo9Uu/LlVXzQyCwou5xjsR++mI/ws6X18dusy0IXdpeT4QkL1/xVC9Y/OKPdCqAPTpe2+LF1a9pHTZb2ic6bs3pPcZqfpMovGhd17stuqlMVsq53dqOJgRf9wdn++sLuF3e5bkttCFezNsyd3K1mfTfVdk1sngwu5m+4ll8x90L3k+cx9ZHLXK3YvrsTipkrsA+FeAIkMjSzHGgmAL3s8ANkjM/lYhj5Q8fzwAOORUOghYbAhOj/uh1l7EPJ7yiQpr7RdY1aUc99tlRdbFb42lbaayrxdlLYwPhJpRiWSVNlx9Y7xzkv2+v1EL3GKUiY+/N81yNyZJKRxBdo7EO5iN+lRLP7cobv3zKRKYdB065kjZ82BTBLd4vdC2elU/CgL3/wF</diagram></mxfile> \ No newline at end of file
diff --git a/support/doc/user/watch-video.png b/support/doc/user/watch-video.png
deleted file mode 100644
index 8744c793c..000000000
--- a/support/doc/user/watch-video.png
+++ /dev/null
Binary files differ
diff --git a/support/doc/user/watch-video.xml b/support/doc/user/watch-video.xml
deleted file mode 100644
index e2b46aa8b..000000000
--- a/support/doc/user/watch-video.xml
+++ /dev/null
@@ -1 +0,0 @@
1<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0" version="9.1.0" editor="www.draw.io" type="device"><diagram id="067b0f1f-1608-c9cb-8da6-67e6cbc055e3" name="Page-1">7Vpbc5s6EP41PNYDEmD8mKRN25l2pnPcTk4fZVgDE4xcgWP7/PojgYSRgNTxJUnr+CERq+t+37IX2Ra+WWw+MrJMvtIIMgvZ0cbC7y2EHBe5/J+QbGvJ2HNqQczSSA7aCabpfyCFtpSu0ggKbWBJaVamS10Y0jyHsNRkhDG61ofNaabvuiQxdATTkGRd6V0alUktDTx7J/8EaZyonR1b9sxIeB8zusrlfhbC8+pTdy+IWkuOLxIS0XVLhD9Y+IZRWtatxeYGMoGtgq2edzvQ25ybQV7uMwHVEx5ItgJ14upc5VZhUWkDYrxt4et1kpYwXZJQ9K45+1yWlIuMPzm8WZSM3sMNzSirZmO7+jQ9Ck0xdp5mWWvkfA5+GAo5zcu+FUiWxjmXhVw34J3X8uzAStgM6u80qHJrBbqAkm35EDXBl1OkobqKyPWOdk+RlbQp96WQSFOLm7V3cPOGRLwfffx60I8IBPOXRj/YE3yMTgC+2wF/Coyrw2WP0eCcj4ac5vDMDHiOzoDTY/9OHwWnMH9vmAF8MQwg+wUZ8DsM/CgE/ifFPkAz7Pt7OSEPgsh9ZgKwGQL8ZyRg/PsIAHl0JVIaoXZGiiINKygJK7viA14B9AjcHEG2/VfGnurhp3gYeeJxk5ZV12isHn/KrWsVIDJyrIKuWAjaq8+1iEHCOdmbuHZ46OFFyRhkpEwf9EP0kSV3+EZTvvFgcPKxwXetj5zVzrGMhZDhY73AWKhGobMQp5dsW8OWYkAxfGA0sbV9sKPlfrxRr7gzzAbTvWw1+DNs1XnMVtEBtuq+2erJbdVz9X1ObauT4dRCMfz3pxZmZOvLr88W2VQp/we6i8N8gvfmE/SFDnht1U5PNpqzJT4yYigDcYajib2f5fivP5pgI5FwTX+wr+Xgia97efd8ltMt5y3kZxyY6xlvxKLhjJSIr9ZI+aSr4t4St4QiPBCxSBoBtZo7upPcxkj///qChGOQ3VN/BueKEd36UzEkINCw93+tqOp4V1Q3xlcimvvLza5TcXpNwnvuJ1p01+spxv9+Wn2DVlGBm7SO+67WTkFrX1V7ClpvGR/1xuvvXtez8XpoBXi+6DzWorN90L1EB3w9YE+6Adt/2bxOt4Aj8jp9oXPmdd16rBOd0VB0/p6AwJ+yiiZk//jns1i6qAK0TxbiPa7mjUajRnAxDsE1zKHJsZ4hfqsM6dU6hHa67rS8gUzdB0rNSnybZuqIXIXW02FepCftdy/aizz1xsg3vidxx55hqsfdGKG+0tNwUXjART0xt3H7cpvOZrV76+x2R8owgaJVpZQJd2txwlt3MJsCDKdHtThKH44/5nHKwmIGkXDEHP+84HoIQ8j5n0/fv37x2rqRuAGGmWcY0I+LKxUvJyl0A73OdgPciQFOnzM5SRDofo37VCNBTp+RVJYuK/JiCWE65965MY2LrQDMr3lQN943vB7JNX/c/RSp9qm733vhD/8D</diagram></mxfile> \ No newline at end of file
diff --git a/support/docker/dev/Dockerfile b/support/docker/dev/Dockerfile
index 2b4f2b215..8e049f3f6 100644
--- a/support/docker/dev/Dockerfile
+++ b/support/docker/dev/Dockerfile
@@ -1,32 +1,46 @@
1FROM janitortechnology/ubuntu-dev 1FROM ubuntu:bionic
2
3# Avoid tzdata interactive dialog
4ENV DEBIAN_FRONTEND=noninteractive
2 5
3# Install PeerTube's dependencies. 6# Install PeerTube's dependencies.
4# Packages are from https://github.com/Chocobozzz/PeerTube#dependencies 7# Packages are from https://github.com/Chocobozzz/PeerTube#dependencies
5RUN sudo apt-get update -q && sudo apt-get install -qy \ 8RUN apt-get update -q && apt-get install -qy \
6 ffmpeg \ 9 curl \
7 postgresql \ 10 ffmpeg \
8 openssl 11 g++ \
12 git \
13 gnupg \
14 make \
15 nano \
16 openssl \
17 postgresql \
18 postgresql-contrib \
19 redis-server \
20 && curl -sL https://deb.nodesource.com/setup_8.x | bash - \
21 && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
22 && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
23 && apt-get update \
24 && apt-get install -qy nodejs yarn \
25 && rm -rf /var/lib/apt/lists/*
9 26
10# Download PeerTube's source code. 27# Download PeerTube's source code.
11RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube 28RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube
12WORKDIR /home/user/PeerTube 29WORKDIR /home/user/PeerTube
13 30
14# Configure the IDEs to use Janitor's source directory as workspace. 31# Copy postgresql setup script
15ENV WORKSPACE /home/user/PeerTube/ 32COPY setup_postgres.sql /tmp/
16
17# Install dependencies.
18RUN yarn install --pure-lockfile
19 33
20# Configure Janitor for PeerTube. 34# Install Node.js dependencies and setup PostgreSQL
21COPY --chown=user:user janitor.json /home/user/ 35RUN yarn install --pure-lockfile \
36 && service postgresql start \
37 && su postgres -c "psql --file=/tmp/setup_postgres.sql"
22 38
23# Configure and build PeerTube. 39# Expose PeerTube sources as a volume
24COPY create_user.sql /tmp/ 40VOLUME /home/user/PeerTube
25RUN sudo service postgresql start \
26 && sudo -u postgres psql --file=/tmp/create_user.sql \
27 && npm run build
28
29COPY --chown=user:user supervisord.conf /tmp/supervisord-extra.conf
30RUN cat /tmp/supervisord-extra.conf | sudo tee -a /etc/supervisord.conf
31 41
42# Expose API and frontend
32EXPOSE 3000 9000 43EXPOSE 3000 9000
44
45# Start PostgreSQL and Redis
46CMD ["service postgresql start && redis-server"]
diff --git a/support/docker/dev/setup_postgres.sql b/support/docker/dev/setup_postgres.sql
new file mode 100644
index 000000000..0937f9d19
--- /dev/null
+++ b/support/docker/dev/setup_postgres.sql
@@ -0,0 +1,6 @@
1create database peertube_dev;
2create user peertube password 'peertube';
3grant all privileges on database peertube_dev to peertube;
4\c peertube_dev
5CREATE EXTENSION pg_trgm;
6CREATE EXTENSION unaccent;
diff --git a/support/docker/dev/usage.md b/support/docker/dev/usage.md
new file mode 100644
index 000000000..319d7db30
--- /dev/null
+++ b/support/docker/dev/usage.md
@@ -0,0 +1,20 @@
1### Usage
21. Build the image:
3 ```
4 docker build -t my_peertube_dev .
5 ```
61. Start the container:
7 ```
8 docker run -d -i -p 3000:3000 -p 9000:9000 --name peertube my_peertube_dev
9 ```
10 This will create a new Docker volume containing PeerTube sources.
11
121. Start PeerTube inside the container:
13 ```
14 docker exec -it peertube npm run dev
15 ```
161. In another window, find the path to the Docker volume
17 ```
18 docker inspect peertube | less +/Mounts
19 ```
20 You can now make changes to the files. They should be automatically recompiled.
diff --git a/support/docker/janitor/Dockerfile b/support/docker/janitor/Dockerfile
new file mode 100644
index 000000000..2b4f2b215
--- /dev/null
+++ b/support/docker/janitor/Dockerfile
@@ -0,0 +1,32 @@
1FROM janitortechnology/ubuntu-dev
2
3# Install PeerTube's dependencies.
4# Packages are from https://github.com/Chocobozzz/PeerTube#dependencies
5RUN sudo apt-get update -q && sudo apt-get install -qy \
6 ffmpeg \
7 postgresql \
8 openssl
9
10# Download PeerTube's source code.
11RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube
12WORKDIR /home/user/PeerTube
13
14# Configure the IDEs to use Janitor's source directory as workspace.
15ENV WORKSPACE /home/user/PeerTube/
16
17# Install dependencies.
18RUN yarn install --pure-lockfile
19
20# Configure Janitor for PeerTube.
21COPY --chown=user:user janitor.json /home/user/
22
23# Configure and build PeerTube.
24COPY create_user.sql /tmp/
25RUN sudo service postgresql start \
26 && sudo -u postgres psql --file=/tmp/create_user.sql \
27 && npm run build
28
29COPY --chown=user:user supervisord.conf /tmp/supervisord-extra.conf
30RUN cat /tmp/supervisord-extra.conf | sudo tee -a /etc/supervisord.conf
31
32EXPOSE 3000 9000
diff --git a/support/docker/dev/create_user.sql b/support/docker/janitor/create_user.sql
index c2fbcf27e..c2fbcf27e 100644
--- a/support/docker/dev/create_user.sql
+++ b/support/docker/janitor/create_user.sql
diff --git a/support/docker/dev/janitor.json b/support/docker/janitor/janitor.json
index 5acdf3060..5acdf3060 100644
--- a/support/docker/dev/janitor.json
+++ b/support/docker/janitor/janitor.json
diff --git a/support/docker/dev/supervisord.conf b/support/docker/janitor/supervisord.conf
index b2e1682df..b2e1682df 100644
--- a/support/docker/dev/supervisord.conf
+++ b/support/docker/janitor/supervisord.conf
diff --git a/support/docker/production/.env b/support/docker/production/.env
index 8af161b2a..802d6b2ca 100644
--- a/support/docker/production/.env
+++ b/support/docker/production/.env
@@ -3,10 +3,13 @@ PEERTUBE_DB_PASSWORD=postgres_password
3PEERTUBE_WEBSERVER_HOSTNAME=domain.tld 3PEERTUBE_WEBSERVER_HOSTNAME=domain.tld
4PEERTUBE_WEBSERVER_PORT=443 4PEERTUBE_WEBSERVER_PORT=443
5PEERTUBE_WEBSERVER_HTTPS=true 5PEERTUBE_WEBSERVER_HTTPS=true
6PEERTUBE_TRUST_PROXY=127.0.0.1 6# If you need more than one IP as trust_proxy
7# pass them as a comma separated array:
8PEERTUBE_TRUST_PROXY=["127.0.0.1"]
9#PEERTUBE_TRUST_PROXY=["127.0.0.1", "loopback", "192.168.1.0/24"]
7PEERTUBE_SMTP_USERNAME= 10PEERTUBE_SMTP_USERNAME=
8PEERTUBE_SMTP_PASSWORD= 11PEERTUBE_SMTP_PASSWORD=
9PEERTUBE_SMTP_HOSTNAME= 12PEERTUBE_SMTP_HOSTNAME=postfix
10PEERTUBE_SMTP_PORT=25 13PEERTUBE_SMTP_PORT=25
11PEERTUBE_SMTP_FROM=noreply@domain.tld 14PEERTUBE_SMTP_FROM=noreply@domain.tld
12PEERTUBE_SMTP_TLS=true 15PEERTUBE_SMTP_TLS=true
@@ -15,3 +18,4 @@ PEERTUBE_ADMIN_EMAIL=admin@domain.tld
15# /!\ Prefer to use the PeerTube admin interface to set the following configurations /!\ 18# /!\ Prefer to use the PeerTube admin interface to set the following configurations /!\
16#PEERTUBE_SIGNUP_ENABLED=true 19#PEERTUBE_SIGNUP_ENABLED=true
17#PEERTUBE_TRANSCODING_ENABLED=true 20#PEERTUBE_TRANSCODING_ENABLED=true
21#PEERTUBE_CONTACT_FORM_ENABLED=true
diff --git a/support/docker/production/Dockerfile.stretch b/support/docker/production/Dockerfile.stretch
index 911d064f6..81468bb4f 100644
--- a/support/docker/production/Dockerfile.stretch
+++ b/support/docker/production/Dockerfile.stretch
@@ -20,32 +20,11 @@ RUN groupadd -r peertube \
20 && useradd -r -g peertube -m peertube 20 && useradd -r -g peertube -m peertube
21 21
22# grab gosu for easy step-down from root 22# grab gosu for easy step-down from root
23# https://github.com/tianon/gosu/releases 23RUN set -eux; \
24ENV GOSU_VERSION 1.10 24 apt-get update; \
25RUN set -ex; \ 25 apt-get install -y gosu; \
26 \ 26 rm -rf /var/lib/apt/lists/*; \
27 fetchDeps='ca-certificates wget'; \ 27 gosu nobody true
28 apt-get update; \
29 apt-get install -y --no-install-recommends $fetchDeps; \
30 rm -rf /var/lib/apt/lists/*; \
31 \
32 dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \
33 wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \
34 wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \
35 export GNUPGHOME="$(mktemp -d)"; \
36 for server in $(shuf -e ha.pool.sks-keyservers.net \
37 hkp://p80.pool.sks-keyservers.net:80 \
38 keyserver.ubuntu.com \
39 hkp://keyserver.ubuntu.com:80 \
40 pgp.mit.edu) ; do \
41 gpg --keyserver "$server" --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && break || : ; \
42 done; \
43 gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
44 rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
45 chmod +x /usr/local/bin/gosu; \
46 gosu nobody true; \
47 \
48 apt-get purge -y --auto-remove wget
49 28
50# Install PeerTube 29# Install PeerTube
51WORKDIR /app 30WORKDIR /app
diff --git a/support/docker/production/config/custom-environment-variables.yaml b/support/docker/production/config/custom-environment-variables.yaml
index daf885813..8604939aa 100644
--- a/support/docker/production/config/custom-environment-variables.yaml
+++ b/support/docker/production/config/custom-environment-variables.yaml
@@ -7,7 +7,9 @@ webserver:
7 __name: "PEERTUBE_WEBSERVER_HTTPS" 7 __name: "PEERTUBE_WEBSERVER_HTTPS"
8 __format: "json" 8 __format: "json"
9 9
10trust_proxy: "PEERTUBE_TRUST_PROXY" 10trust_proxy:
11 __name: "PEERTUBE_TRUST_PROXY"
12 __format: "json"
11 13
12database: 14database:
13 hostname: "PEERTUBE_DB_HOSTNAME" 15 hostname: "PEERTUBE_DB_HOSTNAME"
@@ -48,6 +50,11 @@ user:
48admin: 50admin:
49 email: "PEERTUBE_ADMIN_EMAIL" 51 email: "PEERTUBE_ADMIN_EMAIL"
50 52
53contact_form:
54 enabled:
55 __name: "PEERTUBE_CONTACT_FORM_ENABLED"
56 __format: "json"
57
51signup: 58signup:
52 enabled: 59 enabled:
53 __name: "PEERTUBE_SIGNUP_ENABLED" 60 __name: "PEERTUBE_SIGNUP_ENABLED"
@@ -56,6 +63,26 @@ signup:
56 __name: "PEERTUBE_SIGNUP_LIMIT" 63 __name: "PEERTUBE_SIGNUP_LIMIT"
57 __format: "json" 64 __format: "json"
58 65
66search:
67 remote_uri:
68 users:
69 __name: "PEERTUBE_SEARCH_REMOTEURI_USERS"
70 __format: "json"
71 anonymous:
72 __name: "PEERTUBE_SEARCH_REMOTEURI_ANONYMOUS"
73 __format: "json"
74
75import:
76 videos:
77 http:
78 enabled:
79 __name: "PEERTUBE_IMPORT_VIDEOS_HTTP"
80 __format: "json"
81 torrent:
82 enabled:
83 __name: "PEERTUBE_IMPORT_VIDEOS_TORRENT"
84 __format: "json"
85
59transcoding: 86transcoding:
60 enabled: 87 enabled:
61 __name: "PEERTUBE_TRANSCODING_ENABLED" 88 __name: "PEERTUBE_TRANSCODING_ENABLED"
@@ -79,9 +106,11 @@ transcoding:
79 1080: 106 1080:
80 __name: "PEERTUBE_TRANSCODING_1080P" 107 __name: "PEERTUBE_TRANSCODING_1080P"
81 __format: "json" 108 __format: "json"
82
83 109
84instance: 110instance:
85 name: "PEERTUBE_INSTANCE_NAME" 111 name: "PEERTUBE_INSTANCE_NAME"
86 description: "PEERTUBE_INSTANCE_DESCRIPTION" 112 description: "PEERTUBE_INSTANCE_DESCRIPTION"
87 terms: "PEERTUBE_INSTANCE_TERMS" 113 terms: "PEERTUBE_INSTANCE_TERMS"
114
115services:
116 csp-logger: "PEERTUBE_SERVICES_CSPLOGGER"
diff --git a/support/docker/production/config/production.yaml b/support/docker/production/config/production.yaml
index 4970bbcca..846c838e8 100644
--- a/support/docker/production/config/production.yaml
+++ b/support/docker/production/config/production.yaml
@@ -32,8 +32,10 @@ redis:
32 32
33# From the project root directory 33# From the project root directory
34storage: 34storage:
35 tmp: '../data/tmp/'
35 avatars: '../data/avatars/' 36 avatars: '../data/avatars/'
36 videos: '../data/videos/' 37 videos: '../data/videos/'
38 redundancy: '../data/redundancy/'
37 logs: '../data/logs/' 39 logs: '../data/logs/'
38 previews: '../data/previews/' 40 previews: '../data/previews/'
39 thumbnails: '../data/thumbnails/' 41 thumbnails: '../data/thumbnails/'
diff --git a/support/docker/production/config/traefik.toml b/support/docker/production/config/traefik.toml
index 882c95548..6abced3db 100644
--- a/support/docker/production/config/traefik.toml
+++ b/support/docker/production/config/traefik.toml
@@ -1,9 +1,12 @@
1# Uncomment this line in order to enable debugging through logs 1# Uncomment this line in order to enable debugging through logs
2# debug = true 2# debug = true
3defaultEntryPoints = ["http", "https"] 3defaultEntryPoints = ["http", "https"]
4
4[entryPoints] 5[entryPoints]
5 [entryPoints.http] 6 [entryPoints.http]
6 address = ":80" 7 address = ":80"
8 [entryPoints.http.redirect]
9 entryPoint = "https"
7 [entryPoints.https] 10 [entryPoints.https]
8 address = ":443" 11 address = ":443"
9 [entryPoints.https.tls] 12 [entryPoints.https.tls]
diff --git a/support/docker/production/docker-compose.yml b/support/docker/production/docker-compose.yml
index 220c19fba..1b0a28ffb 100644
--- a/support/docker/production/docker-compose.yml
+++ b/support/docker/production/docker-compose.yml
@@ -4,16 +4,19 @@ services:
4 4
5 reverse-proxy: 5 reverse-proxy:
6 image: traefik 6 image: traefik
7 command: --api --docker # Enables the web UI and tells Træfik to listen to docker 7 command: --docker # Tells Træfik to listen to docker
8 ports: 8 ports:
9 - "80:80" # The HTTP port 9 - "80:80" # The HTTP port
10 - "443:443" # The HTTPS port 10 - "443:443" # The HTTPS port
11 - "8080:8080" # The Web UI (enabled by --api)
12 volumes: 11 volumes:
13 - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events 12 - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
14 - ./docker-volume/traefik/acme.json:/etc/acme.json 13 - ./docker-volume/traefik/acme.json:/etc/acme.json
15 - ./docker-volume/traefik/traefik.toml:/traefik.toml 14 - ./docker-volume/traefik/traefik.toml:/traefik.toml
16 restart: "always" 15 restart: "always"
16 # If you want to use the Traefik dashboard, you should expose it on a
17 # subdomain with HTTPS and authentification:
18 # https://medium.com/@xavier.priour/secure-traefik-dashboard-with-https-and-password-in-docker-5b657e2aa15f
19 # https://github.com/containous/traefik/issues/880#issuecomment-310301168
17 20
18 peertube: 21 peertube:
19 # If you don't want to use the official image and build one from sources 22 # If you don't want to use the official image and build one from sources
@@ -38,6 +41,7 @@ services:
38 depends_on: 41 depends_on:
39 - postgres 42 - postgres
40 - redis 43 - redis
44 - postfix
41 restart: "always" 45 restart: "always"
42 46
43 postgres: 47 postgres:
@@ -59,3 +63,11 @@ services:
59 restart: "always" 63 restart: "always"
60 labels: 64 labels:
61 traefik.enable: "false" 65 traefik.enable: "false"
66
67 postfix:
68 image: mwader/postfix-relay
69 environment:
70 - POSTFIX_myhostname=${PEERTUBE_WEBSERVER_HOSTNAME}
71 labels:
72 traefik.enable: "false"
73 restart: "always"
diff --git a/support/docker/production/docker-entrypoint.sh b/support/docker/production/docker-entrypoint.sh
index 6dbbfddf6..7dd626b9f 100755
--- a/support/docker/production/docker-entrypoint.sh
+++ b/support/docker/production/docker-entrypoint.sh
@@ -9,7 +9,7 @@ fi
9# Always copy default and custom env configuration file, in cases where new keys were added 9# Always copy default and custom env configuration file, in cases where new keys were added
10cp /app/config/default.yaml /config 10cp /app/config/default.yaml /config
11cp /app/support/docker/production/config/custom-environment-variables.yaml /config 11cp /app/support/docker/production/config/custom-environment-variables.yaml /config
12chown -R peertube:peertube /config 12find /config ! -user peertube -exec chown peertube:peertube {} \;
13 13
14# first arg is `-f` or `--some-option` 14# first arg is `-f` or `--some-option`
15# or first arg is `something.conf` 15# or first arg is `something.conf`
@@ -19,7 +19,7 @@ fi
19 19
20# allow the container to be started with `--user` 20# allow the container to be started with `--user`
21if [ "$1" = 'npm' -a "$(id -u)" = '0' ]; then 21if [ "$1" = 'npm' -a "$(id -u)" = '0' ]; then
22 chown -R peertube:peertube /data 22 find /data ! -user peertube -exec chown peertube:peertube {} \;
23 exec gosu peertube "$0" "$@" 23 exec gosu peertube "$0" "$@"
24fi 24fi
25 25
diff --git a/support/freebsd/peertube b/support/freebsd/peertube
index 78fdf5848..5d14c58ae 100755
--- a/support/freebsd/peertube
+++ b/support/freebsd/peertube
@@ -16,6 +16,7 @@ load_rc_config $name
16 16
17: ${peertube_enable:=NO} 17: ${peertube_enable:=NO}
18 18
19sig_stop=-KILL
19peertube_chdir="/var/www/peertube/peertube-latest" 20peertube_chdir="/var/www/peertube/peertube-latest"
20peertube_env="HOME=/var/www/peertube \ 21peertube_env="HOME=/var/www/peertube \
21NODE_ENV=production \ 22NODE_ENV=production \
@@ -23,7 +24,7 @@ NODE_CONFIG_DIR=/var/www/peertube/config \
23USER=peertube" 24USER=peertube"
24peertube_user=peertube 25peertube_user=peertube
25 26
26command="/usr/local/bin/npm" 27command="/usr/local/bin/node"
27command_args="start >> /var/log/peertube/${name}.log 2>&1 &" 28command_args="dist/server >> /var/log/peertube/${name}.log 2>&1 &"
28 29
29run_rc_command "$1" 30run_rc_command "$1"
diff --git a/support/nginx/peertube b/support/nginx/peertube
index b00031133..fee0f5d1c 100644
--- a/support/nginx/peertube
+++ b/support/nginx/peertube
@@ -41,7 +41,7 @@ server {
41 # It might be nice to compress JSON, but leaving that out to protect against potential 41 # It might be nice to compress JSON, but leaving that out to protect against potential
42 # compression+encryption information leak attacks like BREACH. 42 # compression+encryption information leak attacks like BREACH.
43 gzip on; 43 gzip on;
44 gzip_types text/css text/html application/javascript; 44 gzip_types text/css application/javascript;
45 gzip_vary on; 45 gzip_vary on;
46 46
47 # Enable HSTS 47 # Enable HSTS
@@ -96,8 +96,18 @@ server {
96 proxy_set_header Host $host; 96 proxy_set_header Host $host;
97 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 97 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
98 98
99 # Hard limit, PeerTube does not support videos > 8GB 99 # This is the maximum upload size, which roughly matches the maximum size of a video file
100 # you can send via the API or the web interface. By default this is 8GB, but administrators
101 # can increase or decrease the limit. Currently there's no way to communicate this limit
102 # to users automatically, so you may want to leave a note in your instance 'about' page if
103 # you change this.
104 #
105 # Note that temporary space is needed equal to the total size of all concurrent uploads.
106 # This data gets stored in /var/lib/nginx by default, so you may want to put this directory
107 # on a dedicated filesystem.
108 #
100 client_max_body_size 8G; 109 client_max_body_size 8G;
110
101 proxy_connect_timeout 600; 111 proxy_connect_timeout 600;
102 proxy_send_timeout 600; 112 proxy_send_timeout 600;
103 proxy_read_timeout 600; 113 proxy_read_timeout 600;
@@ -105,7 +115,7 @@ server {
105 } 115 }
106 116
107 # Bypass PeerTube for performance reasons. Could be removed 117 # Bypass PeerTube for performance reasons. Could be removed
108 location /static/webseed { 118 location ~ ^/static/(webseed|redundancy)/ {
109 # Clients usually have 4 simultaneous webseed connections, so the real limit is 3MB/s per client 119 # Clients usually have 4 simultaneous webseed connections, so the real limit is 3MB/s per client
110 limit_rate 800k; 120 limit_rate 800k;
111 121
@@ -128,7 +138,12 @@ server {
128 access_log off; 138 access_log off;
129 } 139 }
130 140
131 alias /var/www/peertube/storage/videos; 141 root /var/www/peertube/storage;
142
143 rewrite ^/static/webseed/(.*)$ /videos/$1 break;
144 rewrite ^/static/redundancy/(.*)$ /redundancy/$1 break;
145
146 try_files $uri /;
132 } 147 }
133 148
134 # Websocket tracker 149 # Websocket tracker
@@ -143,4 +158,16 @@ server {
143 proxy_set_header Host $host; 158 proxy_set_header Host $host;
144 proxy_pass http://localhost:9000; 159 proxy_pass http://localhost:9000;
145 } 160 }
161
162 location /socket.io {
163 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
164 proxy_set_header Host $host;
165
166 proxy_pass http://localhost:9000;
167
168 # enable WebSockets
169 proxy_http_version 1.1;
170 proxy_set_header Upgrade $http_upgrade;
171 proxy_set_header Connection "upgrade";
172 }
146} 173}
diff --git a/support/systemd/peertube.service b/support/systemd/peertube.service
index 88856385c..fba644788 100644
--- a/support/systemd/peertube.service
+++ b/support/systemd/peertube.service
@@ -15,5 +15,24 @@ StandardError=syslog
15SyslogIdentifier=peertube 15SyslogIdentifier=peertube
16Restart=always 16Restart=always
17 17
18; Some security directives.
19; Use private /tmp and /var/tmp folders inside a new file system namespace,
20; which are discarded after the process stops.
21PrivateTmp=true
22; Mount /usr, /boot, and /etc as read-only for processes invoked by this service.
23ProtectSystem=full
24; Sets up a new /dev mount for the process and only adds API pseudo devices
25; like /dev/null, /dev/zero or /dev/random but not physical devices. Disabled
26; by default because it may not work on devices like the Raspberry Pi.
27PrivateDevices=false
28; Ensures that the service process and all its children can never gain new
29; privileges through execve().
30NoNewPrivileges=true
31; This makes /home, /root, and /run/user inaccessible and empty for processes invoked
32; by this unit. Make sure that you do not depend on data inside these folders.
33ProtectHome=true
34; Drops the sys admin capability from the daemon.
35CapabilityBoundingSet=~CAP_SYS_ADMIN
36
18[Install] 37[Install]
19WantedBy=multi-user.target 38WantedBy=multi-user.target