@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.
Files changed (92) hide show
  1. package/.env.example +54 -0
  2. package/CONNECTING.md +260 -0
  3. package/README.md +266 -0
  4. package/dist/auth.js +226 -0
  5. package/dist/config.js +120 -0
  6. package/dist/generated/manifest.js +3643 -0
  7. package/dist/guides/field-notes.json +27 -0
  8. package/dist/guides/loader.js +32 -0
  9. package/dist/guides/service-map.js +6 -0
  10. package/dist/http.js +93 -0
  11. package/dist/index/store.js +134 -0
  12. package/dist/index/types.js +1 -0
  13. package/dist/index.js +20 -0
  14. package/dist/paths.js +20 -0
  15. package/dist/pii/fields.js +100 -0
  16. package/dist/pii/mask.js +50 -0
  17. package/dist/pii/strategies.js +88 -0
  18. package/dist/schema/build-index.js +67 -0
  19. package/dist/schema/deref.js +87 -0
  20. package/dist/schema/describe.js +65 -0
  21. package/dist/server.js +62 -0
  22. package/dist/token-prompt.js +41 -0
  23. package/dist/tools/curated.js +151 -0
  24. package/dist/tools/discovery.js +187 -0
  25. package/dist/tools/guides.js +126 -0
  26. package/dist/tools/registry.js +37 -0
  27. package/dist/tools/request.js +170 -0
  28. package/dist/tools/types.js +1 -0
  29. package/docs/guides/assets.md +334 -0
  30. package/docs/guides/attributes.md +125 -0
  31. package/docs/guides/checklisttemplates.md +154 -0
  32. package/docs/guides/companies.md +57 -0
  33. package/docs/guides/dictionaries.md +64 -0
  34. package/docs/guides/lifecycle.md +263 -0
  35. package/docs/guides/materials.md +135 -0
  36. package/docs/guides/notifications.md +184 -0
  37. package/docs/guides/roles.md +125 -0
  38. package/docs/guides/sla.md +130 -0
  39. package/docs/guides/start.md +67 -0
  40. package/docs/guides/taskchecklists.md +149 -0
  41. package/docs/guides/taskcreate.md +260 -0
  42. package/docs/guides/taskedit.md +277 -0
  43. package/docs/guides/tasktypes.md +156 -0
  44. package/docs/guides/users.md +71 -0
  45. package/generated/index.dev.json +18776 -0
  46. package/generated/index.prod.json +18858 -0
  47. package/package.json +48 -0
  48. package/swagger/dev/ADM.json +27777 -0
  49. package/swagger/dev/AUTH.json +1739 -0
  50. package/swagger/dev/AUTHN.json +1250 -0
  51. package/swagger/dev/AUTHZ.json +1404 -0
  52. package/swagger/dev/CM.json +309 -0
  53. package/swagger/dev/COMMON.json +6543 -0
  54. package/swagger/dev/ES.json +28029 -0
  55. package/swagger/dev/EXPORT.json +4575 -0
  56. package/swagger/dev/IMPORT.json +1479 -0
  57. package/swagger/dev/LIC.json +224 -0
  58. package/swagger/dev/MSG.json +7883 -0
  59. package/swagger/dev/NEWS.json +348 -0
  60. package/swagger/dev/PA.json +5981 -0
  61. package/swagger/dev/PMP.json +3196 -0
  62. package/swagger/dev/PROXY.json +416 -0
  63. package/swagger/dev/REPORT.json +3921 -0
  64. package/swagger/dev/SC.json +3771 -0
  65. package/swagger/dev/SLA.json +2837 -0
  66. package/swagger/dev/TSTG.json +4981 -0
  67. package/swagger/dev/UI.json +4720 -0
  68. package/swagger/dev/WH.json +16796 -0
  69. package/swagger/dev/WORK.json +36024 -0
  70. package/swagger/dev/WSP.json +1612 -0
  71. package/swagger/prod/ADM.json +27777 -0
  72. package/swagger/prod/AUTH.json +1308 -0
  73. package/swagger/prod/AUTHN.json +2710 -0
  74. package/swagger/prod/AUTHZ.json +896 -0
  75. package/swagger/prod/CM.json +162 -0
  76. package/swagger/prod/COMMON.json +4910 -0
  77. package/swagger/prod/ES.json +28029 -0
  78. package/swagger/prod/EXPORT.json +3091 -0
  79. package/swagger/prod/LIC.json +123 -0
  80. package/swagger/prod/MSG.json +6239 -0
  81. package/swagger/prod/NEWS.json +295 -0
  82. package/swagger/prod/PA.json +5123 -0
  83. package/swagger/prod/PMP.json +2978 -0
  84. package/swagger/prod/PROXY.json +250 -0
  85. package/swagger/prod/REPORT.json +3729 -0
  86. package/swagger/prod/SC.json +3771 -0
  87. package/swagger/prod/SLA.json +2201 -0
  88. package/swagger/prod/TSTG.json +4220 -0
  89. package/swagger/prod/UI.json +3879 -0
  90. package/swagger/prod/WH.json +16730 -0
  91. package/swagger/prod/WORK.json +35994 -0
  92. package/swagger/prod/WSP.json +1468 -0
@@ -0,0 +1,3771 @@
1
+ {
2
+ "openapi": "3.0.1",
3
+ "info": {
4
+ "title": "HubEx SC APIs",
5
+ "description": "Service Contracts management service",
6
+ "contact": {
7
+ "name": "SmartService Backend Team",
8
+ "email": "fmbackend@melston.ru"
9
+ },
10
+ "version": "v1.0.0.0"
11
+ },
12
+ "paths": {
13
+ "/ContractAttributes": {
14
+ "post": {
15
+ "tags": [
16
+ "ContractAttributes"
17
+ ],
18
+ "summary": "Обновляет сведения о пользовательских полях объектов",
19
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **AssetAttributeMerge**",
20
+ "parameters": [
21
+ {
22
+ "name": "Authorization",
23
+ "in": "header",
24
+ "description": "Bearer",
25
+ "required": true,
26
+ "schema": {
27
+ "type": "string"
28
+ }
29
+ }
30
+ ],
31
+ "requestBody": {
32
+ "content": {
33
+ "application/json-patch+json": {
34
+ "schema": {
35
+ "type": "array",
36
+ "items": {
37
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractAttribute.ActionData"
38
+ }
39
+ }
40
+ },
41
+ "application/json": {
42
+ "schema": {
43
+ "type": "array",
44
+ "items": {
45
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractAttribute.ActionData"
46
+ }
47
+ }
48
+ },
49
+ "text/json": {
50
+ "schema": {
51
+ "type": "array",
52
+ "items": {
53
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractAttribute.ActionData"
54
+ }
55
+ }
56
+ },
57
+ "application/*+json": {
58
+ "schema": {
59
+ "type": "array",
60
+ "items": {
61
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractAttribute.ActionData"
62
+ }
63
+ }
64
+ }
65
+ }
66
+ },
67
+ "responses": {
68
+ "202": {
69
+ "description": "Accepted"
70
+ },
71
+ "401": {
72
+ "description": "Unauthorized"
73
+ },
74
+ "403": {
75
+ "description": "Forbidden"
76
+ }
77
+ }
78
+ }
79
+ },
80
+ "/ServiceContract/{contractID}/assets": {
81
+ "get": {
82
+ "tags": [
83
+ "ServiceContract"
84
+ ],
85
+ "summary": "Метод получения списка объектов сервисного договора",
86
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAssetsList**<br />* Метод поддерживает диапазонный запрос через строку или заголовок запроса.",
87
+ "parameters": [
88
+ {
89
+ "name": "contractID",
90
+ "in": "path",
91
+ "description": "",
92
+ "required": true,
93
+ "schema": {
94
+ "type": "integer",
95
+ "format": "int32"
96
+ }
97
+ },
98
+ {
99
+ "name": "Authorization",
100
+ "in": "header",
101
+ "description": "Bearer",
102
+ "required": true,
103
+ "schema": {
104
+ "type": "string"
105
+ }
106
+ },
107
+ {
108
+ "name": "Range",
109
+ "in": "header",
110
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
111
+ "schema": {
112
+ "type": "string"
113
+ }
114
+ },
115
+ {
116
+ "name": "offset",
117
+ "in": "query",
118
+ "description": "количество элементов, которое нобходимо пропустить",
119
+ "schema": {
120
+ "type": "string"
121
+ }
122
+ },
123
+ {
124
+ "name": "fetch",
125
+ "in": "query",
126
+ "description": "количество эементов, которое необходимо вернуть",
127
+ "schema": {
128
+ "type": "string"
129
+ }
130
+ }
131
+ ],
132
+ "responses": {
133
+ "200": {
134
+ "description": "OK",
135
+ "content": {
136
+ "text/plain": {
137
+ "schema": {
138
+ "type": "object",
139
+ "additionalProperties": {
140
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Asset.Base.AssetResultBase"
141
+ }
142
+ }
143
+ },
144
+ "application/json": {
145
+ "schema": {
146
+ "type": "object",
147
+ "additionalProperties": {
148
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Asset.Base.AssetResultBase"
149
+ }
150
+ }
151
+ },
152
+ "text/json": {
153
+ "schema": {
154
+ "type": "object",
155
+ "additionalProperties": {
156
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Asset.Base.AssetResultBase"
157
+ }
158
+ }
159
+ }
160
+ }
161
+ },
162
+ "400": {
163
+ "description": "Bad Request",
164
+ "content": {
165
+ "text/plain": {
166
+ "schema": {
167
+ "type": "array",
168
+ "items": {
169
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
170
+ }
171
+ }
172
+ },
173
+ "application/json": {
174
+ "schema": {
175
+ "type": "array",
176
+ "items": {
177
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
178
+ }
179
+ }
180
+ },
181
+ "text/json": {
182
+ "schema": {
183
+ "type": "array",
184
+ "items": {
185
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
186
+ }
187
+ }
188
+ }
189
+ }
190
+ },
191
+ "401": {
192
+ "description": "Unauthorized"
193
+ },
194
+ "403": {
195
+ "description": "Forbidden"
196
+ },
197
+ "206": {
198
+ "description": "PartialContent",
199
+ "headers": {
200
+ "Content-Range": {
201
+ "description": "items=FROM-TILL/OF , где FROM - начальный элемент (включая), TILL - конечный элемент (включая) OF - общее количество элементов",
202
+ "schema": {
203
+ "type": "string"
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ },
210
+ "delete": {
211
+ "tags": [
212
+ "ServiceContract"
213
+ ],
214
+ "summary": "Метод удаления объектов связанных с договорами",
215
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAssetDelete**",
216
+ "parameters": [
217
+ {
218
+ "name": "contractID",
219
+ "in": "path",
220
+ "description": "",
221
+ "required": true,
222
+ "schema": {
223
+ "type": "integer",
224
+ "format": "int32"
225
+ }
226
+ },
227
+ {
228
+ "name": "Authorization",
229
+ "in": "header",
230
+ "description": "Bearer",
231
+ "required": true,
232
+ "schema": {
233
+ "type": "string"
234
+ }
235
+ }
236
+ ],
237
+ "requestBody": {
238
+ "description": "",
239
+ "content": {
240
+ "application/json-patch+json": {
241
+ "schema": {
242
+ "type": "array",
243
+ "items": {
244
+ "type": "integer",
245
+ "format": "int32"
246
+ }
247
+ }
248
+ },
249
+ "application/json": {
250
+ "schema": {
251
+ "type": "array",
252
+ "items": {
253
+ "type": "integer",
254
+ "format": "int32"
255
+ }
256
+ }
257
+ },
258
+ "text/json": {
259
+ "schema": {
260
+ "type": "array",
261
+ "items": {
262
+ "type": "integer",
263
+ "format": "int32"
264
+ }
265
+ }
266
+ },
267
+ "application/*+json": {
268
+ "schema": {
269
+ "type": "array",
270
+ "items": {
271
+ "type": "integer",
272
+ "format": "int32"
273
+ }
274
+ }
275
+ }
276
+ }
277
+ },
278
+ "responses": {
279
+ "202": {
280
+ "description": "Accepted"
281
+ },
282
+ "409": {
283
+ "description": "Conflict",
284
+ "content": {
285
+ "text/plain": {
286
+ "schema": {
287
+ "type": "array",
288
+ "items": {
289
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
290
+ }
291
+ }
292
+ },
293
+ "application/json": {
294
+ "schema": {
295
+ "type": "array",
296
+ "items": {
297
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
298
+ }
299
+ }
300
+ },
301
+ "text/json": {
302
+ "schema": {
303
+ "type": "array",
304
+ "items": {
305
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
306
+ }
307
+ }
308
+ }
309
+ }
310
+ },
311
+ "401": {
312
+ "description": "Unauthorized"
313
+ },
314
+ "403": {
315
+ "description": "Forbidden"
316
+ }
317
+ }
318
+ },
319
+ "post": {
320
+ "tags": [
321
+ "ServiceContract"
322
+ ],
323
+ "summary": "Добавить список объектов к договору",
324
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAssetAdd**",
325
+ "parameters": [
326
+ {
327
+ "name": "contractID",
328
+ "in": "path",
329
+ "description": "",
330
+ "required": true,
331
+ "schema": {
332
+ "type": "integer",
333
+ "format": "int32"
334
+ }
335
+ },
336
+ {
337
+ "name": "Authorization",
338
+ "in": "header",
339
+ "description": "Bearer",
340
+ "required": true,
341
+ "schema": {
342
+ "type": "string"
343
+ }
344
+ }
345
+ ],
346
+ "requestBody": {
347
+ "description": "",
348
+ "content": {
349
+ "application/json-patch+json": {
350
+ "schema": {
351
+ "type": "array",
352
+ "items": {
353
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractAssetData"
354
+ }
355
+ }
356
+ },
357
+ "application/json": {
358
+ "schema": {
359
+ "type": "array",
360
+ "items": {
361
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractAssetData"
362
+ }
363
+ }
364
+ },
365
+ "text/json": {
366
+ "schema": {
367
+ "type": "array",
368
+ "items": {
369
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractAssetData"
370
+ }
371
+ }
372
+ },
373
+ "application/*+json": {
374
+ "schema": {
375
+ "type": "array",
376
+ "items": {
377
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractAssetData"
378
+ }
379
+ }
380
+ }
381
+ }
382
+ },
383
+ "responses": {
384
+ "201": {
385
+ "description": "Created",
386
+ "content": {
387
+ "text/plain": {
388
+ "schema": {
389
+ "type": "array",
390
+ "items": {
391
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Projections.SC.ContractAssetAddProjection"
392
+ }
393
+ }
394
+ },
395
+ "application/json": {
396
+ "schema": {
397
+ "type": "array",
398
+ "items": {
399
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Projections.SC.ContractAssetAddProjection"
400
+ }
401
+ }
402
+ },
403
+ "text/json": {
404
+ "schema": {
405
+ "type": "array",
406
+ "items": {
407
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Projections.SC.ContractAssetAddProjection"
408
+ }
409
+ }
410
+ }
411
+ }
412
+ },
413
+ "409": {
414
+ "description": "Conflict",
415
+ "content": {
416
+ "text/plain": {
417
+ "schema": {
418
+ "type": "array",
419
+ "items": {
420
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
421
+ }
422
+ }
423
+ },
424
+ "application/json": {
425
+ "schema": {
426
+ "type": "array",
427
+ "items": {
428
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
429
+ }
430
+ }
431
+ },
432
+ "text/json": {
433
+ "schema": {
434
+ "type": "array",
435
+ "items": {
436
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
437
+ }
438
+ }
439
+ }
440
+ }
441
+ },
442
+ "401": {
443
+ "description": "Unauthorized"
444
+ },
445
+ "403": {
446
+ "description": "Forbidden"
447
+ }
448
+ }
449
+ }
450
+ },
451
+ "/ServiceContract/{contractID}/assets/{assetID}": {
452
+ "delete": {
453
+ "tags": [
454
+ "ServiceContract"
455
+ ],
456
+ "summary": "Метод удаления объекта сязанного с сервисным договором",
457
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAssetDelete**",
458
+ "parameters": [
459
+ {
460
+ "name": "contractID",
461
+ "in": "path",
462
+ "description": "",
463
+ "required": true,
464
+ "schema": {
465
+ "type": "integer",
466
+ "format": "int32"
467
+ }
468
+ },
469
+ {
470
+ "name": "assetID",
471
+ "in": "path",
472
+ "description": "",
473
+ "required": true,
474
+ "schema": {
475
+ "type": "integer",
476
+ "format": "int32"
477
+ }
478
+ },
479
+ {
480
+ "name": "Authorization",
481
+ "in": "header",
482
+ "description": "Bearer",
483
+ "required": true,
484
+ "schema": {
485
+ "type": "string"
486
+ }
487
+ }
488
+ ],
489
+ "responses": {
490
+ "202": {
491
+ "description": "Accepted"
492
+ },
493
+ "409": {
494
+ "description": "Conflict",
495
+ "content": {
496
+ "text/plain": {
497
+ "schema": {
498
+ "type": "array",
499
+ "items": {
500
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
501
+ }
502
+ }
503
+ },
504
+ "application/json": {
505
+ "schema": {
506
+ "type": "array",
507
+ "items": {
508
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
509
+ }
510
+ }
511
+ },
512
+ "text/json": {
513
+ "schema": {
514
+ "type": "array",
515
+ "items": {
516
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
517
+ }
518
+ }
519
+ }
520
+ }
521
+ },
522
+ "401": {
523
+ "description": "Unauthorized"
524
+ },
525
+ "403": {
526
+ "description": "Forbidden"
527
+ }
528
+ }
529
+ },
530
+ "put": {
531
+ "tags": [
532
+ "ServiceContract"
533
+ ],
534
+ "summary": "Добавить объект к договору",
535
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAssetAdd**",
536
+ "parameters": [
537
+ {
538
+ "name": "contractID",
539
+ "in": "path",
540
+ "description": "",
541
+ "required": true,
542
+ "schema": {
543
+ "type": "integer",
544
+ "format": "int32"
545
+ }
546
+ },
547
+ {
548
+ "name": "assetID",
549
+ "in": "path",
550
+ "description": "",
551
+ "required": true,
552
+ "schema": {
553
+ "type": "integer",
554
+ "format": "int32"
555
+ }
556
+ },
557
+ {
558
+ "name": "includeChildren",
559
+ "in": "query",
560
+ "description": "Если передан - будут добавлены все доступные совершающему операцию дочерние элементы",
561
+ "schema": {
562
+ "type": "boolean",
563
+ "default": false
564
+ }
565
+ },
566
+ {
567
+ "name": "Authorization",
568
+ "in": "header",
569
+ "description": "Bearer",
570
+ "required": true,
571
+ "schema": {
572
+ "type": "string"
573
+ }
574
+ }
575
+ ],
576
+ "responses": {
577
+ "201": {
578
+ "description": "Created",
579
+ "content": {
580
+ "text/plain": {
581
+ "schema": {
582
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Projections.SC.ContractAssetAddProjection"
583
+ }
584
+ },
585
+ "application/json": {
586
+ "schema": {
587
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Projections.SC.ContractAssetAddProjection"
588
+ }
589
+ },
590
+ "text/json": {
591
+ "schema": {
592
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Projections.SC.ContractAssetAddProjection"
593
+ }
594
+ }
595
+ }
596
+ },
597
+ "409": {
598
+ "description": "Conflict",
599
+ "content": {
600
+ "text/plain": {
601
+ "schema": {
602
+ "type": "array",
603
+ "items": {
604
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
605
+ }
606
+ }
607
+ },
608
+ "application/json": {
609
+ "schema": {
610
+ "type": "array",
611
+ "items": {
612
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
613
+ }
614
+ }
615
+ },
616
+ "text/json": {
617
+ "schema": {
618
+ "type": "array",
619
+ "items": {
620
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
621
+ }
622
+ }
623
+ }
624
+ }
625
+ },
626
+ "401": {
627
+ "description": "Unauthorized"
628
+ },
629
+ "403": {
630
+ "description": "Forbidden"
631
+ }
632
+ }
633
+ }
634
+ },
635
+ "/ServiceContract/{contractID}/attachments": {
636
+ "get": {
637
+ "tags": [
638
+ "ServiceContract"
639
+ ],
640
+ "summary": "Метод получения списка файлов вложений прикрепленных к договору",
641
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAttachmentsList**<br />* Метод поддерживает диапазонный запрос через строку или заголовок запроса.",
642
+ "parameters": [
643
+ {
644
+ "name": "contractID",
645
+ "in": "path",
646
+ "description": "Идентификатор договора",
647
+ "required": true,
648
+ "schema": {
649
+ "type": "integer",
650
+ "format": "int32"
651
+ }
652
+ },
653
+ {
654
+ "name": "thumbnailSize",
655
+ "in": "query",
656
+ "description": "Размер эскиза (будет возвращен ближайший больший эскиз и доступных)",
657
+ "schema": {
658
+ "type": "integer",
659
+ "format": "int32"
660
+ }
661
+ },
662
+ {
663
+ "name": "Authorization",
664
+ "in": "header",
665
+ "description": "Bearer",
666
+ "required": true,
667
+ "schema": {
668
+ "type": "string"
669
+ }
670
+ },
671
+ {
672
+ "name": "Range",
673
+ "in": "header",
674
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
675
+ "schema": {
676
+ "type": "string"
677
+ }
678
+ },
679
+ {
680
+ "name": "offset",
681
+ "in": "query",
682
+ "description": "количество элементов, которое нобходимо пропустить",
683
+ "schema": {
684
+ "type": "string"
685
+ }
686
+ },
687
+ {
688
+ "name": "fetch",
689
+ "in": "query",
690
+ "description": "количество эементов, которое необходимо вернуть",
691
+ "schema": {
692
+ "type": "string"
693
+ }
694
+ }
695
+ ],
696
+ "responses": {
697
+ "200": {
698
+ "description": "OK",
699
+ "content": {
700
+ "text/plain": {
701
+ "schema": {
702
+ "type": "object",
703
+ "additionalProperties": {
704
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attachment.AttachmentListResult"
705
+ }
706
+ }
707
+ },
708
+ "application/json": {
709
+ "schema": {
710
+ "type": "object",
711
+ "additionalProperties": {
712
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attachment.AttachmentListResult"
713
+ }
714
+ }
715
+ },
716
+ "text/json": {
717
+ "schema": {
718
+ "type": "object",
719
+ "additionalProperties": {
720
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attachment.AttachmentListResult"
721
+ }
722
+ }
723
+ }
724
+ }
725
+ },
726
+ "500": {
727
+ "description": "Internal Server Error",
728
+ "content": {
729
+ "text/plain": {
730
+ "schema": {
731
+ "type": "array",
732
+ "items": {
733
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
734
+ }
735
+ }
736
+ },
737
+ "application/json": {
738
+ "schema": {
739
+ "type": "array",
740
+ "items": {
741
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
742
+ }
743
+ }
744
+ },
745
+ "text/json": {
746
+ "schema": {
747
+ "type": "array",
748
+ "items": {
749
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
750
+ }
751
+ }
752
+ }
753
+ }
754
+ },
755
+ "401": {
756
+ "description": "Unauthorized"
757
+ },
758
+ "403": {
759
+ "description": "Forbidden"
760
+ },
761
+ "206": {
762
+ "description": "PartialContent",
763
+ "headers": {
764
+ "Content-Range": {
765
+ "description": "items=FROM-TILL/OF , где FROM - начальный элемент (включая), TILL - конечный элемент (включая) OF - общее количество элементов",
766
+ "schema": {
767
+ "type": "string"
768
+ }
769
+ }
770
+ }
771
+ }
772
+ }
773
+ },
774
+ "post": {
775
+ "tags": [
776
+ "ServiceContract"
777
+ ],
778
+ "summary": "Метод связывающий договор и вложение",
779
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAttachmentAdd**",
780
+ "parameters": [
781
+ {
782
+ "name": "contractID",
783
+ "in": "path",
784
+ "required": true,
785
+ "schema": {
786
+ "type": "integer",
787
+ "format": "int32"
788
+ }
789
+ },
790
+ {
791
+ "name": "Authorization",
792
+ "in": "header",
793
+ "description": "Bearer",
794
+ "required": true,
795
+ "schema": {
796
+ "type": "string"
797
+ }
798
+ }
799
+ ],
800
+ "requestBody": {
801
+ "content": {
802
+ "application/json-patch+json": {
803
+ "schema": {
804
+ "type": "array",
805
+ "items": {
806
+ "type": "integer",
807
+ "format": "int32"
808
+ }
809
+ }
810
+ },
811
+ "application/json": {
812
+ "schema": {
813
+ "type": "array",
814
+ "items": {
815
+ "type": "integer",
816
+ "format": "int32"
817
+ }
818
+ }
819
+ },
820
+ "text/json": {
821
+ "schema": {
822
+ "type": "array",
823
+ "items": {
824
+ "type": "integer",
825
+ "format": "int32"
826
+ }
827
+ }
828
+ },
829
+ "application/*+json": {
830
+ "schema": {
831
+ "type": "array",
832
+ "items": {
833
+ "type": "integer",
834
+ "format": "int32"
835
+ }
836
+ }
837
+ }
838
+ }
839
+ },
840
+ "responses": {
841
+ "201": {
842
+ "description": "Created",
843
+ "content": {
844
+ "text/plain": {
845
+ "schema": {
846
+ "type": "array",
847
+ "items": {
848
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attachment.Base.AttachmentActionResultBase"
849
+ }
850
+ }
851
+ },
852
+ "application/json": {
853
+ "schema": {
854
+ "type": "array",
855
+ "items": {
856
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attachment.Base.AttachmentActionResultBase"
857
+ }
858
+ }
859
+ },
860
+ "text/json": {
861
+ "schema": {
862
+ "type": "array",
863
+ "items": {
864
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attachment.Base.AttachmentActionResultBase"
865
+ }
866
+ }
867
+ }
868
+ }
869
+ },
870
+ "500": {
871
+ "description": "Internal Server Error",
872
+ "content": {
873
+ "text/plain": {
874
+ "schema": {
875
+ "type": "array",
876
+ "items": {
877
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
878
+ }
879
+ }
880
+ },
881
+ "application/json": {
882
+ "schema": {
883
+ "type": "array",
884
+ "items": {
885
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
886
+ }
887
+ }
888
+ },
889
+ "text/json": {
890
+ "schema": {
891
+ "type": "array",
892
+ "items": {
893
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
894
+ }
895
+ }
896
+ }
897
+ }
898
+ },
899
+ "401": {
900
+ "description": "Unauthorized"
901
+ },
902
+ "403": {
903
+ "description": "Forbidden"
904
+ }
905
+ }
906
+ },
907
+ "delete": {
908
+ "tags": [
909
+ "ServiceContract"
910
+ ],
911
+ "summary": "Метод помечает связку договора и вложения как удаленную",
912
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAttachmentDelete**",
913
+ "parameters": [
914
+ {
915
+ "name": "contractID",
916
+ "in": "path",
917
+ "required": true,
918
+ "schema": {
919
+ "type": "integer",
920
+ "format": "int32"
921
+ }
922
+ },
923
+ {
924
+ "name": "Authorization",
925
+ "in": "header",
926
+ "description": "Bearer",
927
+ "required": true,
928
+ "schema": {
929
+ "type": "string"
930
+ }
931
+ }
932
+ ],
933
+ "requestBody": {
934
+ "content": {
935
+ "application/json-patch+json": {
936
+ "schema": {
937
+ "type": "array",
938
+ "items": {
939
+ "type": "integer",
940
+ "format": "int32"
941
+ }
942
+ }
943
+ },
944
+ "application/json": {
945
+ "schema": {
946
+ "type": "array",
947
+ "items": {
948
+ "type": "integer",
949
+ "format": "int32"
950
+ }
951
+ }
952
+ },
953
+ "text/json": {
954
+ "schema": {
955
+ "type": "array",
956
+ "items": {
957
+ "type": "integer",
958
+ "format": "int32"
959
+ }
960
+ }
961
+ },
962
+ "application/*+json": {
963
+ "schema": {
964
+ "type": "array",
965
+ "items": {
966
+ "type": "integer",
967
+ "format": "int32"
968
+ }
969
+ }
970
+ }
971
+ }
972
+ },
973
+ "responses": {
974
+ "202": {
975
+ "description": "Accepted"
976
+ },
977
+ "500": {
978
+ "description": "Internal Server Error",
979
+ "content": {
980
+ "text/plain": {
981
+ "schema": {
982
+ "type": "array",
983
+ "items": {
984
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
985
+ }
986
+ }
987
+ },
988
+ "application/json": {
989
+ "schema": {
990
+ "type": "array",
991
+ "items": {
992
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
993
+ }
994
+ }
995
+ },
996
+ "text/json": {
997
+ "schema": {
998
+ "type": "array",
999
+ "items": {
1000
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1001
+ }
1002
+ }
1003
+ }
1004
+ }
1005
+ },
1006
+ "401": {
1007
+ "description": "Unauthorized"
1008
+ },
1009
+ "403": {
1010
+ "description": "Forbidden"
1011
+ }
1012
+ }
1013
+ }
1014
+ },
1015
+ "/ServiceContract/{contractID}/attachment/{attachmentID}": {
1016
+ "get": {
1017
+ "tags": [
1018
+ "ServiceContract"
1019
+ ],
1020
+ "summary": "Метод получения прикрепленного к договору файла вложения",
1021
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAttachmentGet**",
1022
+ "parameters": [
1023
+ {
1024
+ "name": "contractID",
1025
+ "in": "path",
1026
+ "description": "Идентификатор договора",
1027
+ "required": true,
1028
+ "schema": {
1029
+ "type": "integer",
1030
+ "format": "int32"
1031
+ }
1032
+ },
1033
+ {
1034
+ "name": "attachmentID",
1035
+ "in": "path",
1036
+ "description": "Идентификатор прикрепленного файла к договору",
1037
+ "required": true,
1038
+ "schema": {
1039
+ "type": "integer",
1040
+ "format": "int32"
1041
+ }
1042
+ },
1043
+ {
1044
+ "name": "thumbnailSize",
1045
+ "in": "query",
1046
+ "description": "Размер эскиза (будет возвращен ближайший больший эскиз из доступных)",
1047
+ "schema": {
1048
+ "type": "integer",
1049
+ "format": "int32"
1050
+ }
1051
+ },
1052
+ {
1053
+ "name": "Authorization",
1054
+ "in": "header",
1055
+ "description": "Bearer",
1056
+ "required": true,
1057
+ "schema": {
1058
+ "type": "string"
1059
+ }
1060
+ }
1061
+ ],
1062
+ "responses": {
1063
+ "200": {
1064
+ "description": "OK",
1065
+ "content": {
1066
+ "text/plain": {
1067
+ "schema": {
1068
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attachment.AttachmentResult"
1069
+ }
1070
+ },
1071
+ "application/json": {
1072
+ "schema": {
1073
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attachment.AttachmentResult"
1074
+ }
1075
+ },
1076
+ "text/json": {
1077
+ "schema": {
1078
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attachment.AttachmentResult"
1079
+ }
1080
+ }
1081
+ }
1082
+ },
1083
+ "500": {
1084
+ "description": "Internal Server Error",
1085
+ "content": {
1086
+ "text/plain": {
1087
+ "schema": {
1088
+ "type": "array",
1089
+ "items": {
1090
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1091
+ }
1092
+ }
1093
+ },
1094
+ "application/json": {
1095
+ "schema": {
1096
+ "type": "array",
1097
+ "items": {
1098
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1099
+ }
1100
+ }
1101
+ },
1102
+ "text/json": {
1103
+ "schema": {
1104
+ "type": "array",
1105
+ "items": {
1106
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1107
+ }
1108
+ }
1109
+ }
1110
+ }
1111
+ },
1112
+ "401": {
1113
+ "description": "Unauthorized"
1114
+ },
1115
+ "403": {
1116
+ "description": "Forbidden"
1117
+ }
1118
+ }
1119
+ }
1120
+ },
1121
+ "/ServiceContract/{contractID}/attachments/{attachmentID}": {
1122
+ "get": {
1123
+ "tags": [
1124
+ "ServiceContract"
1125
+ ],
1126
+ "summary": "Метод получения TemporaryRedirect на временную ссылку для скачки файла",
1127
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAttachmentDownload**<br />* Метод поддерживает диапазонный запрос через строку или заголовок запроса.",
1128
+ "parameters": [
1129
+ {
1130
+ "name": "contractID",
1131
+ "in": "path",
1132
+ "description": "Идентификатор договора",
1133
+ "required": true,
1134
+ "schema": {
1135
+ "type": "integer",
1136
+ "format": "int32"
1137
+ }
1138
+ },
1139
+ {
1140
+ "name": "attachmentID",
1141
+ "in": "path",
1142
+ "description": "Идентификатор вложения",
1143
+ "required": true,
1144
+ "schema": {
1145
+ "type": "integer",
1146
+ "format": "int32"
1147
+ }
1148
+ },
1149
+ {
1150
+ "name": "thumbnailSize",
1151
+ "in": "query",
1152
+ "description": "Размер эскиза (будет возвращен ближайший больший эскиз и доступных)",
1153
+ "schema": {
1154
+ "type": "integer",
1155
+ "format": "int32"
1156
+ }
1157
+ },
1158
+ {
1159
+ "name": "noRedirect",
1160
+ "in": "query",
1161
+ "description": "Признак указывающий на то, что ссылку на файл необходимо передать в теле ответа на запрос",
1162
+ "schema": {
1163
+ "type": "boolean"
1164
+ }
1165
+ },
1166
+ {
1167
+ "name": "Authorization",
1168
+ "in": "header",
1169
+ "description": "Bearer",
1170
+ "required": true,
1171
+ "schema": {
1172
+ "type": "string"
1173
+ }
1174
+ },
1175
+ {
1176
+ "name": "Range",
1177
+ "in": "header",
1178
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
1179
+ "schema": {
1180
+ "type": "string"
1181
+ }
1182
+ },
1183
+ {
1184
+ "name": "offset",
1185
+ "in": "query",
1186
+ "description": "количество элементов, которое нобходимо пропустить",
1187
+ "schema": {
1188
+ "type": "string"
1189
+ }
1190
+ },
1191
+ {
1192
+ "name": "fetch",
1193
+ "in": "query",
1194
+ "description": "количество эементов, которое необходимо вернуть",
1195
+ "schema": {
1196
+ "type": "string"
1197
+ }
1198
+ }
1199
+ ],
1200
+ "responses": {
1201
+ "303": {
1202
+ "description": "See Other"
1203
+ },
1204
+ "401": {
1205
+ "description": "Unauthorized"
1206
+ },
1207
+ "403": {
1208
+ "description": "Forbidden"
1209
+ },
1210
+ "206": {
1211
+ "description": "PartialContent",
1212
+ "headers": {
1213
+ "Content-Range": {
1214
+ "description": "items=FROM-TILL/OF , где FROM - начальный элемент (включая), TILL - конечный элемент (включая) OF - общее количество элементов",
1215
+ "schema": {
1216
+ "type": "string"
1217
+ }
1218
+ }
1219
+ }
1220
+ }
1221
+ }
1222
+ }
1223
+ },
1224
+ "/ServiceContract/{contractID}/attachments/upload/fromForm": {
1225
+ "post": {
1226
+ "tags": [
1227
+ "ServiceContract"
1228
+ ],
1229
+ "summary": "Метод загружает файл на файловый сервер и привязывает его к договору. Данные будут получены из формы.",
1230
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAttachmentUpload**",
1231
+ "parameters": [
1232
+ {
1233
+ "name": "contractID",
1234
+ "in": "path",
1235
+ "description": "",
1236
+ "required": true,
1237
+ "schema": {
1238
+ "type": "integer",
1239
+ "format": "int32"
1240
+ }
1241
+ },
1242
+ {
1243
+ "name": "Authorization",
1244
+ "in": "header",
1245
+ "description": "Bearer",
1246
+ "required": true,
1247
+ "schema": {
1248
+ "type": "string"
1249
+ }
1250
+ }
1251
+ ],
1252
+ "requestBody": {
1253
+ "content": {
1254
+ "multipart/form-data": {
1255
+ "schema": {
1256
+ "required": [
1257
+ "File"
1258
+ ],
1259
+ "type": "object",
1260
+ "properties": {
1261
+ "Description": {
1262
+ "type": "string"
1263
+ },
1264
+ "IsPublic": {
1265
+ "type": "boolean"
1266
+ },
1267
+ "IsIgnorePossibleDuplication": {
1268
+ "type": "boolean"
1269
+ },
1270
+ "Roles": {
1271
+ "type": "array",
1272
+ "items": {
1273
+ "type": "integer",
1274
+ "format": "int32"
1275
+ }
1276
+ },
1277
+ "Coordinate": {
1278
+ "type": "string"
1279
+ },
1280
+ "File": {
1281
+ "type": "string",
1282
+ "format": "binary"
1283
+ },
1284
+ "FileName": {
1285
+ "type": "string"
1286
+ },
1287
+ "ContentType": {
1288
+ "type": "string"
1289
+ },
1290
+ "Uid": {
1291
+ "type": "string",
1292
+ "format": "uuid"
1293
+ },
1294
+ "ContentStream.CanRead": {
1295
+ "type": "boolean"
1296
+ },
1297
+ "ContentStream.CanSeek": {
1298
+ "type": "boolean"
1299
+ },
1300
+ "ContentStream.CanWrite": {
1301
+ "type": "boolean"
1302
+ },
1303
+ "ContentStream.Capacity": {
1304
+ "type": "integer",
1305
+ "format": "int32"
1306
+ },
1307
+ "ContentStream.Length": {
1308
+ "type": "integer",
1309
+ "format": "int64"
1310
+ },
1311
+ "ContentStream.Position": {
1312
+ "type": "integer",
1313
+ "format": "int64"
1314
+ },
1315
+ "ContentStream.CanTimeout": {
1316
+ "type": "boolean"
1317
+ },
1318
+ "ContentStream.ReadTimeout": {
1319
+ "type": "integer",
1320
+ "format": "int32"
1321
+ },
1322
+ "ContentStream.WriteTimeout": {
1323
+ "type": "integer",
1324
+ "format": "int32"
1325
+ },
1326
+ "Md5Hash": {
1327
+ "type": "string"
1328
+ },
1329
+ "ContentLength": {
1330
+ "type": "integer",
1331
+ "format": "int32"
1332
+ }
1333
+ }
1334
+ },
1335
+ "encoding": {
1336
+ "Description": {
1337
+ "style": "form"
1338
+ },
1339
+ "IsPublic": {
1340
+ "style": "form"
1341
+ },
1342
+ "IsIgnorePossibleDuplication": {
1343
+ "style": "form"
1344
+ },
1345
+ "Roles": {
1346
+ "style": "form"
1347
+ },
1348
+ "Coordinate": {
1349
+ "style": "form"
1350
+ },
1351
+ "File": {
1352
+ "style": "form"
1353
+ },
1354
+ "FileName": {
1355
+ "style": "form"
1356
+ },
1357
+ "ContentType": {
1358
+ "style": "form"
1359
+ },
1360
+ "Uid": {
1361
+ "style": "form"
1362
+ },
1363
+ "ContentStream.CanRead": {
1364
+ "style": "form"
1365
+ },
1366
+ "ContentStream.CanSeek": {
1367
+ "style": "form"
1368
+ },
1369
+ "ContentStream.CanWrite": {
1370
+ "style": "form"
1371
+ },
1372
+ "ContentStream.Capacity": {
1373
+ "style": "form"
1374
+ },
1375
+ "ContentStream.Length": {
1376
+ "style": "form"
1377
+ },
1378
+ "ContentStream.Position": {
1379
+ "style": "form"
1380
+ },
1381
+ "ContentStream.CanTimeout": {
1382
+ "style": "form"
1383
+ },
1384
+ "ContentStream.ReadTimeout": {
1385
+ "style": "form"
1386
+ },
1387
+ "ContentStream.WriteTimeout": {
1388
+ "style": "form"
1389
+ },
1390
+ "Md5Hash": {
1391
+ "style": "form"
1392
+ },
1393
+ "ContentLength": {
1394
+ "style": "form"
1395
+ }
1396
+ }
1397
+ }
1398
+ }
1399
+ },
1400
+ "responses": {
1401
+ "201": {
1402
+ "description": "Created",
1403
+ "content": {
1404
+ "text/plain": {
1405
+ "schema": {
1406
+ "$ref": "#/components/schemas/UploadResult"
1407
+ }
1408
+ },
1409
+ "application/json": {
1410
+ "schema": {
1411
+ "$ref": "#/components/schemas/UploadResult"
1412
+ }
1413
+ },
1414
+ "text/json": {
1415
+ "schema": {
1416
+ "$ref": "#/components/schemas/UploadResult"
1417
+ }
1418
+ }
1419
+ }
1420
+ },
1421
+ "500": {
1422
+ "description": "Internal Server Error",
1423
+ "content": {
1424
+ "text/plain": {
1425
+ "schema": {
1426
+ "type": "array",
1427
+ "items": {
1428
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1429
+ }
1430
+ }
1431
+ },
1432
+ "application/json": {
1433
+ "schema": {
1434
+ "type": "array",
1435
+ "items": {
1436
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1437
+ }
1438
+ }
1439
+ },
1440
+ "text/json": {
1441
+ "schema": {
1442
+ "type": "array",
1443
+ "items": {
1444
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1445
+ }
1446
+ }
1447
+ }
1448
+ }
1449
+ },
1450
+ "401": {
1451
+ "description": "Unauthorized"
1452
+ },
1453
+ "403": {
1454
+ "description": "Forbidden"
1455
+ }
1456
+ }
1457
+ }
1458
+ },
1459
+ "/ServiceContract/{contractID}/v2/attachments/upload/fromForm": {
1460
+ "post": {
1461
+ "tags": [
1462
+ "ServiceContract"
1463
+ ],
1464
+ "summary": "Метод загружает файлы на файловый сервер и привязывает его к договору. Данные будут получены из формы.",
1465
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAttachmentUpload**",
1466
+ "parameters": [
1467
+ {
1468
+ "name": "contractID",
1469
+ "in": "path",
1470
+ "description": "",
1471
+ "required": true,
1472
+ "schema": {
1473
+ "type": "integer",
1474
+ "format": "int32"
1475
+ }
1476
+ },
1477
+ {
1478
+ "name": "Authorization",
1479
+ "in": "header",
1480
+ "description": "Bearer",
1481
+ "required": true,
1482
+ "schema": {
1483
+ "type": "string"
1484
+ }
1485
+ }
1486
+ ],
1487
+ "requestBody": {
1488
+ "content": {
1489
+ "multipart/form-data": {
1490
+ "schema": {
1491
+ "type": "object",
1492
+ "properties": {
1493
+ "Attachments": {
1494
+ "type": "array",
1495
+ "items": {
1496
+ "$ref": "#/components/schemas/HubEx.Service.Common.AspNetCore.Data.Attachments.FromFormUploadData"
1497
+ },
1498
+ "description": "Данные загружаемого файла, полученные из формы"
1499
+ }
1500
+ }
1501
+ },
1502
+ "encoding": {
1503
+ "Attachments": {
1504
+ "style": "form"
1505
+ }
1506
+ }
1507
+ }
1508
+ }
1509
+ },
1510
+ "responses": {
1511
+ "201": {
1512
+ "description": "Created",
1513
+ "content": {
1514
+ "text/plain": {
1515
+ "schema": {
1516
+ "$ref": "#/components/schemas/UploadResult"
1517
+ }
1518
+ },
1519
+ "application/json": {
1520
+ "schema": {
1521
+ "$ref": "#/components/schemas/UploadResult"
1522
+ }
1523
+ },
1524
+ "text/json": {
1525
+ "schema": {
1526
+ "$ref": "#/components/schemas/UploadResult"
1527
+ }
1528
+ }
1529
+ }
1530
+ },
1531
+ "500": {
1532
+ "description": "Internal Server Error",
1533
+ "content": {
1534
+ "text/plain": {
1535
+ "schema": {
1536
+ "type": "array",
1537
+ "items": {
1538
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1539
+ }
1540
+ }
1541
+ },
1542
+ "application/json": {
1543
+ "schema": {
1544
+ "type": "array",
1545
+ "items": {
1546
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1547
+ }
1548
+ }
1549
+ },
1550
+ "text/json": {
1551
+ "schema": {
1552
+ "type": "array",
1553
+ "items": {
1554
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1555
+ }
1556
+ }
1557
+ }
1558
+ }
1559
+ },
1560
+ "401": {
1561
+ "description": "Unauthorized"
1562
+ },
1563
+ "403": {
1564
+ "description": "Forbidden"
1565
+ }
1566
+ }
1567
+ }
1568
+ },
1569
+ "/ServiceContract/{contractID}/attachments/upload/fromBody": {
1570
+ "post": {
1571
+ "tags": [
1572
+ "ServiceContract"
1573
+ ],
1574
+ "summary": "Метод загружает файл на файловый сервер и привязывает его к договору. Данные будут получены из тела запроса.",
1575
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAttachmentUpload**",
1576
+ "parameters": [
1577
+ {
1578
+ "name": "contractID",
1579
+ "in": "path",
1580
+ "description": "",
1581
+ "required": true,
1582
+ "schema": {
1583
+ "type": "integer",
1584
+ "format": "int32"
1585
+ }
1586
+ },
1587
+ {
1588
+ "name": "Authorization",
1589
+ "in": "header",
1590
+ "description": "Bearer",
1591
+ "required": true,
1592
+ "schema": {
1593
+ "type": "string"
1594
+ }
1595
+ }
1596
+ ],
1597
+ "requestBody": {
1598
+ "description": "",
1599
+ "content": {
1600
+ "application/json-patch+json": {
1601
+ "schema": {
1602
+ "$ref": "#/components/schemas/HubEx.Service.Common.AspNetCore.Data.Attachments.FromBodyUploadData"
1603
+ }
1604
+ },
1605
+ "application/json": {
1606
+ "schema": {
1607
+ "$ref": "#/components/schemas/HubEx.Service.Common.AspNetCore.Data.Attachments.FromBodyUploadData"
1608
+ }
1609
+ },
1610
+ "text/json": {
1611
+ "schema": {
1612
+ "$ref": "#/components/schemas/HubEx.Service.Common.AspNetCore.Data.Attachments.FromBodyUploadData"
1613
+ }
1614
+ },
1615
+ "application/*+json": {
1616
+ "schema": {
1617
+ "$ref": "#/components/schemas/HubEx.Service.Common.AspNetCore.Data.Attachments.FromBodyUploadData"
1618
+ }
1619
+ }
1620
+ }
1621
+ },
1622
+ "responses": {
1623
+ "201": {
1624
+ "description": "Created",
1625
+ "content": {
1626
+ "text/plain": {
1627
+ "schema": {
1628
+ "$ref": "#/components/schemas/UploadResult"
1629
+ }
1630
+ },
1631
+ "application/json": {
1632
+ "schema": {
1633
+ "$ref": "#/components/schemas/UploadResult"
1634
+ }
1635
+ },
1636
+ "text/json": {
1637
+ "schema": {
1638
+ "$ref": "#/components/schemas/UploadResult"
1639
+ }
1640
+ }
1641
+ }
1642
+ },
1643
+ "500": {
1644
+ "description": "Internal Server Error",
1645
+ "content": {
1646
+ "text/plain": {
1647
+ "schema": {
1648
+ "type": "array",
1649
+ "items": {
1650
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1651
+ }
1652
+ }
1653
+ },
1654
+ "application/json": {
1655
+ "schema": {
1656
+ "type": "array",
1657
+ "items": {
1658
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1659
+ }
1660
+ }
1661
+ },
1662
+ "text/json": {
1663
+ "schema": {
1664
+ "type": "array",
1665
+ "items": {
1666
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1667
+ }
1668
+ }
1669
+ }
1670
+ }
1671
+ },
1672
+ "401": {
1673
+ "description": "Unauthorized"
1674
+ },
1675
+ "403": {
1676
+ "description": "Forbidden"
1677
+ }
1678
+ }
1679
+ }
1680
+ },
1681
+ "/ServiceContract/{contractID}/attributes": {
1682
+ "get": {
1683
+ "tags": [
1684
+ "ServiceContract"
1685
+ ],
1686
+ "summary": "Возвращает список пользовтельских полей по договору",
1687
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractAttributesList**<br />* Метод поддерживает диапазонный запрос через строку или заголовок запроса.",
1688
+ "parameters": [
1689
+ {
1690
+ "name": "contractID",
1691
+ "in": "path",
1692
+ "description": "Идентификатор договора, для которого будут получены пользовательские поля",
1693
+ "required": true,
1694
+ "schema": {
1695
+ "type": "integer",
1696
+ "format": "int32"
1697
+ }
1698
+ },
1699
+ {
1700
+ "name": "Authorization",
1701
+ "in": "header",
1702
+ "description": "Bearer",
1703
+ "required": true,
1704
+ "schema": {
1705
+ "type": "string"
1706
+ }
1707
+ },
1708
+ {
1709
+ "name": "Range",
1710
+ "in": "header",
1711
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
1712
+ "schema": {
1713
+ "type": "string"
1714
+ }
1715
+ },
1716
+ {
1717
+ "name": "offset",
1718
+ "in": "query",
1719
+ "description": "количество элементов, которое нобходимо пропустить",
1720
+ "schema": {
1721
+ "type": "string"
1722
+ }
1723
+ },
1724
+ {
1725
+ "name": "fetch",
1726
+ "in": "query",
1727
+ "description": "количество эементов, которое необходимо вернуть",
1728
+ "schema": {
1729
+ "type": "string"
1730
+ }
1731
+ }
1732
+ ],
1733
+ "responses": {
1734
+ "200": {
1735
+ "description": "OK",
1736
+ "content": {
1737
+ "text/plain": {
1738
+ "schema": {
1739
+ "type": "array",
1740
+ "items": {
1741
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attribute.ContractAttributeResult"
1742
+ }
1743
+ }
1744
+ },
1745
+ "application/json": {
1746
+ "schema": {
1747
+ "type": "array",
1748
+ "items": {
1749
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attribute.ContractAttributeResult"
1750
+ }
1751
+ }
1752
+ },
1753
+ "text/json": {
1754
+ "schema": {
1755
+ "type": "array",
1756
+ "items": {
1757
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attribute.ContractAttributeResult"
1758
+ }
1759
+ }
1760
+ }
1761
+ }
1762
+ },
1763
+ "400": {
1764
+ "description": "Bad Request",
1765
+ "content": {
1766
+ "text/plain": {
1767
+ "schema": {
1768
+ "type": "array",
1769
+ "items": {
1770
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1771
+ }
1772
+ }
1773
+ },
1774
+ "application/json": {
1775
+ "schema": {
1776
+ "type": "array",
1777
+ "items": {
1778
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1779
+ }
1780
+ }
1781
+ },
1782
+ "text/json": {
1783
+ "schema": {
1784
+ "type": "array",
1785
+ "items": {
1786
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1787
+ }
1788
+ }
1789
+ }
1790
+ }
1791
+ },
1792
+ "401": {
1793
+ "description": "Unauthorized"
1794
+ },
1795
+ "403": {
1796
+ "description": "Forbidden"
1797
+ },
1798
+ "206": {
1799
+ "description": "PartialContent",
1800
+ "headers": {
1801
+ "Content-Range": {
1802
+ "description": "items=FROM-TILL/OF , где FROM - начальный элемент (включая), TILL - конечный элемент (включая) OF - общее количество элементов",
1803
+ "schema": {
1804
+ "type": "string"
1805
+ }
1806
+ }
1807
+ }
1808
+ }
1809
+ }
1810
+ }
1811
+ },
1812
+ "/ServiceContract/{contractID}/contacts": {
1813
+ "get": {
1814
+ "tags": [
1815
+ "ServiceContract"
1816
+ ],
1817
+ "summary": "Метод получения списка контактов ответственных по договору",
1818
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractContactList**<br />* Метод поддерживает диапазонный запрос через строку или заголовок запроса.",
1819
+ "parameters": [
1820
+ {
1821
+ "name": "contractID",
1822
+ "in": "path",
1823
+ "description": "",
1824
+ "required": true,
1825
+ "schema": {
1826
+ "type": "integer",
1827
+ "format": "int32"
1828
+ }
1829
+ },
1830
+ {
1831
+ "name": "Authorization",
1832
+ "in": "header",
1833
+ "description": "Bearer",
1834
+ "required": true,
1835
+ "schema": {
1836
+ "type": "string"
1837
+ }
1838
+ },
1839
+ {
1840
+ "name": "Range",
1841
+ "in": "header",
1842
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
1843
+ "schema": {
1844
+ "type": "string"
1845
+ }
1846
+ },
1847
+ {
1848
+ "name": "offset",
1849
+ "in": "query",
1850
+ "description": "количество элементов, которое нобходимо пропустить",
1851
+ "schema": {
1852
+ "type": "string"
1853
+ }
1854
+ },
1855
+ {
1856
+ "name": "fetch",
1857
+ "in": "query",
1858
+ "description": "количество эементов, которое необходимо вернуть",
1859
+ "schema": {
1860
+ "type": "string"
1861
+ }
1862
+ }
1863
+ ],
1864
+ "responses": {
1865
+ "200": {
1866
+ "description": "OK",
1867
+ "content": {
1868
+ "text/plain": {
1869
+ "schema": {
1870
+ "type": "object",
1871
+ "additionalProperties": {
1872
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Contact.ContactResultBase"
1873
+ }
1874
+ }
1875
+ },
1876
+ "application/json": {
1877
+ "schema": {
1878
+ "type": "object",
1879
+ "additionalProperties": {
1880
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Contact.ContactResultBase"
1881
+ }
1882
+ }
1883
+ },
1884
+ "text/json": {
1885
+ "schema": {
1886
+ "type": "object",
1887
+ "additionalProperties": {
1888
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Contact.ContactResultBase"
1889
+ }
1890
+ }
1891
+ }
1892
+ }
1893
+ },
1894
+ "400": {
1895
+ "description": "Bad Request",
1896
+ "content": {
1897
+ "text/plain": {
1898
+ "schema": {
1899
+ "type": "array",
1900
+ "items": {
1901
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1902
+ }
1903
+ }
1904
+ },
1905
+ "application/json": {
1906
+ "schema": {
1907
+ "type": "array",
1908
+ "items": {
1909
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1910
+ }
1911
+ }
1912
+ },
1913
+ "text/json": {
1914
+ "schema": {
1915
+ "type": "array",
1916
+ "items": {
1917
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
1918
+ }
1919
+ }
1920
+ }
1921
+ }
1922
+ },
1923
+ "401": {
1924
+ "description": "Unauthorized"
1925
+ },
1926
+ "403": {
1927
+ "description": "Forbidden"
1928
+ },
1929
+ "206": {
1930
+ "description": "PartialContent",
1931
+ "headers": {
1932
+ "Content-Range": {
1933
+ "description": "items=FROM-TILL/OF , где FROM - начальный элемент (включая), TILL - конечный элемент (включая) OF - общее количество элементов",
1934
+ "schema": {
1935
+ "type": "string"
1936
+ }
1937
+ }
1938
+ }
1939
+ }
1940
+ }
1941
+ },
1942
+ "delete": {
1943
+ "tags": [
1944
+ "ServiceContract"
1945
+ ],
1946
+ "summary": "Метод удаления контактов привязанных к договорам",
1947
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractContactDelete**",
1948
+ "parameters": [
1949
+ {
1950
+ "name": "contractID",
1951
+ "in": "path",
1952
+ "description": "",
1953
+ "required": true,
1954
+ "schema": {
1955
+ "type": "integer",
1956
+ "format": "int32"
1957
+ }
1958
+ },
1959
+ {
1960
+ "name": "Authorization",
1961
+ "in": "header",
1962
+ "description": "Bearer",
1963
+ "required": true,
1964
+ "schema": {
1965
+ "type": "string"
1966
+ }
1967
+ }
1968
+ ],
1969
+ "requestBody": {
1970
+ "description": "",
1971
+ "content": {
1972
+ "application/json-patch+json": {
1973
+ "schema": {
1974
+ "type": "array",
1975
+ "items": {
1976
+ "type": "integer",
1977
+ "format": "int32"
1978
+ }
1979
+ }
1980
+ },
1981
+ "application/json": {
1982
+ "schema": {
1983
+ "type": "array",
1984
+ "items": {
1985
+ "type": "integer",
1986
+ "format": "int32"
1987
+ }
1988
+ }
1989
+ },
1990
+ "text/json": {
1991
+ "schema": {
1992
+ "type": "array",
1993
+ "items": {
1994
+ "type": "integer",
1995
+ "format": "int32"
1996
+ }
1997
+ }
1998
+ },
1999
+ "application/*+json": {
2000
+ "schema": {
2001
+ "type": "array",
2002
+ "items": {
2003
+ "type": "integer",
2004
+ "format": "int32"
2005
+ }
2006
+ }
2007
+ }
2008
+ }
2009
+ },
2010
+ "responses": {
2011
+ "202": {
2012
+ "description": "Accepted"
2013
+ },
2014
+ "409": {
2015
+ "description": "Conflict",
2016
+ "content": {
2017
+ "text/plain": {
2018
+ "schema": {
2019
+ "type": "array",
2020
+ "items": {
2021
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2022
+ }
2023
+ }
2024
+ },
2025
+ "application/json": {
2026
+ "schema": {
2027
+ "type": "array",
2028
+ "items": {
2029
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2030
+ }
2031
+ }
2032
+ },
2033
+ "text/json": {
2034
+ "schema": {
2035
+ "type": "array",
2036
+ "items": {
2037
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2038
+ }
2039
+ }
2040
+ }
2041
+ }
2042
+ },
2043
+ "401": {
2044
+ "description": "Unauthorized"
2045
+ },
2046
+ "403": {
2047
+ "description": "Forbidden"
2048
+ }
2049
+ }
2050
+ },
2051
+ "post": {
2052
+ "tags": [
2053
+ "ServiceContract"
2054
+ ],
2055
+ "summary": "Метод добавления контактов к договорам",
2056
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractContactAdd**",
2057
+ "parameters": [
2058
+ {
2059
+ "name": "contractID",
2060
+ "in": "path",
2061
+ "description": "",
2062
+ "required": true,
2063
+ "schema": {
2064
+ "type": "integer",
2065
+ "format": "int32"
2066
+ }
2067
+ },
2068
+ {
2069
+ "name": "Authorization",
2070
+ "in": "header",
2071
+ "description": "Bearer",
2072
+ "required": true,
2073
+ "schema": {
2074
+ "type": "string"
2075
+ }
2076
+ }
2077
+ ],
2078
+ "requestBody": {
2079
+ "description": "",
2080
+ "content": {
2081
+ "application/json-patch+json": {
2082
+ "schema": {
2083
+ "type": "array",
2084
+ "items": {
2085
+ "type": "integer",
2086
+ "format": "int32"
2087
+ }
2088
+ }
2089
+ },
2090
+ "application/json": {
2091
+ "schema": {
2092
+ "type": "array",
2093
+ "items": {
2094
+ "type": "integer",
2095
+ "format": "int32"
2096
+ }
2097
+ }
2098
+ },
2099
+ "text/json": {
2100
+ "schema": {
2101
+ "type": "array",
2102
+ "items": {
2103
+ "type": "integer",
2104
+ "format": "int32"
2105
+ }
2106
+ }
2107
+ },
2108
+ "application/*+json": {
2109
+ "schema": {
2110
+ "type": "array",
2111
+ "items": {
2112
+ "type": "integer",
2113
+ "format": "int32"
2114
+ }
2115
+ }
2116
+ }
2117
+ }
2118
+ },
2119
+ "responses": {
2120
+ "201": {
2121
+ "description": "Created",
2122
+ "content": {
2123
+ "text/plain": {
2124
+ "schema": {
2125
+ "type": "array",
2126
+ "items": {
2127
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Projections.SC.ContractContactAddProjection"
2128
+ }
2129
+ }
2130
+ },
2131
+ "application/json": {
2132
+ "schema": {
2133
+ "type": "array",
2134
+ "items": {
2135
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Projections.SC.ContractContactAddProjection"
2136
+ }
2137
+ }
2138
+ },
2139
+ "text/json": {
2140
+ "schema": {
2141
+ "type": "array",
2142
+ "items": {
2143
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Projections.SC.ContractContactAddProjection"
2144
+ }
2145
+ }
2146
+ }
2147
+ }
2148
+ },
2149
+ "409": {
2150
+ "description": "Conflict",
2151
+ "content": {
2152
+ "text/plain": {
2153
+ "schema": {
2154
+ "type": "array",
2155
+ "items": {
2156
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2157
+ }
2158
+ }
2159
+ },
2160
+ "application/json": {
2161
+ "schema": {
2162
+ "type": "array",
2163
+ "items": {
2164
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2165
+ }
2166
+ }
2167
+ },
2168
+ "text/json": {
2169
+ "schema": {
2170
+ "type": "array",
2171
+ "items": {
2172
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2173
+ }
2174
+ }
2175
+ }
2176
+ }
2177
+ },
2178
+ "401": {
2179
+ "description": "Unauthorized"
2180
+ },
2181
+ "403": {
2182
+ "description": "Forbidden"
2183
+ }
2184
+ }
2185
+ }
2186
+ },
2187
+ "/ServiceContract/{contractID}/contacts/{contactID}": {
2188
+ "delete": {
2189
+ "tags": [
2190
+ "ServiceContract"
2191
+ ],
2192
+ "summary": "Метод удаления контакта привязанного к договору по Id",
2193
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractContactDelete**",
2194
+ "parameters": [
2195
+ {
2196
+ "name": "contractID",
2197
+ "in": "path",
2198
+ "description": "",
2199
+ "required": true,
2200
+ "schema": {
2201
+ "type": "integer",
2202
+ "format": "int32"
2203
+ }
2204
+ },
2205
+ {
2206
+ "name": "contactID",
2207
+ "in": "path",
2208
+ "description": "",
2209
+ "required": true,
2210
+ "schema": {
2211
+ "type": "integer",
2212
+ "format": "int32"
2213
+ }
2214
+ },
2215
+ {
2216
+ "name": "Authorization",
2217
+ "in": "header",
2218
+ "description": "Bearer",
2219
+ "required": true,
2220
+ "schema": {
2221
+ "type": "string"
2222
+ }
2223
+ }
2224
+ ],
2225
+ "responses": {
2226
+ "202": {
2227
+ "description": "Accepted"
2228
+ },
2229
+ "409": {
2230
+ "description": "Conflict",
2231
+ "content": {
2232
+ "text/plain": {
2233
+ "schema": {
2234
+ "type": "array",
2235
+ "items": {
2236
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2237
+ }
2238
+ }
2239
+ },
2240
+ "application/json": {
2241
+ "schema": {
2242
+ "type": "array",
2243
+ "items": {
2244
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2245
+ }
2246
+ }
2247
+ },
2248
+ "text/json": {
2249
+ "schema": {
2250
+ "type": "array",
2251
+ "items": {
2252
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2253
+ }
2254
+ }
2255
+ }
2256
+ }
2257
+ },
2258
+ "401": {
2259
+ "description": "Unauthorized"
2260
+ },
2261
+ "403": {
2262
+ "description": "Forbidden"
2263
+ }
2264
+ }
2265
+ },
2266
+ "put": {
2267
+ "tags": [
2268
+ "ServiceContract"
2269
+ ],
2270
+ "summary": "Метод добавления контакта к договору",
2271
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractContactAdd**",
2272
+ "parameters": [
2273
+ {
2274
+ "name": "contractID",
2275
+ "in": "path",
2276
+ "description": "Идентификатор существующего договора",
2277
+ "required": true,
2278
+ "schema": {
2279
+ "type": "integer",
2280
+ "format": "int32"
2281
+ }
2282
+ },
2283
+ {
2284
+ "name": "contactID",
2285
+ "in": "path",
2286
+ "description": "Идентификатор добавляемого к договору контакта",
2287
+ "required": true,
2288
+ "schema": {
2289
+ "type": "integer",
2290
+ "format": "int32"
2291
+ }
2292
+ },
2293
+ {
2294
+ "name": "Authorization",
2295
+ "in": "header",
2296
+ "description": "Bearer",
2297
+ "required": true,
2298
+ "schema": {
2299
+ "type": "string"
2300
+ }
2301
+ }
2302
+ ],
2303
+ "responses": {
2304
+ "201": {
2305
+ "description": "Created",
2306
+ "content": {
2307
+ "text/plain": {
2308
+ "schema": {
2309
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Projections.SC.ContractContactAddProjection"
2310
+ }
2311
+ },
2312
+ "application/json": {
2313
+ "schema": {
2314
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Projections.SC.ContractContactAddProjection"
2315
+ }
2316
+ },
2317
+ "text/json": {
2318
+ "schema": {
2319
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Projections.SC.ContractContactAddProjection"
2320
+ }
2321
+ }
2322
+ }
2323
+ },
2324
+ "409": {
2325
+ "description": "Conflict",
2326
+ "content": {
2327
+ "text/plain": {
2328
+ "schema": {
2329
+ "type": "array",
2330
+ "items": {
2331
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2332
+ }
2333
+ }
2334
+ },
2335
+ "application/json": {
2336
+ "schema": {
2337
+ "type": "array",
2338
+ "items": {
2339
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2340
+ }
2341
+ }
2342
+ },
2343
+ "text/json": {
2344
+ "schema": {
2345
+ "type": "array",
2346
+ "items": {
2347
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2348
+ }
2349
+ }
2350
+ }
2351
+ }
2352
+ },
2353
+ "401": {
2354
+ "description": "Unauthorized"
2355
+ },
2356
+ "403": {
2357
+ "description": "Forbidden"
2358
+ }
2359
+ }
2360
+ }
2361
+ },
2362
+ "/ServiceContract/{contractID}": {
2363
+ "get": {
2364
+ "tags": [
2365
+ "ServiceContract"
2366
+ ],
2367
+ "summary": "Метод получения договора обслуживания по ID",
2368
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractGet**",
2369
+ "parameters": [
2370
+ {
2371
+ "name": "contractID",
2372
+ "in": "path",
2373
+ "description": "Идентификатор запрашиваемого договора",
2374
+ "required": true,
2375
+ "schema": {
2376
+ "type": "integer",
2377
+ "format": "int32"
2378
+ }
2379
+ },
2380
+ {
2381
+ "name": "Authorization",
2382
+ "in": "header",
2383
+ "description": "Bearer",
2384
+ "required": true,
2385
+ "schema": {
2386
+ "type": "string"
2387
+ }
2388
+ }
2389
+ ],
2390
+ "responses": {
2391
+ "200": {
2392
+ "description": "OK",
2393
+ "content": {
2394
+ "text/plain": {
2395
+ "schema": {
2396
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Contract.ContractGetResult"
2397
+ }
2398
+ },
2399
+ "application/json": {
2400
+ "schema": {
2401
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Contract.ContractGetResult"
2402
+ }
2403
+ },
2404
+ "text/json": {
2405
+ "schema": {
2406
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Contract.ContractGetResult"
2407
+ }
2408
+ }
2409
+ }
2410
+ },
2411
+ "401": {
2412
+ "description": "Unauthorized"
2413
+ },
2414
+ "403": {
2415
+ "description": "Forbidden"
2416
+ }
2417
+ }
2418
+ }
2419
+ },
2420
+ "/ServiceContract": {
2421
+ "get": {
2422
+ "tags": [
2423
+ "ServiceContract"
2424
+ ],
2425
+ "summary": "Метод получения списка договоров обслуживания",
2426
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractList**<br />* Метод поддерживает диапазонный запрос через строку или заголовок запроса.",
2427
+ "parameters": [
2428
+ {
2429
+ "name": "searchText",
2430
+ "in": "query",
2431
+ "description": "",
2432
+ "schema": {
2433
+ "type": "string"
2434
+ }
2435
+ },
2436
+ {
2437
+ "name": "Authorization",
2438
+ "in": "header",
2439
+ "description": "Bearer",
2440
+ "required": true,
2441
+ "schema": {
2442
+ "type": "string"
2443
+ }
2444
+ },
2445
+ {
2446
+ "name": "Range",
2447
+ "in": "header",
2448
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
2449
+ "schema": {
2450
+ "type": "string"
2451
+ }
2452
+ },
2453
+ {
2454
+ "name": "offset",
2455
+ "in": "query",
2456
+ "description": "количество элементов, которое нобходимо пропустить",
2457
+ "schema": {
2458
+ "type": "string"
2459
+ }
2460
+ },
2461
+ {
2462
+ "name": "fetch",
2463
+ "in": "query",
2464
+ "description": "количество эементов, которое необходимо вернуть",
2465
+ "schema": {
2466
+ "type": "string"
2467
+ }
2468
+ },
2469
+ {
2470
+ "name": "taskID",
2471
+ "in": "query",
2472
+ "description": "Идентификаторы заявок, по которым будет отфильтрован результат",
2473
+ "schema": {
2474
+ "type": "int32",
2475
+ "default": null
2476
+ }
2477
+ },
2478
+ {
2479
+ "name": "assetID",
2480
+ "in": "query",
2481
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
2482
+ "schema": {
2483
+ "type": "int32",
2484
+ "default": null
2485
+ }
2486
+ },
2487
+ {
2488
+ "name": "includeUniversalContractsInAssetFilter",
2489
+ "in": "query",
2490
+ "description": "Если true и передан фильтр по объектам, то будут включены договора не привязанные к конкретным объектам.",
2491
+ "schema": {
2492
+ "enum": [
2493
+ "true",
2494
+ "false"
2495
+ ],
2496
+ "type": "boolean",
2497
+ "default": null
2498
+ }
2499
+ },
2500
+ {
2501
+ "name": "companyID",
2502
+ "in": "query",
2503
+ "description": "Идентификаторы компаний, по которым будет отфильтрован результат",
2504
+ "schema": {
2505
+ "type": "int32",
2506
+ "default": null
2507
+ }
2508
+ },
2509
+ {
2510
+ "name": "contactID",
2511
+ "in": "query",
2512
+ "description": "Идентификаторы контактов, по которым будет отфильтрован результат",
2513
+ "schema": {
2514
+ "type": "int32",
2515
+ "default": null
2516
+ }
2517
+ },
2518
+ {
2519
+ "name": "validFrom",
2520
+ "in": "query",
2521
+ "description": "Начальный период фильтрации по сроку действия договора",
2522
+ "schema": {
2523
+ "type": "datetime",
2524
+ "format": "UTC ISO-8601",
2525
+ "default": null
2526
+ }
2527
+ },
2528
+ {
2529
+ "name": "validTill",
2530
+ "in": "query",
2531
+ "description": "Конечный период фильтрации по сроку действия договора",
2532
+ "schema": {
2533
+ "type": "datetime",
2534
+ "format": "UTC ISO-8601",
2535
+ "default": null
2536
+ }
2537
+ },
2538
+ {
2539
+ "name": "searchText",
2540
+ "in": "query",
2541
+ "description": "Строка поиска в текстовых полях договора",
2542
+ "schema": {
2543
+ "type": "string",
2544
+ "default": null
2545
+ }
2546
+ }
2547
+ ],
2548
+ "responses": {
2549
+ "200": {
2550
+ "description": "OK",
2551
+ "content": {
2552
+ "text/plain": {
2553
+ "schema": {
2554
+ "type": "object",
2555
+ "additionalProperties": {
2556
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Contract.ContractListResult"
2557
+ }
2558
+ }
2559
+ },
2560
+ "application/json": {
2561
+ "schema": {
2562
+ "type": "object",
2563
+ "additionalProperties": {
2564
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Contract.ContractListResult"
2565
+ }
2566
+ }
2567
+ },
2568
+ "text/json": {
2569
+ "schema": {
2570
+ "type": "object",
2571
+ "additionalProperties": {
2572
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Contract.ContractListResult"
2573
+ }
2574
+ }
2575
+ }
2576
+ }
2577
+ },
2578
+ "401": {
2579
+ "description": "Unauthorized"
2580
+ },
2581
+ "403": {
2582
+ "description": "Forbidden"
2583
+ },
2584
+ "206": {
2585
+ "description": "PartialContent",
2586
+ "headers": {
2587
+ "Content-Range": {
2588
+ "description": "items=FROM-TILL/OF , где FROM - начальный элемент (включая), TILL - конечный элемент (включая) OF - общее количество элементов",
2589
+ "schema": {
2590
+ "type": "string"
2591
+ }
2592
+ }
2593
+ }
2594
+ }
2595
+ }
2596
+ },
2597
+ "head": {
2598
+ "tags": [
2599
+ "ServiceContract"
2600
+ ],
2601
+ "summary": "Метод получения общего количества договоров обслуживания",
2602
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractList**",
2603
+ "parameters": [
2604
+ {
2605
+ "name": "searchText",
2606
+ "in": "query",
2607
+ "description": "",
2608
+ "schema": {
2609
+ "type": "string"
2610
+ }
2611
+ },
2612
+ {
2613
+ "name": "Authorization",
2614
+ "in": "header",
2615
+ "description": "Bearer",
2616
+ "required": true,
2617
+ "schema": {
2618
+ "type": "string"
2619
+ }
2620
+ },
2621
+ {
2622
+ "name": "taskID",
2623
+ "in": "query",
2624
+ "description": "Идентификаторы заявок, по которым будет отфильтрован результат",
2625
+ "schema": {
2626
+ "type": "int32",
2627
+ "default": null
2628
+ }
2629
+ },
2630
+ {
2631
+ "name": "assetID",
2632
+ "in": "query",
2633
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
2634
+ "schema": {
2635
+ "type": "int32",
2636
+ "default": null
2637
+ }
2638
+ },
2639
+ {
2640
+ "name": "includeUniversalContractsInAssetFilter",
2641
+ "in": "query",
2642
+ "description": "Если true и передан фильтр по объектам, то будут включены договора не привязанные к конкретным объектам.",
2643
+ "schema": {
2644
+ "enum": [
2645
+ "true",
2646
+ "false"
2647
+ ],
2648
+ "type": "boolean",
2649
+ "default": null
2650
+ }
2651
+ },
2652
+ {
2653
+ "name": "companyID",
2654
+ "in": "query",
2655
+ "description": "Идентификаторы компаний, по которым будет отфильтрован результат",
2656
+ "schema": {
2657
+ "type": "int32",
2658
+ "default": null
2659
+ }
2660
+ },
2661
+ {
2662
+ "name": "contactID",
2663
+ "in": "query",
2664
+ "description": "Идентификаторы контактов, по которым будет отфильтрован результат",
2665
+ "schema": {
2666
+ "type": "int32",
2667
+ "default": null
2668
+ }
2669
+ },
2670
+ {
2671
+ "name": "validFrom",
2672
+ "in": "query",
2673
+ "description": "Начальный период фильтрации по сроку действия договора",
2674
+ "schema": {
2675
+ "type": "datetime",
2676
+ "format": "UTC ISO-8601",
2677
+ "default": null
2678
+ }
2679
+ },
2680
+ {
2681
+ "name": "validTill",
2682
+ "in": "query",
2683
+ "description": "Конечный период фильтрации по сроку действия договора",
2684
+ "schema": {
2685
+ "type": "datetime",
2686
+ "format": "UTC ISO-8601",
2687
+ "default": null
2688
+ }
2689
+ },
2690
+ {
2691
+ "name": "searchText",
2692
+ "in": "query",
2693
+ "description": "Строка поиска в текстовых полях договора",
2694
+ "schema": {
2695
+ "type": "string",
2696
+ "default": null
2697
+ }
2698
+ }
2699
+ ],
2700
+ "responses": {
2701
+ "200": {
2702
+ "description": "OK"
2703
+ },
2704
+ "401": {
2705
+ "description": "Unauthorized"
2706
+ },
2707
+ "403": {
2708
+ "description": "Forbidden"
2709
+ }
2710
+ }
2711
+ },
2712
+ "post": {
2713
+ "tags": [
2714
+ "ServiceContract"
2715
+ ],
2716
+ "summary": "Метод для создания или обновления договора/договоров обслуживания",
2717
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractMerge**",
2718
+ "parameters": [
2719
+ {
2720
+ "name": "Authorization",
2721
+ "in": "header",
2722
+ "description": "Bearer",
2723
+ "required": true,
2724
+ "schema": {
2725
+ "type": "string"
2726
+ }
2727
+ }
2728
+ ],
2729
+ "requestBody": {
2730
+ "description": "",
2731
+ "content": {
2732
+ "application/json-patch+json": {
2733
+ "schema": {
2734
+ "type": "array",
2735
+ "items": {
2736
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractMergeData"
2737
+ }
2738
+ }
2739
+ },
2740
+ "application/json": {
2741
+ "schema": {
2742
+ "type": "array",
2743
+ "items": {
2744
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractMergeData"
2745
+ }
2746
+ }
2747
+ },
2748
+ "text/json": {
2749
+ "schema": {
2750
+ "type": "array",
2751
+ "items": {
2752
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractMergeData"
2753
+ }
2754
+ }
2755
+ },
2756
+ "application/*+json": {
2757
+ "schema": {
2758
+ "type": "array",
2759
+ "items": {
2760
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractMergeData"
2761
+ }
2762
+ }
2763
+ }
2764
+ }
2765
+ },
2766
+ "responses": {
2767
+ "201": {
2768
+ "description": "Created",
2769
+ "content": {
2770
+ "text/plain": {
2771
+ "schema": {
2772
+ "type": "array",
2773
+ "items": {
2774
+ "type": "integer",
2775
+ "format": "int32"
2776
+ }
2777
+ }
2778
+ },
2779
+ "application/json": {
2780
+ "schema": {
2781
+ "type": "array",
2782
+ "items": {
2783
+ "type": "integer",
2784
+ "format": "int32"
2785
+ }
2786
+ }
2787
+ },
2788
+ "text/json": {
2789
+ "schema": {
2790
+ "type": "array",
2791
+ "items": {
2792
+ "type": "integer",
2793
+ "format": "int32"
2794
+ }
2795
+ }
2796
+ }
2797
+ }
2798
+ },
2799
+ "401": {
2800
+ "description": "Unauthorized"
2801
+ },
2802
+ "403": {
2803
+ "description": "Forbidden"
2804
+ }
2805
+ }
2806
+ },
2807
+ "put": {
2808
+ "tags": [
2809
+ "ServiceContract"
2810
+ ],
2811
+ "summary": "Метод изменения существующей заявки(ок)",
2812
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractMerge**",
2813
+ "parameters": [
2814
+ {
2815
+ "name": "Authorization",
2816
+ "in": "header",
2817
+ "description": "Bearer",
2818
+ "required": true,
2819
+ "schema": {
2820
+ "type": "string"
2821
+ }
2822
+ }
2823
+ ],
2824
+ "requestBody": {
2825
+ "description": "Информация по файлу вложения",
2826
+ "content": {
2827
+ "application/json-patch+json": {
2828
+ "schema": {
2829
+ "type": "array",
2830
+ "items": {
2831
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractMergeData"
2832
+ }
2833
+ }
2834
+ },
2835
+ "application/json": {
2836
+ "schema": {
2837
+ "type": "array",
2838
+ "items": {
2839
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractMergeData"
2840
+ }
2841
+ }
2842
+ },
2843
+ "text/json": {
2844
+ "schema": {
2845
+ "type": "array",
2846
+ "items": {
2847
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractMergeData"
2848
+ }
2849
+ }
2850
+ },
2851
+ "application/*+json": {
2852
+ "schema": {
2853
+ "type": "array",
2854
+ "items": {
2855
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractMergeData"
2856
+ }
2857
+ }
2858
+ }
2859
+ }
2860
+ },
2861
+ "responses": {
2862
+ "202": {
2863
+ "description": "Accepted"
2864
+ },
2865
+ "401": {
2866
+ "description": "Unauthorized"
2867
+ },
2868
+ "403": {
2869
+ "description": "Forbidden"
2870
+ }
2871
+ }
2872
+ },
2873
+ "delete": {
2874
+ "tags": [
2875
+ "ServiceContract"
2876
+ ],
2877
+ "summary": "Метод для удаления договоров",
2878
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractDelete**",
2879
+ "parameters": [
2880
+ {
2881
+ "name": "Authorization",
2882
+ "in": "header",
2883
+ "description": "Bearer",
2884
+ "required": true,
2885
+ "schema": {
2886
+ "type": "string"
2887
+ }
2888
+ }
2889
+ ],
2890
+ "requestBody": {
2891
+ "description": "Список идентификаторов удаляемых договоров",
2892
+ "content": {
2893
+ "application/json-patch+json": {
2894
+ "schema": {
2895
+ "type": "array",
2896
+ "items": {
2897
+ "type": "integer",
2898
+ "format": "int32"
2899
+ }
2900
+ }
2901
+ },
2902
+ "application/json": {
2903
+ "schema": {
2904
+ "type": "array",
2905
+ "items": {
2906
+ "type": "integer",
2907
+ "format": "int32"
2908
+ }
2909
+ }
2910
+ },
2911
+ "text/json": {
2912
+ "schema": {
2913
+ "type": "array",
2914
+ "items": {
2915
+ "type": "integer",
2916
+ "format": "int32"
2917
+ }
2918
+ }
2919
+ },
2920
+ "application/*+json": {
2921
+ "schema": {
2922
+ "type": "array",
2923
+ "items": {
2924
+ "type": "integer",
2925
+ "format": "int32"
2926
+ }
2927
+ }
2928
+ }
2929
+ }
2930
+ },
2931
+ "responses": {
2932
+ "202": {
2933
+ "description": "Accepted"
2934
+ },
2935
+ "401": {
2936
+ "description": "Unauthorized"
2937
+ },
2938
+ "403": {
2939
+ "description": "Forbidden"
2940
+ }
2941
+ }
2942
+ }
2943
+ },
2944
+ "/ServiceContract/{id}": {
2945
+ "delete": {
2946
+ "tags": [
2947
+ "ServiceContract"
2948
+ ],
2949
+ "summary": "Метод для удаления договора",
2950
+ "description": "<br />* Для выполнения данного метода требуется любое из перечисленных полномочий: **ContractDelete**",
2951
+ "parameters": [
2952
+ {
2953
+ "name": "id",
2954
+ "in": "path",
2955
+ "description": "Идентификатор договора",
2956
+ "required": true,
2957
+ "schema": {
2958
+ "type": "integer",
2959
+ "format": "int32"
2960
+ }
2961
+ },
2962
+ {
2963
+ "name": "Authorization",
2964
+ "in": "header",
2965
+ "description": "Bearer",
2966
+ "required": true,
2967
+ "schema": {
2968
+ "type": "string"
2969
+ }
2970
+ }
2971
+ ],
2972
+ "responses": {
2973
+ "202": {
2974
+ "description": "Accepted"
2975
+ },
2976
+ "409": {
2977
+ "description": "Conflict",
2978
+ "content": {
2979
+ "text/plain": {
2980
+ "schema": {
2981
+ "type": "array",
2982
+ "items": {
2983
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2984
+ }
2985
+ }
2986
+ },
2987
+ "application/json": {
2988
+ "schema": {
2989
+ "type": "array",
2990
+ "items": {
2991
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
2992
+ }
2993
+ }
2994
+ },
2995
+ "text/json": {
2996
+ "schema": {
2997
+ "type": "array",
2998
+ "items": {
2999
+ "$ref": "#/components/schemas/SmartService.Common.ExceptionHandling.Models.ErrorModel"
3000
+ }
3001
+ }
3002
+ }
3003
+ }
3004
+ },
3005
+ "401": {
3006
+ "description": "Unauthorized"
3007
+ },
3008
+ "403": {
3009
+ "description": "Forbidden"
3010
+ }
3011
+ }
3012
+ }
3013
+ }
3014
+ },
3015
+ "components": {
3016
+ "schemas": {
3017
+ "HubEx.DataProvider.Api.Data.SC.ContractAssetData": {
3018
+ "type": "object",
3019
+ "properties": {
3020
+ "assetID": {
3021
+ "type": "integer",
3022
+ "format": "int32"
3023
+ },
3024
+ "includeChildren": {
3025
+ "type": "boolean"
3026
+ }
3027
+ },
3028
+ "additionalProperties": false
3029
+ },
3030
+ "HubEx.DataProvider.Api.Data.SC.ContractAttribute.ActionData": {
3031
+ "required": [
3032
+ "contractID",
3033
+ "data"
3034
+ ],
3035
+ "type": "object",
3036
+ "properties": {
3037
+ "data": {
3038
+ "type": "array",
3039
+ "items": {
3040
+ "$ref": "#/components/schemas/HubEx.DataProvider.Api.Data.SC.ContractAttribute.MergeData"
3041
+ }
3042
+ },
3043
+ "contractID": {
3044
+ "type": "integer",
3045
+ "format": "int32"
3046
+ }
3047
+ },
3048
+ "additionalProperties": false
3049
+ },
3050
+ "HubEx.DataProvider.Api.Data.SC.ContractAttribute.MergeData": {
3051
+ "required": [
3052
+ "attributeID",
3053
+ "isPublic",
3054
+ "value"
3055
+ ],
3056
+ "type": "object",
3057
+ "properties": {
3058
+ "attributeID": {
3059
+ "type": "integer",
3060
+ "format": "int32"
3061
+ },
3062
+ "value": {
3063
+ "type": "array",
3064
+ "items": {
3065
+ "type": "string"
3066
+ }
3067
+ },
3068
+ "isPublic": {
3069
+ "type": "boolean"
3070
+ }
3071
+ },
3072
+ "additionalProperties": false
3073
+ },
3074
+ "HubEx.DataProvider.Api.Data.SC.ContractMergeData": {
3075
+ "required": [
3076
+ "companyID",
3077
+ "dateFrom",
3078
+ "name"
3079
+ ],
3080
+ "type": "object",
3081
+ "properties": {
3082
+ "id": {
3083
+ "type": "integer",
3084
+ "format": "int32",
3085
+ "nullable": true
3086
+ },
3087
+ "companyID": {
3088
+ "maximum": 32767,
3089
+ "minimum": 1,
3090
+ "type": "integer",
3091
+ "format": "int32"
3092
+ },
3093
+ "number": {
3094
+ "maxLength": 32,
3095
+ "minLength": 0,
3096
+ "type": "string",
3097
+ "nullable": true
3098
+ },
3099
+ "name": {
3100
+ "maxLength": 128,
3101
+ "minLength": 0,
3102
+ "type": "string"
3103
+ },
3104
+ "description": {
3105
+ "maxLength": 1024,
3106
+ "minLength": 0,
3107
+ "type": "string",
3108
+ "nullable": true
3109
+ },
3110
+ "agreementConditions": {
3111
+ "maxLength": 4000,
3112
+ "minLength": 0,
3113
+ "type": "string",
3114
+ "nullable": true
3115
+ },
3116
+ "remindExpirationDate": {
3117
+ "type": "boolean"
3118
+ },
3119
+ "reminderDate": {
3120
+ "type": "string",
3121
+ "format": "date-time",
3122
+ "nullable": true
3123
+ },
3124
+ "dateFrom": {
3125
+ "type": "string",
3126
+ "format": "date-time"
3127
+ },
3128
+ "dateTill": {
3129
+ "type": "string",
3130
+ "format": "date-time",
3131
+ "nullable": true
3132
+ }
3133
+ },
3134
+ "additionalProperties": false
3135
+ },
3136
+ "HubEx.DataProvider.Api.Projections.SC.ContractAssetAddProjection": {
3137
+ "type": "object",
3138
+ "properties": {
3139
+ "tenantID": {
3140
+ "type": "integer",
3141
+ "format": "int32"
3142
+ },
3143
+ "contractID": {
3144
+ "type": "integer",
3145
+ "format": "int32"
3146
+ },
3147
+ "assetID": {
3148
+ "type": "integer",
3149
+ "format": "int32"
3150
+ },
3151
+ "isNew": {
3152
+ "type": "boolean",
3153
+ "readOnly": true
3154
+ }
3155
+ },
3156
+ "additionalProperties": false
3157
+ },
3158
+ "HubEx.DataProvider.Api.Projections.SC.ContractContactAddProjection": {
3159
+ "type": "object",
3160
+ "properties": {
3161
+ "tenantID": {
3162
+ "type": "integer",
3163
+ "format": "int32"
3164
+ },
3165
+ "contractID": {
3166
+ "type": "integer",
3167
+ "format": "int32"
3168
+ },
3169
+ "contactID": {
3170
+ "type": "integer",
3171
+ "format": "int32"
3172
+ },
3173
+ "isNew": {
3174
+ "type": "boolean",
3175
+ "readOnly": true
3176
+ }
3177
+ },
3178
+ "additionalProperties": false
3179
+ },
3180
+ "HubEx.Service.Common.AspNetCore.Data.Attachments.FromBodyUploadData": {
3181
+ "required": [
3182
+ "contentType",
3183
+ "file",
3184
+ "fileName"
3185
+ ],
3186
+ "type": "object",
3187
+ "properties": {
3188
+ "uid": {
3189
+ "type": "string",
3190
+ "format": "uuid"
3191
+ },
3192
+ "contentStream": {
3193
+ "type": "string",
3194
+ "format": "binary",
3195
+ "nullable": true
3196
+ },
3197
+ "md5Hash": {
3198
+ "type": "string",
3199
+ "nullable": true
3200
+ },
3201
+ "contentLength": {
3202
+ "type": "integer",
3203
+ "format": "int32",
3204
+ "nullable": true
3205
+ },
3206
+ "file": {
3207
+ "minLength": 1,
3208
+ "type": "string"
3209
+ },
3210
+ "fileName": {
3211
+ "minLength": 1,
3212
+ "type": "string"
3213
+ },
3214
+ "contentType": {
3215
+ "minLength": 1,
3216
+ "type": "string"
3217
+ },
3218
+ "roles": {
3219
+ "type": "array",
3220
+ "items": {
3221
+ "type": "integer",
3222
+ "format": "int32"
3223
+ },
3224
+ "nullable": true
3225
+ },
3226
+ "coordinate": {
3227
+ "type": "string",
3228
+ "nullable": true
3229
+ },
3230
+ "description": {
3231
+ "type": "string",
3232
+ "nullable": true
3233
+ },
3234
+ "isPublic": {
3235
+ "type": "boolean"
3236
+ },
3237
+ "isIgnorePossibleDuplication": {
3238
+ "type": "boolean"
3239
+ },
3240
+ "checkSum": {
3241
+ "type": "string",
3242
+ "nullable": true
3243
+ }
3244
+ },
3245
+ "additionalProperties": false
3246
+ },
3247
+ "HubEx.Service.Common.AspNetCore.Data.Attachments.FromFormUploadData": {
3248
+ "required": [
3249
+ "file"
3250
+ ],
3251
+ "type": "object",
3252
+ "properties": {
3253
+ "uid": {
3254
+ "type": "string",
3255
+ "format": "uuid"
3256
+ },
3257
+ "contentStream": {
3258
+ "type": "string",
3259
+ "format": "binary",
3260
+ "nullable": true
3261
+ },
3262
+ "md5Hash": {
3263
+ "type": "string",
3264
+ "nullable": true
3265
+ },
3266
+ "contentLength": {
3267
+ "type": "integer",
3268
+ "format": "int32",
3269
+ "nullable": true
3270
+ },
3271
+ "description": {
3272
+ "type": "string",
3273
+ "nullable": true
3274
+ },
3275
+ "isPublic": {
3276
+ "type": "boolean"
3277
+ },
3278
+ "isIgnorePossibleDuplication": {
3279
+ "type": "boolean"
3280
+ },
3281
+ "roles": {
3282
+ "type": "array",
3283
+ "items": {
3284
+ "type": "integer",
3285
+ "format": "int32"
3286
+ },
3287
+ "nullable": true
3288
+ },
3289
+ "coordinate": {
3290
+ "type": "string",
3291
+ "nullable": true
3292
+ },
3293
+ "file": {
3294
+ "type": "string",
3295
+ "format": "binary"
3296
+ },
3297
+ "fileName": {
3298
+ "type": "string",
3299
+ "nullable": true
3300
+ },
3301
+ "contentType": {
3302
+ "type": "string",
3303
+ "nullable": true
3304
+ }
3305
+ },
3306
+ "additionalProperties": false
3307
+ },
3308
+ "HubEx.Service.SC.Api.Results.Asset.Base.AssetResultBase": {
3309
+ "type": "object",
3310
+ "properties": {
3311
+ "assetID": {
3312
+ "type": "integer",
3313
+ "description": "Идентификатор объекта",
3314
+ "format": "int32"
3315
+ },
3316
+ "contractID": {
3317
+ "type": "integer",
3318
+ "description": "Идентификатор договора",
3319
+ "format": "int32"
3320
+ },
3321
+ "tenantID": {
3322
+ "type": "integer",
3323
+ "description": "Идентификатор тенанта",
3324
+ "format": "int32"
3325
+ }
3326
+ },
3327
+ "additionalProperties": false,
3328
+ "description": "Представляет базовый элемент списка объектов привязанных к договору"
3329
+ },
3330
+ "HubEx.Service.SC.Api.Results.Attachment.AttachmentListResult": {
3331
+ "type": "object",
3332
+ "properties": {
3333
+ "fileName": {
3334
+ "type": "string",
3335
+ "description": "Название файла (с расширением)",
3336
+ "nullable": true
3337
+ },
3338
+ "description": {
3339
+ "type": "string",
3340
+ "description": "Описание",
3341
+ "nullable": true
3342
+ },
3343
+ "isUploaded": {
3344
+ "type": "boolean",
3345
+ "description": "Признак успешной загрузки в облачное хранилище (false если сейчас файл загружается)"
3346
+ },
3347
+ "publicUrl": {
3348
+ "type": "string",
3349
+ "description": "Публичная ссылка на файл (только для опубликованных файлов)",
3350
+ "nullable": true
3351
+ },
3352
+ "thumbnailUrl": {
3353
+ "type": "string",
3354
+ "description": "Ссылка на эскиз изображения",
3355
+ "nullable": true
3356
+ },
3357
+ "isProtected": {
3358
+ "type": "boolean",
3359
+ "description": "Признак того, что вложенный файл доступен ограниченному набору ролей"
3360
+ },
3361
+ "size": {
3362
+ "type": "integer",
3363
+ "description": "Размер файла в байтах",
3364
+ "format": "int32"
3365
+ },
3366
+ "created": {
3367
+ "type": "string",
3368
+ "description": "Дата загрузки UTC",
3369
+ "format": "date-time"
3370
+ }
3371
+ },
3372
+ "additionalProperties": false,
3373
+ "description": "Для списка файлов прикрепленных к договору"
3374
+ },
3375
+ "HubEx.Service.SC.Api.Results.Attachment.AttachmentResult": {
3376
+ "type": "object",
3377
+ "properties": {
3378
+ "fileName": {
3379
+ "type": "string",
3380
+ "description": "Название файла (с расширением)",
3381
+ "nullable": true
3382
+ },
3383
+ "description": {
3384
+ "type": "string",
3385
+ "description": "Описание",
3386
+ "nullable": true
3387
+ },
3388
+ "isUploaded": {
3389
+ "type": "boolean",
3390
+ "description": "Признак успешной загрузки в облачное хранилище (false если сейчас файл загружается)"
3391
+ },
3392
+ "publicUrl": {
3393
+ "type": "string",
3394
+ "description": "Публичная ссылка на файл (только для опубликованных файлов)",
3395
+ "nullable": true
3396
+ },
3397
+ "thumbnailUrl": {
3398
+ "type": "string",
3399
+ "description": "Ссылка на эскиз изображения",
3400
+ "nullable": true
3401
+ },
3402
+ "isProtected": {
3403
+ "type": "boolean",
3404
+ "description": "Признак того, что вложенный файл доступен ограниченному набору ролей"
3405
+ },
3406
+ "size": {
3407
+ "type": "integer",
3408
+ "description": "Размер файла в байтах",
3409
+ "format": "int32"
3410
+ },
3411
+ "created": {
3412
+ "type": "string",
3413
+ "description": "Дата загрузки UTC",
3414
+ "format": "date-time"
3415
+ },
3416
+ "attachmentID": {
3417
+ "type": "integer",
3418
+ "description": "Идентификатор прикрепленного к договору файла",
3419
+ "format": "int32"
3420
+ }
3421
+ },
3422
+ "additionalProperties": false,
3423
+ "description": "Для единичного файла прикрепленного к договору"
3424
+ },
3425
+ "HubEx.Service.SC.Api.Results.Attachment.Base.AttachmentActionResultBase": {
3426
+ "type": "object",
3427
+ "properties": {
3428
+ "tenantID": {
3429
+ "type": "integer",
3430
+ "description": "Идентификатор тенанта",
3431
+ "format": "int32"
3432
+ },
3433
+ "contractID": {
3434
+ "type": "integer",
3435
+ "description": "Идентификатор договора",
3436
+ "format": "int32"
3437
+ },
3438
+ "attachmentID": {
3439
+ "type": "integer",
3440
+ "description": "Идентификатор вложения",
3441
+ "format": "int32"
3442
+ }
3443
+ },
3444
+ "additionalProperties": false,
3445
+ "description": "Представляет базовый элемент списка связей между договором и его вложениями"
3446
+ },
3447
+ "HubEx.Service.SC.Api.Results.Attribute.AttributeTypeResult": {
3448
+ "type": "object",
3449
+ "properties": {
3450
+ "id": {
3451
+ "type": "integer",
3452
+ "format": "int32"
3453
+ },
3454
+ "name": {
3455
+ "type": "string",
3456
+ "nullable": true
3457
+ },
3458
+ "code": {
3459
+ "type": "string",
3460
+ "description": "Код типа пользовательского поля",
3461
+ "nullable": true
3462
+ }
3463
+ },
3464
+ "additionalProperties": false,
3465
+ "description": "Тип пользовательского поля"
3466
+ },
3467
+ "HubEx.Service.SC.Api.Results.Attribute.ContractAttributeResult": {
3468
+ "type": "object",
3469
+ "properties": {
3470
+ "attribute": {
3471
+ "$ref": "#/components/schemas/SmartService.Common.Results.IdNameDeletedResult`1[[System.Int16, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
3472
+ },
3473
+ "values": {
3474
+ "type": "array",
3475
+ "items": {
3476
+ "type": "string"
3477
+ },
3478
+ "description": "Значение пользовательского поля",
3479
+ "nullable": true
3480
+ },
3481
+ "isPublic": {
3482
+ "type": "boolean",
3483
+ "description": "Флаг, показывающий что поле является публичным"
3484
+ },
3485
+ "attributeType": {
3486
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attribute.AttributeTypeResult"
3487
+ },
3488
+ "measurementUnit": {
3489
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attribute.MeasurementUnitResult"
3490
+ },
3491
+ "listOfValues": {
3492
+ "type": "object",
3493
+ "additionalProperties": {
3494
+ "type": "string",
3495
+ "nullable": true
3496
+ },
3497
+ "description": "список допустимых значений в результатах по атрибутам",
3498
+ "nullable": true
3499
+ },
3500
+ "domain": {
3501
+ "$ref": "#/components/schemas/HubEx.Service.SC.Api.Results.Attribute.DomainResult"
3502
+ }
3503
+ },
3504
+ "additionalProperties": false,
3505
+ "description": "Контракт"
3506
+ },
3507
+ "HubEx.Service.SC.Api.Results.Attribute.DomainResult": {
3508
+ "type": "object",
3509
+ "properties": {
3510
+ "id": {
3511
+ "type": "integer",
3512
+ "description": "Внутренний идентификатор домена",
3513
+ "format": "int32",
3514
+ "nullable": true
3515
+ },
3516
+ "name": {
3517
+ "type": "string",
3518
+ "description": "Описание для UI домена",
3519
+ "nullable": true
3520
+ },
3521
+ "code": {
3522
+ "type": "string",
3523
+ "description": "Код домена - указывает базовую сущность для формирования источника данных для атрибута.списка атрибутов",
3524
+ "nullable": true
3525
+ }
3526
+ },
3527
+ "additionalProperties": false,
3528
+ "description": "Домен атрибута"
3529
+ },
3530
+ "HubEx.Service.SC.Api.Results.Attribute.MeasurementUnitResult": {
3531
+ "type": "object",
3532
+ "properties": {
3533
+ "id": {
3534
+ "type": "integer",
3535
+ "format": "int32",
3536
+ "nullable": true
3537
+ },
3538
+ "name": {
3539
+ "type": "string",
3540
+ "nullable": true
3541
+ },
3542
+ "abbreviation": {
3543
+ "type": "string",
3544
+ "description": "Аббревиатура единицы измерения",
3545
+ "nullable": true
3546
+ },
3547
+ "designation": {
3548
+ "type": "string",
3549
+ "description": "Обозначение единицы измерения",
3550
+ "nullable": true
3551
+ }
3552
+ },
3553
+ "additionalProperties": false,
3554
+ "description": "Класс единиц измерения"
3555
+ },
3556
+ "HubEx.Service.SC.Api.Results.Contact.ContactResultBase": {
3557
+ "type": "object",
3558
+ "properties": {
3559
+ "contractID": {
3560
+ "type": "integer",
3561
+ "description": "Идентификатор договора",
3562
+ "format": "int32"
3563
+ },
3564
+ "contactID": {
3565
+ "type": "integer",
3566
+ "description": "Идентификатор контакта",
3567
+ "format": "int32"
3568
+ }
3569
+ },
3570
+ "additionalProperties": false,
3571
+ "description": "Базовый результат для работы с контактами"
3572
+ },
3573
+ "HubEx.Service.SC.Api.Results.Contract.ContractGetResult": {
3574
+ "type": "object",
3575
+ "properties": {
3576
+ "contractID": {
3577
+ "type": "integer",
3578
+ "description": "Идентификатор договора",
3579
+ "format": "int32"
3580
+ },
3581
+ "companyID": {
3582
+ "type": "integer",
3583
+ "description": "Идентификатор компании контрагента",
3584
+ "format": "int32"
3585
+ },
3586
+ "companyName": {
3587
+ "type": "string",
3588
+ "description": "Наименование компании контрагента",
3589
+ "nullable": true
3590
+ },
3591
+ "name": {
3592
+ "type": "string",
3593
+ "description": "Наименовоние договора (в нашем понимании - идентификатор)",
3594
+ "nullable": true
3595
+ },
3596
+ "number": {
3597
+ "type": "string",
3598
+ "description": "Номер договора. Произвольный - в формате клиента. Аналог ErpID. Не используется в данный момент",
3599
+ "nullable": true
3600
+ },
3601
+ "description": {
3602
+ "type": "string",
3603
+ "description": "Краткое описание договора",
3604
+ "nullable": true
3605
+ },
3606
+ "conditions": {
3607
+ "type": "string",
3608
+ "description": "Условия договора - полное описание",
3609
+ "nullable": true
3610
+ },
3611
+ "dateFrom": {
3612
+ "type": "string",
3613
+ "description": "Дата начала действия договора",
3614
+ "format": "date-time"
3615
+ },
3616
+ "dateTill": {
3617
+ "type": "string",
3618
+ "description": "Дата окончания действия договора",
3619
+ "format": "date-time",
3620
+ "nullable": true
3621
+ },
3622
+ "remindExpirationDate": {
3623
+ "type": "boolean",
3624
+ "description": "Включены или нет напоминания о приближении даты окончания договора"
3625
+ },
3626
+ "reminderDate": {
3627
+ "type": "string",
3628
+ "description": "Дата срабатывания напоминания (уведомление контактных лиц)",
3629
+ "format": "date-time",
3630
+ "nullable": true
3631
+ },
3632
+ "isDeleted": {
3633
+ "type": "boolean",
3634
+ "description": "Контракт имеет пометку об удалении"
3635
+ }
3636
+ },
3637
+ "additionalProperties": false,
3638
+ "description": "Полная информация по договору обслуживания"
3639
+ },
3640
+ "HubEx.Service.SC.Api.Results.Contract.ContractListResult": {
3641
+ "type": "object",
3642
+ "properties": {
3643
+ "contractID": {
3644
+ "type": "integer",
3645
+ "description": "Идентификатор договора",
3646
+ "format": "int32"
3647
+ },
3648
+ "companyID": {
3649
+ "type": "integer",
3650
+ "description": "Идентификатор компании контрагента",
3651
+ "format": "int32"
3652
+ },
3653
+ "companyName": {
3654
+ "type": "string",
3655
+ "description": "Наименование компании контрагента",
3656
+ "nullable": true
3657
+ },
3658
+ "name": {
3659
+ "type": "string",
3660
+ "description": "Наименовоние договора (в нашем понимании - идентификатор)",
3661
+ "nullable": true
3662
+ },
3663
+ "number": {
3664
+ "type": "string",
3665
+ "description": "Номер договора. Произвольный - в формате клиента. Аналог ErpID. Не используется в данный момент",
3666
+ "nullable": true
3667
+ },
3668
+ "description": {
3669
+ "type": "string",
3670
+ "description": "Краткое описание договора",
3671
+ "nullable": true
3672
+ },
3673
+ "conditions": {
3674
+ "type": "string",
3675
+ "description": "Условия договора - полное описание",
3676
+ "nullable": true
3677
+ },
3678
+ "dateFrom": {
3679
+ "type": "string",
3680
+ "description": "Дата начала действия договора",
3681
+ "format": "date-time"
3682
+ },
3683
+ "dateTill": {
3684
+ "type": "string",
3685
+ "description": "Дата окончания действия договора",
3686
+ "format": "date-time",
3687
+ "nullable": true
3688
+ }
3689
+ },
3690
+ "additionalProperties": false,
3691
+ "description": "Служит для представления договоров на списках\r\nТакже является базовым классом для HubEx.Service.SC.Api.Results.Contract.ContractGetResult"
3692
+ },
3693
+ "SmartService.Common.ExceptionHandling.Models.ErrorModel": {
3694
+ "type": "object",
3695
+ "properties": {
3696
+ "traceIdentifier": {
3697
+ "type": "string",
3698
+ "nullable": true
3699
+ },
3700
+ "code": {
3701
+ "type": "string",
3702
+ "nullable": true
3703
+ },
3704
+ "message": {
3705
+ "type": "string",
3706
+ "nullable": true
3707
+ },
3708
+ "arguments": {
3709
+ "type": "object",
3710
+ "additionalProperties": {
3711
+ "type": "string",
3712
+ "nullable": true
3713
+ },
3714
+ "nullable": true
3715
+ }
3716
+ },
3717
+ "additionalProperties": false
3718
+ },
3719
+ "SmartService.Common.Results.IdNameDeletedResult`1[[System.Int16, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
3720
+ "type": "object",
3721
+ "properties": {
3722
+ "id": {
3723
+ "type": "integer",
3724
+ "format": "int32"
3725
+ },
3726
+ "name": {
3727
+ "type": "string",
3728
+ "nullable": true
3729
+ },
3730
+ "deleted": {
3731
+ "type": "string",
3732
+ "format": "date-time",
3733
+ "nullable": true
3734
+ }
3735
+ },
3736
+ "additionalProperties": false
3737
+ },
3738
+ "UploadResult": {
3739
+ "type": "object",
3740
+ "properties": {
3741
+ "attachmentID": {
3742
+ "type": "integer",
3743
+ "description": "Идентификатор вложенного файла",
3744
+ "format": "int32"
3745
+ },
3746
+ "md5Hash": {
3747
+ "type": "string",
3748
+ "description": "Проверочная сумма MD5",
3749
+ "nullable": true
3750
+ },
3751
+ "fileName": {
3752
+ "type": "string",
3753
+ "description": "Имя загруженного файла",
3754
+ "nullable": true
3755
+ },
3756
+ "isProtected": {
3757
+ "type": "boolean",
3758
+ "description": "Признак того, что вложенный файл доступен ограниченному набору ролей"
3759
+ },
3760
+ "contractID": {
3761
+ "type": "integer",
3762
+ "description": "Идентификатор договора",
3763
+ "format": "int32"
3764
+ }
3765
+ },
3766
+ "additionalProperties": false,
3767
+ "description": "Результат загрузки файла"
3768
+ }
3769
+ }
3770
+ }
3771
+ }