@hubex/mcp 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +54 -0
- package/CONNECTING.md +260 -0
- package/README.md +266 -0
- package/dist/auth.js +226 -0
- package/dist/config.js +120 -0
- package/dist/generated/manifest.js +3643 -0
- package/dist/guides/field-notes.json +27 -0
- package/dist/guides/loader.js +32 -0
- package/dist/guides/service-map.js +6 -0
- package/dist/http.js +93 -0
- package/dist/index/store.js +134 -0
- package/dist/index/types.js +1 -0
- package/dist/index.js +20 -0
- package/dist/paths.js +20 -0
- package/dist/pii/fields.js +100 -0
- package/dist/pii/mask.js +50 -0
- package/dist/pii/strategies.js +88 -0
- package/dist/schema/build-index.js +67 -0
- package/dist/schema/deref.js +87 -0
- package/dist/schema/describe.js +65 -0
- package/dist/server.js +62 -0
- package/dist/token-prompt.js +41 -0
- package/dist/tools/curated.js +151 -0
- package/dist/tools/discovery.js +187 -0
- package/dist/tools/guides.js +126 -0
- package/dist/tools/registry.js +37 -0
- package/dist/tools/request.js +170 -0
- package/dist/tools/types.js +1 -0
- package/docs/guides/assets.md +334 -0
- package/docs/guides/attributes.md +125 -0
- package/docs/guides/checklisttemplates.md +154 -0
- package/docs/guides/companies.md +57 -0
- package/docs/guides/dictionaries.md +64 -0
- package/docs/guides/lifecycle.md +263 -0
- package/docs/guides/materials.md +135 -0
- package/docs/guides/notifications.md +184 -0
- package/docs/guides/roles.md +125 -0
- package/docs/guides/sla.md +130 -0
- package/docs/guides/start.md +67 -0
- package/docs/guides/taskchecklists.md +149 -0
- package/docs/guides/taskcreate.md +260 -0
- package/docs/guides/taskedit.md +277 -0
- package/docs/guides/tasktypes.md +156 -0
- package/docs/guides/users.md +71 -0
- package/generated/index.dev.json +18776 -0
- package/generated/index.prod.json +18858 -0
- package/package.json +48 -0
- package/swagger/dev/ADM.json +27777 -0
- package/swagger/dev/AUTH.json +1739 -0
- package/swagger/dev/AUTHN.json +1250 -0
- package/swagger/dev/AUTHZ.json +1404 -0
- package/swagger/dev/CM.json +309 -0
- package/swagger/dev/COMMON.json +6543 -0
- package/swagger/dev/ES.json +28029 -0
- package/swagger/dev/EXPORT.json +4575 -0
- package/swagger/dev/IMPORT.json +1479 -0
- package/swagger/dev/LIC.json +224 -0
- package/swagger/dev/MSG.json +7883 -0
- package/swagger/dev/NEWS.json +348 -0
- package/swagger/dev/PA.json +5981 -0
- package/swagger/dev/PMP.json +3196 -0
- package/swagger/dev/PROXY.json +416 -0
- package/swagger/dev/REPORT.json +3921 -0
- package/swagger/dev/SC.json +3771 -0
- package/swagger/dev/SLA.json +2837 -0
- package/swagger/dev/TSTG.json +4981 -0
- package/swagger/dev/UI.json +4720 -0
- package/swagger/dev/WH.json +16796 -0
- package/swagger/dev/WORK.json +36024 -0
- package/swagger/dev/WSP.json +1612 -0
- package/swagger/prod/ADM.json +27777 -0
- package/swagger/prod/AUTH.json +1308 -0
- package/swagger/prod/AUTHN.json +2710 -0
- package/swagger/prod/AUTHZ.json +896 -0
- package/swagger/prod/CM.json +162 -0
- package/swagger/prod/COMMON.json +4910 -0
- package/swagger/prod/ES.json +28029 -0
- package/swagger/prod/EXPORT.json +3091 -0
- package/swagger/prod/LIC.json +123 -0
- package/swagger/prod/MSG.json +6239 -0
- package/swagger/prod/NEWS.json +295 -0
- package/swagger/prod/PA.json +5123 -0
- package/swagger/prod/PMP.json +2978 -0
- package/swagger/prod/PROXY.json +250 -0
- package/swagger/prod/REPORT.json +3729 -0
- package/swagger/prod/SC.json +3771 -0
- package/swagger/prod/SLA.json +2201 -0
- package/swagger/prod/TSTG.json +4220 -0
- package/swagger/prod/UI.json +3879 -0
- package/swagger/prod/WH.json +16730 -0
- package/swagger/prod/WORK.json +35994 -0
- package/swagger/prod/WSP.json +1468 -0
|
@@ -0,0 +1,1479 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.0.1",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "API for IMPORT in HubEx",
|
|
5
|
+
"description": "Service offers application programming interface for import data",
|
|
6
|
+
"contact": {
|
|
7
|
+
"name": "SmartService Development Team",
|
|
8
|
+
"email": "fmbackend@melston.ru"
|
|
9
|
+
},
|
|
10
|
+
"version": "v1.0.0.0"
|
|
11
|
+
},
|
|
12
|
+
"servers": [
|
|
13
|
+
{
|
|
14
|
+
"url": "https://dev-api.hubex.ru/fsm/IMPORT"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"paths": {
|
|
18
|
+
"/Assets": {
|
|
19
|
+
"post": {
|
|
20
|
+
"tags": [
|
|
21
|
+
"Assets"
|
|
22
|
+
],
|
|
23
|
+
"summary": "Импорт объектов и оборудования из Excel-файла",
|
|
24
|
+
"description": "## Пример запроса:\r\n`POST /Assets`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом `Объекты и оборудование`.\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт объектов принят в обработку.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями.\r\n- 409 Conflict: отсутствует лист `Объекты и оборудование` (`WrongFile`) или лист пустой (`EmptyFile`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- 409 Conflict: отсутствует обязательное поле формы `File` или тело запроса некорректно.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `AssetsImport`.",
|
|
25
|
+
"parameters": [
|
|
26
|
+
{
|
|
27
|
+
"name": "X-Application-ID",
|
|
28
|
+
"in": "header",
|
|
29
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
30
|
+
"schema": {
|
|
31
|
+
"enum": [
|
|
32
|
+
1,
|
|
33
|
+
2,
|
|
34
|
+
3,
|
|
35
|
+
4,
|
|
36
|
+
5,
|
|
37
|
+
6
|
|
38
|
+
],
|
|
39
|
+
"type": "integer",
|
|
40
|
+
"format": "int32",
|
|
41
|
+
"default": 3,
|
|
42
|
+
"x-enumNames": [
|
|
43
|
+
"EngineerMobile",
|
|
44
|
+
"CustomerMobile",
|
|
45
|
+
"MainWeb",
|
|
46
|
+
"AdminWeb",
|
|
47
|
+
"Api",
|
|
48
|
+
"PlateWeb"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"requestBody": {
|
|
54
|
+
"content": {
|
|
55
|
+
"multipart/form-data": {
|
|
56
|
+
"schema": {
|
|
57
|
+
"required": [
|
|
58
|
+
"File"
|
|
59
|
+
],
|
|
60
|
+
"type": "object",
|
|
61
|
+
"properties": {
|
|
62
|
+
"Description": {
|
|
63
|
+
"type": "string"
|
|
64
|
+
},
|
|
65
|
+
"IsPublic": {
|
|
66
|
+
"type": "boolean"
|
|
67
|
+
},
|
|
68
|
+
"IsIgnorePossibleDuplication": {
|
|
69
|
+
"type": "boolean"
|
|
70
|
+
},
|
|
71
|
+
"Roles": {
|
|
72
|
+
"type": "array",
|
|
73
|
+
"items": {
|
|
74
|
+
"type": "integer",
|
|
75
|
+
"format": "int32"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"Coordinate": {
|
|
79
|
+
"type": "string"
|
|
80
|
+
},
|
|
81
|
+
"File": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"format": "binary"
|
|
84
|
+
},
|
|
85
|
+
"FileName": {
|
|
86
|
+
"type": "string"
|
|
87
|
+
},
|
|
88
|
+
"ContentType": {
|
|
89
|
+
"type": "string"
|
|
90
|
+
},
|
|
91
|
+
"Uid": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"format": "uuid"
|
|
94
|
+
},
|
|
95
|
+
"ContentStream.CanRead": {
|
|
96
|
+
"type": "boolean"
|
|
97
|
+
},
|
|
98
|
+
"ContentStream.CanSeek": {
|
|
99
|
+
"type": "boolean"
|
|
100
|
+
},
|
|
101
|
+
"ContentStream.CanWrite": {
|
|
102
|
+
"type": "boolean"
|
|
103
|
+
},
|
|
104
|
+
"ContentStream.Capacity": {
|
|
105
|
+
"type": "integer",
|
|
106
|
+
"format": "int32"
|
|
107
|
+
},
|
|
108
|
+
"ContentStream.Length": {
|
|
109
|
+
"type": "integer",
|
|
110
|
+
"format": "int64"
|
|
111
|
+
},
|
|
112
|
+
"ContentStream.Position": {
|
|
113
|
+
"type": "integer",
|
|
114
|
+
"format": "int64"
|
|
115
|
+
},
|
|
116
|
+
"ContentStream.CanTimeout": {
|
|
117
|
+
"type": "boolean"
|
|
118
|
+
},
|
|
119
|
+
"ContentStream.ReadTimeout": {
|
|
120
|
+
"type": "integer",
|
|
121
|
+
"format": "int32"
|
|
122
|
+
},
|
|
123
|
+
"ContentStream.WriteTimeout": {
|
|
124
|
+
"type": "integer",
|
|
125
|
+
"format": "int32"
|
|
126
|
+
},
|
|
127
|
+
"Md5Hash": {
|
|
128
|
+
"type": "string"
|
|
129
|
+
},
|
|
130
|
+
"ContentLength": {
|
|
131
|
+
"type": "integer",
|
|
132
|
+
"format": "int32"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"encoding": {
|
|
137
|
+
"Description": {
|
|
138
|
+
"style": "form"
|
|
139
|
+
},
|
|
140
|
+
"IsPublic": {
|
|
141
|
+
"style": "form"
|
|
142
|
+
},
|
|
143
|
+
"IsIgnorePossibleDuplication": {
|
|
144
|
+
"style": "form"
|
|
145
|
+
},
|
|
146
|
+
"Roles": {
|
|
147
|
+
"style": "form"
|
|
148
|
+
},
|
|
149
|
+
"Coordinate": {
|
|
150
|
+
"style": "form"
|
|
151
|
+
},
|
|
152
|
+
"File": {
|
|
153
|
+
"style": "form"
|
|
154
|
+
},
|
|
155
|
+
"FileName": {
|
|
156
|
+
"style": "form"
|
|
157
|
+
},
|
|
158
|
+
"ContentType": {
|
|
159
|
+
"style": "form"
|
|
160
|
+
},
|
|
161
|
+
"Uid": {
|
|
162
|
+
"style": "form"
|
|
163
|
+
},
|
|
164
|
+
"ContentStream.CanRead": {
|
|
165
|
+
"style": "form"
|
|
166
|
+
},
|
|
167
|
+
"ContentStream.CanSeek": {
|
|
168
|
+
"style": "form"
|
|
169
|
+
},
|
|
170
|
+
"ContentStream.CanWrite": {
|
|
171
|
+
"style": "form"
|
|
172
|
+
},
|
|
173
|
+
"ContentStream.Capacity": {
|
|
174
|
+
"style": "form"
|
|
175
|
+
},
|
|
176
|
+
"ContentStream.Length": {
|
|
177
|
+
"style": "form"
|
|
178
|
+
},
|
|
179
|
+
"ContentStream.Position": {
|
|
180
|
+
"style": "form"
|
|
181
|
+
},
|
|
182
|
+
"ContentStream.CanTimeout": {
|
|
183
|
+
"style": "form"
|
|
184
|
+
},
|
|
185
|
+
"ContentStream.ReadTimeout": {
|
|
186
|
+
"style": "form"
|
|
187
|
+
},
|
|
188
|
+
"ContentStream.WriteTimeout": {
|
|
189
|
+
"style": "form"
|
|
190
|
+
},
|
|
191
|
+
"Md5Hash": {
|
|
192
|
+
"style": "form"
|
|
193
|
+
},
|
|
194
|
+
"ContentLength": {
|
|
195
|
+
"style": "form"
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
"responses": {
|
|
202
|
+
"202": {
|
|
203
|
+
"description": "Импорт объектов успешно принят в обработку."
|
|
204
|
+
},
|
|
205
|
+
"401": {
|
|
206
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
207
|
+
},
|
|
208
|
+
"403": {
|
|
209
|
+
"description": "Недостаточно прав для импорта объектов."
|
|
210
|
+
},
|
|
211
|
+
"409": {
|
|
212
|
+
"description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк возвращается Excel-файл с комментариями;\r\nпри прочих ошибках — тело System.Collections.Generic.List`1.",
|
|
213
|
+
"content": {
|
|
214
|
+
"text/plain": {
|
|
215
|
+
"schema": {
|
|
216
|
+
"type": "array",
|
|
217
|
+
"items": {
|
|
218
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
"application/json": {
|
|
223
|
+
"schema": {
|
|
224
|
+
"type": "array",
|
|
225
|
+
"items": {
|
|
226
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
"text/json": {
|
|
231
|
+
"schema": {
|
|
232
|
+
"type": "array",
|
|
233
|
+
"items": {
|
|
234
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
"security": [
|
|
242
|
+
{
|
|
243
|
+
"Bearer": [ ]
|
|
244
|
+
}
|
|
245
|
+
]
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
"/Companies": {
|
|
249
|
+
"post": {
|
|
250
|
+
"tags": [
|
|
251
|
+
"Companies"
|
|
252
|
+
],
|
|
253
|
+
"summary": "Импорт компаний из Excel-файла",
|
|
254
|
+
"description": "## Пример запроса:\r\n`POST /Companies`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом `Компании`.\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт компаний принят в обработку.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями.\r\n- 409 Conflict: отсутствует лист `Компании` (`WrongFile`) или лист пустой (`EmptyFile`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- 409 Conflict: отсутствует обязательное поле формы `File` или тело запроса некорректно.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `CompaniesImport`.",
|
|
255
|
+
"parameters": [
|
|
256
|
+
{
|
|
257
|
+
"name": "X-Application-ID",
|
|
258
|
+
"in": "header",
|
|
259
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
260
|
+
"schema": {
|
|
261
|
+
"enum": [
|
|
262
|
+
1,
|
|
263
|
+
2,
|
|
264
|
+
3,
|
|
265
|
+
4,
|
|
266
|
+
5,
|
|
267
|
+
6
|
|
268
|
+
],
|
|
269
|
+
"type": "integer",
|
|
270
|
+
"format": "int32",
|
|
271
|
+
"default": 3,
|
|
272
|
+
"x-enumNames": [
|
|
273
|
+
"EngineerMobile",
|
|
274
|
+
"CustomerMobile",
|
|
275
|
+
"MainWeb",
|
|
276
|
+
"AdminWeb",
|
|
277
|
+
"Api",
|
|
278
|
+
"PlateWeb"
|
|
279
|
+
]
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
],
|
|
283
|
+
"requestBody": {
|
|
284
|
+
"content": {
|
|
285
|
+
"multipart/form-data": {
|
|
286
|
+
"schema": {
|
|
287
|
+
"required": [
|
|
288
|
+
"File"
|
|
289
|
+
],
|
|
290
|
+
"type": "object",
|
|
291
|
+
"properties": {
|
|
292
|
+
"Description": {
|
|
293
|
+
"type": "string"
|
|
294
|
+
},
|
|
295
|
+
"IsPublic": {
|
|
296
|
+
"type": "boolean"
|
|
297
|
+
},
|
|
298
|
+
"IsIgnorePossibleDuplication": {
|
|
299
|
+
"type": "boolean"
|
|
300
|
+
},
|
|
301
|
+
"Roles": {
|
|
302
|
+
"type": "array",
|
|
303
|
+
"items": {
|
|
304
|
+
"type": "integer",
|
|
305
|
+
"format": "int32"
|
|
306
|
+
}
|
|
307
|
+
},
|
|
308
|
+
"Coordinate": {
|
|
309
|
+
"type": "string"
|
|
310
|
+
},
|
|
311
|
+
"File": {
|
|
312
|
+
"type": "string",
|
|
313
|
+
"format": "binary"
|
|
314
|
+
},
|
|
315
|
+
"FileName": {
|
|
316
|
+
"type": "string"
|
|
317
|
+
},
|
|
318
|
+
"ContentType": {
|
|
319
|
+
"type": "string"
|
|
320
|
+
},
|
|
321
|
+
"Uid": {
|
|
322
|
+
"type": "string",
|
|
323
|
+
"format": "uuid"
|
|
324
|
+
},
|
|
325
|
+
"ContentStream.CanRead": {
|
|
326
|
+
"type": "boolean"
|
|
327
|
+
},
|
|
328
|
+
"ContentStream.CanSeek": {
|
|
329
|
+
"type": "boolean"
|
|
330
|
+
},
|
|
331
|
+
"ContentStream.CanWrite": {
|
|
332
|
+
"type": "boolean"
|
|
333
|
+
},
|
|
334
|
+
"ContentStream.Capacity": {
|
|
335
|
+
"type": "integer",
|
|
336
|
+
"format": "int32"
|
|
337
|
+
},
|
|
338
|
+
"ContentStream.Length": {
|
|
339
|
+
"type": "integer",
|
|
340
|
+
"format": "int64"
|
|
341
|
+
},
|
|
342
|
+
"ContentStream.Position": {
|
|
343
|
+
"type": "integer",
|
|
344
|
+
"format": "int64"
|
|
345
|
+
},
|
|
346
|
+
"ContentStream.CanTimeout": {
|
|
347
|
+
"type": "boolean"
|
|
348
|
+
},
|
|
349
|
+
"ContentStream.ReadTimeout": {
|
|
350
|
+
"type": "integer",
|
|
351
|
+
"format": "int32"
|
|
352
|
+
},
|
|
353
|
+
"ContentStream.WriteTimeout": {
|
|
354
|
+
"type": "integer",
|
|
355
|
+
"format": "int32"
|
|
356
|
+
},
|
|
357
|
+
"Md5Hash": {
|
|
358
|
+
"type": "string"
|
|
359
|
+
},
|
|
360
|
+
"ContentLength": {
|
|
361
|
+
"type": "integer",
|
|
362
|
+
"format": "int32"
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
"encoding": {
|
|
367
|
+
"Description": {
|
|
368
|
+
"style": "form"
|
|
369
|
+
},
|
|
370
|
+
"IsPublic": {
|
|
371
|
+
"style": "form"
|
|
372
|
+
},
|
|
373
|
+
"IsIgnorePossibleDuplication": {
|
|
374
|
+
"style": "form"
|
|
375
|
+
},
|
|
376
|
+
"Roles": {
|
|
377
|
+
"style": "form"
|
|
378
|
+
},
|
|
379
|
+
"Coordinate": {
|
|
380
|
+
"style": "form"
|
|
381
|
+
},
|
|
382
|
+
"File": {
|
|
383
|
+
"style": "form"
|
|
384
|
+
},
|
|
385
|
+
"FileName": {
|
|
386
|
+
"style": "form"
|
|
387
|
+
},
|
|
388
|
+
"ContentType": {
|
|
389
|
+
"style": "form"
|
|
390
|
+
},
|
|
391
|
+
"Uid": {
|
|
392
|
+
"style": "form"
|
|
393
|
+
},
|
|
394
|
+
"ContentStream.CanRead": {
|
|
395
|
+
"style": "form"
|
|
396
|
+
},
|
|
397
|
+
"ContentStream.CanSeek": {
|
|
398
|
+
"style": "form"
|
|
399
|
+
},
|
|
400
|
+
"ContentStream.CanWrite": {
|
|
401
|
+
"style": "form"
|
|
402
|
+
},
|
|
403
|
+
"ContentStream.Capacity": {
|
|
404
|
+
"style": "form"
|
|
405
|
+
},
|
|
406
|
+
"ContentStream.Length": {
|
|
407
|
+
"style": "form"
|
|
408
|
+
},
|
|
409
|
+
"ContentStream.Position": {
|
|
410
|
+
"style": "form"
|
|
411
|
+
},
|
|
412
|
+
"ContentStream.CanTimeout": {
|
|
413
|
+
"style": "form"
|
|
414
|
+
},
|
|
415
|
+
"ContentStream.ReadTimeout": {
|
|
416
|
+
"style": "form"
|
|
417
|
+
},
|
|
418
|
+
"ContentStream.WriteTimeout": {
|
|
419
|
+
"style": "form"
|
|
420
|
+
},
|
|
421
|
+
"Md5Hash": {
|
|
422
|
+
"style": "form"
|
|
423
|
+
},
|
|
424
|
+
"ContentLength": {
|
|
425
|
+
"style": "form"
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
"responses": {
|
|
432
|
+
"202": {
|
|
433
|
+
"description": "Импорт компаний успешно принят в обработку."
|
|
434
|
+
},
|
|
435
|
+
"401": {
|
|
436
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
437
|
+
},
|
|
438
|
+
"403": {
|
|
439
|
+
"description": "Недостаточно прав для импорта компаний."
|
|
440
|
+
},
|
|
441
|
+
"409": {
|
|
442
|
+
"description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк возвращается Excel-файл с комментариями;\r\nпри прочих ошибках — тело System.Collections.Generic.List`1.",
|
|
443
|
+
"content": {
|
|
444
|
+
"text/plain": {
|
|
445
|
+
"schema": {
|
|
446
|
+
"type": "array",
|
|
447
|
+
"items": {
|
|
448
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
},
|
|
452
|
+
"application/json": {
|
|
453
|
+
"schema": {
|
|
454
|
+
"type": "array",
|
|
455
|
+
"items": {
|
|
456
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
},
|
|
460
|
+
"text/json": {
|
|
461
|
+
"schema": {
|
|
462
|
+
"type": "array",
|
|
463
|
+
"items": {
|
|
464
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
},
|
|
471
|
+
"security": [
|
|
472
|
+
{
|
|
473
|
+
"Bearer": [ ]
|
|
474
|
+
}
|
|
475
|
+
]
|
|
476
|
+
}
|
|
477
|
+
},
|
|
478
|
+
"/Materials": {
|
|
479
|
+
"post": {
|
|
480
|
+
"tags": [
|
|
481
|
+
"Materials"
|
|
482
|
+
],
|
|
483
|
+
"summary": "Импорт материалов из Excel-файла (v1)",
|
|
484
|
+
"description": "## Пример запроса:\r\n`POST /Materials`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом `Материалы`.\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт материалов принят в обработку.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями.\r\n- 409 Conflict: отсутствует лист `Материалы` (`WrongFile`) или лист пустой (`EmptyFile`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- 409 Conflict: отсутствует обязательное поле формы `File` или тело запроса некорректно.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `MaterialImport`.",
|
|
485
|
+
"parameters": [
|
|
486
|
+
{
|
|
487
|
+
"name": "X-Application-ID",
|
|
488
|
+
"in": "header",
|
|
489
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
490
|
+
"schema": {
|
|
491
|
+
"enum": [
|
|
492
|
+
1,
|
|
493
|
+
2,
|
|
494
|
+
3,
|
|
495
|
+
4,
|
|
496
|
+
5,
|
|
497
|
+
6
|
|
498
|
+
],
|
|
499
|
+
"type": "integer",
|
|
500
|
+
"format": "int32",
|
|
501
|
+
"default": 3,
|
|
502
|
+
"x-enumNames": [
|
|
503
|
+
"EngineerMobile",
|
|
504
|
+
"CustomerMobile",
|
|
505
|
+
"MainWeb",
|
|
506
|
+
"AdminWeb",
|
|
507
|
+
"Api",
|
|
508
|
+
"PlateWeb"
|
|
509
|
+
]
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
],
|
|
513
|
+
"requestBody": {
|
|
514
|
+
"content": {
|
|
515
|
+
"multipart/form-data": {
|
|
516
|
+
"schema": {
|
|
517
|
+
"required": [
|
|
518
|
+
"File"
|
|
519
|
+
],
|
|
520
|
+
"type": "object",
|
|
521
|
+
"properties": {
|
|
522
|
+
"Description": {
|
|
523
|
+
"type": "string"
|
|
524
|
+
},
|
|
525
|
+
"IsPublic": {
|
|
526
|
+
"type": "boolean"
|
|
527
|
+
},
|
|
528
|
+
"IsIgnorePossibleDuplication": {
|
|
529
|
+
"type": "boolean"
|
|
530
|
+
},
|
|
531
|
+
"Roles": {
|
|
532
|
+
"type": "array",
|
|
533
|
+
"items": {
|
|
534
|
+
"type": "integer",
|
|
535
|
+
"format": "int32"
|
|
536
|
+
}
|
|
537
|
+
},
|
|
538
|
+
"Coordinate": {
|
|
539
|
+
"type": "string"
|
|
540
|
+
},
|
|
541
|
+
"File": {
|
|
542
|
+
"type": "string",
|
|
543
|
+
"format": "binary"
|
|
544
|
+
},
|
|
545
|
+
"FileName": {
|
|
546
|
+
"type": "string"
|
|
547
|
+
},
|
|
548
|
+
"ContentType": {
|
|
549
|
+
"type": "string"
|
|
550
|
+
},
|
|
551
|
+
"Uid": {
|
|
552
|
+
"type": "string",
|
|
553
|
+
"format": "uuid"
|
|
554
|
+
},
|
|
555
|
+
"ContentStream.CanRead": {
|
|
556
|
+
"type": "boolean"
|
|
557
|
+
},
|
|
558
|
+
"ContentStream.CanSeek": {
|
|
559
|
+
"type": "boolean"
|
|
560
|
+
},
|
|
561
|
+
"ContentStream.CanWrite": {
|
|
562
|
+
"type": "boolean"
|
|
563
|
+
},
|
|
564
|
+
"ContentStream.Capacity": {
|
|
565
|
+
"type": "integer",
|
|
566
|
+
"format": "int32"
|
|
567
|
+
},
|
|
568
|
+
"ContentStream.Length": {
|
|
569
|
+
"type": "integer",
|
|
570
|
+
"format": "int64"
|
|
571
|
+
},
|
|
572
|
+
"ContentStream.Position": {
|
|
573
|
+
"type": "integer",
|
|
574
|
+
"format": "int64"
|
|
575
|
+
},
|
|
576
|
+
"ContentStream.CanTimeout": {
|
|
577
|
+
"type": "boolean"
|
|
578
|
+
},
|
|
579
|
+
"ContentStream.ReadTimeout": {
|
|
580
|
+
"type": "integer",
|
|
581
|
+
"format": "int32"
|
|
582
|
+
},
|
|
583
|
+
"ContentStream.WriteTimeout": {
|
|
584
|
+
"type": "integer",
|
|
585
|
+
"format": "int32"
|
|
586
|
+
},
|
|
587
|
+
"Md5Hash": {
|
|
588
|
+
"type": "string"
|
|
589
|
+
},
|
|
590
|
+
"ContentLength": {
|
|
591
|
+
"type": "integer",
|
|
592
|
+
"format": "int32"
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
},
|
|
596
|
+
"encoding": {
|
|
597
|
+
"Description": {
|
|
598
|
+
"style": "form"
|
|
599
|
+
},
|
|
600
|
+
"IsPublic": {
|
|
601
|
+
"style": "form"
|
|
602
|
+
},
|
|
603
|
+
"IsIgnorePossibleDuplication": {
|
|
604
|
+
"style": "form"
|
|
605
|
+
},
|
|
606
|
+
"Roles": {
|
|
607
|
+
"style": "form"
|
|
608
|
+
},
|
|
609
|
+
"Coordinate": {
|
|
610
|
+
"style": "form"
|
|
611
|
+
},
|
|
612
|
+
"File": {
|
|
613
|
+
"style": "form"
|
|
614
|
+
},
|
|
615
|
+
"FileName": {
|
|
616
|
+
"style": "form"
|
|
617
|
+
},
|
|
618
|
+
"ContentType": {
|
|
619
|
+
"style": "form"
|
|
620
|
+
},
|
|
621
|
+
"Uid": {
|
|
622
|
+
"style": "form"
|
|
623
|
+
},
|
|
624
|
+
"ContentStream.CanRead": {
|
|
625
|
+
"style": "form"
|
|
626
|
+
},
|
|
627
|
+
"ContentStream.CanSeek": {
|
|
628
|
+
"style": "form"
|
|
629
|
+
},
|
|
630
|
+
"ContentStream.CanWrite": {
|
|
631
|
+
"style": "form"
|
|
632
|
+
},
|
|
633
|
+
"ContentStream.Capacity": {
|
|
634
|
+
"style": "form"
|
|
635
|
+
},
|
|
636
|
+
"ContentStream.Length": {
|
|
637
|
+
"style": "form"
|
|
638
|
+
},
|
|
639
|
+
"ContentStream.Position": {
|
|
640
|
+
"style": "form"
|
|
641
|
+
},
|
|
642
|
+
"ContentStream.CanTimeout": {
|
|
643
|
+
"style": "form"
|
|
644
|
+
},
|
|
645
|
+
"ContentStream.ReadTimeout": {
|
|
646
|
+
"style": "form"
|
|
647
|
+
},
|
|
648
|
+
"ContentStream.WriteTimeout": {
|
|
649
|
+
"style": "form"
|
|
650
|
+
},
|
|
651
|
+
"Md5Hash": {
|
|
652
|
+
"style": "form"
|
|
653
|
+
},
|
|
654
|
+
"ContentLength": {
|
|
655
|
+
"style": "form"
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
},
|
|
661
|
+
"responses": {
|
|
662
|
+
"202": {
|
|
663
|
+
"description": "Импорт материалов успешно принят в обработку."
|
|
664
|
+
},
|
|
665
|
+
"401": {
|
|
666
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
667
|
+
},
|
|
668
|
+
"403": {
|
|
669
|
+
"description": "Недостаточно прав для импорта материалов."
|
|
670
|
+
},
|
|
671
|
+
"409": {
|
|
672
|
+
"description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк возвращается Excel-файл с комментариями;\r\nпри прочих ошибках — тело System.Collections.Generic.List`1.",
|
|
673
|
+
"content": {
|
|
674
|
+
"text/plain": {
|
|
675
|
+
"schema": {
|
|
676
|
+
"type": "array",
|
|
677
|
+
"items": {
|
|
678
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
},
|
|
682
|
+
"application/json": {
|
|
683
|
+
"schema": {
|
|
684
|
+
"type": "array",
|
|
685
|
+
"items": {
|
|
686
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
},
|
|
690
|
+
"text/json": {
|
|
691
|
+
"schema": {
|
|
692
|
+
"type": "array",
|
|
693
|
+
"items": {
|
|
694
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
},
|
|
701
|
+
"security": [
|
|
702
|
+
{
|
|
703
|
+
"Bearer": [ ]
|
|
704
|
+
}
|
|
705
|
+
]
|
|
706
|
+
}
|
|
707
|
+
},
|
|
708
|
+
"/Materials/v2.0": {
|
|
709
|
+
"post": {
|
|
710
|
+
"tags": [
|
|
711
|
+
"Materials"
|
|
712
|
+
],
|
|
713
|
+
"summary": "Импорт материалов из Excel-файла (v2)",
|
|
714
|
+
"description": "## Пример запроса:\r\n`POST /Materials/v2.0`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом `Материалы`.\r\n \r\nПеред записью строки группируются по `MaterialErpID` (для каждого ERP ID сохраняется последняя запись).\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт материалов принят в обработку.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями.\r\n- 409 Conflict: отсутствует лист `Материалы` (`WrongFile`) или лист пустой (`EmptyFile`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- 409 Conflict: отсутствует обязательное поле формы `File` или тело запроса некорректно.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `MaterialImport`.",
|
|
715
|
+
"parameters": [
|
|
716
|
+
{
|
|
717
|
+
"name": "X-Application-ID",
|
|
718
|
+
"in": "header",
|
|
719
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
720
|
+
"schema": {
|
|
721
|
+
"enum": [
|
|
722
|
+
1,
|
|
723
|
+
2,
|
|
724
|
+
3,
|
|
725
|
+
4,
|
|
726
|
+
5,
|
|
727
|
+
6
|
|
728
|
+
],
|
|
729
|
+
"type": "integer",
|
|
730
|
+
"format": "int32",
|
|
731
|
+
"default": 3,
|
|
732
|
+
"x-enumNames": [
|
|
733
|
+
"EngineerMobile",
|
|
734
|
+
"CustomerMobile",
|
|
735
|
+
"MainWeb",
|
|
736
|
+
"AdminWeb",
|
|
737
|
+
"Api",
|
|
738
|
+
"PlateWeb"
|
|
739
|
+
]
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
],
|
|
743
|
+
"requestBody": {
|
|
744
|
+
"content": {
|
|
745
|
+
"multipart/form-data": {
|
|
746
|
+
"schema": {
|
|
747
|
+
"required": [
|
|
748
|
+
"File"
|
|
749
|
+
],
|
|
750
|
+
"type": "object",
|
|
751
|
+
"properties": {
|
|
752
|
+
"Description": {
|
|
753
|
+
"type": "string"
|
|
754
|
+
},
|
|
755
|
+
"IsPublic": {
|
|
756
|
+
"type": "boolean"
|
|
757
|
+
},
|
|
758
|
+
"IsIgnorePossibleDuplication": {
|
|
759
|
+
"type": "boolean"
|
|
760
|
+
},
|
|
761
|
+
"Roles": {
|
|
762
|
+
"type": "array",
|
|
763
|
+
"items": {
|
|
764
|
+
"type": "integer",
|
|
765
|
+
"format": "int32"
|
|
766
|
+
}
|
|
767
|
+
},
|
|
768
|
+
"Coordinate": {
|
|
769
|
+
"type": "string"
|
|
770
|
+
},
|
|
771
|
+
"File": {
|
|
772
|
+
"type": "string",
|
|
773
|
+
"format": "binary"
|
|
774
|
+
},
|
|
775
|
+
"FileName": {
|
|
776
|
+
"type": "string"
|
|
777
|
+
},
|
|
778
|
+
"ContentType": {
|
|
779
|
+
"type": "string"
|
|
780
|
+
},
|
|
781
|
+
"Uid": {
|
|
782
|
+
"type": "string",
|
|
783
|
+
"format": "uuid"
|
|
784
|
+
},
|
|
785
|
+
"ContentStream.CanRead": {
|
|
786
|
+
"type": "boolean"
|
|
787
|
+
},
|
|
788
|
+
"ContentStream.CanSeek": {
|
|
789
|
+
"type": "boolean"
|
|
790
|
+
},
|
|
791
|
+
"ContentStream.CanWrite": {
|
|
792
|
+
"type": "boolean"
|
|
793
|
+
},
|
|
794
|
+
"ContentStream.Capacity": {
|
|
795
|
+
"type": "integer",
|
|
796
|
+
"format": "int32"
|
|
797
|
+
},
|
|
798
|
+
"ContentStream.Length": {
|
|
799
|
+
"type": "integer",
|
|
800
|
+
"format": "int64"
|
|
801
|
+
},
|
|
802
|
+
"ContentStream.Position": {
|
|
803
|
+
"type": "integer",
|
|
804
|
+
"format": "int64"
|
|
805
|
+
},
|
|
806
|
+
"ContentStream.CanTimeout": {
|
|
807
|
+
"type": "boolean"
|
|
808
|
+
},
|
|
809
|
+
"ContentStream.ReadTimeout": {
|
|
810
|
+
"type": "integer",
|
|
811
|
+
"format": "int32"
|
|
812
|
+
},
|
|
813
|
+
"ContentStream.WriteTimeout": {
|
|
814
|
+
"type": "integer",
|
|
815
|
+
"format": "int32"
|
|
816
|
+
},
|
|
817
|
+
"Md5Hash": {
|
|
818
|
+
"type": "string"
|
|
819
|
+
},
|
|
820
|
+
"ContentLength": {
|
|
821
|
+
"type": "integer",
|
|
822
|
+
"format": "int32"
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
},
|
|
826
|
+
"encoding": {
|
|
827
|
+
"Description": {
|
|
828
|
+
"style": "form"
|
|
829
|
+
},
|
|
830
|
+
"IsPublic": {
|
|
831
|
+
"style": "form"
|
|
832
|
+
},
|
|
833
|
+
"IsIgnorePossibleDuplication": {
|
|
834
|
+
"style": "form"
|
|
835
|
+
},
|
|
836
|
+
"Roles": {
|
|
837
|
+
"style": "form"
|
|
838
|
+
},
|
|
839
|
+
"Coordinate": {
|
|
840
|
+
"style": "form"
|
|
841
|
+
},
|
|
842
|
+
"File": {
|
|
843
|
+
"style": "form"
|
|
844
|
+
},
|
|
845
|
+
"FileName": {
|
|
846
|
+
"style": "form"
|
|
847
|
+
},
|
|
848
|
+
"ContentType": {
|
|
849
|
+
"style": "form"
|
|
850
|
+
},
|
|
851
|
+
"Uid": {
|
|
852
|
+
"style": "form"
|
|
853
|
+
},
|
|
854
|
+
"ContentStream.CanRead": {
|
|
855
|
+
"style": "form"
|
|
856
|
+
},
|
|
857
|
+
"ContentStream.CanSeek": {
|
|
858
|
+
"style": "form"
|
|
859
|
+
},
|
|
860
|
+
"ContentStream.CanWrite": {
|
|
861
|
+
"style": "form"
|
|
862
|
+
},
|
|
863
|
+
"ContentStream.Capacity": {
|
|
864
|
+
"style": "form"
|
|
865
|
+
},
|
|
866
|
+
"ContentStream.Length": {
|
|
867
|
+
"style": "form"
|
|
868
|
+
},
|
|
869
|
+
"ContentStream.Position": {
|
|
870
|
+
"style": "form"
|
|
871
|
+
},
|
|
872
|
+
"ContentStream.CanTimeout": {
|
|
873
|
+
"style": "form"
|
|
874
|
+
},
|
|
875
|
+
"ContentStream.ReadTimeout": {
|
|
876
|
+
"style": "form"
|
|
877
|
+
},
|
|
878
|
+
"ContentStream.WriteTimeout": {
|
|
879
|
+
"style": "form"
|
|
880
|
+
},
|
|
881
|
+
"Md5Hash": {
|
|
882
|
+
"style": "form"
|
|
883
|
+
},
|
|
884
|
+
"ContentLength": {
|
|
885
|
+
"style": "form"
|
|
886
|
+
}
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
},
|
|
891
|
+
"responses": {
|
|
892
|
+
"202": {
|
|
893
|
+
"description": "Импорт материалов успешно принят в обработку."
|
|
894
|
+
},
|
|
895
|
+
"401": {
|
|
896
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
897
|
+
},
|
|
898
|
+
"403": {
|
|
899
|
+
"description": "Недостаточно прав для импорта материалов."
|
|
900
|
+
},
|
|
901
|
+
"409": {
|
|
902
|
+
"description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк возвращается Excel-файл с комментариями;\r\nпри прочих ошибках — тело System.Collections.Generic.List`1.",
|
|
903
|
+
"content": {
|
|
904
|
+
"text/plain": {
|
|
905
|
+
"schema": {
|
|
906
|
+
"type": "array",
|
|
907
|
+
"items": {
|
|
908
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
},
|
|
912
|
+
"application/json": {
|
|
913
|
+
"schema": {
|
|
914
|
+
"type": "array",
|
|
915
|
+
"items": {
|
|
916
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
},
|
|
920
|
+
"text/json": {
|
|
921
|
+
"schema": {
|
|
922
|
+
"type": "array",
|
|
923
|
+
"items": {
|
|
924
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
925
|
+
}
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
},
|
|
931
|
+
"security": [
|
|
932
|
+
{
|
|
933
|
+
"Bearer": [ ]
|
|
934
|
+
}
|
|
935
|
+
]
|
|
936
|
+
}
|
|
937
|
+
},
|
|
938
|
+
"/Tasks": {
|
|
939
|
+
"post": {
|
|
940
|
+
"tags": [
|
|
941
|
+
"Tasks"
|
|
942
|
+
],
|
|
943
|
+
"summary": "Импорт заявок из Excel-файла",
|
|
944
|
+
"description": "## Пример запроса:\r\n`POST /Tasks`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом `Заявки`.\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт заявок принят в обработку.\r\nПосле импорта асинхронно отправляются уведомления и запросы на перевод по стадиям.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями.\r\n- 409 Conflict: отсутствует лист `Заявки` (`WrongFile`) или лист пустой (`EmptyFile`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- 409 Conflict: отсутствует обязательное поле формы `File` или тело запроса некорректно.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `TaskImport`.",
|
|
945
|
+
"parameters": [
|
|
946
|
+
{
|
|
947
|
+
"name": "X-Application-ID",
|
|
948
|
+
"in": "header",
|
|
949
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
950
|
+
"schema": {
|
|
951
|
+
"enum": [
|
|
952
|
+
1,
|
|
953
|
+
2,
|
|
954
|
+
3,
|
|
955
|
+
4,
|
|
956
|
+
5,
|
|
957
|
+
6
|
|
958
|
+
],
|
|
959
|
+
"type": "integer",
|
|
960
|
+
"format": "int32",
|
|
961
|
+
"default": 3,
|
|
962
|
+
"x-enumNames": [
|
|
963
|
+
"EngineerMobile",
|
|
964
|
+
"CustomerMobile",
|
|
965
|
+
"MainWeb",
|
|
966
|
+
"AdminWeb",
|
|
967
|
+
"Api",
|
|
968
|
+
"PlateWeb"
|
|
969
|
+
]
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
],
|
|
973
|
+
"requestBody": {
|
|
974
|
+
"content": {
|
|
975
|
+
"multipart/form-data": {
|
|
976
|
+
"schema": {
|
|
977
|
+
"required": [
|
|
978
|
+
"File"
|
|
979
|
+
],
|
|
980
|
+
"type": "object",
|
|
981
|
+
"properties": {
|
|
982
|
+
"Description": {
|
|
983
|
+
"type": "string"
|
|
984
|
+
},
|
|
985
|
+
"IsPublic": {
|
|
986
|
+
"type": "boolean"
|
|
987
|
+
},
|
|
988
|
+
"IsIgnorePossibleDuplication": {
|
|
989
|
+
"type": "boolean"
|
|
990
|
+
},
|
|
991
|
+
"Roles": {
|
|
992
|
+
"type": "array",
|
|
993
|
+
"items": {
|
|
994
|
+
"type": "integer",
|
|
995
|
+
"format": "int32"
|
|
996
|
+
}
|
|
997
|
+
},
|
|
998
|
+
"Coordinate": {
|
|
999
|
+
"type": "string"
|
|
1000
|
+
},
|
|
1001
|
+
"File": {
|
|
1002
|
+
"type": "string",
|
|
1003
|
+
"format": "binary"
|
|
1004
|
+
},
|
|
1005
|
+
"FileName": {
|
|
1006
|
+
"type": "string"
|
|
1007
|
+
},
|
|
1008
|
+
"ContentType": {
|
|
1009
|
+
"type": "string"
|
|
1010
|
+
},
|
|
1011
|
+
"Uid": {
|
|
1012
|
+
"type": "string",
|
|
1013
|
+
"format": "uuid"
|
|
1014
|
+
},
|
|
1015
|
+
"ContentStream.CanRead": {
|
|
1016
|
+
"type": "boolean"
|
|
1017
|
+
},
|
|
1018
|
+
"ContentStream.CanSeek": {
|
|
1019
|
+
"type": "boolean"
|
|
1020
|
+
},
|
|
1021
|
+
"ContentStream.CanWrite": {
|
|
1022
|
+
"type": "boolean"
|
|
1023
|
+
},
|
|
1024
|
+
"ContentStream.Capacity": {
|
|
1025
|
+
"type": "integer",
|
|
1026
|
+
"format": "int32"
|
|
1027
|
+
},
|
|
1028
|
+
"ContentStream.Length": {
|
|
1029
|
+
"type": "integer",
|
|
1030
|
+
"format": "int64"
|
|
1031
|
+
},
|
|
1032
|
+
"ContentStream.Position": {
|
|
1033
|
+
"type": "integer",
|
|
1034
|
+
"format": "int64"
|
|
1035
|
+
},
|
|
1036
|
+
"ContentStream.CanTimeout": {
|
|
1037
|
+
"type": "boolean"
|
|
1038
|
+
},
|
|
1039
|
+
"ContentStream.ReadTimeout": {
|
|
1040
|
+
"type": "integer",
|
|
1041
|
+
"format": "int32"
|
|
1042
|
+
},
|
|
1043
|
+
"ContentStream.WriteTimeout": {
|
|
1044
|
+
"type": "integer",
|
|
1045
|
+
"format": "int32"
|
|
1046
|
+
},
|
|
1047
|
+
"Md5Hash": {
|
|
1048
|
+
"type": "string"
|
|
1049
|
+
},
|
|
1050
|
+
"ContentLength": {
|
|
1051
|
+
"type": "integer",
|
|
1052
|
+
"format": "int32"
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
},
|
|
1056
|
+
"encoding": {
|
|
1057
|
+
"Description": {
|
|
1058
|
+
"style": "form"
|
|
1059
|
+
},
|
|
1060
|
+
"IsPublic": {
|
|
1061
|
+
"style": "form"
|
|
1062
|
+
},
|
|
1063
|
+
"IsIgnorePossibleDuplication": {
|
|
1064
|
+
"style": "form"
|
|
1065
|
+
},
|
|
1066
|
+
"Roles": {
|
|
1067
|
+
"style": "form"
|
|
1068
|
+
},
|
|
1069
|
+
"Coordinate": {
|
|
1070
|
+
"style": "form"
|
|
1071
|
+
},
|
|
1072
|
+
"File": {
|
|
1073
|
+
"style": "form"
|
|
1074
|
+
},
|
|
1075
|
+
"FileName": {
|
|
1076
|
+
"style": "form"
|
|
1077
|
+
},
|
|
1078
|
+
"ContentType": {
|
|
1079
|
+
"style": "form"
|
|
1080
|
+
},
|
|
1081
|
+
"Uid": {
|
|
1082
|
+
"style": "form"
|
|
1083
|
+
},
|
|
1084
|
+
"ContentStream.CanRead": {
|
|
1085
|
+
"style": "form"
|
|
1086
|
+
},
|
|
1087
|
+
"ContentStream.CanSeek": {
|
|
1088
|
+
"style": "form"
|
|
1089
|
+
},
|
|
1090
|
+
"ContentStream.CanWrite": {
|
|
1091
|
+
"style": "form"
|
|
1092
|
+
},
|
|
1093
|
+
"ContentStream.Capacity": {
|
|
1094
|
+
"style": "form"
|
|
1095
|
+
},
|
|
1096
|
+
"ContentStream.Length": {
|
|
1097
|
+
"style": "form"
|
|
1098
|
+
},
|
|
1099
|
+
"ContentStream.Position": {
|
|
1100
|
+
"style": "form"
|
|
1101
|
+
},
|
|
1102
|
+
"ContentStream.CanTimeout": {
|
|
1103
|
+
"style": "form"
|
|
1104
|
+
},
|
|
1105
|
+
"ContentStream.ReadTimeout": {
|
|
1106
|
+
"style": "form"
|
|
1107
|
+
},
|
|
1108
|
+
"ContentStream.WriteTimeout": {
|
|
1109
|
+
"style": "form"
|
|
1110
|
+
},
|
|
1111
|
+
"Md5Hash": {
|
|
1112
|
+
"style": "form"
|
|
1113
|
+
},
|
|
1114
|
+
"ContentLength": {
|
|
1115
|
+
"style": "form"
|
|
1116
|
+
}
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
}
|
|
1120
|
+
},
|
|
1121
|
+
"responses": {
|
|
1122
|
+
"202": {
|
|
1123
|
+
"description": "Импорт заявок успешно принят в обработку."
|
|
1124
|
+
},
|
|
1125
|
+
"401": {
|
|
1126
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
1127
|
+
},
|
|
1128
|
+
"403": {
|
|
1129
|
+
"description": "Недостаточно прав для импорта заявок."
|
|
1130
|
+
},
|
|
1131
|
+
"409": {
|
|
1132
|
+
"description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк возвращается Excel-файл с комментариями;\r\nпри прочих ошибках — тело System.Collections.Generic.List`1.",
|
|
1133
|
+
"content": {
|
|
1134
|
+
"text/plain": {
|
|
1135
|
+
"schema": {
|
|
1136
|
+
"type": "array",
|
|
1137
|
+
"items": {
|
|
1138
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
1139
|
+
}
|
|
1140
|
+
}
|
|
1141
|
+
},
|
|
1142
|
+
"application/json": {
|
|
1143
|
+
"schema": {
|
|
1144
|
+
"type": "array",
|
|
1145
|
+
"items": {
|
|
1146
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
},
|
|
1150
|
+
"text/json": {
|
|
1151
|
+
"schema": {
|
|
1152
|
+
"type": "array",
|
|
1153
|
+
"items": {
|
|
1154
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
1155
|
+
}
|
|
1156
|
+
}
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1159
|
+
}
|
|
1160
|
+
},
|
|
1161
|
+
"security": [
|
|
1162
|
+
{
|
|
1163
|
+
"Bearer": [ ]
|
|
1164
|
+
}
|
|
1165
|
+
]
|
|
1166
|
+
}
|
|
1167
|
+
},
|
|
1168
|
+
"/Users": {
|
|
1169
|
+
"post": {
|
|
1170
|
+
"tags": [
|
|
1171
|
+
"Users"
|
|
1172
|
+
],
|
|
1173
|
+
"summary": "Импорт пользователей из Excel-файла",
|
|
1174
|
+
"description": "## Пример запроса:\r\n`POST /Users`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом `Пользователи`.\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт пользователей принят в обработку.\r\nПосле импорта отправляются приглашения на верификацию аккаунта.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями.\r\n- 409 Conflict: отсутствует лист `Пользователи` (`WrongFile`) или лист пустой (`EmptyFile`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- 409 Conflict: отсутствует обязательное поле формы `File` или тело запроса некорректно.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `UserImport`.",
|
|
1175
|
+
"parameters": [
|
|
1176
|
+
{
|
|
1177
|
+
"name": "X-Application-ID",
|
|
1178
|
+
"in": "header",
|
|
1179
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
1180
|
+
"schema": {
|
|
1181
|
+
"enum": [
|
|
1182
|
+
1,
|
|
1183
|
+
2,
|
|
1184
|
+
3,
|
|
1185
|
+
4,
|
|
1186
|
+
5,
|
|
1187
|
+
6
|
|
1188
|
+
],
|
|
1189
|
+
"type": "integer",
|
|
1190
|
+
"format": "int32",
|
|
1191
|
+
"default": 3,
|
|
1192
|
+
"x-enumNames": [
|
|
1193
|
+
"EngineerMobile",
|
|
1194
|
+
"CustomerMobile",
|
|
1195
|
+
"MainWeb",
|
|
1196
|
+
"AdminWeb",
|
|
1197
|
+
"Api",
|
|
1198
|
+
"PlateWeb"
|
|
1199
|
+
]
|
|
1200
|
+
}
|
|
1201
|
+
}
|
|
1202
|
+
],
|
|
1203
|
+
"requestBody": {
|
|
1204
|
+
"content": {
|
|
1205
|
+
"multipart/form-data": {
|
|
1206
|
+
"schema": {
|
|
1207
|
+
"required": [
|
|
1208
|
+
"File"
|
|
1209
|
+
],
|
|
1210
|
+
"type": "object",
|
|
1211
|
+
"properties": {
|
|
1212
|
+
"Description": {
|
|
1213
|
+
"type": "string"
|
|
1214
|
+
},
|
|
1215
|
+
"IsPublic": {
|
|
1216
|
+
"type": "boolean"
|
|
1217
|
+
},
|
|
1218
|
+
"IsIgnorePossibleDuplication": {
|
|
1219
|
+
"type": "boolean"
|
|
1220
|
+
},
|
|
1221
|
+
"Roles": {
|
|
1222
|
+
"type": "array",
|
|
1223
|
+
"items": {
|
|
1224
|
+
"type": "integer",
|
|
1225
|
+
"format": "int32"
|
|
1226
|
+
}
|
|
1227
|
+
},
|
|
1228
|
+
"Coordinate": {
|
|
1229
|
+
"type": "string"
|
|
1230
|
+
},
|
|
1231
|
+
"File": {
|
|
1232
|
+
"type": "string",
|
|
1233
|
+
"format": "binary"
|
|
1234
|
+
},
|
|
1235
|
+
"FileName": {
|
|
1236
|
+
"type": "string"
|
|
1237
|
+
},
|
|
1238
|
+
"ContentType": {
|
|
1239
|
+
"type": "string"
|
|
1240
|
+
},
|
|
1241
|
+
"Uid": {
|
|
1242
|
+
"type": "string",
|
|
1243
|
+
"format": "uuid"
|
|
1244
|
+
},
|
|
1245
|
+
"ContentStream.CanRead": {
|
|
1246
|
+
"type": "boolean"
|
|
1247
|
+
},
|
|
1248
|
+
"ContentStream.CanSeek": {
|
|
1249
|
+
"type": "boolean"
|
|
1250
|
+
},
|
|
1251
|
+
"ContentStream.CanWrite": {
|
|
1252
|
+
"type": "boolean"
|
|
1253
|
+
},
|
|
1254
|
+
"ContentStream.Capacity": {
|
|
1255
|
+
"type": "integer",
|
|
1256
|
+
"format": "int32"
|
|
1257
|
+
},
|
|
1258
|
+
"ContentStream.Length": {
|
|
1259
|
+
"type": "integer",
|
|
1260
|
+
"format": "int64"
|
|
1261
|
+
},
|
|
1262
|
+
"ContentStream.Position": {
|
|
1263
|
+
"type": "integer",
|
|
1264
|
+
"format": "int64"
|
|
1265
|
+
},
|
|
1266
|
+
"ContentStream.CanTimeout": {
|
|
1267
|
+
"type": "boolean"
|
|
1268
|
+
},
|
|
1269
|
+
"ContentStream.ReadTimeout": {
|
|
1270
|
+
"type": "integer",
|
|
1271
|
+
"format": "int32"
|
|
1272
|
+
},
|
|
1273
|
+
"ContentStream.WriteTimeout": {
|
|
1274
|
+
"type": "integer",
|
|
1275
|
+
"format": "int32"
|
|
1276
|
+
},
|
|
1277
|
+
"Md5Hash": {
|
|
1278
|
+
"type": "string"
|
|
1279
|
+
},
|
|
1280
|
+
"ContentLength": {
|
|
1281
|
+
"type": "integer",
|
|
1282
|
+
"format": "int32"
|
|
1283
|
+
}
|
|
1284
|
+
}
|
|
1285
|
+
},
|
|
1286
|
+
"encoding": {
|
|
1287
|
+
"Description": {
|
|
1288
|
+
"style": "form"
|
|
1289
|
+
},
|
|
1290
|
+
"IsPublic": {
|
|
1291
|
+
"style": "form"
|
|
1292
|
+
},
|
|
1293
|
+
"IsIgnorePossibleDuplication": {
|
|
1294
|
+
"style": "form"
|
|
1295
|
+
},
|
|
1296
|
+
"Roles": {
|
|
1297
|
+
"style": "form"
|
|
1298
|
+
},
|
|
1299
|
+
"Coordinate": {
|
|
1300
|
+
"style": "form"
|
|
1301
|
+
},
|
|
1302
|
+
"File": {
|
|
1303
|
+
"style": "form"
|
|
1304
|
+
},
|
|
1305
|
+
"FileName": {
|
|
1306
|
+
"style": "form"
|
|
1307
|
+
},
|
|
1308
|
+
"ContentType": {
|
|
1309
|
+
"style": "form"
|
|
1310
|
+
},
|
|
1311
|
+
"Uid": {
|
|
1312
|
+
"style": "form"
|
|
1313
|
+
},
|
|
1314
|
+
"ContentStream.CanRead": {
|
|
1315
|
+
"style": "form"
|
|
1316
|
+
},
|
|
1317
|
+
"ContentStream.CanSeek": {
|
|
1318
|
+
"style": "form"
|
|
1319
|
+
},
|
|
1320
|
+
"ContentStream.CanWrite": {
|
|
1321
|
+
"style": "form"
|
|
1322
|
+
},
|
|
1323
|
+
"ContentStream.Capacity": {
|
|
1324
|
+
"style": "form"
|
|
1325
|
+
},
|
|
1326
|
+
"ContentStream.Length": {
|
|
1327
|
+
"style": "form"
|
|
1328
|
+
},
|
|
1329
|
+
"ContentStream.Position": {
|
|
1330
|
+
"style": "form"
|
|
1331
|
+
},
|
|
1332
|
+
"ContentStream.CanTimeout": {
|
|
1333
|
+
"style": "form"
|
|
1334
|
+
},
|
|
1335
|
+
"ContentStream.ReadTimeout": {
|
|
1336
|
+
"style": "form"
|
|
1337
|
+
},
|
|
1338
|
+
"ContentStream.WriteTimeout": {
|
|
1339
|
+
"style": "form"
|
|
1340
|
+
},
|
|
1341
|
+
"Md5Hash": {
|
|
1342
|
+
"style": "form"
|
|
1343
|
+
},
|
|
1344
|
+
"ContentLength": {
|
|
1345
|
+
"style": "form"
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
}
|
|
1349
|
+
}
|
|
1350
|
+
},
|
|
1351
|
+
"responses": {
|
|
1352
|
+
"202": {
|
|
1353
|
+
"description": "Импорт пользователей успешно принят в обработку."
|
|
1354
|
+
},
|
|
1355
|
+
"401": {
|
|
1356
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
1357
|
+
},
|
|
1358
|
+
"403": {
|
|
1359
|
+
"description": "Недостаточно прав для импорта пользователей."
|
|
1360
|
+
},
|
|
1361
|
+
"409": {
|
|
1362
|
+
"description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк возвращается Excel-файл с комментариями;\r\nпри прочих ошибках — тело System.Collections.Generic.List`1.",
|
|
1363
|
+
"content": {
|
|
1364
|
+
"text/plain": {
|
|
1365
|
+
"schema": {
|
|
1366
|
+
"type": "array",
|
|
1367
|
+
"items": {
|
|
1368
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
1369
|
+
}
|
|
1370
|
+
}
|
|
1371
|
+
},
|
|
1372
|
+
"application/json": {
|
|
1373
|
+
"schema": {
|
|
1374
|
+
"type": "array",
|
|
1375
|
+
"items": {
|
|
1376
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
1377
|
+
}
|
|
1378
|
+
}
|
|
1379
|
+
},
|
|
1380
|
+
"text/json": {
|
|
1381
|
+
"schema": {
|
|
1382
|
+
"type": "array",
|
|
1383
|
+
"items": {
|
|
1384
|
+
"$ref": "#/components/schemas/ExceptionHandlingModelsErrorModel"
|
|
1385
|
+
}
|
|
1386
|
+
}
|
|
1387
|
+
}
|
|
1388
|
+
}
|
|
1389
|
+
}
|
|
1390
|
+
},
|
|
1391
|
+
"security": [
|
|
1392
|
+
{
|
|
1393
|
+
"Bearer": [ ]
|
|
1394
|
+
}
|
|
1395
|
+
]
|
|
1396
|
+
}
|
|
1397
|
+
}
|
|
1398
|
+
},
|
|
1399
|
+
"components": {
|
|
1400
|
+
"schemas": {
|
|
1401
|
+
"ExceptionHandlingModelsErrorModel": {
|
|
1402
|
+
"type": "object",
|
|
1403
|
+
"properties": {
|
|
1404
|
+
"traceIdentifier": {
|
|
1405
|
+
"type": "string",
|
|
1406
|
+
"nullable": true
|
|
1407
|
+
},
|
|
1408
|
+
"code": {
|
|
1409
|
+
"type": "string",
|
|
1410
|
+
"nullable": true
|
|
1411
|
+
},
|
|
1412
|
+
"message": {
|
|
1413
|
+
"type": "string",
|
|
1414
|
+
"nullable": true
|
|
1415
|
+
},
|
|
1416
|
+
"arguments": {
|
|
1417
|
+
"type": "object",
|
|
1418
|
+
"additionalProperties": {
|
|
1419
|
+
"type": "string",
|
|
1420
|
+
"nullable": true
|
|
1421
|
+
},
|
|
1422
|
+
"nullable": true
|
|
1423
|
+
}
|
|
1424
|
+
},
|
|
1425
|
+
"additionalProperties": false
|
|
1426
|
+
}
|
|
1427
|
+
},
|
|
1428
|
+
"securitySchemes": {
|
|
1429
|
+
"Bearer": {
|
|
1430
|
+
"type": "http",
|
|
1431
|
+
"description": "Введите токен для авторизации",
|
|
1432
|
+
"scheme": "Bearer",
|
|
1433
|
+
"bearerFormat": "JWT"
|
|
1434
|
+
}
|
|
1435
|
+
}
|
|
1436
|
+
},
|
|
1437
|
+
"tags": [
|
|
1438
|
+
{
|
|
1439
|
+
"name": "Assets",
|
|
1440
|
+
"description": "Контроллер импорта объектов и оборудования из Excel-файла"
|
|
1441
|
+
},
|
|
1442
|
+
{
|
|
1443
|
+
"name": "Companies",
|
|
1444
|
+
"description": "Контроллер импорта компаний из Excel-файла"
|
|
1445
|
+
},
|
|
1446
|
+
{
|
|
1447
|
+
"name": "Materials",
|
|
1448
|
+
"description": "Контроллер импорта материалов из Excel-файла"
|
|
1449
|
+
},
|
|
1450
|
+
{
|
|
1451
|
+
"name": "Tasks",
|
|
1452
|
+
"description": "Контроллер импорта заявок из Excel-файла"
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
"name": "Users",
|
|
1456
|
+
"description": "Контроллер импорта пользователей из Excel-файла"
|
|
1457
|
+
},
|
|
1458
|
+
{
|
|
1459
|
+
"name": "Assets",
|
|
1460
|
+
"description": "Контроллер импорта объектов и оборудования из Excel-файла"
|
|
1461
|
+
},
|
|
1462
|
+
{
|
|
1463
|
+
"name": "Companies",
|
|
1464
|
+
"description": "Контроллер импорта компаний из Excel-файла"
|
|
1465
|
+
},
|
|
1466
|
+
{
|
|
1467
|
+
"name": "Materials",
|
|
1468
|
+
"description": "Контроллер импорта материалов из Excel-файла"
|
|
1469
|
+
},
|
|
1470
|
+
{
|
|
1471
|
+
"name": "Tasks",
|
|
1472
|
+
"description": "Контроллер импорта заявок из Excel-файла"
|
|
1473
|
+
},
|
|
1474
|
+
{
|
|
1475
|
+
"name": "Users",
|
|
1476
|
+
"description": "Контроллер импорта пользователей из Excel-файла"
|
|
1477
|
+
}
|
|
1478
|
+
]
|
|
1479
|
+
}
|