· 5 years ago · Dec 18, 2020, 05:16 PM
1{
2 "openapi": "3.0.1",
3 "info": {
4 "title": "ЛКЗ",
5 "description": "Личный кабинет застройщика",
6 "version": "1.0.0"
7 },
8 "servers": [
9 {
10 "url": "http://localhost:8092",
11 "description": "Generated server url"
12 }
13 ],
14 "tags": [
15 {
16 "name": "Application version controller",
17 "description": "Вспомогательное API для версии сборки приложения"
18 },
19 {
20 "name": "RefreshToken Controller",
21 "description": "Контроллер добавления токенов"
22 },
23 {
24 "name": "Current user API",
25 "description": "API текущего пользователя"
26 },
27 {
28 "name": "ConfirmationCode Controller",
29 "description": "Контроллер кодов подтверждения"
30 },
31 {
32 "name": "Captcha API",
33 "description": "Контроллер капчи"
34 },
35 {
36 "name": "Project API",
37 "description": "API проекта"
38 },
39 {
40 "name": "File API",
41 "description": "API файла"
42 },
43 {
44 "name": "Document API",
45 "description": "API документа"
46 },
47 {
48 "name": "ChecklistSectionApi API",
49 "description": "API раздела контрольного списка"
50 },
51 {
52 "name": "ChecklistDocumentType API",
53 "description": "API типа документа контрольного списка"
54 },
55 {
56 "name": "Checklist API",
57 "description": "API контрольного списка"
58 },
59 {
60 "name": "DownloadFiles Controller",
61 "description": "Контроллер выгрузки файлов"
62 }
63 ],
64 "paths": {
65 "/login": {
66 "description": "Аутентификация",
67 "post": {
68 "tags": [
69 "Аутентификация"
70 ],
71 "requestBody": {
72 "content": {
73 "application/json": {
74 "schema": {
75 "required": [
76 "email",
77 "password"
78 ],
79 "type": "object",
80 "properties": {
81 "email": {
82 "type": "string",
83 "description": "Почта пользователя"
84 },
85 "password": {
86 "type": "string",
87 "description": "Пароль"
88 },
89 "code": {
90 "type": "string",
91 "description": "Код подтверждения"
92 }
93 },
94 "description": "Аутентификационные данные"
95 }
96 }
97 }
98 },
99 "responses": {
100 "200": {
101 "headers": {
102 "Set-Cookie": {
103 "description": "Cookie: USER-COOKIE-BEARER. Аутентификационный токен"
104 }
105 },
106 "content": {
107 "application/json": {
108 "schema": {
109 "type": "object",
110 "properties": {
111 "refreshToken": {
112 "type": "string",
113 "description": "Refresh token"
114 },
115 "authStatus": {
116 "$ref": "#/components/schemas/AuthenticationStatus"
117 }
118 },
119 "description": "Ответ на аутентификацию"
120 }
121 }
122 }
123 }
124 }
125 }
126 },
127 "/logout": {
128 "description": "Выход пользователя из системы",
129 "post": {
130 "tags": [
131 "Аутентификация"
132 ],
133 "responses": {
134 "200": {
135 "headers": {
136 "Set-Cookie": {
137 "description": "Удаление авторизационной куки",
138 "example": "USER-COOKIE-BEARER=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/"
139 }
140 }
141 }
142 }
143 }
144 },
145 "/download/{token}": {
146 "get": {
147 "tags": [
148 "DownloadFiles Controller"
149 ],
150 "summary": "Выгрузить файлы",
151 "description": "Доступно для пользователей с ролью USER_DEVELOPER только из привязанных к нему проектов, для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды.\nВыгрузка осуществляется в два шага \n * Пользователь запрашивает выгрузку в `/api/files/downloadRequest`. Сервер проверяет возможность выгрузки запрошенных файлов (наличие файла в архивной директории, наличие доступа у пользователя к файлу). Если все файлы возможно выгрузить без проблем, то возвращается токен для выгрузки, иначе - список возникших проблем. \n\n * Если при проверке не возникло проблем, то клиент начинает выгрузку. Иначе пользователю предлагается выгрузить только файлы без проблем. Список файлов, принятых к выгрузке, повторно проходит проверки. Для выгрузки клиент вызывает `/download`, указав токен. Скачивание осуществляется по прямой ссылке.",
152 "operationId": "download",
153 "parameters": [
154 {
155 "name": "token",
156 "in": "path",
157 "description": "Токен, содержащий информацию по скачиваемым файлам",
158 "required": true,
159 "schema": {
160 "type": "string"
161 }
162 }
163 ],
164 "responses": {
165 "default": {
166 "description": "Файлы. Если выгружается несколько файлов, то они помещаются в архив download.zip. При возникновении ошибки при выгрузке одного файла происходит переадресация на /downloadError.html",
167 "headers": {
168 "Content-Disposition": {
169 "description": "Заголовок содержит наименование файла",
170 "style": "simple",
171 "schema": {
172 "type": "string"
173 }
174 },
175 "Content-Type": {
176 "description": "Заголовок содержит mime-type файла, для архива указывается application/octet-stream",
177 "style": "simple",
178 "schema": {
179 "type": "string"
180 }
181 }
182 },
183 "content": {
184 "*/*": {
185 "schema": {
186 "type": "string",
187 "format": "binary"
188 }
189 }
190 }
191 }
192 }
193 }
194 },
195 "/api/checklists/{id}": {
196 "get": {
197 "tags": [
198 "Checklist API"
199 ],
200 "summary": "Найти контрольный список по идентификатору",
201 "description": "Доступно для пользователей с ролью USER_DEVELOPER только из привязанных к нему проектов, для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
202 "operationId": "findById",
203 "parameters": [
204 {
205 "name": "id",
206 "in": "path",
207 "description": "Идентификатор контрольного списка",
208 "required": true,
209 "schema": {
210 "type": "integer",
211 "format": "int32"
212 }
213 },
214 {
215 "name": "fetchSectionsAndDocumentTypes",
216 "in": "query",
217 "description": "Флаг, указывающий, фетчить ли разделы и типы документов контрольного списка",
218 "required": false,
219 "schema": {
220 "type": "boolean",
221 "default": true
222 }
223 }
224 ],
225 "responses": {
226 "200": {
227 "description": "Контрольный список",
228 "content": {
229 "application/json": {
230 "schema": {
231 "$ref": "#/components/schemas/Checklist"
232 }
233 }
234 }
235 },
236 "403": {
237 "description": "Нет прав на контрольный список. Пользователь имеет права на контрольный список, если контрольный список привязан к проекту, на котороый у пользователя есть права",
238 "content": {
239 "*/*": {
240 "schema": {
241 "$ref": "#/components/schemas/Checklist"
242 }
243 }
244 }
245 },
246 "404": {
247 "description": "Контрольный список не найден",
248 "content": {
249 "application/json": {
250 "schema": {
251 "$ref": "#/components/schemas/ErrorResponse"
252 }
253 }
254 }
255 }
256 },
257 "security": [
258 {
259 "bearer-jwt": []
260 }
261 ]
262 }
263 },
264 "/api/checklistDocumentTypes/{id}/actions": {
265 "get": {
266 "tags": [
267 "ChecklistDocumentType API"
268 ],
269 "summary": "Получить список действий, выполненных в рамках типа документа контрольного списка. Включает как действия, выполненные над самим типом документа контрольного списка, так и над документами, относящимися к нему",
270 "operationId": "getActions",
271 "parameters": [
272 {
273 "name": "id",
274 "in": "path",
275 "description": "Идентификатор типа документа",
276 "required": true,
277 "schema": {
278 "type": "integer",
279 "format": "int32"
280 }
281 }
282 ],
283 "responses": {
284 "200": {
285 "description": "Действия, упорядоченные по времени создания, от более поздних к более ранним",
286 "content": {
287 "application/json": {
288 "schema": {
289 "type": "array",
290 "items": {
291 "$ref": "#/components/schemas/DocumentAction"
292 }
293 }
294 }
295 }
296 },
297 "403": {
298 "description": "Нет прав на контрольный список. Пользователь имеет права на контрольный список, если контрольный список привязан к проекту, на который у пользователя есть права",
299 "content": {
300 "application/json": {
301 "schema": {
302 "$ref": "#/components/schemas/ErrorResponse"
303 }
304 }
305 }
306 },
307 "404": {
308 "description": "Контрольный список не найден",
309 "content": {
310 "application/json": {
311 "schema": {
312 "$ref": "#/components/schemas/ErrorResponse"
313 }
314 }
315 }
316 }
317 },
318 "security": [
319 {
320 "bearer-jwt": []
321 }
322 ]
323 }
324 },
325 "/api/checklistDocumentTypes/{id}/comments": {
326 "get": {
327 "tags": [
328 "ChecklistDocumentType API"
329 ],
330 "summary": "Получить комментарии к типу документа контрольного списка",
331 "operationId": "getComments",
332 "parameters": [
333 {
334 "name": "id",
335 "in": "path",
336 "description": "Идентификатор типа документа",
337 "required": true,
338 "schema": {
339 "type": "integer",
340 "format": "int32"
341 }
342 }
343 ],
344 "responses": {
345 "200": {
346 "description": "Комментарии к типу документа контрольного списка",
347 "content": {
348 "application/json": {
349 "schema": {
350 "type": "array",
351 "items": {
352 "$ref": "#/components/schemas/ChecklistDocumentTypeComment"
353 }
354 }
355 }
356 }
357 },
358 "403": {
359 "description": "Нет прав на контрольный список. Пользователь имеет права на контрольный список, если контрольный список привязан к проекту, на который у пользователя есть права",
360 "content": {
361 "*/*": {
362 "schema": {
363 "type": "array",
364 "items": {
365 "$ref": "#/components/schemas/ChecklistDocumentTypeComment"
366 }
367 }
368 }
369 }
370 },
371 "404": {
372 "description": "Контрольный список не найден",
373 "content": {
374 "application/json": {
375 "schema": {
376 "$ref": "#/components/schemas/ErrorResponse"
377 }
378 }
379 }
380 }
381 },
382 "security": [
383 {
384 "bearer-jwt": []
385 }
386 ]
387 },
388 "post": {
389 "tags": [
390 "ChecklistDocumentType API"
391 ],
392 "summary": "Создать комментарий",
393 "description": "Доступно для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
394 "operationId": "createComment",
395 "parameters": [
396 {
397 "name": "id",
398 "in": "path",
399 "description": "Идентификатор типа документа",
400 "required": true,
401 "schema": {
402 "type": "integer",
403 "format": "int32"
404 }
405 }
406 ],
407 "requestBody": {
408 "content": {
409 "application/json": {
410 "schema": {
411 "$ref": "#/components/schemas/UpdateCommentDto"
412 }
413 }
414 },
415 "required": true
416 },
417 "responses": {
418 "200": {
419 "description": "Комментарий к типу документа",
420 "content": {
421 "application/json": {
422 "schema": {
423 "$ref": "#/components/schemas/ChecklistDocumentTypeComment"
424 }
425 }
426 }
427 }
428 },
429 "security": [
430 {
431 "bearer-jwt": []
432 }
433 ]
434 }
435 },
436 "/api/checklistDocumentTypes/{id}/completed": {
437 "put": {
438 "tags": [
439 "ChecklistDocumentType API"
440 ],
441 "summary": "Обновить признак выполнения требований по типу документа",
442 "description": "Доступно для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
443 "operationId": "updateCompleted",
444 "parameters": [
445 {
446 "name": "id",
447 "in": "path",
448 "description": "Идентификатор типа документа",
449 "required": true,
450 "schema": {
451 "type": "integer",
452 "format": "int32"
453 }
454 }
455 ],
456 "requestBody": {
457 "content": {
458 "application/json": {
459 "schema": {
460 "$ref": "#/components/schemas/UpdateCompletedDto"
461 }
462 }
463 },
464 "required": true
465 },
466 "responses": {
467 "200": {
468 "description": "Обновленный тип документа контрольного списка",
469 "content": {
470 "application/json": {
471 "schema": {
472 "$ref": "#/components/schemas/ChecklistDocumentType"
473 }
474 }
475 }
476 }
477 },
478 "security": [
479 {
480 "bearer-jwt": []
481 }
482 ]
483 }
484 },
485 "/api/checklistDocumentTypes/{id}/comments/read": {
486 "put": {
487 "tags": [
488 "ChecklistDocumentType API"
489 ],
490 "summary": "Отметить комментарии как прочитанные",
491 "description": "Доступно для ролей: BANK_EMPLOYEE, USER_DEVELOPER только для проектов, к которым у пользователя есть доступ",
492 "operationId": "markAsRead",
493 "parameters": [
494 {
495 "name": "id",
496 "in": "path",
497 "description": "Идентификатор типа документа",
498 "required": true,
499 "schema": {
500 "type": "integer",
501 "format": "int32"
502 }
503 }
504 ],
505 "requestBody": {
506 "content": {
507 "application/json": {
508 "schema": {
509 "type": "array",
510 "description": "Идентификаторы комментариев к типу документа",
511 "items": {
512 "type": "integer",
513 "format": "int32"
514 }
515 }
516 }
517 },
518 "required": true
519 },
520 "responses": {
521 "200": {
522 "description": "Количество комментариев после выполнения действия",
523 "content": {
524 "application/json": {
525 "schema": {
526 "$ref": "#/components/schemas/CommentsCountDto"
527 }
528 }
529 }
530 }
531 },
532 "security": [
533 {
534 "bearer-jwt": []
535 }
536 ]
537 }
538 },
539 "/api/checklistSections/{id}/completed": {
540 "put": {
541 "tags": [
542 "ChecklistSectionApi API"
543 ],
544 "summary": "Обновить признак выполнения требований по разделу",
545 "description": "Доступно для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
546 "operationId": "updateCompleted_1",
547 "parameters": [
548 {
549 "name": "id",
550 "in": "path",
551 "description": "Идентификатор раздела контрольного списка",
552 "required": true,
553 "schema": {
554 "type": "integer",
555 "format": "int32"
556 }
557 }
558 ],
559 "requestBody": {
560 "content": {
561 "application/json": {
562 "schema": {
563 "$ref": "#/components/schemas/UpdateCompletedDto"
564 }
565 }
566 },
567 "required": true
568 },
569 "responses": {
570 "200": {
571 "description": "Обновленный раздел контрольного списка",
572 "content": {
573 "application/json": {
574 "schema": {
575 "$ref": "#/components/schemas/ChecklistSection"
576 }
577 }
578 }
579 }
580 },
581 "security": [
582 {
583 "bearer-jwt": []
584 }
585 ]
586 }
587 },
588 "/api/checklistSections/{id}/comment": {
589 "put": {
590 "tags": [
591 "ChecklistSectionApi API"
592 ],
593 "summary": "Обновить комментарий",
594 "description": "Доступно для роли: BANK_EMPLOYEE",
595 "operationId": "updateComment",
596 "parameters": [
597 {
598 "name": "id",
599 "in": "path",
600 "description": "Идентификатор раздела контрольного списка",
601 "required": true,
602 "schema": {
603 "type": "integer",
604 "format": "int32"
605 }
606 }
607 ],
608 "requestBody": {
609 "content": {
610 "application/json": {
611 "schema": {
612 "$ref": "#/components/schemas/UpdateCommentDto"
613 }
614 }
615 },
616 "required": true
617 },
618 "responses": {
619 "200": {
620 "description": "Обновленный раздел контрольного списка",
621 "content": {
622 "application/json": {
623 "schema": {
624 "$ref": "#/components/schemas/ChecklistSection"
625 }
626 }
627 }
628 }
629 },
630 "security": [
631 {
632 "bearer-jwt": []
633 }
634 ]
635 }
636 },
637 "/api/documents": {
638 "get": {
639 "tags": [
640 "Document API"
641 ],
642 "summary": "Найти документы",
643 "description": "Доступно для пользователей с ролью USER_DEVELOPER только из привязанных к нему проектов, для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
644 "operationId": "find",
645 "parameters": [
646 {
647 "name": "criteria",
648 "in": "query",
649 "description": "Критерий поиска",
650 "required": false,
651 "schema": {
652 "$ref": "#/components/schemas/SearchCriteria"
653 }
654 },
655 {
656 "name": "projectId",
657 "in": "query",
658 "description": "Идентификатор проекта",
659 "required": true,
660 "schema": {
661 "type": "integer",
662 "format": "int32"
663 }
664 }
665 ],
666 "responses": {
667 "200": {
668 "description": "Список документов",
669 "content": {
670 "application/json": {
671 "schema": {
672 "type": "array",
673 "items": {
674 "$ref": "#/components/schemas/Document"
675 }
676 }
677 }
678 }
679 },
680 "403": {
681 "description": "Нет прав на получение списка документов",
682 "content": {
683 "application/json": {
684 "schema": {
685 "$ref": "#/components/schemas/ErrorResponse"
686 }
687 }
688 }
689 }
690 }
691 },
692 "post": {
693 "tags": [
694 "Document API"
695 ],
696 "summary": "Создать документ",
697 "description": "Доступно для пользователей с ролью USER_DEVELOPER только из привязанных к нему проектов",
698 "operationId": "create",
699 "requestBody": {
700 "content": {
701 "multipart/form-data": {
702 "schema": {
703 "$ref": "#/components/schemas/UploadFileDto"
704 }
705 }
706 },
707 "$ref": "#/components/requestBodies/createDocumentRequest"
708 },
709 "responses": {
710 "200": {
711 "description": "Созданный документ",
712 "content": {
713 "application/json": {
714 "schema": {
715 "$ref": "#/components/schemas/Document"
716 }
717 }
718 }
719 },
720 "403": {
721 "description": "Нет прав на создание документа",
722 "content": {
723 "application/json": {
724 "schema": {
725 "$ref": "#/components/schemas/ErrorResponse"
726 }
727 }
728 }
729 }
730 }
731 }
732 },
733 "/api/documents/{id}/file": {
734 "put": {
735 "tags": [
736 "Document API"
737 ],
738 "summary": "Обновить файл, приложенный к документу",
739 "description": "Доступно для пользователей с ролью USER_DEVELOPER только из привязанных к нему проектов",
740 "operationId": "updateFile",
741 "parameters": [
742 {
743 "name": "id",
744 "in": "path",
745 "description": "Идентификатор документа",
746 "required": true,
747 "schema": {
748 "type": "integer",
749 "format": "int32"
750 }
751 }
752 ],
753 "requestBody": {
754 "$ref": "#/components/requestBodies/updateFileRequest"
755 },
756 "responses": {
757 "200": {
758 "description": "Измененный документ",
759 "content": {
760 "application/json": {
761 "schema": {
762 "$ref": "#/components/schemas/Document"
763 }
764 }
765 }
766 }
767 }
768 }
769 },
770 "/api/documents/{id}/userComment": {
771 "put": {
772 "tags": [
773 "Document API"
774 ],
775 "summary": "Обновить комментарий пользователя",
776 "description": "Доступно для пользователей с ролью USER_DEVELOPER только из привязанных к нему проектов",
777 "operationId": "updateUserComment",
778 "parameters": [
779 {
780 "name": "id",
781 "in": "path",
782 "description": "Идентификатор документа",
783 "required": true,
784 "schema": {
785 "type": "integer",
786 "format": "int32"
787 }
788 }
789 ],
790 "requestBody": {
791 "content": {
792 "application/json": {
793 "schema": {
794 "$ref": "#/components/schemas/UpdateCommentDto"
795 }
796 }
797 },
798 "required": true
799 },
800 "responses": {
801 "200": {
802 "description": "Обновленный документ",
803 "content": {
804 "application/json": {
805 "schema": {
806 "$ref": "#/components/schemas/Document"
807 }
808 }
809 }
810 }
811 }
812 }
813 },
814 "/api/documents/{id}/bankComment": {
815 "put": {
816 "tags": [
817 "Document API"
818 ],
819 "summary": "Обновить комментарий банка",
820 "description": "Доступно для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
821 "operationId": "updateBankComment",
822 "parameters": [
823 {
824 "name": "id",
825 "in": "path",
826 "description": "Идентификатор документа",
827 "required": true,
828 "schema": {
829 "type": "integer",
830 "format": "int32"
831 }
832 }
833 ],
834 "requestBody": {
835 "content": {
836 "application/json": {
837 "schema": {
838 "$ref": "#/components/schemas/UpdateCommentDto"
839 }
840 }
841 },
842 "required": true
843 },
844 "responses": {
845 "200": {
846 "description": "Обновленный документ",
847 "content": {
848 "application/json": {
849 "schema": {
850 "$ref": "#/components/schemas/Document"
851 }
852 }
853 }
854 }
855 }
856 }
857 },
858 "/api/documents/{id}/documentType": {
859 "put": {
860 "tags": [
861 "Document API"
862 ],
863 "summary": "Обновить тип документа",
864 "description": "Доступно для пользователей с ролью USER_DEVELOPER только из привязанных к нему проектов, для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
865 "operationId": "updateDocumentType",
866 "parameters": [
867 {
868 "name": "id",
869 "in": "path",
870 "description": "Идентификатор документа",
871 "required": true,
872 "schema": {
873 "type": "integer",
874 "format": "int32"
875 }
876 }
877 ],
878 "requestBody": {
879 "content": {
880 "application/json": {
881 "schema": {
882 "$ref": "#/components/schemas/UpdateDocumentTypeDto"
883 }
884 }
885 },
886 "required": true
887 },
888 "responses": {
889 "200": {
890 "description": "Обновленный документ",
891 "content": {
892 "application/json": {
893 "schema": {
894 "$ref": "#/components/schemas/Document"
895 }
896 }
897 }
898 }
899 }
900 }
901 },
902 "/api/documents/{id}": {
903 "get": {
904 "tags": [
905 "Document API"
906 ],
907 "summary": "Найти документ по идентификатору",
908 "description": "Доступно для пользователей с ролью USER_DEVELOPER только из привязанных к нему проектов, для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
909 "operationId": "findById_1",
910 "parameters": [
911 {
912 "name": "id",
913 "in": "path",
914 "description": "Идентификатор документа",
915 "required": true,
916 "schema": {
917 "type": "integer",
918 "format": "int32"
919 }
920 }
921 ],
922 "responses": {
923 "200": {
924 "description": "Документ",
925 "content": {
926 "application/json": {
927 "schema": {
928 "$ref": "#/components/schemas/Document"
929 }
930 }
931 }
932 },
933 "404": {
934 "description": "Документ не найден или на него нет прав",
935 "content": {
936 "application/json": {
937 "schema": {
938 "$ref": "#/components/schemas/ErrorResponse"
939 }
940 }
941 }
942 }
943 }
944 }
945 },
946 "/api/documents/{id}/documentStatus": {
947 "put": {
948 "tags": [
949 "Document API"
950 ],
951 "summary": "Обновить статус документа",
952 "description": "Доступно для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
953 "operationId": "updateDocumentStatus",
954 "parameters": [
955 {
956 "name": "id",
957 "in": "path",
958 "description": "Идентификатор документа",
959 "required": true,
960 "schema": {
961 "type": "integer",
962 "format": "int32"
963 }
964 }
965 ],
966 "requestBody": {
967 "content": {
968 "application/json": {
969 "schema": {
970 "$ref": "#/components/schemas/UpdateDocumentStatusDto"
971 }
972 }
973 },
974 "required": true
975 },
976 "responses": {
977 "200": {
978 "description": "Обновленный документ",
979 "content": {
980 "application/json": {
981 "schema": {
982 "$ref": "#/components/schemas/Document"
983 }
984 }
985 }
986 }
987 }
988 }
989 },
990 "/api/files": {
991 "get": {
992 "tags": [
993 "File API"
994 ],
995 "summary": "Найти все файлы для указанного проекта",
996 "description": "Доступно для пользователей с ролью USER_DEVELOPER только из привязанных к нему проектов, для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
997 "operationId": "findAll",
998 "parameters": [
999 {
1000 "name": "criteria",
1001 "in": "query",
1002 "description": "Критерий поиска",
1003 "required": false,
1004 "schema": {
1005 "$ref": "#/components/schemas/SearchCriteria"
1006 }
1007 },
1008 {
1009 "name": "projectId",
1010 "in": "query",
1011 "description": "Идентификатор проекта",
1012 "required": true,
1013 "schema": {
1014 "type": "integer",
1015 "format": "int32"
1016 }
1017 }
1018 ],
1019 "responses": {
1020 "200": {
1021 "description": "Список файлов для проекта",
1022 "content": {
1023 "application/json": {
1024 "schema": {
1025 "type": "array",
1026 "items": {
1027 "$ref": "#/components/schemas/File"
1028 }
1029 }
1030 }
1031 }
1032 },
1033 "403": {
1034 "description": "Нет прав на получение списка файлов",
1035 "content": {
1036 "application/json": {
1037 "schema": {
1038 "$ref": "#/components/schemas/ErrorResponse"
1039 }
1040 }
1041 }
1042 }
1043 },
1044 "security": [
1045 {
1046 "bearer-jwt": []
1047 }
1048 ]
1049 }
1050 },
1051 "/api/files/downloadRequest": {
1052 "post": {
1053 "tags": [
1054 "File API"
1055 ],
1056 "summary": "Запросить выгрузку",
1057 "description": "Доступно для пользователей с ролью USER_DEVELOPER только из привязанных к нему проектов, для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
1058 "operationId": "processDownloadRequest",
1059 "requestBody": {
1060 "content": {
1061 "application/json": {
1062 "schema": {
1063 "$ref": "#/components/schemas/DownloadRequest"
1064 }
1065 }
1066 },
1067 "required": true
1068 },
1069 "responses": {
1070 "200": {
1071 "description": "Ответ на запрос",
1072 "content": {
1073 "application/json": {
1074 "schema": {
1075 "$ref": "#/components/schemas/DownloadResponse"
1076 }
1077 }
1078 }
1079 }
1080 },
1081 "security": [
1082 {
1083 "bearer-jwt": []
1084 }
1085 ]
1086 }
1087 },
1088 "/api/files/{id}": {
1089 "get": {
1090 "tags": [
1091 "File API"
1092 ],
1093 "summary": "Найти файл по идентификатору",
1094 "description": "Доступно для пользователей с ролью USER_DEVELOPER только из привязанных к нему проектов, для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
1095 "operationId": "findById_2",
1096 "parameters": [
1097 {
1098 "name": "id",
1099 "in": "path",
1100 "description": "Идентификатор файла",
1101 "required": true,
1102 "schema": {
1103 "type": "integer",
1104 "format": "int32"
1105 }
1106 }
1107 ],
1108 "responses": {
1109 "200": {
1110 "description": "Файл",
1111 "content": {
1112 "application/json": {
1113 "schema": {
1114 "$ref": "#/components/schemas/File"
1115 }
1116 }
1117 }
1118 },
1119 "404": {
1120 "description": "Файл не найден",
1121 "content": {
1122 "application/json": {
1123 "schema": {
1124 "$ref": "#/components/schemas/ErrorResponse"
1125 }
1126 }
1127 }
1128 }
1129 },
1130 "security": [
1131 {
1132 "bearer-jwt": []
1133 }
1134 ]
1135 }
1136 },
1137 "/api/projects/{id}": {
1138 "get": {
1139 "tags": [
1140 "Project API"
1141 ],
1142 "summary": "Найти проект по идентификатору",
1143 "description": "Доступно для пользователей с ролью USER_DEVELOPER только из привязанных к нему проектов, для пользователей с ролью BANK_EMPLOYEE только из проектов из его проектной команды",
1144 "operationId": "findById_3",
1145 "parameters": [
1146 {
1147 "name": "id",
1148 "in": "path",
1149 "description": "Идентификатор проекта",
1150 "required": true,
1151 "schema": {
1152 "type": "integer",
1153 "format": "int32"
1154 }
1155 },
1156 {
1157 "name": "fetch",
1158 "in": "query",
1159 "description": "Флаг, указывающий, фетчить ли коллекции первого уровня для проекта",
1160 "required": false,
1161 "schema": {
1162 "type": "boolean",
1163 "default": true
1164 }
1165 }
1166 ],
1167 "responses": {
1168 "200": {
1169 "description": "Проект",
1170 "content": {
1171 "application/json": {
1172 "schema": {
1173 "$ref": "#/components/schemas/Project"
1174 }
1175 }
1176 }
1177 },
1178 "403": {
1179 "description": "Нет прав на проект",
1180 "content": {
1181 "application/json": {
1182 "schema": {
1183 "$ref": "#/components/schemas/ErrorResponse"
1184 }
1185 }
1186 }
1187 },
1188 "404": {
1189 "description": "Проект не найден",
1190 "content": {
1191 "application/json": {
1192 "schema": {
1193 "$ref": "#/components/schemas/ErrorResponse"
1194 }
1195 }
1196 }
1197 }
1198 },
1199 "security": [
1200 {
1201 "bearer-jwt": []
1202 }
1203 ]
1204 }
1205 },
1206 "/captcha": {
1207 "get": {
1208 "tags": [
1209 "Captcha API"
1210 ],
1211 "summary": "Получить капчу",
1212 "operationId": "getCaptcha",
1213 "responses": {
1214 "200": {
1215 "$ref": "#/components/responses/captchaResponse"
1216 }
1217 }
1218 },
1219 "post": {
1220 "tags": [
1221 "Captcha API"
1222 ],
1223 "summary": "Проверить ответ на капчу",
1224 "operationId": "validateCaptcha",
1225 "requestBody": {
1226 "content": {
1227 "application/json": {
1228 "schema": {
1229 "type": "object",
1230 "additionalProperties": {
1231 "type": "string"
1232 }
1233 }
1234 }
1235 },
1236 "required": true,
1237 "$ref": "#/components/requestBodies/captchaAnswer"
1238 },
1239 "responses": {
1240 "204": {
1241 "description": "Капча успешно проверена"
1242 }
1243 }
1244 }
1245 },
1246 "/api/confirmationCode": {
1247 "post": {
1248 "tags": [
1249 "ConfirmationCode Controller"
1250 ],
1251 "summary": "Отправить пользователю код подтверждения",
1252 "operationId": "send",
1253 "responses": {
1254 "200": {
1255 "description": "Информация по коду подтверждения",
1256 "content": {
1257 "application/json": {
1258 "schema": {
1259 "$ref": "#/components/schemas/ConfirmationCodeService.Response"
1260 }
1261 }
1262 }
1263 }
1264 }
1265 }
1266 },
1267 "/api/currentUser": {
1268 "get": {
1269 "tags": [
1270 "Current user API"
1271 ],
1272 "summary": "Получить текущего пользователя",
1273 "description": "Будет возвращен пользователь, аутентифицированный в текущем запросе",
1274 "operationId": "getCurrentUser",
1275 "parameters": [
1276 {
1277 "name": "fetch",
1278 "in": "query",
1279 "description": "Флаг, указывающий, фетчить ли коллекции первого уровня для пользователя",
1280 "required": false,
1281 "schema": {
1282 "type": "boolean",
1283 "default": true
1284 }
1285 },
1286 {
1287 "name": "fetchProjectTeamProjects",
1288 "in": "query",
1289 "description": "Флаг, указывающий, фетчить ли проекты, входящие в проектные организации",
1290 "required": false,
1291 "schema": {
1292 "type": "boolean",
1293 "default": false
1294 }
1295 }
1296 ],
1297 "responses": {
1298 "200": {
1299 "description": "Текущий пользователь",
1300 "content": {
1301 "application/json": {
1302 "schema": {
1303 "$ref": "#/components/schemas/User"
1304 }
1305 }
1306 }
1307 },
1308 "404": {
1309 "description": "Пользователь не найден",
1310 "content": {
1311 "application/json": {
1312 "schema": {
1313 "$ref": "#/components/schemas/ErrorResponse"
1314 }
1315 }
1316 }
1317 }
1318 },
1319 "security": [
1320 {
1321 "bearer-jwt": []
1322 }
1323 ]
1324 }
1325 },
1326 "/api/currentUser/password/change": {
1327 "post": {
1328 "tags": [
1329 "Current user API"
1330 ],
1331 "summary": "Изменить пароль текущего пользователя",
1332 "operationId": "changePassword",
1333 "requestBody": {
1334 "content": {
1335 "application/json": {
1336 "schema": {
1337 "type": "object",
1338 "description": "Объект, `oldPassword` - старый пароль, `newPassword` - новый пароль"
1339 }
1340 }
1341 },
1342 "required": true
1343 },
1344 "responses": {
1345 "200": {
1346 "description": "Пароль успешно изменен"
1347 },
1348 "400": {
1349 "description": "Старый пароль введен неверно",
1350 "content": {
1351 "application/json": {
1352 "schema": {
1353 "$ref": "#/components/schemas/ErrorResponse"
1354 }
1355 }
1356 }
1357 }
1358 },
1359 "security": [
1360 {
1361 "bearer-jwt": []
1362 }
1363 ]
1364 }
1365 },
1366 "/refresh": {
1367 "post": {
1368 "tags": [
1369 "RefreshToken Controller"
1370 ],
1371 "summary": "Добавить токены",
1372 "operationId": "refreshToken",
1373 "requestBody": {
1374 "content": {
1375 "application/json": {
1376 "schema": {
1377 "type": "object",
1378 "additionalProperties": {
1379 "type": "string"
1380 }
1381 }
1382 }
1383 },
1384 "required": true,
1385 "$ref": "#/components/requestBodies/refreshTokensRequest"
1386 },
1387 "responses": {
1388 "200": {
1389 "$ref": "#/components/responses/refreshTokensResponse"
1390 }
1391 },
1392 "security": [
1393 {
1394 "bearer-jwt": []
1395 }
1396 ]
1397 }
1398 },
1399 "/version": {
1400 "get": {
1401 "tags": [
1402 "Application version controller"
1403 ],
1404 "summary": "Вывести информацию о версии",
1405 "operationId": "getVersionInfo",
1406 "responses": {
1407 "200": {
1408 "description": "Информация о версии",
1409 "content": {
1410 "application/json": {
1411 "schema": {
1412 "$ref": "#/components/schemas/VersionInfo"
1413 }
1414 }
1415 }
1416 }
1417 }
1418 }
1419 }
1420 },
1421 "components": {
1422 "schemas": {
1423 "Checklist": {
1424 "required": [
1425 "name"
1426 ],
1427 "type": "object",
1428 "properties": {
1429 "id": {
1430 "type": "integer",
1431 "description": "Идентификатор",
1432 "format": "int32"
1433 },
1434 "template": {
1435 "$ref": "#/components/schemas/ChecklistTemplate"
1436 },
1437 "name": {
1438 "type": "string",
1439 "description": "Наименование"
1440 },
1441 "requiresDocumentType": {
1442 "type": "boolean",
1443 "description": "Признак необходимости указания типа документа при создании документа",
1444 "default": false
1445 },
1446 "checklistSections": {
1447 "type": "array",
1448 "description": "Разделы контрольного списка",
1449 "items": {
1450 "$ref": "#/components/schemas/ChecklistSection"
1451 }
1452 },
1453 "active": {
1454 "type": "boolean"
1455 }
1456 },
1457 "description": "Контрольный список"
1458 },
1459 "ChecklistDocumentType": {
1460 "required": [
1461 "documentType",
1462 "info"
1463 ],
1464 "type": "object",
1465 "properties": {
1466 "id": {
1467 "type": "integer",
1468 "description": "Идентификатор",
1469 "format": "int32"
1470 },
1471 "checklistSection": {
1472 "$ref": "#/components/schemas/ChecklistSection"
1473 },
1474 "documentType": {
1475 "$ref": "#/components/schemas/DocumentType"
1476 },
1477 "info": {
1478 "$ref": "#/components/schemas/DocumentReferenceInfo"
1479 },
1480 "serialNumber": {
1481 "title": "Порядковый номер",
1482 "type": "integer",
1483 "description": "Указывает порядок следования типов документов в контрольном списке. При получении данных значение задается на основании положения элемента в списке",
1484 "format": "int32"
1485 },
1486 "commentsCount": {
1487 "$ref": "#/components/schemas/CommentsCountDto"
1488 },
1489 "completed": {
1490 "type": "boolean"
1491 },
1492 "active": {
1493 "type": "boolean"
1494 }
1495 },
1496 "description": "Тип документа контрольного списка"
1497 },
1498 "ChecklistDocumentTypeTemplate": {
1499 "required": [
1500 "checklistSectionTemplate",
1501 "documentType"
1502 ],
1503 "type": "object",
1504 "properties": {
1505 "id": {
1506 "type": "integer",
1507 "description": "Идентификатор",
1508 "format": "int32"
1509 },
1510 "checklistSectionTemplate": {
1511 "$ref": "#/components/schemas/ChecklistSectionTemplate"
1512 },
1513 "documentType": {
1514 "$ref": "#/components/schemas/DocumentType"
1515 },
1516 "serialNumber": {
1517 "title": "Порядковый номер",
1518 "type": "integer",
1519 "description": "Указывает порядок следования шаблонов типа документов в шаблоне раздела контрольного списка, а также порядок следования типов документов в контрольном списке, созданном на основании шаблона. При получении данных значение задается на основании положения элемента в списке",
1520 "format": "int32"
1521 },
1522 "active": {
1523 "type": "boolean"
1524 }
1525 },
1526 "description": "Шаблон типа документа контрольного списка"
1527 },
1528 "ChecklistSection": {
1529 "required": [
1530 "info",
1531 "section"
1532 ],
1533 "type": "object",
1534 "properties": {
1535 "id": {
1536 "type": "integer",
1537 "description": "Идентификатор",
1538 "format": "int32"
1539 },
1540 "checklist": {
1541 "$ref": "#/components/schemas/Checklist"
1542 },
1543 "section": {
1544 "$ref": "#/components/schemas/Section"
1545 },
1546 "info": {
1547 "$ref": "#/components/schemas/DocumentReferenceInfo"
1548 },
1549 "comment": {
1550 "type": "string",
1551 "description": "Комментарий"
1552 },
1553 "checklistDocumentTypes": {
1554 "type": "array",
1555 "description": "Типы документов, входящие в раздел",
1556 "items": {
1557 "$ref": "#/components/schemas/ChecklistDocumentType"
1558 }
1559 },
1560 "serialNumber": {
1561 "title": "Порядковый номер",
1562 "type": "integer",
1563 "description": "Указывает порядок следования разделов в контрольном списке. При получении данных значение задается на основании положения элемента в списке",
1564 "format": "int32"
1565 },
1566 "completed": {
1567 "type": "boolean"
1568 },
1569 "active": {
1570 "type": "boolean"
1571 }
1572 },
1573 "description": "Раздел контрольного списка"
1574 },
1575 "ChecklistSectionTemplate": {
1576 "required": [
1577 "checklistTemplate",
1578 "section"
1579 ],
1580 "type": "object",
1581 "properties": {
1582 "id": {
1583 "type": "integer",
1584 "description": "Идентификатор",
1585 "format": "int32"
1586 },
1587 "checklistTemplate": {
1588 "$ref": "#/components/schemas/ChecklistTemplate"
1589 },
1590 "section": {
1591 "$ref": "#/components/schemas/Section"
1592 },
1593 "checklistDocumentTypeTemplates": {
1594 "type": "array",
1595 "description": "Шаблоны типов документов, входящие в раздел",
1596 "items": {
1597 "$ref": "#/components/schemas/ChecklistDocumentTypeTemplate"
1598 }
1599 },
1600 "serialNumber": {
1601 "title": "Порядковый номер",
1602 "type": "integer",
1603 "description": "Указывает порядок следования шаблонов разделов в шаблоне контрольного списка, а также порядок следования разделов в контрольном списке, созданном на основании шаблона. При получении данных значение задается на основании положения элемента в списке",
1604 "format": "int32"
1605 },
1606 "active": {
1607 "type": "boolean"
1608 }
1609 },
1610 "description": "Шаблон раздела контрольного списка"
1611 },
1612 "ChecklistTemplate": {
1613 "required": [
1614 "key",
1615 "name"
1616 ],
1617 "type": "object",
1618 "properties": {
1619 "id": {
1620 "type": "integer",
1621 "description": "Идентификатор",
1622 "format": "int32"
1623 },
1624 "key": {
1625 "type": "string",
1626 "description": "Уникальный ключ"
1627 },
1628 "name": {
1629 "type": "string",
1630 "description": "Наименование"
1631 },
1632 "requiresDocumentType": {
1633 "type": "boolean",
1634 "description": "Признак необходимости указания типа документа при создании документа",
1635 "default": false
1636 },
1637 "checklistSectionTemplates": {
1638 "type": "array",
1639 "description": "Шаблоны разделов контрольного списка",
1640 "items": {
1641 "$ref": "#/components/schemas/ChecklistSectionTemplate"
1642 }
1643 },
1644 "active": {
1645 "type": "boolean"
1646 }
1647 },
1648 "description": "Шаблон контрольного списка"
1649 },
1650 "CommentsCountDto": {
1651 "type": "object",
1652 "properties": {
1653 "total": {
1654 "type": "integer",
1655 "description": "Общее количество комментариев",
1656 "format": "int64"
1657 },
1658 "notRead": {
1659 "type": "integer",
1660 "description": "Количество комментариев, не прочитанных текущим пользователем",
1661 "format": "int64"
1662 }
1663 },
1664 "description": "Количество комментариев"
1665 },
1666 "DocumentReferenceInfo": {
1667 "required": [
1668 "key",
1669 "name",
1670 "systemName"
1671 ],
1672 "type": "object",
1673 "properties": {
1674 "key": {
1675 "type": "string",
1676 "description": "Уникальный ключ"
1677 },
1678 "name": {
1679 "type": "string",
1680 "description": "Наименование"
1681 },
1682 "systemName": {
1683 "maxLength": 60,
1684 "minLength": 0,
1685 "pattern": "^[^/|\\\\<>?*:\"]+$",
1686 "type": "string",
1687 "description": "Системное наименование"
1688 }
1689 },
1690 "description": "Информация по справочнику документов"
1691 },
1692 "DocumentType": {
1693 "required": [
1694 "info"
1695 ],
1696 "type": "object",
1697 "properties": {
1698 "id": {
1699 "type": "integer",
1700 "description": "Идентификатор",
1701 "format": "int32"
1702 },
1703 "section": {
1704 "$ref": "#/components/schemas/Section"
1705 },
1706 "info": {
1707 "$ref": "#/components/schemas/DocumentReferenceInfo"
1708 },
1709 "active": {
1710 "type": "boolean"
1711 }
1712 },
1713 "description": "Тип документов"
1714 },
1715 "Organization": {
1716 "required": [
1717 "category",
1718 "name"
1719 ],
1720 "type": "object",
1721 "properties": {
1722 "id": {
1723 "type": "integer",
1724 "description": "Идентификатор",
1725 "format": "int32"
1726 },
1727 "name": {
1728 "type": "string",
1729 "description": "Наименование"
1730 },
1731 "inn": {
1732 "type": "string",
1733 "description": "ИНН"
1734 },
1735 "projects": {
1736 "type": "array",
1737 "description": "Проекты, в которых участвует организация",
1738 "items": {
1739 "$ref": "#/components/schemas/Project"
1740 }
1741 },
1742 "category": {
1743 "$ref": "#/components/schemas/OrganizationCategory"
1744 },
1745 "active": {
1746 "type": "boolean"
1747 }
1748 },
1749 "description": "Организация"
1750 },
1751 "OrganizationCategory": {
1752 "type": "string",
1753 "description": "Категория организации",
1754 "enum": [
1755 "KIB",
1756 "SMB"
1757 ]
1758 },
1759 "Person": {
1760 "required": [
1761 "firstName",
1762 "lastName"
1763 ],
1764 "type": "object",
1765 "properties": {
1766 "id": {
1767 "type": "integer",
1768 "description": "Идентификатор",
1769 "format": "int32"
1770 },
1771 "lastName": {
1772 "type": "string",
1773 "description": "Фамилия"
1774 },
1775 "firstName": {
1776 "type": "string",
1777 "description": "Имя"
1778 },
1779 "patronymic": {
1780 "type": "string",
1781 "description": "Отчество"
1782 },
1783 "birthDate": {
1784 "type": "string",
1785 "description": "Дата рождения",
1786 "format": "date"
1787 },
1788 "active": {
1789 "type": "boolean"
1790 }
1791 },
1792 "description": "Физическое лицо"
1793 },
1794 "Project": {
1795 "required": [
1796 "checklist",
1797 "name"
1798 ],
1799 "type": "object",
1800 "properties": {
1801 "id": {
1802 "type": "integer",
1803 "description": "Идентификатор",
1804 "format": "int32"
1805 },
1806 "name": {
1807 "type": "string",
1808 "description": "Наименование"
1809 },
1810 "organizations": {
1811 "type": "array",
1812 "description": "Организации, которые участвуют в проекте",
1813 "items": {
1814 "$ref": "#/components/schemas/Organization"
1815 }
1816 },
1817 "users": {
1818 "type": "array",
1819 "description": "Пользователи, которые участвуют в проекте",
1820 "items": {
1821 "$ref": "#/components/schemas/User"
1822 }
1823 },
1824 "projectTeams": {
1825 "type": "array",
1826 "description": "Проектные команды",
1827 "items": {
1828 "$ref": "#/components/schemas/ProjectTeam"
1829 }
1830 },
1831 "checklist": {
1832 "$ref": "#/components/schemas/Checklist"
1833 },
1834 "active": {
1835 "type": "boolean"
1836 }
1837 },
1838 "description": "Проект"
1839 },
1840 "ProjectTeam": {
1841 "required": [
1842 "name"
1843 ],
1844 "type": "object",
1845 "properties": {
1846 "id": {
1847 "type": "integer",
1848 "description": "Идентификатор",
1849 "format": "int32"
1850 },
1851 "name": {
1852 "type": "string",
1853 "description": "Наименование"
1854 },
1855 "projects": {
1856 "type": "array",
1857 "description": "Проекты, к которым есть доступ",
1858 "items": {
1859 "$ref": "#/components/schemas/Project"
1860 }
1861 },
1862 "users": {
1863 "type": "array",
1864 "description": "Пользователи, входящие в команду",
1865 "items": {
1866 "$ref": "#/components/schemas/User"
1867 }
1868 },
1869 "active": {
1870 "type": "boolean"
1871 }
1872 },
1873 "description": "Проектная команда"
1874 },
1875 "Role": {
1876 "required": [
1877 "key",
1878 "name"
1879 ],
1880 "type": "object",
1881 "properties": {
1882 "id": {
1883 "type": "integer",
1884 "description": "Идентификатор",
1885 "format": "int32"
1886 },
1887 "key": {
1888 "$ref": "#/components/schemas/RoleKey"
1889 },
1890 "name": {
1891 "type": "string",
1892 "description": "Наименование"
1893 },
1894 "active": {
1895 "type": "boolean"
1896 }
1897 },
1898 "description": "Роль пользователя"
1899 },
1900 "RoleKey": {
1901 "type": "string",
1902 "description": "Тип роли",
1903 "enum": [
1904 "ADMIN_SYSTEM",
1905 "USER_DEVELOPER",
1906 "AUDITOR",
1907 "ADMIN_ORGANIZATION",
1908 "BANK_EMPLOYEE"
1909 ]
1910 },
1911 "Section": {
1912 "required": [
1913 "info"
1914 ],
1915 "type": "object",
1916 "properties": {
1917 "id": {
1918 "type": "integer",
1919 "description": "Идентификатор",
1920 "format": "int32"
1921 },
1922 "info": {
1923 "$ref": "#/components/schemas/DocumentReferenceInfo"
1924 },
1925 "documentTypes": {
1926 "type": "array",
1927 "description": "Типы документов, входящие в раздел",
1928 "items": {
1929 "$ref": "#/components/schemas/DocumentType"
1930 }
1931 },
1932 "active": {
1933 "type": "boolean"
1934 }
1935 },
1936 "description": "Раздел"
1937 },
1938 "User": {
1939 "required": [
1940 "email",
1941 "organization",
1942 "person",
1943 "role"
1944 ],
1945 "type": "object",
1946 "properties": {
1947 "id": {
1948 "type": "integer",
1949 "description": "Идентификатор",
1950 "format": "int32"
1951 },
1952 "email": {
1953 "type": "string",
1954 "description": "login/username/e-mail пользователя"
1955 },
1956 "person": {
1957 "$ref": "#/components/schemas/Person"
1958 },
1959 "organization": {
1960 "$ref": "#/components/schemas/Organization"
1961 },
1962 "role": {
1963 "$ref": "#/components/schemas/Role"
1964 },
1965 "projects": {
1966 "type": "array",
1967 "description": "Проекты, в которых участвует пользователь",
1968 "items": {
1969 "$ref": "#/components/schemas/Project"
1970 }
1971 },
1972 "requiresTwoFactorAuth": {
1973 "type": "boolean",
1974 "description": "Флаг необходимости двухфакторной аутентификации",
1975 "default": true
1976 },
1977 "projectTeams": {
1978 "type": "array",
1979 "description": "Проектные команды",
1980 "items": {
1981 "$ref": "#/components/schemas/ProjectTeam"
1982 }
1983 },
1984 "active": {
1985 "type": "boolean"
1986 }
1987 },
1988 "description": "Пользователь"
1989 },
1990 "ErrorResponse": {
1991 "required": [
1992 "clientInfo",
1993 "message",
1994 "timeStamp",
1995 "uuid"
1996 ],
1997 "type": "object",
1998 "properties": {
1999 "uuid": {
2000 "type": "string",
2001 "description": "Уникальный код ошибки используется для выдачи клиенту уникального номера ошибки, который клиент может сообщить при обращении в ТП. Uuid генерируется в момент возникновения ошибки.",
2002 "format": "uuid"
2003 },
2004 "message": {
2005 "type": "string",
2006 "description": "Подробное сообщение об ошибке"
2007 },
2008 "clientInfo": {
2009 "type": "string",
2010 "description": "Путь, указанный в запросе к сервису, логин пользователя, и IP-адрес, с которого пришел запрос"
2011 },
2012 "timeStamp": {
2013 "type": "string",
2014 "description": "Дата и время возникновения ошибки",
2015 "format": "date-time"
2016 }
2017 },
2018 "description": "DTO с информацией об ошибке"
2019 },
2020 "ChecklistDocumentTypeComment": {
2021 "required": [
2022 "actionType",
2023 "author",
2024 "createDate",
2025 "message"
2026 ],
2027 "type": "object",
2028 "description": "Комментарий к типу документа контрольного списка",
2029 "allOf": [
2030 {
2031 "$ref": "#/components/schemas/DocumentAction"
2032 },
2033 {
2034 "type": "object",
2035 "properties": {
2036 "message": {
2037 "type": "string",
2038 "description": "Сообщение"
2039 },
2040 "read": {
2041 "type": "boolean"
2042 }
2043 }
2044 }
2045 ]
2046 },
2047 "ChecklistDocumentTypeStatusUpdate": {
2048 "required": [
2049 "actionType",
2050 "author",
2051 "createDate"
2052 ],
2053 "type": "object",
2054 "description": "Обновление статуса типа документа контрольного списка",
2055 "allOf": [
2056 {
2057 "$ref": "#/components/schemas/DocumentAction"
2058 },
2059 {
2060 "type": "object",
2061 "properties": {
2062 "completed": {
2063 "type": "boolean"
2064 }
2065 }
2066 }
2067 ]
2068 },
2069 "DocumentAction": {
2070 "required": [
2071 "actionType",
2072 "author",
2073 "createDate"
2074 ],
2075 "type": "object",
2076 "properties": {
2077 "id": {
2078 "type": "integer",
2079 "description": "Идентификатор",
2080 "format": "int32"
2081 },
2082 "author": {
2083 "$ref": "#/components/schemas/ShortUser"
2084 },
2085 "createDate": {
2086 "type": "string",
2087 "description": "Дата создания",
2088 "format": "date-time"
2089 },
2090 "actionType": {
2091 "$ref": "#/components/schemas/DocumentActionType"
2092 },
2093 "active": {
2094 "type": "boolean"
2095 }
2096 },
2097 "description": "Действие над сущностью, имеющей отношение к документам",
2098 "discriminator": {
2099 "propertyName": "actionType",
2100 "mapping": {
2101 "UPDATE_DOCUMENT_STATUS": "#/components/schemas/DocumentStatusUpdate",
2102 "UPDATE_DOCUMENT_TYPE": "#/components/schemas/DocumentTypeUpdate",
2103 "UPDATE_DOCUMENT_FILE": "#/components/schemas/DocumentFileUpdate",
2104 "UPDATE_DOCUMENT_COMMENT": "#/components/schemas/DocumentCommentUpdate",
2105 "COMMENT_CHECKLIST_DOCUMENT_TYPE": "#/components/schemas/ChecklistDocumentTypeComment",
2106 "UPDATE_CHECKLIST_DOCUMENT_TYPE_STATUS": "#/components/schemas/ChecklistDocumentTypeStatusUpdate"
2107 }
2108 }
2109 },
2110 "DocumentActionType": {
2111 "type": "string",
2112 "description": "Тип действия над сущностью",
2113 "enum": [
2114 "CREATE_DOCUMENT",
2115 "UPDATE_DOCUMENT_STATUS",
2116 "UPDATE_DOCUMENT_TYPE",
2117 "UPDATE_DOCUMENT_FILE",
2118 "UPDATE_DOCUMENT_COMMENT",
2119 "COMMENT_CHECKLIST_DOCUMENT_TYPE",
2120 "UPDATE_CHECKLIST_DOCUMENT_TYPE_STATUS"
2121 ]
2122 },
2123 "DocumentCommentUpdate": {
2124 "required": [
2125 "actionType",
2126 "author",
2127 "comment",
2128 "createDate",
2129 "document"
2130 ],
2131 "type": "object",
2132 "description": "Обновление комментария к документу",
2133 "allOf": [
2134 {
2135 "$ref": "#/components/schemas/DocumentAction"
2136 },
2137 {
2138 "type": "object",
2139 "properties": {
2140 "document": {
2141 "$ref": "#/components/schemas/ShortDocument"
2142 },
2143 "comment": {
2144 "type": "string",
2145 "description": "Новый комментарий"
2146 }
2147 }
2148 }
2149 ]
2150 },
2151 "DocumentFileUpdate": {
2152 "required": [
2153 "actionType",
2154 "author",
2155 "createDate",
2156 "document",
2157 "newFile",
2158 "oldFile"
2159 ],
2160 "type": "object",
2161 "description": "Обновление файла, приложенного к документу",
2162 "allOf": [
2163 {
2164 "$ref": "#/components/schemas/DocumentAction"
2165 },
2166 {
2167 "type": "object",
2168 "properties": {
2169 "document": {
2170 "$ref": "#/components/schemas/ShortDocument"
2171 },
2172 "oldFile": {
2173 "$ref": "#/components/schemas/ShortFile"
2174 },
2175 "newFile": {
2176 "$ref": "#/components/schemas/ShortFile"
2177 }
2178 }
2179 }
2180 ]
2181 },
2182 "DocumentStatus": {
2183 "type": "string",
2184 "description": "Статус документа",
2185 "enum": [
2186 "ON_CHECK",
2187 "ACCEPTED",
2188 "DECLINED"
2189 ]
2190 },
2191 "DocumentStatusUpdate": {
2192 "required": [
2193 "actionType",
2194 "author",
2195 "createDate",
2196 "document",
2197 "newStatus"
2198 ],
2199 "type": "object",
2200 "description": "Обновление статуса документа",
2201 "allOf": [
2202 {
2203 "$ref": "#/components/schemas/DocumentAction"
2204 },
2205 {
2206 "type": "object",
2207 "properties": {
2208 "document": {
2209 "$ref": "#/components/schemas/ShortDocument"
2210 },
2211 "oldStatus": {
2212 "$ref": "#/components/schemas/DocumentStatus"
2213 },
2214 "newStatus": {
2215 "$ref": "#/components/schemas/DocumentStatus"
2216 },
2217 "comment": {
2218 "type": "string",
2219 "description": "Комментарий"
2220 }
2221 }
2222 }
2223 ]
2224 },
2225 "DocumentTypeUpdate": {
2226 "required": [
2227 "actionType",
2228 "author",
2229 "createDate",
2230 "document",
2231 "newType",
2232 "newTypeInfo"
2233 ],
2234 "type": "object",
2235 "description": "Обновление (указание) типа для документа",
2236 "allOf": [
2237 {
2238 "$ref": "#/components/schemas/DocumentAction"
2239 },
2240 {
2241 "type": "object",
2242 "properties": {
2243 "document": {
2244 "$ref": "#/components/schemas/ShortDocument"
2245 },
2246 "oldType": {
2247 "$ref": "#/components/schemas/DocumentType"
2248 },
2249 "oldTypeInfo": {
2250 "$ref": "#/components/schemas/DocumentReferenceInfo"
2251 },
2252 "newType": {
2253 "$ref": "#/components/schemas/DocumentType"
2254 },
2255 "newTypeInfo": {
2256 "$ref": "#/components/schemas/DocumentReferenceInfo"
2257 }
2258 }
2259 }
2260 ]
2261 },
2262 "ShortDocument": {
2263 "required": [
2264 "documentStatus",
2265 "file",
2266 "user"
2267 ],
2268 "type": "object",
2269 "properties": {
2270 "id": {
2271 "type": "integer",
2272 "description": "Идентификатор",
2273 "format": "int32"
2274 },
2275 "user": {
2276 "$ref": "#/components/schemas/ShortUser"
2277 },
2278 "file": {
2279 "$ref": "#/components/schemas/ShortFile"
2280 },
2281 "documentStatus": {
2282 "$ref": "#/components/schemas/DocumentStatus"
2283 },
2284 "active": {
2285 "type": "boolean"
2286 }
2287 },
2288 "description": "Краткая информация по документу"
2289 },
2290 "ShortFile": {
2291 "required": [
2292 "fileName",
2293 "guid"
2294 ],
2295 "type": "object",
2296 "properties": {
2297 "id": {
2298 "type": "integer",
2299 "description": "Идентификатор",
2300 "format": "int32"
2301 },
2302 "fileName": {
2303 "type": "string",
2304 "description": "Наименование файла (без пути)"
2305 },
2306 "guid": {
2307 "type": "string",
2308 "description": "GUID",
2309 "format": "uuid"
2310 },
2311 "damaged": {
2312 "type": "boolean",
2313 "description": "Флаг повреждения файла",
2314 "default": false
2315 },
2316 "signed": {
2317 "type": "boolean"
2318 },
2319 "active": {
2320 "type": "boolean"
2321 }
2322 },
2323 "description": "Краткая информация по файлу"
2324 },
2325 "ShortOrganization": {
2326 "required": [
2327 "category",
2328 "name"
2329 ],
2330 "type": "object",
2331 "properties": {
2332 "id": {
2333 "type": "integer",
2334 "description": "Идентификатор",
2335 "format": "int32"
2336 },
2337 "name": {
2338 "type": "string",
2339 "description": "Наименование"
2340 },
2341 "inn": {
2342 "type": "string",
2343 "description": "ИНН"
2344 },
2345 "category": {
2346 "$ref": "#/components/schemas/OrganizationCategory"
2347 },
2348 "active": {
2349 "type": "boolean"
2350 }
2351 },
2352 "description": "Краткая информация по организации"
2353 },
2354 "ShortUser": {
2355 "required": [
2356 "email",
2357 "organization",
2358 "person",
2359 "role"
2360 ],
2361 "type": "object",
2362 "properties": {
2363 "id": {
2364 "type": "integer",
2365 "description": "Идентификатор",
2366 "format": "int32"
2367 },
2368 "email": {
2369 "type": "string",
2370 "description": "login/username/e-mail пользователя"
2371 },
2372 "person": {
2373 "$ref": "#/components/schemas/Person"
2374 },
2375 "organization": {
2376 "$ref": "#/components/schemas/ShortOrganization"
2377 },
2378 "role": {
2379 "$ref": "#/components/schemas/Role"
2380 },
2381 "active": {
2382 "type": "boolean"
2383 }
2384 },
2385 "description": "Краткая информация по пользователю"
2386 },
2387 "UpdateCommentDto": {
2388 "required": [
2389 "comment"
2390 ],
2391 "type": "object",
2392 "properties": {
2393 "comment": {
2394 "type": "string",
2395 "description": "Комментарий"
2396 }
2397 },
2398 "description": "Данные для обновления комментария банка"
2399 },
2400 "UpdateCompletedDto": {
2401 "required": [
2402 "completed"
2403 ],
2404 "type": "object",
2405 "properties": {
2406 "completed": {
2407 "type": "boolean",
2408 "description": "Признак выполнения требований"
2409 }
2410 },
2411 "description": "Данные для обновления признака выполнения требований"
2412 },
2413 "Document": {
2414 "required": [
2415 "documentStatus",
2416 "file",
2417 "project",
2418 "user"
2419 ],
2420 "type": "object",
2421 "properties": {
2422 "id": {
2423 "type": "integer",
2424 "description": "Идентификатор",
2425 "format": "int32"
2426 },
2427 "user": {
2428 "$ref": "#/components/schemas/User"
2429 },
2430 "project": {
2431 "$ref": "#/components/schemas/Project"
2432 },
2433 "documentType": {
2434 "$ref": "#/components/schemas/DocumentType"
2435 },
2436 "file": {
2437 "$ref": "#/components/schemas/File"
2438 },
2439 "documentStatus": {
2440 "$ref": "#/components/schemas/DocumentStatus"
2441 },
2442 "userComment": {
2443 "type": "string",
2444 "description": "Комментарий пользователя"
2445 },
2446 "bankComment": {
2447 "type": "string",
2448 "description": "Комментарий банка"
2449 },
2450 "active": {
2451 "type": "boolean"
2452 }
2453 },
2454 "description": "Документ"
2455 },
2456 "File": {
2457 "required": [
2458 "fileName",
2459 "guid"
2460 ],
2461 "type": "object",
2462 "properties": {
2463 "id": {
2464 "type": "integer",
2465 "description": "Идентификатор",
2466 "format": "int32"
2467 },
2468 "fileName": {
2469 "type": "string",
2470 "description": "Наименование файла (без пути)"
2471 },
2472 "relativePath": {
2473 "type": "string",
2474 "description": "Путь к файлу относительно директории, из которой он был загружен"
2475 },
2476 "guid": {
2477 "type": "string",
2478 "description": "GUID",
2479 "format": "uuid"
2480 },
2481 "checksum": {
2482 "type": "string",
2483 "description": "Контрольная сумма, MD5"
2484 },
2485 "size": {
2486 "type": "integer",
2487 "description": "Размер файла, байты",
2488 "format": "int64"
2489 },
2490 "createDate": {
2491 "type": "string",
2492 "description": "Дата создания файла на сервере",
2493 "format": "date-time"
2494 },
2495 "path": {
2496 "type": "string",
2497 "description": "Путь к файлу на сервере"
2498 },
2499 "documentType": {
2500 "$ref": "#/components/schemas/DocumentType"
2501 },
2502 "project": {
2503 "$ref": "#/components/schemas/Project"
2504 },
2505 "user": {
2506 "$ref": "#/components/schemas/User"
2507 },
2508 "document": {
2509 "$ref": "#/components/schemas/Document"
2510 },
2511 "damaged": {
2512 "type": "boolean",
2513 "description": "Флаг повреждения файла",
2514 "default": false
2515 },
2516 "signed": {
2517 "type": "boolean"
2518 },
2519 "active": {
2520 "type": "boolean"
2521 }
2522 },
2523 "description": "Файл"
2524 },
2525 "UploadFileDto": {
2526 "required": [
2527 "file"
2528 ],
2529 "type": "object",
2530 "properties": {
2531 "file": {
2532 "type": "string",
2533 "format": "binary"
2534 },
2535 "signature": {
2536 "type": "string",
2537 "description": "Подпись под файлом",
2538 "format": "byte"
2539 },
2540 "relativePath": {
2541 "type": "string",
2542 "description": "Путь к файлу относительно директории, из которой он был загружен"
2543 }
2544 },
2545 "description": "Данные по загружаемому файлу"
2546 },
2547 "SearchCriteria": {
2548 "type": "string",
2549 "description": "Критерий поиска",
2550 "enum": [
2551 "ALL",
2552 "ACTIVE",
2553 "INACTIVE"
2554 ]
2555 },
2556 "UpdateDocumentTypeDto": {
2557 "required": [
2558 "documentTypeId"
2559 ],
2560 "type": "object",
2561 "properties": {
2562 "documentTypeId": {
2563 "type": "integer",
2564 "description": "Идентификатор типа документа",
2565 "format": "int32",
2566 "example": 2
2567 }
2568 },
2569 "description": "Данные для обновления типа документа"
2570 },
2571 "UpdateDocumentStatusDto": {
2572 "required": [
2573 "documentStatus"
2574 ],
2575 "type": "object",
2576 "properties": {
2577 "documentStatus": {
2578 "$ref": "#/components/schemas/DocumentStatus"
2579 },
2580 "comment": {
2581 "type": "string",
2582 "description": "Комментарий, должен быть указан при отклонении документа"
2583 },
2584 "documentTypeId": {
2585 "type": "integer",
2586 "description": "Идентификатор типа документа, должен быть указан при принятии документа, если не указан в документе",
2587 "format": "int32"
2588 }
2589 },
2590 "description": "Данные для обновления статуса"
2591 },
2592 "DownloadProblem": {
2593 "required": [
2594 "fileId",
2595 "kind"
2596 ],
2597 "type": "object",
2598 "properties": {
2599 "fileId": {
2600 "type": "integer",
2601 "description": "Идентификатор файла",
2602 "format": "int32"
2603 },
2604 "kind": {
2605 "$ref": "#/components/schemas/DownloadProblemKind"
2606 },
2607 "sign": {
2608 "type": "boolean"
2609 }
2610 },
2611 "description": "Проблема при выгрузке"
2612 },
2613 "DownloadProblemKind": {
2614 "type": "string",
2615 "description": "Вид проблемы, возникшей при выгрузке",
2616 "enum": [
2617 "NOT_FOUND",
2618 "IN_PROGRESS",
2619 "DAMAGED",
2620 "FILE_NOT_SIGNED",
2621 "UNKNOWN_ERROR",
2622 "NONE"
2623 ]
2624 },
2625 "DownloadResponse": {
2626 "type": "object",
2627 "properties": {
2628 "token": {
2629 "type": "string",
2630 "description": "Токен"
2631 },
2632 "problems": {
2633 "type": "array",
2634 "description": "Проблемы",
2635 "items": {
2636 "$ref": "#/components/schemas/DownloadProblem"
2637 }
2638 }
2639 },
2640 "description": "Ответ на запрос выгрузки. Передается либо `token`, либо `problems`"
2641 },
2642 "DownloadFileInfo": {
2643 "type": "object",
2644 "properties": {
2645 "id": {
2646 "type": "integer",
2647 "description": "Идентификатор выгружаемого файла",
2648 "format": "int32"
2649 },
2650 "withSign": {
2651 "type": "boolean",
2652 "description": "Признак выгрузки подписи файла"
2653 }
2654 },
2655 "description": "Информация о загружаемом файле"
2656 },
2657 "DownloadRequest": {
2658 "required": [
2659 "downloadFileInfos"
2660 ],
2661 "type": "object",
2662 "properties": {
2663 "downloadFileInfos": {
2664 "type": "array",
2665 "description": "Информация о файлах для выгрузки",
2666 "items": {
2667 "$ref": "#/components/schemas/DownloadFileInfo"
2668 }
2669 }
2670 },
2671 "description": "Запрос на выгрузку"
2672 },
2673 "ConfirmationCodeService.Response": {
2674 "type": "object",
2675 "properties": {
2676 "requestId": {
2677 "type": "string",
2678 "description": "Идентификатор запроса"
2679 },
2680 "remainMillis": {
2681 "type": "integer",
2682 "description": "Оставшееся время жизни кода подтверждения, миллисекунды",
2683 "format": "int64"
2684 }
2685 },
2686 "description": "Информация по коду подтверждения"
2687 },
2688 "VersionInfo": {
2689 "type": "object",
2690 "properties": {
2691 "hash": {
2692 "type": "string",
2693 "description": "Хэш коммита"
2694 },
2695 "buildTime": {
2696 "type": "string",
2697 "description": "Время сборки"
2698 }
2699 },
2700 "description": "Информация о версии приложения"
2701 },
2702 "AuthenticationStatus": {
2703 "type": "string",
2704 "description": "Статус аутентификации",
2705 "enum": [
2706 "UNKNOWN",
2707 "SUCCESSFUL",
2708 "ACCOUNT_BLOCKED",
2709 "CONFIRMATION_REQUIRED"
2710 ]
2711 }
2712 },
2713 "responses": {
2714 "captchaResponse": {
2715 "description": "Ответ для работы с капчей",
2716 "content": {
2717 "application/json": {
2718 "schema": {
2719 "description": "Ответ для работы с одной из двух видов капч - локальной или ReCaptcha",
2720 "oneOf": [
2721 {
2722 "type": "object",
2723 "properties": {
2724 "image": {
2725 "type": "string",
2726 "description": "Изображение капчи"
2727 },
2728 "captchaToken": {
2729 "type": "string",
2730 "description": "Токен капчи",
2731 "format": "uuid"
2732 }
2733 },
2734 "description": "Ответ для работы с локальной капчей"
2735 },
2736 {
2737 "type": "object",
2738 "properties": {
2739 "publicKey": {
2740 "type": "string",
2741 "description": "Публичный ключ для ReCaptcha"
2742 }
2743 },
2744 "description": "Ответ для работы с ReCaptcha"
2745 }
2746 ]
2747 }
2748 }
2749 }
2750 },
2751 "refreshTokensResponse": {
2752 "description": "Ответ на запрос обновление токенов",
2753 "headers": {
2754 "Set-Cookie": {
2755 "description": "Cookie: USER-COOKIE-BEARER. Аутентификационный токен"
2756 }
2757 },
2758 "content": {
2759 "application/json": {
2760 "schema": {
2761 "type": "object",
2762 "properties": {
2763 "refreshToken": {
2764 "type": "string",
2765 "description": "Refresh token"
2766 },
2767 "authStatus": {
2768 "$ref": "#/components/schemas/AuthenticationStatus"
2769 }
2770 },
2771 "description": "Ответ на запрос обновления токенов"
2772 }
2773 }
2774 }
2775 }
2776 },
2777 "requestBodies": {
2778 "captchaAnswer": {
2779 "description": "Ответ пользователя на капчу",
2780 "content": {
2781 "application/json": {
2782 "schema": {
2783 "description": "Ответ пользователя на одну из двух видов каптч - локальной или ReCaptcha",
2784 "oneOf": [
2785 {
2786 "type": "object",
2787 "properties": {
2788 "answer": {
2789 "type": "string",
2790 "description": "Изображение капчи"
2791 },
2792 "captchaToken": {
2793 "type": "string",
2794 "description": "Токен капчи",
2795 "format": "uuid"
2796 }
2797 },
2798 "description": "Ответ пользователя на локальную капчу"
2799 },
2800 {
2801 "type": "object",
2802 "properties": {
2803 "token": {
2804 "type": "string",
2805 "description": "Токен-ответ от прохождения капчи"
2806 }
2807 },
2808 "description": "Ответ пользователя на ReCaptcha"
2809 }
2810 ]
2811 }
2812 }
2813 }
2814 },
2815 "refreshTokensRequest": {
2816 "description": "Тело запроса для обновления токенов",
2817 "content": {
2818 "application/json": {
2819 "schema": {
2820 "type": "object",
2821 "properties": {
2822 "refreshToken": {
2823 "type": "string",
2824 "description": "Refresh token"
2825 }
2826 },
2827 "description": "Тело запроса для обновления токенов"
2828 }
2829 }
2830 }
2831 },
2832 "createDocumentRequest": {
2833 "description": "Тело запроса для создания документа",
2834 "content": {
2835 "multipart/form-data": {
2836 "schema": {
2837 "required": [
2838 "file",
2839 "projectId"
2840 ],
2841 "properties": {
2842 "file": {
2843 "type": "string",
2844 "description": "Содержимое файла",
2845 "format": "binary"
2846 },
2847 "signature": {
2848 "type": "string",
2849 "description": "Подпись под файлом",
2850 "format": "byte"
2851 },
2852 "relativePath": {
2853 "type": "string",
2854 "description": "Путь к файлу относительно директории, из которой он был загружен"
2855 },
2856 "projectId": {
2857 "type": "integer",
2858 "description": "Идентификатор проекта",
2859 "format": "int32"
2860 },
2861 "documentTypeId": {
2862 "type": "integer",
2863 "description": "Идентификатор типа документов",
2864 "format": "int32"
2865 }
2866 },
2867 "description": "Тело запроса для создания документа"
2868 }
2869 }
2870 }
2871 },
2872 "updateFileRequest": {
2873 "description": "Тело запроса для обновления файла",
2874 "content": {
2875 "multipart/form-data": {
2876 "schema": {
2877 "required": [
2878 "file"
2879 ],
2880 "properties": {
2881 "file": {
2882 "type": "string",
2883 "description": "Содержимое файла",
2884 "format": "binary"
2885 },
2886 "signature": {
2887 "type": "string",
2888 "description": "Подпись под файлом",
2889 "format": "byte"
2890 },
2891 "relativePath": {
2892 "type": "string",
2893 "description": "Путь к файлу относительно директории, из которой он был загружен"
2894 }
2895 },
2896 "description": "Тело запроса для обновления файла"
2897 }
2898 }
2899 }
2900 }
2901 },
2902 "securitySchemes": {
2903 "bearer-jwt": {
2904 "type": "http",
2905 "name": "USER-COOKIE-BEARER",
2906 "in": "cookie",
2907 "scheme": "bearer",
2908 "bearerFormat": "JWT"
2909 }
2910 }
2911 }
2912}