@snokam/mcp-api 0.122.0 → 0.124.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.
@@ -1,4795 +0,0 @@
1
- {
2
- "openapi": "3.0.1",
3
- "info": {
4
- "title": "Sales API",
5
- "description": "Sales management API",
6
- "version": "v1.0.0"
7
- },
8
- "servers": [
9
- {
10
- "url": "https://sales.api.snokam.no"
11
- }
12
- ],
13
- "paths": {
14
- "/v1.0/GetHealth": {
15
- "get": {
16
- "tags": [
17
- "Health"
18
- ],
19
- "summary": "Health check",
20
- "description": "Returns a health check response.",
21
- "operationId": "GetHealth",
22
- "responses": {
23
- "200": {
24
- "description": "Service is healthy",
25
- "content": {
26
- "application/json": {
27
- "schema": {
28
- "type": "object"
29
- }
30
- }
31
- },
32
- "x-ms-summary": "Success"
33
- }
34
- }
35
- }
36
- },
37
- "/v1.0/tenders/{id}/match-consultants": {
38
- "post": {
39
- "tags": [
40
- "Tenders"
41
- ],
42
- "summary": "Start CV matching for a tender",
43
- "operationId": "StartCvMatching",
44
- "parameters": [
45
- {
46
- "name": "id",
47
- "in": "path",
48
- "required": true,
49
- "schema": {
50
- "type": "string"
51
- }
52
- }
53
- ],
54
- "responses": {
55
- "202": {
56
- "description": "Payload of Object",
57
- "content": {
58
- "application/json": {
59
- "schema": {
60
- "type": "object"
61
- }
62
- }
63
- }
64
- },
65
- "404": {
66
- "description": "No description"
67
- }
68
- },
69
- "security": [
70
- {
71
- "Implicit": [
72
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
73
- ]
74
- }
75
- ]
76
- }
77
- },
78
- "/v1.0/tenders/ingest": {
79
- "post": {
80
- "tags": [
81
- "Tenders"
82
- ],
83
- "summary": "Start tender ingestion",
84
- "operationId": "StartTenderIngestion",
85
- "requestBody": {
86
- "content": {
87
- "application/json": {
88
- "schema": {
89
- "$ref": "#/components/schemas/ingestionRequest"
90
- }
91
- }
92
- },
93
- "required": true
94
- },
95
- "responses": {
96
- "202": {
97
- "description": "Payload of Object",
98
- "content": {
99
- "application/json": {
100
- "schema": {
101
- "type": "object"
102
- }
103
- }
104
- }
105
- }
106
- },
107
- "security": [
108
- {
109
- "Implicit": [
110
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
111
- ]
112
- }
113
- ]
114
- }
115
- },
116
- "/v1.0/jobs/{jobId}": {
117
- "get": {
118
- "tags": [
119
- "Admin"
120
- ],
121
- "summary": "Get agent job by ID",
122
- "operationId": "GetAgentJob",
123
- "parameters": [
124
- {
125
- "name": "jobId",
126
- "in": "path",
127
- "required": true,
128
- "schema": {
129
- "type": "string"
130
- }
131
- }
132
- ],
133
- "responses": {
134
- "200": {
135
- "description": "Payload of AgentJob",
136
- "content": {
137
- "application/json": {
138
- "schema": {
139
- "$ref": "#/components/schemas/agentJob"
140
- }
141
- }
142
- }
143
- },
144
- "404": {
145
- "description": "No description"
146
- }
147
- },
148
- "security": [
149
- {
150
- "Implicit": [
151
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
152
- ]
153
- }
154
- ]
155
- }
156
- },
157
- "/v1.0/admin/reprocess-ingestion": {
158
- "post": {
159
- "tags": [
160
- "Admin"
161
- ],
162
- "summary": "Batch reprocess tender ingestion",
163
- "operationId": "ReprocessIngestion",
164
- "parameters": [
165
- {
166
- "name": "unmatchedOnly",
167
- "in": "query",
168
- "description": "If true, only reprocess tenders with no existing consultant matches",
169
- "schema": {
170
- "type": "boolean"
171
- }
172
- }
173
- ],
174
- "responses": {
175
- "200": {
176
- "description": "Payload of Object",
177
- "content": {
178
- "application/json": {
179
- "schema": {
180
- "type": "object"
181
- }
182
- }
183
- }
184
- }
185
- },
186
- "security": [
187
- {
188
- "Implicit": [
189
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
190
- ]
191
- }
192
- ]
193
- }
194
- },
195
- "/v1.0/scan/doffin": {
196
- "post": {
197
- "tags": [
198
- "Scan"
199
- ],
200
- "summary": "Trigger a Doffin scan immediately",
201
- "operationId": "TriggerDoffinScan",
202
- "responses": {
203
- "200": {
204
- "description": "Payload of Object",
205
- "content": {
206
- "application/json": {
207
- "schema": {
208
- "type": "object"
209
- }
210
- }
211
- }
212
- }
213
- },
214
- "security": [
215
- {
216
- "Implicit": [
217
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
218
- ]
219
- }
220
- ]
221
- }
222
- },
223
- "/v1.0/scan/email": {
224
- "post": {
225
- "tags": [
226
- "Scan"
227
- ],
228
- "summary": "Trigger an email scan immediately",
229
- "operationId": "TriggerEmailScan",
230
- "responses": {
231
- "200": {
232
- "description": "Payload of Object",
233
- "content": {
234
- "application/json": {
235
- "schema": {
236
- "type": "object"
237
- }
238
- }
239
- }
240
- }
241
- },
242
- "security": [
243
- {
244
- "Implicit": [
245
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
246
- ]
247
- }
248
- ]
249
- }
250
- },
251
- "/v1.0/scan/sites": {
252
- "post": {
253
- "tags": [
254
- "Scan"
255
- ],
256
- "summary": "Trigger an agentic site scan immediately over all configured sources",
257
- "operationId": "TriggerSiteScan",
258
- "responses": {
259
- "200": {
260
- "description": "Payload of Object",
261
- "content": {
262
- "application/json": {
263
- "schema": {
264
- "type": "object"
265
- }
266
- }
267
- }
268
- }
269
- },
270
- "security": [
271
- {
272
- "Implicit": [
273
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
274
- ]
275
- }
276
- ]
277
- }
278
- },
279
- "/v1.0/admin/reprocess-emails": {
280
- "post": {
281
- "tags": [
282
- "Admin"
283
- ],
284
- "summary": "Re-fetch all emails since N days ago and re-ingest them so raw content is stored as source_email blobs",
285
- "operationId": "ReprocessEmails",
286
- "parameters": [
287
- {
288
- "name": "daysSince",
289
- "in": "query",
290
- "description": "Number of days back to fetch emails (default: 90)",
291
- "schema": {
292
- "type": "string"
293
- }
294
- }
295
- ],
296
- "responses": {
297
- "200": {
298
- "description": "Payload of Object",
299
- "content": {
300
- "application/json": {
301
- "schema": {
302
- "type": "object"
303
- }
304
- }
305
- }
306
- }
307
- }
308
- }
309
- },
310
- "/v1.0/crawl/jobs/reap-zombies": {
311
- "post": {
312
- "tags": [
313
- "Crawl"
314
- ],
315
- "summary": "Manually fail pending/running jobs older than 15 min (same logic as the every-5-min timer)",
316
- "operationId": "ReapZombieJobsManual",
317
- "parameters": [
318
- {
319
- "name": "thresholdMinutes",
320
- "in": "query",
321
- "description": "Override the 15 min threshold (1-180)",
322
- "schema": {
323
- "type": "integer",
324
- "format": "int32"
325
- }
326
- }
327
- ],
328
- "responses": {
329
- "200": {
330
- "description": "Payload of ZombieReapResult",
331
- "content": {
332
- "application/json": {
333
- "schema": {
334
- "$ref": "#/components/schemas/zombieReapResult"
335
- }
336
- }
337
- }
338
- }
339
- },
340
- "security": [
341
- {
342
- "Implicit": [
343
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
344
- ]
345
- }
346
- ]
347
- }
348
- },
349
- "/v1.0/tenders/{tenderId}/audit": {
350
- "get": {
351
- "tags": [
352
- "Audit"
353
- ],
354
- "summary": "Recent audit events for a single tender, newest first",
355
- "operationId": "GetTenderAudit",
356
- "parameters": [
357
- {
358
- "name": "tenderId",
359
- "in": "path",
360
- "required": true,
361
- "schema": {
362
- "type": "string"
363
- }
364
- },
365
- {
366
- "name": "limit",
367
- "in": "query",
368
- "description": "Max events to return (default 50, max 500)",
369
- "schema": {
370
- "type": "integer",
371
- "format": "int32"
372
- }
373
- }
374
- ],
375
- "responses": {
376
- "200": {
377
- "description": "Payload of Array of AuditEvent",
378
- "content": {
379
- "application/json": {
380
- "schema": {
381
- "type": "array",
382
- "items": {
383
- "$ref": "#/components/schemas/auditEvent"
384
- }
385
- }
386
- }
387
- }
388
- }
389
- },
390
- "security": [
391
- {
392
- "Implicit": [
393
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
394
- ]
395
- }
396
- ]
397
- }
398
- },
399
- "/v1.0/audit/recent": {
400
- "get": {
401
- "tags": [
402
- "Audit"
403
- ],
404
- "summary": "Recent audit events across all tenders, newest first",
405
- "operationId": "GetRecentAudit",
406
- "parameters": [
407
- {
408
- "name": "limit",
409
- "in": "query",
410
- "description": "Max events to return (default 100, max 1000)",
411
- "schema": {
412
- "type": "integer",
413
- "format": "int32"
414
- }
415
- },
416
- {
417
- "name": "sinceHours",
418
- "in": "query",
419
- "description": "Only events from the last N hours (default 24)",
420
- "schema": {
421
- "type": "integer",
422
- "format": "int32"
423
- }
424
- }
425
- ],
426
- "responses": {
427
- "200": {
428
- "description": "Payload of Array of AuditEvent",
429
- "content": {
430
- "application/json": {
431
- "schema": {
432
- "type": "array",
433
- "items": {
434
- "$ref": "#/components/schemas/auditEvent"
435
- }
436
- }
437
- }
438
- }
439
- }
440
- },
441
- "security": [
442
- {
443
- "Implicit": [
444
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
445
- ]
446
- }
447
- ]
448
- }
449
- },
450
- "/v1.0/tenders/funnel": {
451
- "get": {
452
- "tags": [
453
- "Tenders"
454
- ],
455
- "summary": "Pipeline funnel analytics: stage counts, conversion rates, cycle times",
456
- "operationId": "GetTenderFunnel",
457
- "parameters": [
458
- {
459
- "name": "windowDays",
460
- "in": "query",
461
- "description": "Rolling window in days (default 30, max 365)",
462
- "schema": {
463
- "type": "integer",
464
- "format": "int32"
465
- }
466
- }
467
- ],
468
- "responses": {
469
- "200": {
470
- "description": "Payload of FunnelResponse",
471
- "content": {
472
- "application/json": {
473
- "schema": {
474
- "$ref": "#/components/schemas/funnelResponse"
475
- }
476
- }
477
- }
478
- }
479
- },
480
- "security": [
481
- {
482
- "Implicit": [
483
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
484
- ]
485
- }
486
- ]
487
- }
488
- },
489
- "/v1.0/tenders/stats": {
490
- "get": {
491
- "tags": [
492
- "Tenders"
493
- ],
494
- "summary": "Aggregated tender KPIs for the admin dashboard (by status/stage/health + activity window)",
495
- "operationId": "GetTenderStats",
496
- "parameters": [
497
- {
498
- "name": "windowDays",
499
- "in": "query",
500
- "description": "Rolling window for activity-based metrics (defaults to 30, max 365)",
501
- "schema": {
502
- "type": "integer",
503
- "format": "int32"
504
- }
505
- }
506
- ],
507
- "responses": {
508
- "200": {
509
- "description": "Payload of TenderStatsResponse",
510
- "content": {
511
- "application/json": {
512
- "schema": {
513
- "$ref": "#/components/schemas/tenderStatsResponse"
514
- }
515
- }
516
- }
517
- }
518
- },
519
- "security": [
520
- {
521
- "Implicit": [
522
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
523
- ]
524
- }
525
- ]
526
- }
527
- },
528
- "/v1.0/consultants/stats": {
529
- "get": {
530
- "tags": [
531
- "Consultants"
532
- ],
533
- "summary": "Aggregated consultant KPIs (total, availability split, avg fit score from latest matches)",
534
- "operationId": "GetConsultantStats",
535
- "responses": {
536
- "200": {
537
- "description": "Payload of ConsultantStatsResponse",
538
- "content": {
539
- "application/json": {
540
- "schema": {
541
- "$ref": "#/components/schemas/consultantStatsResponse"
542
- }
543
- }
544
- }
545
- }
546
- },
547
- "security": [
548
- {
549
- "Implicit": [
550
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
551
- ]
552
- }
553
- ]
554
- }
555
- },
556
- "/v1.0/backups": {
557
- "post": {
558
- "tags": [
559
- "Backups"
560
- ],
561
- "summary": "Snapshot all Cosmos containers + (optionally) tender documents to the shared backups storage account.",
562
- "operationId": "CreateSalesBackup",
563
- "requestBody": {
564
- "content": {
565
- "application/json": {
566
- "schema": {
567
- "$ref": "#/components/schemas/createBackupRequest"
568
- }
569
- }
570
- }
571
- },
572
- "responses": {
573
- "200": {
574
- "description": "Payload of BackupSummary",
575
- "content": {
576
- "application/json": {
577
- "schema": {
578
- "$ref": "#/components/schemas/backupSummary"
579
- }
580
- }
581
- }
582
- }
583
- },
584
- "security": [
585
- {
586
- "Implicit": [
587
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
588
- ]
589
- }
590
- ]
591
- }
592
- },
593
- "/v1.0/crawl/sources": {
594
- "get": {
595
- "tags": [
596
- "Crawl"
597
- ],
598
- "summary": "List configured crawl sources together with their learned patterns and last-activity timestamp",
599
- "operationId": "ListCrawlSources",
600
- "responses": {
601
- "200": {
602
- "description": "Payload of Array of CrawlSourceWithPattern",
603
- "content": {
604
- "application/json": {
605
- "schema": {
606
- "type": "array",
607
- "items": {
608
- "$ref": "#/components/schemas/crawlSourceWithPattern"
609
- }
610
- }
611
- }
612
- }
613
- }
614
- },
615
- "security": [
616
- {
617
- "Implicit": [
618
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
619
- ]
620
- }
621
- ]
622
- }
623
- },
624
- "/v1.0/crawl/sources/{name}": {
625
- "put": {
626
- "tags": [
627
- "Crawl"
628
- ],
629
- "summary": "Create or update a crawl source",
630
- "operationId": "UpsertCrawlSource",
631
- "parameters": [
632
- {
633
- "name": "name",
634
- "in": "path",
635
- "required": true,
636
- "schema": {
637
- "type": "string"
638
- }
639
- }
640
- ],
641
- "requestBody": {
642
- "content": {
643
- "application/json": {
644
- "schema": {
645
- "$ref": "#/components/schemas/crawlSourceUpsertRequest"
646
- }
647
- }
648
- }
649
- },
650
- "responses": {
651
- "200": {
652
- "description": "Payload of CrawlSourceConfig",
653
- "content": {
654
- "application/json": {
655
- "schema": {
656
- "$ref": "#/components/schemas/crawlSourceConfig"
657
- }
658
- }
659
- }
660
- },
661
- "400": {
662
- "description": "No description"
663
- }
664
- },
665
- "security": [
666
- {
667
- "Implicit": [
668
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
669
- ]
670
- }
671
- ]
672
- },
673
- "delete": {
674
- "tags": [
675
- "Crawl"
676
- ],
677
- "summary": "Delete a crawl source and its cached pattern",
678
- "operationId": "DeleteCrawlSource",
679
- "parameters": [
680
- {
681
- "name": "name",
682
- "in": "path",
683
- "required": true,
684
- "schema": {
685
- "type": "string"
686
- }
687
- }
688
- ],
689
- "responses": {
690
- "204": {
691
- "description": "No description"
692
- }
693
- },
694
- "security": [
695
- {
696
- "Implicit": [
697
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
698
- ]
699
- }
700
- ]
701
- }
702
- },
703
- "/v1.0/crawl/sources/{name}/pattern": {
704
- "delete": {
705
- "tags": [
706
- "Crawl"
707
- ],
708
- "summary": "Drop the cached URL pattern for a source so the next scan re-bootstraps it",
709
- "operationId": "InvalidateCrawlPattern",
710
- "parameters": [
711
- {
712
- "name": "name",
713
- "in": "path",
714
- "required": true,
715
- "schema": {
716
- "type": "string"
717
- }
718
- }
719
- ],
720
- "responses": {
721
- "204": {
722
- "description": "No description"
723
- }
724
- },
725
- "security": [
726
- {
727
- "Implicit": [
728
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
729
- ]
730
- }
731
- ]
732
- }
733
- },
734
- "/v1.0/crawl/discover-listing": {
735
- "post": {
736
- "tags": [
737
- "Crawl"
738
- ],
739
- "summary": "Given a site homepage or bare domain, locate the tender/project listing page on it",
740
- "operationId": "DiscoverCrawlListing",
741
- "requestBody": {
742
- "content": {
743
- "application/json": {
744
- "schema": {
745
- "$ref": "#/components/schemas/discoverListingRequest"
746
- }
747
- }
748
- }
749
- },
750
- "responses": {
751
- "200": {
752
- "description": "Payload of DiscoverListingResponse",
753
- "content": {
754
- "application/json": {
755
- "schema": {
756
- "$ref": "#/components/schemas/discoverListingResponse"
757
- }
758
- }
759
- }
760
- }
761
- },
762
- "security": [
763
- {
764
- "Implicit": [
765
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
766
- ]
767
- }
768
- ]
769
- }
770
- },
771
- "/v1.0/crawl/sources/{name}/scan": {
772
- "post": {
773
- "tags": [
774
- "Crawl"
775
- ],
776
- "summary": "Scan one source now and enqueue ingestion jobs for newly discovered notices",
777
- "operationId": "ScanCrawlSource",
778
- "parameters": [
779
- {
780
- "name": "name",
781
- "in": "path",
782
- "required": true,
783
- "schema": {
784
- "type": "string"
785
- }
786
- }
787
- ],
788
- "responses": {
789
- "200": {
790
- "description": "Payload of CrawlScanResponse",
791
- "content": {
792
- "application/json": {
793
- "schema": {
794
- "$ref": "#/components/schemas/crawlScanResponse"
795
- }
796
- }
797
- }
798
- },
799
- "404": {
800
- "description": "No description"
801
- }
802
- },
803
- "security": [
804
- {
805
- "Implicit": [
806
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
807
- ]
808
- }
809
- ]
810
- }
811
- },
812
- "/v1.0/crawl/sources/{name}/failed-tenders": {
813
- "delete": {
814
- "tags": [
815
- "Crawl"
816
- ],
817
- "summary": "Delete all tenders for this source whose ingestion failed (parse-failed / zero confidence)",
818
- "operationId": "DeleteFailedTenders",
819
- "parameters": [
820
- {
821
- "name": "name",
822
- "in": "path",
823
- "required": true,
824
- "schema": {
825
- "type": "string"
826
- }
827
- }
828
- ],
829
- "responses": {
830
- "200": {
831
- "description": "Payload of DeleteFailedTendersResponse",
832
- "content": {
833
- "application/json": {
834
- "schema": {
835
- "$ref": "#/components/schemas/deleteFailedTendersResponse"
836
- }
837
- }
838
- }
839
- }
840
- },
841
- "security": [
842
- {
843
- "Implicit": [
844
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
845
- ]
846
- }
847
- ]
848
- }
849
- },
850
- "/v1.0/crawl/stats": {
851
- "get": {
852
- "tags": [
853
- "Crawl"
854
- ],
855
- "summary": "High-level stats for the /admin ops dashboard",
856
- "operationId": "GetCrawlStats",
857
- "responses": {
858
- "200": {
859
- "description": "Payload of CrawlStatsResponse",
860
- "content": {
861
- "application/json": {
862
- "schema": {
863
- "$ref": "#/components/schemas/crawlStatsResponse"
864
- }
865
- }
866
- }
867
- }
868
- },
869
- "security": [
870
- {
871
- "Implicit": [
872
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
873
- ]
874
- }
875
- ]
876
- }
877
- },
878
- "/v1.0/crawl/stream": {
879
- "get": {
880
- "tags": [
881
- "Crawl"
882
- ],
883
- "summary": "Server-sent-events stream: pushes stats + activity every ~2s for the ops dashboard",
884
- "operationId": "StreamCrawlEvents",
885
- "responses": {},
886
- "security": [
887
- {
888
- "Implicit": [
889
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
890
- ]
891
- }
892
- ]
893
- }
894
- },
895
- "/v1.0/crawl/activity": {
896
- "get": {
897
- "tags": [
898
- "Crawl"
899
- ],
900
- "summary": "Recent ingestion jobs across all sources, newest first. Supports source/status/date/search filters and paging.",
901
- "operationId": "GetCrawlActivity",
902
- "parameters": [
903
- {
904
- "name": "source",
905
- "in": "query",
906
- "description": "Filter by sourceName (exact match)",
907
- "schema": {
908
- "type": "string"
909
- }
910
- },
911
- {
912
- "name": "status",
913
- "in": "query",
914
- "description": "Comma-separated statuses (pending,running,completed,failed)",
915
- "schema": {
916
- "type": "string"
917
- }
918
- },
919
- {
920
- "name": "from",
921
- "in": "query",
922
- "description": "ISO-8601 lower bound on startedAt",
923
- "schema": {
924
- "type": "string"
925
- }
926
- },
927
- {
928
- "name": "to",
929
- "in": "query",
930
- "description": "ISO-8601 upper bound on startedAt",
931
- "schema": {
932
- "type": "string"
933
- }
934
- },
935
- {
936
- "name": "search",
937
- "in": "query",
938
- "description": "Substring match across inputTitle/inputUrl/externalId/id/error",
939
- "schema": {
940
- "type": "string"
941
- }
942
- },
943
- {
944
- "name": "skip",
945
- "in": "query",
946
- "description": "Offset for paging (default 0)",
947
- "schema": {
948
- "type": "string"
949
- }
950
- },
951
- {
952
- "name": "limit",
953
- "in": "query",
954
- "description": "Max jobs to return (default 50, max 500)",
955
- "schema": {
956
- "type": "string"
957
- }
958
- }
959
- ],
960
- "responses": {
961
- "200": {
962
- "description": "Payload of CrawlActivityResponse",
963
- "content": {
964
- "application/json": {
965
- "schema": {
966
- "$ref": "#/components/schemas/crawlActivityResponse"
967
- }
968
- }
969
- }
970
- }
971
- },
972
- "security": [
973
- {
974
- "Implicit": [
975
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
976
- ]
977
- }
978
- ]
979
- }
980
- },
981
- "/v1.0/crawl/jobs/{jobId}/retry": {
982
- "post": {
983
- "tags": [
984
- "Crawl"
985
- ],
986
- "summary": "Delete the tender (if any) and enqueue a fresh ingestion for the same URL/title/externalId",
987
- "operationId": "RetryCrawlJob",
988
- "parameters": [
989
- {
990
- "name": "jobId",
991
- "in": "path",
992
- "required": true,
993
- "schema": {
994
- "type": "string"
995
- }
996
- }
997
- ],
998
- "responses": {
999
- "200": {
1000
- "description": "Payload of AgentJob",
1001
- "content": {
1002
- "application/json": {
1003
- "schema": {
1004
- "$ref": "#/components/schemas/agentJob"
1005
- }
1006
- }
1007
- }
1008
- },
1009
- "400": {
1010
- "description": "No description"
1011
- },
1012
- "404": {
1013
- "description": "No description"
1014
- }
1015
- },
1016
- "security": [
1017
- {
1018
- "Implicit": [
1019
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1020
- ]
1021
- }
1022
- ]
1023
- }
1024
- },
1025
- "/v1.0/crawl/jobs/{jobId}/cancel": {
1026
- "post": {
1027
- "tags": [
1028
- "Crawl"
1029
- ],
1030
- "summary": "Terminate the running orchestration and mark the job as failed (\"Cancelled by operator\")",
1031
- "operationId": "CancelCrawlJob",
1032
- "parameters": [
1033
- {
1034
- "name": "jobId",
1035
- "in": "path",
1036
- "required": true,
1037
- "schema": {
1038
- "type": "string"
1039
- }
1040
- }
1041
- ],
1042
- "responses": {
1043
- "200": {
1044
- "description": "Payload of AgentJob",
1045
- "content": {
1046
- "application/json": {
1047
- "schema": {
1048
- "$ref": "#/components/schemas/agentJob"
1049
- }
1050
- }
1051
- }
1052
- },
1053
- "404": {
1054
- "description": "No description"
1055
- },
1056
- "409": {
1057
- "description": "No description"
1058
- }
1059
- },
1060
- "security": [
1061
- {
1062
- "Implicit": [
1063
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1064
- ]
1065
- }
1066
- ]
1067
- }
1068
- },
1069
- "/v1.0/crawl/jobs/bulk-delete": {
1070
- "post": {
1071
- "tags": [
1072
- "Crawl"
1073
- ],
1074
- "summary": "Delete a batch of jobs and their backing tenders",
1075
- "operationId": "BulkDeleteCrawlJobs",
1076
- "requestBody": {
1077
- "content": {
1078
- "application/json": {
1079
- "schema": {
1080
- "$ref": "#/components/schemas/bulkDeleteJobsRequest"
1081
- }
1082
- }
1083
- }
1084
- },
1085
- "responses": {
1086
- "200": {
1087
- "description": "Payload of BulkDeleteJobsResponse",
1088
- "content": {
1089
- "application/json": {
1090
- "schema": {
1091
- "$ref": "#/components/schemas/bulkDeleteJobsResponse"
1092
- }
1093
- }
1094
- }
1095
- },
1096
- "400": {
1097
- "description": "No description"
1098
- }
1099
- },
1100
- "security": [
1101
- {
1102
- "Implicit": [
1103
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1104
- ]
1105
- }
1106
- ]
1107
- }
1108
- },
1109
- "/v1.0/crawl/sources/{name}/jobs": {
1110
- "get": {
1111
- "tags": [
1112
- "Crawl"
1113
- ],
1114
- "summary": "Recent ingestion jobs for this source, newest first",
1115
- "operationId": "ListCrawlJobs",
1116
- "parameters": [
1117
- {
1118
- "name": "name",
1119
- "in": "path",
1120
- "required": true,
1121
- "schema": {
1122
- "type": "string"
1123
- }
1124
- },
1125
- {
1126
- "name": "limit",
1127
- "in": "query",
1128
- "description": "Max jobs to return (default 50)",
1129
- "schema": {
1130
- "type": "string"
1131
- }
1132
- }
1133
- ],
1134
- "responses": {
1135
- "200": {
1136
- "description": "Payload of Array of AgentJob",
1137
- "content": {
1138
- "application/json": {
1139
- "schema": {
1140
- "type": "array",
1141
- "items": {
1142
- "$ref": "#/components/schemas/agentJob"
1143
- }
1144
- }
1145
- }
1146
- }
1147
- }
1148
- },
1149
- "security": [
1150
- {
1151
- "Implicit": [
1152
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1153
- ]
1154
- }
1155
- ]
1156
- }
1157
- },
1158
- "/v1.0/crawl/sources/{name}/preview": {
1159
- "post": {
1160
- "tags": [
1161
- "Crawl"
1162
- ],
1163
- "summary": "Run a one-off discovery crawl for a single source and return the notices it would enqueue (no ingestion)",
1164
- "operationId": "PreviewCrawlSource",
1165
- "parameters": [
1166
- {
1167
- "name": "name",
1168
- "in": "path",
1169
- "required": true,
1170
- "schema": {
1171
- "type": "string"
1172
- }
1173
- }
1174
- ],
1175
- "responses": {
1176
- "200": {
1177
- "description": "Payload of CrawlPreviewResponse",
1178
- "content": {
1179
- "application/json": {
1180
- "schema": {
1181
- "$ref": "#/components/schemas/crawlPreviewResponse"
1182
- }
1183
- }
1184
- }
1185
- },
1186
- "404": {
1187
- "description": "No description"
1188
- }
1189
- },
1190
- "security": [
1191
- {
1192
- "Implicit": [
1193
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1194
- ]
1195
- }
1196
- ]
1197
- }
1198
- },
1199
- "/v1.0/tenders/{id}/documents": {
1200
- "get": {
1201
- "tags": [
1202
- "Documents"
1203
- ],
1204
- "summary": "List documents for a tender",
1205
- "operationId": "ListTenderDocuments",
1206
- "parameters": [
1207
- {
1208
- "name": "id",
1209
- "in": "path",
1210
- "required": true,
1211
- "schema": {
1212
- "type": "string"
1213
- }
1214
- }
1215
- ],
1216
- "responses": {
1217
- "200": {
1218
- "description": "Payload of Array of TenderDocument",
1219
- "content": {
1220
- "application/json": {
1221
- "schema": {
1222
- "type": "array",
1223
- "items": {
1224
- "$ref": "#/components/schemas/tenderDocument"
1225
- }
1226
- }
1227
- }
1228
- }
1229
- },
1230
- "404": {
1231
- "description": "No description"
1232
- }
1233
- },
1234
- "security": [
1235
- {
1236
- "Implicit": [
1237
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1238
- ]
1239
- }
1240
- ]
1241
- },
1242
- "post": {
1243
- "tags": [
1244
- "Documents"
1245
- ],
1246
- "summary": "Upload a new document to a tender",
1247
- "operationId": "UploadTenderDocument",
1248
- "parameters": [
1249
- {
1250
- "name": "id",
1251
- "in": "path",
1252
- "required": true,
1253
- "schema": {
1254
- "type": "string"
1255
- }
1256
- }
1257
- ],
1258
- "responses": {
1259
- "200": {
1260
- "description": "Payload of TenderDocument",
1261
- "content": {
1262
- "application/json": {
1263
- "schema": {
1264
- "$ref": "#/components/schemas/tenderDocument"
1265
- }
1266
- }
1267
- }
1268
- },
1269
- "404": {
1270
- "description": "No description"
1271
- }
1272
- },
1273
- "security": [
1274
- {
1275
- "Implicit": [
1276
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1277
- ]
1278
- }
1279
- ]
1280
- }
1281
- },
1282
- "/v1.0/tenders/{id}/documents/{docId}/download-url": {
1283
- "get": {
1284
- "tags": [
1285
- "Documents"
1286
- ],
1287
- "summary": "Get a short-lived download URL for a document",
1288
- "operationId": "GetDocumentDownloadUrl",
1289
- "parameters": [
1290
- {
1291
- "name": "id",
1292
- "in": "path",
1293
- "required": true,
1294
- "schema": {
1295
- "type": "string"
1296
- }
1297
- },
1298
- {
1299
- "name": "docId",
1300
- "in": "path",
1301
- "required": true,
1302
- "schema": {
1303
- "type": "string"
1304
- }
1305
- }
1306
- ],
1307
- "responses": {
1308
- "200": {
1309
- "description": "Payload of Object",
1310
- "content": {
1311
- "application/json": {
1312
- "schema": {
1313
- "type": "object"
1314
- }
1315
- }
1316
- }
1317
- },
1318
- "404": {
1319
- "description": "No description"
1320
- }
1321
- },
1322
- "security": [
1323
- {
1324
- "Implicit": [
1325
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1326
- ]
1327
- }
1328
- ]
1329
- }
1330
- },
1331
- "/v1.0/tenders/{id}/documents/{docId}/download": {
1332
- "get": {
1333
- "tags": [
1334
- "Documents"
1335
- ],
1336
- "summary": "Download a single document",
1337
- "operationId": "DownloadDocument",
1338
- "parameters": [
1339
- {
1340
- "name": "id",
1341
- "in": "path",
1342
- "required": true,
1343
- "schema": {
1344
- "type": "string"
1345
- }
1346
- },
1347
- {
1348
- "name": "docId",
1349
- "in": "path",
1350
- "required": true,
1351
- "schema": {
1352
- "type": "string"
1353
- }
1354
- }
1355
- ],
1356
- "responses": {
1357
- "200": {
1358
- "description": "Payload of Array of Byte",
1359
- "content": {
1360
- "application/octet-stream": {
1361
- "schema": {
1362
- "type": "string",
1363
- "format": "binary"
1364
- }
1365
- }
1366
- }
1367
- },
1368
- "404": {
1369
- "description": "No description"
1370
- }
1371
- },
1372
- "security": [
1373
- {
1374
- "Implicit": [
1375
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1376
- ]
1377
- }
1378
- ]
1379
- }
1380
- },
1381
- "/v1.0/tenders/{id}/documents/download-all": {
1382
- "get": {
1383
- "tags": [
1384
- "Documents"
1385
- ],
1386
- "summary": "Download all tender documents as a ZIP archive",
1387
- "operationId": "DownloadAllDocuments",
1388
- "parameters": [
1389
- {
1390
- "name": "id",
1391
- "in": "path",
1392
- "required": true,
1393
- "schema": {
1394
- "type": "string"
1395
- }
1396
- }
1397
- ],
1398
- "responses": {
1399
- "200": {
1400
- "description": "Payload of Array of Byte",
1401
- "content": {
1402
- "application/zip": {
1403
- "schema": {
1404
- "type": "string",
1405
- "format": "binary"
1406
- }
1407
- }
1408
- }
1409
- },
1410
- "404": {
1411
- "description": "No description"
1412
- }
1413
- },
1414
- "security": [
1415
- {
1416
- "Implicit": [
1417
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1418
- ]
1419
- }
1420
- ]
1421
- }
1422
- },
1423
- "/v1.0/tenders/{id}/documents/{docId}": {
1424
- "patch": {
1425
- "tags": [
1426
- "Documents"
1427
- ],
1428
- "summary": "Patch tender document flags (e.g. set as competence matrix source)",
1429
- "operationId": "PatchTenderDocument",
1430
- "parameters": [
1431
- {
1432
- "name": "id",
1433
- "in": "path",
1434
- "required": true,
1435
- "schema": {
1436
- "type": "string"
1437
- }
1438
- },
1439
- {
1440
- "name": "docId",
1441
- "in": "path",
1442
- "required": true,
1443
- "schema": {
1444
- "type": "string"
1445
- }
1446
- }
1447
- ],
1448
- "requestBody": {
1449
- "content": {
1450
- "application/json": {
1451
- "schema": {
1452
- "$ref": "#/components/schemas/patchDocumentRequest"
1453
- }
1454
- }
1455
- },
1456
- "required": true
1457
- },
1458
- "responses": {
1459
- "200": {
1460
- "description": "Payload of PatchDocumentResponse",
1461
- "content": {
1462
- "application/json": {
1463
- "schema": {
1464
- "$ref": "#/components/schemas/patchDocumentResponse"
1465
- }
1466
- }
1467
- }
1468
- },
1469
- "404": {
1470
- "description": "No description"
1471
- }
1472
- },
1473
- "security": [
1474
- {
1475
- "Implicit": [
1476
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1477
- ]
1478
- }
1479
- ]
1480
- },
1481
- "delete": {
1482
- "tags": [
1483
- "Documents"
1484
- ],
1485
- "summary": "Delete a tender document (and its blob + related answers)",
1486
- "operationId": "DeleteTenderDocument",
1487
- "parameters": [
1488
- {
1489
- "name": "id",
1490
- "in": "path",
1491
- "required": true,
1492
- "schema": {
1493
- "type": "string"
1494
- }
1495
- },
1496
- {
1497
- "name": "docId",
1498
- "in": "path",
1499
- "required": true,
1500
- "schema": {
1501
- "type": "string"
1502
- }
1503
- }
1504
- ],
1505
- "responses": {
1506
- "204": {
1507
- "description": "No description"
1508
- },
1509
- "404": {
1510
- "description": "No description"
1511
- }
1512
- },
1513
- "security": [
1514
- {
1515
- "Implicit": [
1516
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1517
- ]
1518
- }
1519
- ]
1520
- }
1521
- },
1522
- "/v1.0/tenders/{id}/documents/{docId}/extract-questions": {
1523
- "post": {
1524
- "tags": [
1525
- "Documents"
1526
- ],
1527
- "summary": "Start extraction of fillable questions from a document",
1528
- "operationId": "StartQuestionExtraction",
1529
- "parameters": [
1530
- {
1531
- "name": "id",
1532
- "in": "path",
1533
- "required": true,
1534
- "schema": {
1535
- "type": "string"
1536
- }
1537
- },
1538
- {
1539
- "name": "docId",
1540
- "in": "path",
1541
- "required": true,
1542
- "schema": {
1543
- "type": "string"
1544
- }
1545
- }
1546
- ],
1547
- "responses": {
1548
- "202": {
1549
- "description": "Payload of Object",
1550
- "content": {
1551
- "application/json": {
1552
- "schema": {
1553
- "type": "object"
1554
- }
1555
- }
1556
- }
1557
- },
1558
- "404": {
1559
- "description": "No description"
1560
- }
1561
- },
1562
- "security": [
1563
- {
1564
- "Implicit": [
1565
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1566
- ]
1567
- }
1568
- ]
1569
- }
1570
- },
1571
- "/v1.0/tenders/{id}/documents/{docId}/fill-questions": {
1572
- "post": {
1573
- "tags": [
1574
- "Documents"
1575
- ],
1576
- "summary": "Start filling tender question answers per consultant",
1577
- "operationId": "StartQuestionFill",
1578
- "parameters": [
1579
- {
1580
- "name": "id",
1581
- "in": "path",
1582
- "required": true,
1583
- "schema": {
1584
- "type": "string"
1585
- }
1586
- },
1587
- {
1588
- "name": "docId",
1589
- "in": "path",
1590
- "required": true,
1591
- "schema": {
1592
- "type": "string"
1593
- }
1594
- }
1595
- ],
1596
- "requestBody": {
1597
- "content": {
1598
- "application/json": {
1599
- "schema": {
1600
- "$ref": "#/components/schemas/questionFillRequest"
1601
- }
1602
- }
1603
- },
1604
- "required": true
1605
- },
1606
- "responses": {
1607
- "202": {
1608
- "description": "Payload of Object",
1609
- "content": {
1610
- "application/json": {
1611
- "schema": {
1612
- "type": "object"
1613
- }
1614
- }
1615
- }
1616
- },
1617
- "404": {
1618
- "description": "No description"
1619
- }
1620
- },
1621
- "security": [
1622
- {
1623
- "Implicit": [
1624
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1625
- ]
1626
- }
1627
- ]
1628
- }
1629
- },
1630
- "/v1.0/consultants": {
1631
- "get": {
1632
- "tags": [
1633
- "Consultants"
1634
- ],
1635
- "summary": "List all known consultants (for manual selection)",
1636
- "operationId": "ListConsultants",
1637
- "parameters": [
1638
- {
1639
- "name": "query",
1640
- "in": "query",
1641
- "schema": {
1642
- "type": "string"
1643
- }
1644
- }
1645
- ],
1646
- "responses": {
1647
- "200": {
1648
- "description": "Payload of Array of ConsultantSummary",
1649
- "content": {
1650
- "application/json": {
1651
- "schema": {
1652
- "type": "array",
1653
- "items": {
1654
- "$ref": "#/components/schemas/consultantSummary"
1655
- }
1656
- }
1657
- }
1658
- }
1659
- }
1660
- },
1661
- "security": [
1662
- {
1663
- "Implicit": [
1664
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1665
- ]
1666
- }
1667
- ]
1668
- }
1669
- },
1670
- "/v1.0/protected/health/{provider}": {
1671
- "get": {
1672
- "tags": [
1673
- "Health"
1674
- ],
1675
- "summary": "Checks an integration's connectivity",
1676
- "operationId": "SalesIntegrationHealth",
1677
- "parameters": [
1678
- {
1679
- "name": "provider",
1680
- "in": "path",
1681
- "required": true,
1682
- "schema": {
1683
- "type": "string"
1684
- }
1685
- }
1686
- ],
1687
- "responses": {
1688
- "200": {
1689
- "description": "Health result",
1690
- "content": {
1691
- "application/json": {
1692
- "schema": {
1693
- "$ref": "#/components/schemas/integrationHealthResult"
1694
- }
1695
- }
1696
- }
1697
- }
1698
- },
1699
- "security": [
1700
- {
1701
- "Implicit": [
1702
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1703
- ]
1704
- }
1705
- ]
1706
- }
1707
- },
1708
- "/v1.0/realtime/negotiate": {
1709
- "post": {
1710
- "tags": [
1711
- "Realtime"
1712
- ],
1713
- "summary": "Issue a SignalR access token + URL for the sales-live hub",
1714
- "operationId": "NegotiateSignalR",
1715
- "requestBody": {
1716
- "content": {
1717
- "application/json": {
1718
- "schema": {
1719
- "$ref": "#/components/schemas/negotiateRequest"
1720
- }
1721
- }
1722
- }
1723
- },
1724
- "responses": {
1725
- "200": {
1726
- "description": "Payload of NegotiateResponse",
1727
- "content": {
1728
- "application/json": {
1729
- "schema": {
1730
- "$ref": "#/components/schemas/negotiateResponse"
1731
- }
1732
- }
1733
- }
1734
- },
1735
- "503": {
1736
- "description": "SignalR is not configured on this instance; fall back to SSE"
1737
- }
1738
- },
1739
- "security": [
1740
- {
1741
- "Implicit": [
1742
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1743
- ]
1744
- }
1745
- ]
1746
- }
1747
- },
1748
- "/v1.0/stream": {
1749
- "get": {
1750
- "tags": [
1751
- "Realtime"
1752
- ],
1753
- "summary": "Unified SSE stream: tender/job/crawl/consultant/audit events on one connection",
1754
- "operationId": "StreamAll",
1755
- "parameters": [
1756
- {
1757
- "name": "channels",
1758
- "in": "query",
1759
- "description": "Comma-separated namespaces to include (tender,job,crawl,consultant,audit). Default: all.",
1760
- "schema": {
1761
- "type": "string"
1762
- }
1763
- }
1764
- ],
1765
- "responses": {},
1766
- "security": [
1767
- {
1768
- "Implicit": [
1769
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1770
- ]
1771
- }
1772
- ]
1773
- }
1774
- },
1775
- "/v1.0/tenders/stream-redirect": {
1776
- "get": {
1777
- "tags": [
1778
- "Realtime"
1779
- ],
1780
- "summary": "Deprecated: redirects to /v1.0/stream?channels=tender,job",
1781
- "operationId": "DeprecatedTenderStream",
1782
- "responses": {},
1783
- "deprecated": true,
1784
- "security": [
1785
- {
1786
- "Implicit": [
1787
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1788
- ]
1789
- }
1790
- ]
1791
- }
1792
- },
1793
- "/v1.0/crawl/stream-redirect": {
1794
- "get": {
1795
- "tags": [
1796
- "Realtime"
1797
- ],
1798
- "summary": "Deprecated: redirects to /v1.0/stream?channels=crawl,job",
1799
- "operationId": "DeprecatedCrawlStream",
1800
- "responses": {},
1801
- "deprecated": true,
1802
- "security": [
1803
- {
1804
- "Implicit": [
1805
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1806
- ]
1807
- }
1808
- ]
1809
- }
1810
- },
1811
- "/v1.0/salesforce/opportunities": {
1812
- "get": {
1813
- "tags": [
1814
- "Salesforce"
1815
- ],
1816
- "summary": "List Salesforce Opportunities (open by default).",
1817
- "operationId": "ListSalesforceOpportunities",
1818
- "parameters": [
1819
- {
1820
- "name": "includeClosed",
1821
- "in": "query",
1822
- "schema": {
1823
- "type": "boolean"
1824
- },
1825
- "x-ms-summary": "Include closed opportunities (default false)."
1826
- },
1827
- {
1828
- "name": "limit",
1829
- "in": "query",
1830
- "schema": {
1831
- "type": "integer",
1832
- "format": "int32"
1833
- },
1834
- "x-ms-summary": "Row cap, max 200 (default 100)."
1835
- }
1836
- ],
1837
- "responses": {
1838
- "200": {
1839
- "description": "Payload of Array of SalesforceOpportunity",
1840
- "content": {
1841
- "application/json": {
1842
- "schema": {
1843
- "type": "array",
1844
- "items": {
1845
- "$ref": "#/components/schemas/salesforceOpportunity"
1846
- }
1847
- }
1848
- }
1849
- }
1850
- }
1851
- },
1852
- "security": [
1853
- {
1854
- "Implicit": [
1855
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1856
- ]
1857
- }
1858
- ]
1859
- }
1860
- },
1861
- "/v1.0/salesforce/opportunity-stages": {
1862
- "get": {
1863
- "tags": [
1864
- "Salesforce"
1865
- ],
1866
- "summary": "List the SF org's Opportunity pipeline stages in configured order.",
1867
- "operationId": "ListSalesforceOpportunityStages",
1868
- "responses": {
1869
- "200": {
1870
- "description": "Payload of Array of SalesforceOpportunityStage",
1871
- "content": {
1872
- "application/json": {
1873
- "schema": {
1874
- "type": "array",
1875
- "items": {
1876
- "$ref": "#/components/schemas/salesforceOpportunityStage"
1877
- }
1878
- }
1879
- }
1880
- }
1881
- }
1882
- },
1883
- "security": [
1884
- {
1885
- "Implicit": [
1886
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1887
- ]
1888
- }
1889
- ]
1890
- }
1891
- },
1892
- "/v1.0/salesforce/refresh": {
1893
- "post": {
1894
- "tags": [
1895
- "Salesforce"
1896
- ],
1897
- "summary": "Batch-refresh the cached Salesforce state on every linked engagement for the current business.",
1898
- "operationId": "RefreshAllSalesforceLinks",
1899
- "responses": {
1900
- "200": {
1901
- "description": "Payload of SalesforceRefreshResult",
1902
- "content": {
1903
- "application/json": {
1904
- "schema": {
1905
- "$ref": "#/components/schemas/salesforceRefreshResult"
1906
- }
1907
- }
1908
- }
1909
- }
1910
- },
1911
- "security": [
1912
- {
1913
- "Implicit": [
1914
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1915
- ]
1916
- }
1917
- ]
1918
- }
1919
- },
1920
- "/v1.0/tenders/{id}/salesforce/stage": {
1921
- "post": {
1922
- "tags": [
1923
- "Salesforce"
1924
- ],
1925
- "summary": "Move the linked SF Opportunity to a new stage and refresh the cache.",
1926
- "operationId": "UpdateTenderSalesforceStage",
1927
- "parameters": [
1928
- {
1929
- "name": "id",
1930
- "in": "path",
1931
- "required": true,
1932
- "schema": {
1933
- "type": "string"
1934
- }
1935
- }
1936
- ],
1937
- "requestBody": {
1938
- "description": "The SF stage masterLabel/apiName to switch to.",
1939
- "content": {
1940
- "application/json": {
1941
- "schema": {
1942
- "$ref": "#/components/schemas/updateSalesforceStageRequest"
1943
- }
1944
- }
1945
- },
1946
- "required": true
1947
- },
1948
- "responses": {
1949
- "200": {
1950
- "description": "Payload of TenderView",
1951
- "content": {
1952
- "application/json": {
1953
- "schema": {
1954
- "$ref": "#/components/schemas/tenderView"
1955
- }
1956
- }
1957
- }
1958
- },
1959
- "400": {
1960
- "description": "Tender has no Salesforce link, or stageName is missing."
1961
- },
1962
- "404": {
1963
- "description": "No description"
1964
- }
1965
- },
1966
- "security": [
1967
- {
1968
- "Implicit": [
1969
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1970
- ]
1971
- }
1972
- ]
1973
- }
1974
- },
1975
- "/v1.0/salesforce/opportunities/{sfId}/import": {
1976
- "post": {
1977
- "tags": [
1978
- "Salesforce"
1979
- ],
1980
- "summary": "Create a Snøkam tender stub from an existing Salesforce Opportunity.",
1981
- "operationId": "ImportSalesforceOpportunity",
1982
- "parameters": [
1983
- {
1984
- "name": "sfId",
1985
- "in": "path",
1986
- "required": true,
1987
- "schema": {
1988
- "type": "string"
1989
- },
1990
- "x-ms-summary": "Salesforce Opportunity Id."
1991
- }
1992
- ],
1993
- "responses": {
1994
- "200": {
1995
- "description": "Payload of TenderView",
1996
- "content": {
1997
- "application/json": {
1998
- "schema": {
1999
- "$ref": "#/components/schemas/tenderView"
2000
- }
2001
- }
2002
- }
2003
- },
2004
- "404": {
2005
- "description": "No description"
2006
- },
2007
- "409": {
2008
- "description": "A tender is already linked to this Opportunity."
2009
- }
2010
- },
2011
- "security": [
2012
- {
2013
- "Implicit": [
2014
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2015
- ]
2016
- }
2017
- ]
2018
- }
2019
- },
2020
- "/v1.0/tenders/{id}/salesforce": {
2021
- "post": {
2022
- "tags": [
2023
- "Salesforce"
2024
- ],
2025
- "summary": "Create a Salesforce Opportunity from a Snøkam tender and cache the link.",
2026
- "operationId": "PromoteTenderToSalesforce",
2027
- "parameters": [
2028
- {
2029
- "name": "id",
2030
- "in": "path",
2031
- "required": true,
2032
- "schema": {
2033
- "type": "string"
2034
- }
2035
- }
2036
- ],
2037
- "responses": {
2038
- "200": {
2039
- "description": "Payload of TenderView",
2040
- "content": {
2041
- "application/json": {
2042
- "schema": {
2043
- "$ref": "#/components/schemas/tenderView"
2044
- }
2045
- }
2046
- }
2047
- },
2048
- "404": {
2049
- "description": "No description"
2050
- },
2051
- "409": {
2052
- "description": "Tender is already linked to a Salesforce Opportunity."
2053
- }
2054
- },
2055
- "security": [
2056
- {
2057
- "Implicit": [
2058
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2059
- ]
2060
- }
2061
- ]
2062
- }
2063
- },
2064
- "/v1.0/tenders/{id}/salesforce/refresh": {
2065
- "post": {
2066
- "tags": [
2067
- "Salesforce"
2068
- ],
2069
- "summary": "Re-sync cached Salesforce Opportunity state (stage / closed / won) onto the engagement.",
2070
- "operationId": "RefreshTenderSalesforceLink",
2071
- "parameters": [
2072
- {
2073
- "name": "id",
2074
- "in": "path",
2075
- "required": true,
2076
- "schema": {
2077
- "type": "string"
2078
- }
2079
- }
2080
- ],
2081
- "responses": {
2082
- "200": {
2083
- "description": "Payload of TenderView",
2084
- "content": {
2085
- "application/json": {
2086
- "schema": {
2087
- "$ref": "#/components/schemas/tenderView"
2088
- }
2089
- }
2090
- }
2091
- },
2092
- "404": {
2093
- "description": "No description"
2094
- }
2095
- },
2096
- "security": [
2097
- {
2098
- "Implicit": [
2099
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2100
- ]
2101
- }
2102
- ]
2103
- }
2104
- },
2105
- "/v1.0/tenders": {
2106
- "get": {
2107
- "tags": [
2108
- "Tenders"
2109
- ],
2110
- "summary": "List all tenders",
2111
- "operationId": "ListTenders",
2112
- "responses": {
2113
- "200": {
2114
- "description": "Payload of Array of TenderView",
2115
- "content": {
2116
- "application/json": {
2117
- "schema": {
2118
- "type": "array",
2119
- "items": {
2120
- "$ref": "#/components/schemas/tenderView"
2121
- }
2122
- }
2123
- }
2124
- }
2125
- }
2126
- },
2127
- "security": [
2128
- {
2129
- "Implicit": [
2130
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2131
- ]
2132
- }
2133
- ]
2134
- },
2135
- "post": {
2136
- "tags": [
2137
- "Tenders"
2138
- ],
2139
- "summary": "Create a new tender",
2140
- "operationId": "CreateTender",
2141
- "requestBody": {
2142
- "content": {
2143
- "application/json": {
2144
- "schema": {
2145
- "$ref": "#/components/schemas/tenderView"
2146
- }
2147
- }
2148
- },
2149
- "required": true
2150
- },
2151
- "responses": {
2152
- "201": {
2153
- "description": "Payload of TenderView",
2154
- "content": {
2155
- "application/json": {
2156
- "schema": {
2157
- "$ref": "#/components/schemas/tenderView"
2158
- }
2159
- }
2160
- }
2161
- }
2162
- },
2163
- "security": [
2164
- {
2165
- "Implicit": [
2166
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2167
- ]
2168
- }
2169
- ]
2170
- }
2171
- },
2172
- "/v1.0/tenders/{id}": {
2173
- "get": {
2174
- "tags": [
2175
- "Tenders"
2176
- ],
2177
- "summary": "Get a tender by its URL slug (or internal id for admin use).",
2178
- "operationId": "GetTender",
2179
- "parameters": [
2180
- {
2181
- "name": "id",
2182
- "in": "path",
2183
- "description": "URL slug (canonical) or the internal guid id (admin/legacy).",
2184
- "required": true,
2185
- "schema": {
2186
- "type": "string"
2187
- }
2188
- }
2189
- ],
2190
- "responses": {
2191
- "200": {
2192
- "description": "Payload of TenderView",
2193
- "content": {
2194
- "application/json": {
2195
- "schema": {
2196
- "$ref": "#/components/schemas/tenderView"
2197
- }
2198
- }
2199
- }
2200
- },
2201
- "404": {
2202
- "description": "No description"
2203
- }
2204
- },
2205
- "security": [
2206
- {
2207
- "Implicit": [
2208
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2209
- ]
2210
- }
2211
- ]
2212
- },
2213
- "put": {
2214
- "tags": [
2215
- "Tenders"
2216
- ],
2217
- "summary": "Update a tender",
2218
- "operationId": "UpdateTender",
2219
- "parameters": [
2220
- {
2221
- "name": "id",
2222
- "in": "path",
2223
- "required": true,
2224
- "schema": {
2225
- "type": "string"
2226
- }
2227
- }
2228
- ],
2229
- "requestBody": {
2230
- "content": {
2231
- "application/json": {
2232
- "schema": {
2233
- "$ref": "#/components/schemas/tenderView"
2234
- }
2235
- }
2236
- },
2237
- "required": true
2238
- },
2239
- "responses": {
2240
- "200": {
2241
- "description": "Payload of TenderView",
2242
- "content": {
2243
- "application/json": {
2244
- "schema": {
2245
- "$ref": "#/components/schemas/tenderView"
2246
- }
2247
- }
2248
- }
2249
- },
2250
- "404": {
2251
- "description": "No description"
2252
- }
2253
- },
2254
- "security": [
2255
- {
2256
- "Implicit": [
2257
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2258
- ]
2259
- }
2260
- ]
2261
- },
2262
- "delete": {
2263
- "tags": [
2264
- "Tenders"
2265
- ],
2266
- "summary": "Delete a tender",
2267
- "operationId": "DeleteTender",
2268
- "parameters": [
2269
- {
2270
- "name": "id",
2271
- "in": "path",
2272
- "required": true,
2273
- "schema": {
2274
- "type": "string"
2275
- }
2276
- }
2277
- ],
2278
- "responses": {
2279
- "204": {
2280
- "description": "No description"
2281
- },
2282
- "404": {
2283
- "description": "No description"
2284
- }
2285
- },
2286
- "security": [
2287
- {
2288
- "Implicit": [
2289
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2290
- ]
2291
- }
2292
- ]
2293
- }
2294
- },
2295
- "/v1.0/tenders/backfill-slugs": {
2296
- "post": {
2297
- "tags": [
2298
- "Tenders"
2299
- ],
2300
- "summary": "Assign a slug to every tender that doesn't have one yet. Idempotent — safe to re-run.",
2301
- "operationId": "BackfillTenderSlugs",
2302
- "responses": {
2303
- "200": {
2304
- "description": "Payload of BackfillSlugsResult",
2305
- "content": {
2306
- "application/json": {
2307
- "schema": {
2308
- "$ref": "#/components/schemas/backfillSlugsResult"
2309
- }
2310
- }
2311
- }
2312
- }
2313
- },
2314
- "security": [
2315
- {
2316
- "Implicit": [
2317
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2318
- ]
2319
- }
2320
- ]
2321
- }
2322
- },
2323
- "/v1.0/tenders/{id}/reingest": {
2324
- "post": {
2325
- "tags": [
2326
- "Tenders"
2327
- ],
2328
- "summary": "Re-run the ingestion pipeline on an existing tender, re-parsing documents and refreshing AI match / summary / classification.",
2329
- "operationId": "ReingestTender",
2330
- "parameters": [
2331
- {
2332
- "name": "id",
2333
- "in": "path",
2334
- "required": true,
2335
- "schema": {
2336
- "type": "string"
2337
- }
2338
- }
2339
- ],
2340
- "responses": {
2341
- "200": {
2342
- "description": "Payload of AgentJob",
2343
- "content": {
2344
- "application/json": {
2345
- "schema": {
2346
- "$ref": "#/components/schemas/agentJob"
2347
- }
2348
- }
2349
- }
2350
- },
2351
- "404": {
2352
- "description": "No description"
2353
- }
2354
- },
2355
- "security": [
2356
- {
2357
- "Implicit": [
2358
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2359
- ]
2360
- }
2361
- ]
2362
- }
2363
- },
2364
- "/v1.0/tenders/{id}/jobs/{jobId}/snapshot": {
2365
- "get": {
2366
- "tags": [
2367
- "Tenders"
2368
- ],
2369
- "summary": "Return the tender as it looked right after a given agent job ran (time-travel view).",
2370
- "operationId": "GetTenderJobSnapshot",
2371
- "parameters": [
2372
- {
2373
- "name": "id",
2374
- "in": "path",
2375
- "required": true,
2376
- "schema": {
2377
- "type": "string"
2378
- }
2379
- },
2380
- {
2381
- "name": "jobId",
2382
- "in": "path",
2383
- "required": true,
2384
- "schema": {
2385
- "type": "string"
2386
- }
2387
- }
2388
- ],
2389
- "responses": {
2390
- "200": {
2391
- "description": "Payload of TenderView",
2392
- "content": {
2393
- "application/json": {
2394
- "schema": {
2395
- "$ref": "#/components/schemas/tenderView"
2396
- }
2397
- }
2398
- }
2399
- },
2400
- "404": {
2401
- "description": "No description"
2402
- }
2403
- },
2404
- "security": [
2405
- {
2406
- "Implicit": [
2407
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2408
- ]
2409
- }
2410
- ]
2411
- }
2412
- },
2413
- "/v1.0/tenders/{id}/cv-proposal": {
2414
- "put": {
2415
- "tags": [
2416
- "Tenders"
2417
- ],
2418
- "summary": "Set or replace the Flowcase proposal + tailored-CV mapping attached to a tender.",
2419
- "operationId": "SetTenderCvProposal",
2420
- "parameters": [
2421
- {
2422
- "name": "id",
2423
- "in": "path",
2424
- "required": true,
2425
- "schema": {
2426
- "type": "string"
2427
- }
2428
- }
2429
- ],
2430
- "requestBody": {
2431
- "content": {
2432
- "application/json": {
2433
- "schema": {
2434
- "$ref": "#/components/schemas/tenderCvProposal"
2435
- }
2436
- }
2437
- },
2438
- "required": true
2439
- },
2440
- "responses": {
2441
- "200": {
2442
- "description": "Payload of TenderView",
2443
- "content": {
2444
- "application/json": {
2445
- "schema": {
2446
- "$ref": "#/components/schemas/tenderView"
2447
- }
2448
- }
2449
- }
2450
- },
2451
- "404": {
2452
- "description": "No description"
2453
- }
2454
- },
2455
- "security": [
2456
- {
2457
- "Implicit": [
2458
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2459
- ]
2460
- }
2461
- ]
2462
- }
2463
- },
2464
- "/v1.0/tenders/{id}/cv-proposal/variants": {
2465
- "post": {
2466
- "tags": [
2467
- "Tenders"
2468
- ],
2469
- "summary": "Upsert a single tailored-CV variant on a tender's proposal (per consultant).",
2470
- "operationId": "UpsertTenderCvVariant",
2471
- "parameters": [
2472
- {
2473
- "name": "id",
2474
- "in": "path",
2475
- "required": true,
2476
- "schema": {
2477
- "type": "string"
2478
- }
2479
- }
2480
- ],
2481
- "requestBody": {
2482
- "content": {
2483
- "application/json": {
2484
- "schema": {
2485
- "$ref": "#/components/schemas/tenderCvVariant"
2486
- }
2487
- }
2488
- },
2489
- "required": true
2490
- },
2491
- "responses": {
2492
- "200": {
2493
- "description": "Payload of TenderView",
2494
- "content": {
2495
- "application/json": {
2496
- "schema": {
2497
- "$ref": "#/components/schemas/tenderView"
2498
- }
2499
- }
2500
- }
2501
- },
2502
- "404": {
2503
- "description": "No description"
2504
- }
2505
- },
2506
- "security": [
2507
- {
2508
- "Implicit": [
2509
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2510
- ]
2511
- }
2512
- ]
2513
- }
2514
- },
2515
- "/v1.0/tenders/{id}/cv-proposal/variants/{email}": {
2516
- "delete": {
2517
- "tags": [
2518
- "Tenders"
2519
- ],
2520
- "summary": "Remove a tailored-CV variant from a tender's proposal by consultant email.",
2521
- "operationId": "RemoveTenderCvVariant",
2522
- "parameters": [
2523
- {
2524
- "name": "id",
2525
- "in": "path",
2526
- "required": true,
2527
- "schema": {
2528
- "type": "string"
2529
- }
2530
- },
2531
- {
2532
- "name": "email",
2533
- "in": "path",
2534
- "required": true,
2535
- "schema": {
2536
- "type": "string"
2537
- }
2538
- }
2539
- ],
2540
- "responses": {
2541
- "200": {
2542
- "description": "Payload of TenderView",
2543
- "content": {
2544
- "application/json": {
2545
- "schema": {
2546
- "$ref": "#/components/schemas/tenderView"
2547
- }
2548
- }
2549
- }
2550
- },
2551
- "404": {
2552
- "description": "No description"
2553
- }
2554
- },
2555
- "security": [
2556
- {
2557
- "Implicit": [
2558
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2559
- ]
2560
- }
2561
- ]
2562
- }
2563
- },
2564
- "/v1.0/tenders/{id}/consultants": {
2565
- "post": {
2566
- "tags": [
2567
- "Tenders"
2568
- ],
2569
- "summary": "Assign a consultant to a tender. Idempotent: assigning the same email twice refreshes Name/Note but does not create duplicates.",
2570
- "operationId": "AssignConsultant",
2571
- "parameters": [
2572
- {
2573
- "name": "id",
2574
- "in": "path",
2575
- "required": true,
2576
- "schema": {
2577
- "type": "string"
2578
- }
2579
- }
2580
- ],
2581
- "requestBody": {
2582
- "content": {
2583
- "application/json": {
2584
- "schema": {
2585
- "$ref": "#/components/schemas/assignedConsultant"
2586
- }
2587
- }
2588
- },
2589
- "required": true
2590
- },
2591
- "responses": {
2592
- "200": {
2593
- "description": "Payload of TenderView",
2594
- "content": {
2595
- "application/json": {
2596
- "schema": {
2597
- "$ref": "#/components/schemas/tenderView"
2598
- }
2599
- }
2600
- }
2601
- },
2602
- "404": {
2603
- "description": "No description"
2604
- }
2605
- },
2606
- "security": [
2607
- {
2608
- "Implicit": [
2609
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2610
- ]
2611
- }
2612
- ]
2613
- }
2614
- },
2615
- "/v1.0/tenders/{id}/slack-messages": {
2616
- "post": {
2617
- "tags": [
2618
- "Tenders"
2619
- ],
2620
- "summary": "Queue a Slack message for a tender (Service Bus → notifications-function).",
2621
- "operationId": "SendTenderSlackMessage",
2622
- "parameters": [
2623
- {
2624
- "name": "id",
2625
- "in": "path",
2626
- "required": true,
2627
- "schema": {
2628
- "type": "string"
2629
- }
2630
- }
2631
- ],
2632
- "requestBody": {
2633
- "content": {
2634
- "application/json": {
2635
- "schema": {
2636
- "$ref": "#/components/schemas/sendTenderSlackMessageRequest"
2637
- }
2638
- }
2639
- },
2640
- "required": true
2641
- },
2642
- "responses": {
2643
- "204": {
2644
- "description": "No description"
2645
- },
2646
- "400": {
2647
- "description": "No description"
2648
- },
2649
- "404": {
2650
- "description": "No description"
2651
- }
2652
- },
2653
- "security": [
2654
- {
2655
- "Implicit": [
2656
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2657
- ]
2658
- }
2659
- ]
2660
- }
2661
- },
2662
- "/v1.0/tenders/{id}/consultants/{email}": {
2663
- "delete": {
2664
- "tags": [
2665
- "Tenders"
2666
- ],
2667
- "summary": "Remove a consultant assignment from a tender. No-op if the email isn't assigned.",
2668
- "operationId": "UnassignConsultant",
2669
- "parameters": [
2670
- {
2671
- "name": "id",
2672
- "in": "path",
2673
- "required": true,
2674
- "schema": {
2675
- "type": "string"
2676
- }
2677
- },
2678
- {
2679
- "name": "email",
2680
- "in": "path",
2681
- "required": true,
2682
- "schema": {
2683
- "type": "string"
2684
- }
2685
- }
2686
- ],
2687
- "responses": {
2688
- "200": {
2689
- "description": "Payload of TenderView",
2690
- "content": {
2691
- "application/json": {
2692
- "schema": {
2693
- "$ref": "#/components/schemas/tenderView"
2694
- }
2695
- }
2696
- }
2697
- },
2698
- "404": {
2699
- "description": "No description"
2700
- }
2701
- },
2702
- "security": [
2703
- {
2704
- "Implicit": [
2705
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2706
- ]
2707
- }
2708
- ]
2709
- }
2710
- },
2711
- "/v1.0/tenders/{id}/jobs": {
2712
- "get": {
2713
- "tags": [
2714
- "Tenders"
2715
- ],
2716
- "summary": "Recent agent jobs (ingestion, CV matching, …) for a tender — newest first.",
2717
- "operationId": "ListTenderJobs",
2718
- "parameters": [
2719
- {
2720
- "name": "id",
2721
- "in": "path",
2722
- "required": true,
2723
- "schema": {
2724
- "type": "string"
2725
- }
2726
- },
2727
- {
2728
- "name": "limit",
2729
- "in": "query",
2730
- "schema": {
2731
- "type": "integer",
2732
- "format": "int32"
2733
- },
2734
- "x-ms-summary": "Max rows (default 10, capped at 100)."
2735
- }
2736
- ],
2737
- "responses": {
2738
- "200": {
2739
- "description": "Payload of Array of AgentJob",
2740
- "content": {
2741
- "application/json": {
2742
- "schema": {
2743
- "type": "array",
2744
- "items": {
2745
- "$ref": "#/components/schemas/agentJob"
2746
- }
2747
- }
2748
- }
2749
- }
2750
- }
2751
- },
2752
- "security": [
2753
- {
2754
- "Implicit": [
2755
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2756
- ]
2757
- }
2758
- ]
2759
- }
2760
- },
2761
- "/v1.0/admin/tenders": {
2762
- "delete": {
2763
- "tags": [
2764
- "Admin"
2765
- ],
2766
- "summary": "Delete all tenders",
2767
- "operationId": "DeleteAllTenders",
2768
- "responses": {
2769
- "200": {
2770
- "description": "Payload of Object",
2771
- "content": {
2772
- "application/json": {
2773
- "schema": {
2774
- "type": "object"
2775
- }
2776
- }
2777
- }
2778
- }
2779
- }
2780
- }
2781
- },
2782
- "/v1.0/admin/reprocess-matches": {
2783
- "post": {
2784
- "tags": [
2785
- "Admin"
2786
- ],
2787
- "summary": "Trigger CV matching on all tenders",
2788
- "operationId": "ReprocessMatches",
2789
- "parameters": [
2790
- {
2791
- "name": "unmatchedOnly",
2792
- "in": "query",
2793
- "description": "If true, only re-match tenders with no existing consultant matches",
2794
- "schema": {
2795
- "type": "boolean"
2796
- }
2797
- }
2798
- ],
2799
- "responses": {
2800
- "200": {
2801
- "description": "Payload of Object",
2802
- "content": {
2803
- "application/json": {
2804
- "schema": {
2805
- "type": "object"
2806
- }
2807
- }
2808
- }
2809
- }
2810
- },
2811
- "security": [
2812
- {
2813
- "Implicit": [
2814
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2815
- ]
2816
- }
2817
- ]
2818
- }
2819
- },
2820
- "/v1.0/tenders/export.csv": {
2821
- "get": {
2822
- "tags": [
2823
- "Tenders"
2824
- ],
2825
- "summary": "Export tenders matching the given filters as RFC 4180 CSV",
2826
- "operationId": "ExportTendersCsv",
2827
- "parameters": [
2828
- {
2829
- "name": "stage",
2830
- "in": "query",
2831
- "description": "Filter by status.stage (e.g. discovery, qualification)",
2832
- "schema": {
2833
- "type": "string"
2834
- }
2835
- },
2836
- {
2837
- "name": "state",
2838
- "in": "query",
2839
- "description": "Filter by status.state (e.g. active, irrelevant, ingestion_failed)",
2840
- "schema": {
2841
- "type": "string"
2842
- }
2843
- },
2844
- {
2845
- "name": "fromDate",
2846
- "in": "query",
2847
- "description": "Only include tenders with foundAt >= fromDate (ISO 8601)",
2848
- "schema": {
2849
- "type": "string",
2850
- "format": "date-time"
2851
- }
2852
- },
2853
- {
2854
- "name": "toDate",
2855
- "in": "query",
2856
- "description": "Only include tenders with foundAt <= toDate (ISO 8601)",
2857
- "schema": {
2858
- "type": "string",
2859
- "format": "date-time"
2860
- }
2861
- }
2862
- ],
2863
- "responses": {
2864
- "200": {
2865
- "description": "Payload of String",
2866
- "content": {
2867
- "text/csv": {
2868
- "schema": {
2869
- "type": "string"
2870
- }
2871
- }
2872
- },
2873
- "x-ms-summary": "CSV file with one tender per row"
2874
- }
2875
- },
2876
- "security": [
2877
- {
2878
- "Implicit": [
2879
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2880
- ]
2881
- }
2882
- ]
2883
- }
2884
- },
2885
- "/v1.0/tenders/stream": {
2886
- "get": {
2887
- "tags": [
2888
- "Tenders"
2889
- ],
2890
- "summary": "Server-sent-events stream of tender.created / tender.updated / tender.deleted events",
2891
- "operationId": "StreamTenderEvents",
2892
- "responses": {},
2893
- "security": [
2894
- {
2895
- "Implicit": [
2896
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2897
- ]
2898
- }
2899
- ]
2900
- }
2901
- }
2902
- },
2903
- "components": {
2904
- "schemas": {
2905
- "agentJob": {
2906
- "type": "object",
2907
- "properties": {
2908
- "id": {
2909
- "type": "string",
2910
- "nullable": true
2911
- },
2912
- "type": {
2913
- "type": "string",
2914
- "nullable": true
2915
- },
2916
- "jobType": {
2917
- "type": "string",
2918
- "nullable": true
2919
- },
2920
- "tenderId": {
2921
- "type": "string",
2922
- "nullable": true
2923
- },
2924
- "status": {
2925
- "type": "string",
2926
- "nullable": true
2927
- },
2928
- "error": {
2929
- "type": "string",
2930
- "nullable": true
2931
- },
2932
- "result": {
2933
- "type": "string",
2934
- "nullable": true
2935
- },
2936
- "startedAt": {
2937
- "type": "string",
2938
- "format": "date-time",
2939
- "nullable": true
2940
- },
2941
- "completedAt": {
2942
- "type": "string",
2943
- "format": "date-time",
2944
- "nullable": true
2945
- },
2946
- "triggeredBy": {
2947
- "type": "string",
2948
- "nullable": true
2949
- },
2950
- "orchestrationId": {
2951
- "type": "string",
2952
- "nullable": true
2953
- },
2954
- "externalId": {
2955
- "type": "string",
2956
- "nullable": true
2957
- },
2958
- "sourceName": {
2959
- "type": "string",
2960
- "nullable": true
2961
- },
2962
- "inputUrl": {
2963
- "type": "string",
2964
- "nullable": true
2965
- },
2966
- "inputTitle": {
2967
- "type": "string",
2968
- "nullable": true
2969
- },
2970
- "logs": {
2971
- "type": "array",
2972
- "items": {
2973
- "$ref": "#/components/schemas/agentJobLogEntry"
2974
- },
2975
- "nullable": true
2976
- },
2977
- "afterSnapshot": {
2978
- "type": "string",
2979
- "nullable": true
2980
- }
2981
- }
2982
- },
2983
- "agentJobLogEntry": {
2984
- "type": "object",
2985
- "properties": {
2986
- "at": {
2987
- "type": "string",
2988
- "format": "date-time",
2989
- "nullable": true
2990
- },
2991
- "level": {
2992
- "type": "string",
2993
- "nullable": true
2994
- },
2995
- "message": {
2996
- "type": "string",
2997
- "nullable": true
2998
- },
2999
- "data": {
3000
- "type": "object",
3001
- "additionalProperties": {
3002
- "type": "object"
3003
- },
3004
- "nullable": true
3005
- }
3006
- }
3007
- },
3008
- "assignedConsultant": {
3009
- "type": "object",
3010
- "properties": {
3011
- "email": {
3012
- "type": "string",
3013
- "nullable": true
3014
- },
3015
- "name": {
3016
- "type": "string",
3017
- "nullable": true
3018
- },
3019
- "assignedAt": {
3020
- "type": "string",
3021
- "format": "date-time",
3022
- "nullable": true
3023
- },
3024
- "assignedBy": {
3025
- "type": "string",
3026
- "nullable": true
3027
- },
3028
- "note": {
3029
- "type": "string",
3030
- "nullable": true
3031
- }
3032
- }
3033
- },
3034
- "auditEvent": {
3035
- "type": "object",
3036
- "properties": {
3037
- "id": {
3038
- "type": "string",
3039
- "nullable": true
3040
- },
3041
- "type": {
3042
- "type": "string",
3043
- "nullable": true
3044
- },
3045
- "tenderId": {
3046
- "type": "string",
3047
- "nullable": true
3048
- },
3049
- "actorEmail": {
3050
- "type": "string",
3051
- "nullable": true
3052
- },
3053
- "actorSource": {
3054
- "type": "string",
3055
- "nullable": true
3056
- },
3057
- "summary": {
3058
- "type": "string",
3059
- "nullable": true
3060
- },
3061
- "beforeSnapshot": {
3062
- "$ref": "#/components/schemas/auditSnapshot"
3063
- },
3064
- "afterSnapshot": {
3065
- "$ref": "#/components/schemas/auditSnapshot"
3066
- },
3067
- "timestamp": {
3068
- "type": "string",
3069
- "format": "date-time",
3070
- "nullable": true
3071
- }
3072
- }
3073
- },
3074
- "auditSnapshot": {
3075
- "type": "object",
3076
- "properties": {
3077
- "stage": {
3078
- "type": "string",
3079
- "nullable": true
3080
- },
3081
- "state": {
3082
- "type": "string",
3083
- "nullable": true
3084
- },
3085
- "consultantMatchCount": {
3086
- "type": "integer",
3087
- "format": "int32",
3088
- "nullable": true
3089
- },
3090
- "selectedConsultantIds": {
3091
- "type": "array",
3092
- "items": {
3093
- "type": "string"
3094
- },
3095
- "nullable": true
3096
- }
3097
- },
3098
- "nullable": true
3099
- },
3100
- "backfillSlugsResult": {
3101
- "type": "object",
3102
- "properties": {
3103
- "total": {
3104
- "type": "integer",
3105
- "format": "int32"
3106
- },
3107
- "alreadyHad": {
3108
- "type": "integer",
3109
- "format": "int32"
3110
- },
3111
- "updated": {
3112
- "type": "integer",
3113
- "format": "int32"
3114
- }
3115
- }
3116
- },
3117
- "backupSummary": {
3118
- "type": "object",
3119
- "properties": {
3120
- "blobAccount": {
3121
- "type": "string"
3122
- },
3123
- "container": {
3124
- "type": "string"
3125
- },
3126
- "prefix": {
3127
- "type": "string"
3128
- },
3129
- "containers": {
3130
- "type": "array",
3131
- "items": {
3132
- "$ref": "#/components/schemas/containerBackup"
3133
- }
3134
- },
3135
- "documentsCopied": {
3136
- "type": "integer",
3137
- "format": "int32"
3138
- },
3139
- "documentsBytes": {
3140
- "type": "integer",
3141
- "format": "int64"
3142
- },
3143
- "documentsFailures": {
3144
- "type": "integer",
3145
- "format": "int32"
3146
- },
3147
- "startedAt": {
3148
- "type": "string",
3149
- "format": "date-time"
3150
- },
3151
- "completedAt": {
3152
- "type": "string",
3153
- "format": "date-time"
3154
- }
3155
- }
3156
- },
3157
- "bulkDeleteJobError": {
3158
- "type": "object",
3159
- "properties": {
3160
- "jobId": {
3161
- "type": "string"
3162
- },
3163
- "message": {
3164
- "type": "string"
3165
- }
3166
- }
3167
- },
3168
- "bulkDeleteJobsRequest": {
3169
- "type": "object",
3170
- "properties": {
3171
- "jobIds": {
3172
- "type": "array",
3173
- "items": {
3174
- "type": "string"
3175
- }
3176
- }
3177
- }
3178
- },
3179
- "bulkDeleteJobsResponse": {
3180
- "type": "object",
3181
- "properties": {
3182
- "deleted": {
3183
- "type": "integer",
3184
- "format": "int32"
3185
- },
3186
- "errors": {
3187
- "type": "array",
3188
- "items": {
3189
- "$ref": "#/components/schemas/bulkDeleteJobError"
3190
- }
3191
- }
3192
- }
3193
- },
3194
- "consultantAnswers": {
3195
- "type": "object",
3196
- "properties": {
3197
- "consultantId": {
3198
- "type": "string",
3199
- "nullable": true
3200
- },
3201
- "email": {
3202
- "type": "string",
3203
- "nullable": true
3204
- },
3205
- "name": {
3206
- "type": "string",
3207
- "nullable": true
3208
- },
3209
- "generatedAt": {
3210
- "type": "string",
3211
- "format": "date-time",
3212
- "nullable": true
3213
- },
3214
- "filledDocumentId": {
3215
- "type": "string",
3216
- "nullable": true
3217
- }
3218
- }
3219
- },
3220
- "consultantMatch": {
3221
- "type": "object",
3222
- "properties": {
3223
- "consultantId": {
3224
- "type": "string",
3225
- "nullable": true
3226
- },
3227
- "businessId": {
3228
- "type": "string",
3229
- "nullable": true
3230
- },
3231
- "name": {
3232
- "type": "string",
3233
- "nullable": true
3234
- },
3235
- "fitScore": {
3236
- "type": "number",
3237
- "format": "double",
3238
- "nullable": true
3239
- },
3240
- "availabilityStatus": {
3241
- "type": "string",
3242
- "nullable": true
3243
- },
3244
- "availableFrom": {
3245
- "type": "string",
3246
- "nullable": true
3247
- },
3248
- "matchedTechnologies": {
3249
- "type": "array",
3250
- "items": {
3251
- "type": "string"
3252
- },
3253
- "nullable": true
3254
- },
3255
- "missingTechnologies": {
3256
- "type": "array",
3257
- "items": {
3258
- "type": "string"
3259
- },
3260
- "nullable": true
3261
- },
3262
- "selected": {
3263
- "type": "boolean",
3264
- "nullable": true
3265
- },
3266
- "fitExplanation": {
3267
- "type": "string",
3268
- "nullable": true
3269
- },
3270
- "cvSummary": {
3271
- "type": "string",
3272
- "nullable": true
3273
- },
3274
- "seniority": {
3275
- "type": "string",
3276
- "nullable": true
3277
- },
3278
- "email": {
3279
- "type": "string",
3280
- "nullable": true
3281
- },
3282
- "notifiedAt": {
3283
- "type": "string",
3284
- "format": "date-time",
3285
- "nullable": true
3286
- },
3287
- "consultantChannelNotifiedAt": {
3288
- "type": "string",
3289
- "format": "date-time",
3290
- "nullable": true
3291
- }
3292
- }
3293
- },
3294
- "consultantStatsResponse": {
3295
- "type": "object",
3296
- "properties": {
3297
- "total": {
3298
- "type": "integer",
3299
- "format": "int32"
3300
- },
3301
- "available": {
3302
- "type": "integer",
3303
- "format": "int32"
3304
- },
3305
- "onAssignment": {
3306
- "type": "integer",
3307
- "format": "int32"
3308
- },
3309
- "unknownAvailability": {
3310
- "type": "integer",
3311
- "format": "int32"
3312
- },
3313
- "avgFitScore": {
3314
- "type": "number",
3315
- "format": "double",
3316
- "nullable": true
3317
- }
3318
- }
3319
- },
3320
- "consultantSummary": {
3321
- "type": "object",
3322
- "properties": {
3323
- "userId": {
3324
- "type": "string",
3325
- "nullable": true
3326
- },
3327
- "email": {
3328
- "type": "string",
3329
- "nullable": true
3330
- },
3331
- "name": {
3332
- "type": "string",
3333
- "nullable": true
3334
- },
3335
- "technologies": {
3336
- "type": "array",
3337
- "items": {
3338
- "type": "string"
3339
- },
3340
- "nullable": true
3341
- },
3342
- "roles": {
3343
- "type": "array",
3344
- "items": {
3345
- "type": "string"
3346
- },
3347
- "nullable": true
3348
- },
3349
- "yearsExperience": {
3350
- "type": "integer",
3351
- "format": "int32",
3352
- "nullable": true
3353
- }
3354
- }
3355
- },
3356
- "containerBackup": {
3357
- "type": "object",
3358
- "properties": {
3359
- "name": {
3360
- "type": "string"
3361
- },
3362
- "blobPath": {
3363
- "type": "string"
3364
- },
3365
- "itemCount": {
3366
- "type": "integer",
3367
- "format": "int32"
3368
- },
3369
- "compressedBytes": {
3370
- "type": "integer",
3371
- "format": "int64"
3372
- }
3373
- }
3374
- },
3375
- "crawlActivityResponse": {
3376
- "type": "object",
3377
- "properties": {
3378
- "items": {
3379
- "type": "array",
3380
- "items": {
3381
- "$ref": "#/components/schemas/agentJob"
3382
- }
3383
- },
3384
- "total": {
3385
- "type": "integer",
3386
- "format": "int32"
3387
- }
3388
- }
3389
- },
3390
- "crawledNotice": {
3391
- "type": "object",
3392
- "properties": {
3393
- "sourceName": {
3394
- "type": "string"
3395
- },
3396
- "id": {
3397
- "type": "string"
3398
- },
3399
- "title": {
3400
- "type": "string"
3401
- },
3402
- "url": {
3403
- "type": "string"
3404
- }
3405
- }
3406
- },
3407
- "crawlPattern": {
3408
- "type": "object",
3409
- "properties": {
3410
- "sourceName": {
3411
- "type": "string"
3412
- },
3413
- "detailUrlRegex": {
3414
- "type": "string"
3415
- },
3416
- "paginationUrlRegex": {
3417
- "type": "string"
3418
- },
3419
- "sampleCount": {
3420
- "type": "integer",
3421
- "format": "int32"
3422
- },
3423
- "bootstrappedAt": {
3424
- "type": "string",
3425
- "format": "date-time"
3426
- }
3427
- }
3428
- },
3429
- "crawlPreviewResponse": {
3430
- "type": "object",
3431
- "properties": {
3432
- "sourceName": {
3433
- "type": "string"
3434
- },
3435
- "notices": {
3436
- "type": "array",
3437
- "items": {
3438
- "$ref": "#/components/schemas/crawledNotice"
3439
- }
3440
- },
3441
- "pattern": {
3442
- "$ref": "#/components/schemas/crawlPattern"
3443
- },
3444
- "startedAt": {
3445
- "type": "string",
3446
- "format": "date-time"
3447
- },
3448
- "finishedAt": {
3449
- "type": "string",
3450
- "format": "date-time"
3451
- },
3452
- "warnings": {
3453
- "type": "array",
3454
- "items": {
3455
- "type": "string"
3456
- }
3457
- }
3458
- }
3459
- },
3460
- "crawlScanResponse": {
3461
- "type": "object",
3462
- "properties": {
3463
- "sourceName": {
3464
- "type": "string"
3465
- },
3466
- "discovered": {
3467
- "type": "integer",
3468
- "format": "int32"
3469
- },
3470
- "queued": {
3471
- "type": "integer",
3472
- "format": "int32"
3473
- },
3474
- "merged": {
3475
- "type": "integer",
3476
- "format": "int32"
3477
- }
3478
- }
3479
- },
3480
- "crawlSourceConfig": {
3481
- "type": "object",
3482
- "properties": {
3483
- "name": {
3484
- "type": "string"
3485
- },
3486
- "seedUrl": {
3487
- "type": "string"
3488
- },
3489
- "maxPages": {
3490
- "type": "integer",
3491
- "format": "int32"
3492
- },
3493
- "enabled": {
3494
- "type": "boolean"
3495
- },
3496
- "createdAt": {
3497
- "type": "string",
3498
- "format": "date-time"
3499
- },
3500
- "updatedAt": {
3501
- "type": "string",
3502
- "format": "date-time"
3503
- }
3504
- }
3505
- },
3506
- "crawlSourceUpsertRequest": {
3507
- "type": "object",
3508
- "properties": {
3509
- "seedUrl": {
3510
- "type": "string"
3511
- },
3512
- "maxPages": {
3513
- "type": "integer",
3514
- "format": "int32",
3515
- "nullable": true
3516
- },
3517
- "enabled": {
3518
- "type": "boolean",
3519
- "nullable": true
3520
- }
3521
- }
3522
- },
3523
- "crawlSourceWithPattern": {
3524
- "type": "object",
3525
- "properties": {
3526
- "source": {
3527
- "$ref": "#/components/schemas/crawlSourceConfig"
3528
- },
3529
- "pattern": {
3530
- "$ref": "#/components/schemas/crawlPattern"
3531
- },
3532
- "lastActivityAt": {
3533
- "type": "string",
3534
- "format": "date-time",
3535
- "nullable": true
3536
- }
3537
- }
3538
- },
3539
- "crawlStatsResponse": {
3540
- "type": "object",
3541
- "properties": {
3542
- "sourceCount": {
3543
- "type": "integer",
3544
- "format": "int32"
3545
- },
3546
- "enabledSourceCount": {
3547
- "type": "integer",
3548
- "format": "int32"
3549
- },
3550
- "tendersActive": {
3551
- "type": "integer",
3552
- "format": "int32"
3553
- },
3554
- "tendersIrrelevant": {
3555
- "type": "integer",
3556
- "format": "int32"
3557
- },
3558
- "tendersIngestionFailed": {
3559
- "type": "integer",
3560
- "format": "int32"
3561
- },
3562
- "jobsPending": {
3563
- "type": "integer",
3564
- "format": "int32"
3565
- },
3566
- "jobsRunning": {
3567
- "type": "integer",
3568
- "format": "int32"
3569
- },
3570
- "jobsCompleted": {
3571
- "type": "integer",
3572
- "format": "int32"
3573
- },
3574
- "jobsFailed": {
3575
- "type": "integer",
3576
- "format": "int32"
3577
- },
3578
- "sources": {
3579
- "type": "array",
3580
- "items": {
3581
- "$ref": "#/components/schemas/sourceSummary"
3582
- }
3583
- }
3584
- }
3585
- },
3586
- "createBackupRequest": {
3587
- "type": "object",
3588
- "properties": {
3589
- "includeDocuments": {
3590
- "type": "boolean"
3591
- }
3592
- }
3593
- },
3594
- "deleteFailedTendersResponse": {
3595
- "type": "object",
3596
- "properties": {
3597
- "sourceName": {
3598
- "type": "string"
3599
- },
3600
- "matched": {
3601
- "type": "integer",
3602
- "format": "int32"
3603
- },
3604
- "deleted": {
3605
- "type": "integer",
3606
- "format": "int32"
3607
- }
3608
- }
3609
- },
3610
- "discoverListingRequest": {
3611
- "type": "object",
3612
- "properties": {
3613
- "homeUrl": {
3614
- "type": "string"
3615
- }
3616
- }
3617
- },
3618
- "discoverListingResponse": {
3619
- "type": "object",
3620
- "properties": {
3621
- "candidates": {
3622
- "type": "array",
3623
- "items": {
3624
- "$ref": "#/components/schemas/listingCandidate"
3625
- }
3626
- }
3627
- }
3628
- },
3629
- "externalSourceRef": {
3630
- "type": "object",
3631
- "properties": {
3632
- "system": {
3633
- "type": "string",
3634
- "nullable": true
3635
- },
3636
- "externalId": {
3637
- "type": "string",
3638
- "nullable": true
3639
- },
3640
- "url": {
3641
- "type": "string",
3642
- "nullable": true
3643
- },
3644
- "discoveredAt": {
3645
- "type": "string",
3646
- "format": "date-time",
3647
- "nullable": true
3648
- }
3649
- }
3650
- },
3651
- "extractedQuestion": {
3652
- "type": "object",
3653
- "properties": {
3654
- "id": {
3655
- "type": "string",
3656
- "nullable": true
3657
- },
3658
- "text": {
3659
- "type": "string",
3660
- "nullable": true
3661
- },
3662
- "kind": {
3663
- "type": "string",
3664
- "nullable": true
3665
- },
3666
- "expectedAnswerShape": {
3667
- "type": "string",
3668
- "nullable": true
3669
- },
3670
- "section": {
3671
- "type": "string",
3672
- "nullable": true
3673
- },
3674
- "sourceExcerpt": {
3675
- "type": "string",
3676
- "nullable": true
3677
- },
3678
- "placeholder": {
3679
- "type": "string",
3680
- "nullable": true
3681
- },
3682
- "currentValue": {
3683
- "type": "string",
3684
- "nullable": true
3685
- },
3686
- "sourceStrategy": {
3687
- "type": "string",
3688
- "nullable": true
3689
- },
3690
- "suggestedDataSource": {
3691
- "type": "string",
3692
- "nullable": true
3693
- },
3694
- "location": {
3695
- "$ref": "#/components/schemas/questionLocation"
3696
- }
3697
- }
3698
- },
3699
- "extractedQuestionSet": {
3700
- "type": "object",
3701
- "properties": {
3702
- "isFillable": {
3703
- "type": "boolean",
3704
- "nullable": true
3705
- },
3706
- "questions": {
3707
- "type": "array",
3708
- "items": {
3709
- "$ref": "#/components/schemas/extractedQuestion"
3710
- },
3711
- "nullable": true
3712
- },
3713
- "extractedAt": {
3714
- "type": "string",
3715
- "format": "date-time",
3716
- "nullable": true
3717
- }
3718
- },
3719
- "nullable": true
3720
- },
3721
- "funnelResponse": {
3722
- "type": "object",
3723
- "properties": {
3724
- "windowDays": {
3725
- "type": "integer",
3726
- "format": "int32"
3727
- },
3728
- "countByStage": {
3729
- "type": "object",
3730
- "additionalProperties": {
3731
- "type": "integer",
3732
- "format": "int32"
3733
- }
3734
- },
3735
- "conversionRates": {
3736
- "type": "object",
3737
- "additionalProperties": {
3738
- "type": "number",
3739
- "format": "double"
3740
- }
3741
- },
3742
- "avgCycleDays": {
3743
- "type": "object",
3744
- "additionalProperties": {
3745
- "type": "number",
3746
- "format": "double"
3747
- }
3748
- },
3749
- "wonCount": {
3750
- "type": "integer",
3751
- "format": "int32"
3752
- },
3753
- "lostCount": {
3754
- "type": "integer",
3755
- "format": "int32"
3756
- },
3757
- "winRatePct": {
3758
- "type": "number",
3759
- "format": "double",
3760
- "nullable": true
3761
- },
3762
- "stageTransitionsInWindow": {
3763
- "type": "object",
3764
- "additionalProperties": {
3765
- "type": "integer",
3766
- "format": "int32"
3767
- }
3768
- }
3769
- }
3770
- },
3771
- "ingestionAttachment": {
3772
- "type": "object",
3773
- "properties": {
3774
- "name": {
3775
- "type": "string",
3776
- "nullable": true
3777
- },
3778
- "contentType": {
3779
- "type": "string",
3780
- "nullable": true
3781
- },
3782
- "blobPath": {
3783
- "type": "string",
3784
- "nullable": true
3785
- },
3786
- "sizeBytes": {
3787
- "type": "integer",
3788
- "format": "int64",
3789
- "nullable": true
3790
- }
3791
- }
3792
- },
3793
- "ingestionRequest": {
3794
- "type": "object",
3795
- "properties": {
3796
- "sourceType": {
3797
- "type": "string",
3798
- "nullable": true
3799
- },
3800
- "content": {
3801
- "type": "string",
3802
- "nullable": true
3803
- },
3804
- "title": {
3805
- "type": "string",
3806
- "nullable": true
3807
- },
3808
- "existingTenderId": {
3809
- "type": "string",
3810
- "nullable": true
3811
- },
3812
- "externalId": {
3813
- "type": "string",
3814
- "nullable": true
3815
- },
3816
- "attachments": {
3817
- "type": "array",
3818
- "items": {
3819
- "$ref": "#/components/schemas/ingestionAttachment"
3820
- },
3821
- "nullable": true
3822
- }
3823
- }
3824
- },
3825
- "integrationHealthResult": {
3826
- "type": "object",
3827
- "properties": {
3828
- "key": {
3829
- "type": "string"
3830
- },
3831
- "status": {
3832
- "type": "string"
3833
- },
3834
- "message": {
3835
- "type": "string"
3836
- }
3837
- }
3838
- },
3839
- "listingCandidate": {
3840
- "type": "object",
3841
- "properties": {
3842
- "url": {
3843
- "type": "string"
3844
- },
3845
- "label": {
3846
- "type": "string"
3847
- },
3848
- "confidence": {
3849
- "type": "number",
3850
- "format": "double"
3851
- }
3852
- }
3853
- },
3854
- "negotiateRequest": {
3855
- "type": "object",
3856
- "properties": {
3857
- "groups": {
3858
- "type": "array",
3859
- "items": {
3860
- "type": "string"
3861
- }
3862
- }
3863
- }
3864
- },
3865
- "negotiateResponse": {
3866
- "type": "object",
3867
- "properties": {
3868
- "url": {
3869
- "type": "string"
3870
- },
3871
- "accessToken": {
3872
- "type": "string"
3873
- },
3874
- "hubName": {
3875
- "type": "string"
3876
- },
3877
- "groups": {
3878
- "type": "array",
3879
- "items": {
3880
- "type": "string"
3881
- }
3882
- }
3883
- }
3884
- },
3885
- "patchDocumentRequest": {
3886
- "type": "object",
3887
- "properties": {
3888
- "isCompetenceMatrixSource": {
3889
- "type": "boolean",
3890
- "nullable": true
3891
- }
3892
- }
3893
- },
3894
- "patchDocumentResponse": {
3895
- "type": "object",
3896
- "properties": {
3897
- "document": {
3898
- "$ref": "#/components/schemas/tenderDocument"
3899
- },
3900
- "extractionJob": {
3901
- "$ref": "#/components/schemas/agentJob"
3902
- }
3903
- }
3904
- },
3905
- "questionFillRequest": {
3906
- "type": "object",
3907
- "properties": {
3908
- "consultantEmails": {
3909
- "type": "array",
3910
- "items": {
3911
- "type": "string"
3912
- },
3913
- "nullable": true
3914
- }
3915
- }
3916
- },
3917
- "questionLocation": {
3918
- "type": "object",
3919
- "properties": {
3920
- "xmlPart": {
3921
- "type": "string",
3922
- "nullable": true
3923
- },
3924
- "bodyIndex": {
3925
- "type": "integer",
3926
- "format": "int32",
3927
- "nullable": true
3928
- },
3929
- "tableIndex": {
3930
- "type": "integer",
3931
- "format": "int32",
3932
- "nullable": true
3933
- },
3934
- "rowIndex": {
3935
- "type": "integer",
3936
- "format": "int32",
3937
- "nullable": true
3938
- },
3939
- "colIndex": {
3940
- "type": "integer",
3941
- "format": "int32",
3942
- "nullable": true
3943
- },
3944
- "sdtId": {
3945
- "type": "string",
3946
- "nullable": true
3947
- },
3948
- "sheetName": {
3949
- "type": "string",
3950
- "nullable": true
3951
- },
3952
- "cellReference": {
3953
- "type": "string",
3954
- "nullable": true
3955
- }
3956
- },
3957
- "nullable": true
3958
- },
3959
- "salesforceAttributes": {
3960
- "type": "object",
3961
- "properties": {
3962
- "type": {
3963
- "type": "string",
3964
- "nullable": true
3965
- },
3966
- "url": {
3967
- "type": "string",
3968
- "nullable": true
3969
- }
3970
- },
3971
- "nullable": true
3972
- },
3973
- "salesforceOpportunity": {
3974
- "type": "object",
3975
- "properties": {
3976
- "attributes": {
3977
- "$ref": "#/components/schemas/salesforceAttributes"
3978
- },
3979
- "Id": {
3980
- "type": "string",
3981
- "nullable": true
3982
- },
3983
- "Name": {
3984
- "type": "string",
3985
- "nullable": true
3986
- },
3987
- "StageName": {
3988
- "type": "string",
3989
- "nullable": true
3990
- },
3991
- "CloseDate": {
3992
- "type": "string",
3993
- "format": "date-time",
3994
- "nullable": true
3995
- },
3996
- "IsClosed": {
3997
- "type": "boolean",
3998
- "nullable": true
3999
- },
4000
- "IsWon": {
4001
- "type": "boolean",
4002
- "nullable": true
4003
- },
4004
- "Amount": {
4005
- "type": "number",
4006
- "format": "double",
4007
- "nullable": true
4008
- },
4009
- "Account": {
4010
- "$ref": "#/components/schemas/salesforceReference"
4011
- },
4012
- "Owner": {
4013
- "$ref": "#/components/schemas/salesforceReference"
4014
- },
4015
- "Snokam_Tender_Id__c": {
4016
- "type": "string",
4017
- "nullable": true
4018
- }
4019
- }
4020
- },
4021
- "salesforceOpportunityStage": {
4022
- "type": "object",
4023
- "properties": {
4024
- "MasterLabel": {
4025
- "type": "string",
4026
- "nullable": true
4027
- },
4028
- "ApiName": {
4029
- "type": "string",
4030
- "nullable": true
4031
- },
4032
- "IsActive": {
4033
- "type": "boolean",
4034
- "nullable": true
4035
- },
4036
- "IsClosed": {
4037
- "type": "boolean",
4038
- "nullable": true
4039
- },
4040
- "IsWon": {
4041
- "type": "boolean",
4042
- "nullable": true
4043
- },
4044
- "SortOrder": {
4045
- "type": "integer",
4046
- "format": "int32",
4047
- "nullable": true
4048
- }
4049
- }
4050
- },
4051
- "salesforceReference": {
4052
- "type": "object",
4053
- "properties": {
4054
- "Name": {
4055
- "type": "string",
4056
- "nullable": true
4057
- },
4058
- "Id": {
4059
- "type": "string",
4060
- "nullable": true
4061
- },
4062
- "Email": {
4063
- "type": "string",
4064
- "nullable": true
4065
- }
4066
- },
4067
- "nullable": true
4068
- },
4069
- "salesforceRefreshResult": {
4070
- "type": "object",
4071
- "properties": {
4072
- "checked": {
4073
- "type": "integer",
4074
- "format": "int32"
4075
- },
4076
- "updated": {
4077
- "type": "integer",
4078
- "format": "int32"
4079
- }
4080
- }
4081
- },
4082
- "sendTenderSlackMessageRequest": {
4083
- "type": "object",
4084
- "properties": {
4085
- "employeeName": {
4086
- "type": "string",
4087
- "nullable": true
4088
- },
4089
- "message": {
4090
- "type": "string",
4091
- "nullable": true
4092
- }
4093
- }
4094
- },
4095
- "sourceFile": {
4096
- "type": "object",
4097
- "properties": {
4098
- "name": {
4099
- "type": "string",
4100
- "nullable": true
4101
- },
4102
- "url": {
4103
- "type": "string",
4104
- "nullable": true
4105
- }
4106
- }
4107
- },
4108
- "sourceSummary": {
4109
- "type": "object",
4110
- "properties": {
4111
- "name": {
4112
- "type": "string"
4113
- },
4114
- "seedUrl": {
4115
- "type": "string"
4116
- },
4117
- "enabled": {
4118
- "type": "boolean"
4119
- },
4120
- "hasPattern": {
4121
- "type": "boolean"
4122
- },
4123
- "patternSampleCount": {
4124
- "type": "integer",
4125
- "format": "int32"
4126
- },
4127
- "patternBootstrappedAt": {
4128
- "type": "string",
4129
- "format": "date-time",
4130
- "nullable": true
4131
- }
4132
- }
4133
- },
4134
- "tenderAudit": {
4135
- "type": "object",
4136
- "properties": {
4137
- "createdAt": {
4138
- "type": "string",
4139
- "format": "date-time",
4140
- "nullable": true
4141
- },
4142
- "updatedAt": {
4143
- "type": "string",
4144
- "format": "date-time",
4145
- "nullable": true
4146
- },
4147
- "updatedBy": {
4148
- "type": "string",
4149
- "nullable": true
4150
- }
4151
- },
4152
- "nullable": true
4153
- },
4154
- "tenderClassification": {
4155
- "type": "object",
4156
- "properties": {
4157
- "technologies": {
4158
- "type": "array",
4159
- "items": {
4160
- "type": "string"
4161
- },
4162
- "nullable": true
4163
- },
4164
- "competenceAreas": {
4165
- "type": "array",
4166
- "items": {
4167
- "type": "string"
4168
- },
4169
- "nullable": true
4170
- },
4171
- "domains": {
4172
- "type": "array",
4173
- "items": {
4174
- "type": "string"
4175
- },
4176
- "nullable": true
4177
- },
4178
- "languageRequirements": {
4179
- "type": "array",
4180
- "items": {
4181
- "type": "string"
4182
- },
4183
- "nullable": true
4184
- },
4185
- "seniorityRequirements": {
4186
- "type": "array",
4187
- "items": {
4188
- "type": "string"
4189
- },
4190
- "nullable": true
4191
- },
4192
- "securityRequirements": {
4193
- "type": "array",
4194
- "items": {
4195
- "type": "string"
4196
- },
4197
- "nullable": true
4198
- }
4199
- },
4200
- "nullable": true
4201
- },
4202
- "tenderCvProposal": {
4203
- "type": "object",
4204
- "properties": {
4205
- "proposalId": {
4206
- "type": "string",
4207
- "nullable": true
4208
- },
4209
- "createdAt": {
4210
- "type": "string",
4211
- "format": "date-time",
4212
- "nullable": true
4213
- },
4214
- "createdBy": {
4215
- "type": "string",
4216
- "nullable": true
4217
- },
4218
- "variants": {
4219
- "type": "array",
4220
- "items": {
4221
- "$ref": "#/components/schemas/tenderCvVariant"
4222
- },
4223
- "nullable": true
4224
- }
4225
- }
4226
- },
4227
- "tenderCvVariant": {
4228
- "type": "object",
4229
- "properties": {
4230
- "consultantEmail": {
4231
- "type": "string",
4232
- "nullable": true
4233
- },
4234
- "consultantName": {
4235
- "type": "string",
4236
- "nullable": true
4237
- },
4238
- "userId": {
4239
- "type": "string",
4240
- "nullable": true
4241
- },
4242
- "tailoredCvId": {
4243
- "type": "string",
4244
- "nullable": true
4245
- },
4246
- "attachmentId": {
4247
- "type": "string",
4248
- "nullable": true
4249
- },
4250
- "createdAt": {
4251
- "type": "string",
4252
- "format": "date-time",
4253
- "nullable": true
4254
- }
4255
- }
4256
- },
4257
- "tenderDates": {
4258
- "type": "object",
4259
- "properties": {
4260
- "foundAt": {
4261
- "type": "string",
4262
- "format": "date-time",
4263
- "nullable": true
4264
- },
4265
- "publishedAt": {
4266
- "type": "string",
4267
- "format": "date-time",
4268
- "nullable": true
4269
- },
4270
- "deadlineAt": {
4271
- "type": "string",
4272
- "format": "date-time",
4273
- "nullable": true
4274
- },
4275
- "lastUpdatedAt": {
4276
- "type": "string",
4277
- "format": "date-time",
4278
- "nullable": true
4279
- }
4280
- },
4281
- "nullable": true
4282
- },
4283
- "tenderDocument": {
4284
- "type": "object",
4285
- "properties": {
4286
- "id": {
4287
- "type": "string",
4288
- "nullable": true
4289
- },
4290
- "type": {
4291
- "type": "string",
4292
- "nullable": true
4293
- },
4294
- "title": {
4295
- "type": "string",
4296
- "nullable": true
4297
- },
4298
- "consultantId": {
4299
- "type": "string",
4300
- "nullable": true
4301
- },
4302
- "status": {
4303
- "type": "string",
4304
- "nullable": true
4305
- },
4306
- "reviewStatus": {
4307
- "type": "string",
4308
- "nullable": true
4309
- },
4310
- "sharepointUrl": {
4311
- "type": "string",
4312
- "nullable": true
4313
- },
4314
- "generatedAt": {
4315
- "type": "string",
4316
- "format": "date-time",
4317
- "nullable": true
4318
- },
4319
- "lastReviewedAt": {
4320
- "type": "string",
4321
- "format": "date-time",
4322
- "nullable": true
4323
- },
4324
- "blobPath": {
4325
- "type": "string",
4326
- "nullable": true
4327
- },
4328
- "blobUrl": {
4329
- "type": "string",
4330
- "nullable": true
4331
- },
4332
- "sourceUrl": {
4333
- "type": "string",
4334
- "nullable": true
4335
- },
4336
- "mimeType": {
4337
- "type": "string",
4338
- "nullable": true
4339
- },
4340
- "sizeBytes": {
4341
- "type": "integer",
4342
- "format": "int64",
4343
- "nullable": true
4344
- },
4345
- "downloadedAt": {
4346
- "type": "string",
4347
- "format": "date-time",
4348
- "nullable": true
4349
- },
4350
- "textContent": {
4351
- "type": "string",
4352
- "nullable": true
4353
- },
4354
- "isCompetenceMatrixSource": {
4355
- "type": "boolean",
4356
- "nullable": true
4357
- },
4358
- "classificationReasoning": {
4359
- "type": "string",
4360
- "nullable": true
4361
- },
4362
- "extractedQuestions": {
4363
- "$ref": "#/components/schemas/extractedQuestionSet"
4364
- },
4365
- "questionAnswers": {
4366
- "type": "array",
4367
- "items": {
4368
- "$ref": "#/components/schemas/consultantAnswers"
4369
- },
4370
- "nullable": true
4371
- },
4372
- "extractionStatus": {
4373
- "type": "string",
4374
- "nullable": true
4375
- },
4376
- "extractionError": {
4377
- "type": "string",
4378
- "nullable": true
4379
- },
4380
- "extractionStartedAt": {
4381
- "type": "string",
4382
- "format": "date-time",
4383
- "nullable": true
4384
- }
4385
- }
4386
- },
4387
- "tenderInfo": {
4388
- "type": "object",
4389
- "properties": {
4390
- "title": {
4391
- "type": "string",
4392
- "nullable": true
4393
- },
4394
- "customer": {
4395
- "type": "string",
4396
- "nullable": true
4397
- },
4398
- "country": {
4399
- "type": "string",
4400
- "nullable": true
4401
- },
4402
- "location": {
4403
- "type": "string",
4404
- "nullable": true
4405
- },
4406
- "workMode": {
4407
- "type": "string",
4408
- "nullable": true
4409
- }
4410
- },
4411
- "nullable": true
4412
- },
4413
- "tenderParser": {
4414
- "type": "object",
4415
- "properties": {
4416
- "lastRunAt": {
4417
- "type": "string",
4418
- "format": "date-time",
4419
- "nullable": true
4420
- },
4421
- "status": {
4422
- "type": "string",
4423
- "nullable": true
4424
- },
4425
- "version": {
4426
- "type": "string",
4427
- "nullable": true
4428
- },
4429
- "confidence": {
4430
- "type": "number",
4431
- "format": "double",
4432
- "nullable": true
4433
- },
4434
- "warnings": {
4435
- "type": "array",
4436
- "items": {
4437
- "type": "string"
4438
- },
4439
- "nullable": true
4440
- }
4441
- },
4442
- "nullable": true
4443
- },
4444
- "tenderSalesforce": {
4445
- "type": "object",
4446
- "properties": {
4447
- "opportunityId": {
4448
- "type": "string",
4449
- "nullable": true
4450
- },
4451
- "stageName": {
4452
- "type": "string",
4453
- "nullable": true
4454
- },
4455
- "isClosed": {
4456
- "type": "boolean",
4457
- "nullable": true
4458
- },
4459
- "isWon": {
4460
- "type": "boolean",
4461
- "nullable": true
4462
- },
4463
- "url": {
4464
- "type": "string",
4465
- "nullable": true
4466
- },
4467
- "lastSyncedAt": {
4468
- "type": "string",
4469
- "format": "date-time",
4470
- "nullable": true
4471
- }
4472
- },
4473
- "nullable": true
4474
- },
4475
- "tenderSource": {
4476
- "type": "object",
4477
- "properties": {
4478
- "externalTenderId": {
4479
- "type": "string",
4480
- "nullable": true
4481
- },
4482
- "sourceSystem": {
4483
- "type": "string",
4484
- "nullable": true
4485
- },
4486
- "sourceUrl": {
4487
- "type": "string",
4488
- "nullable": true
4489
- },
4490
- "sourceFiles": {
4491
- "type": "array",
4492
- "items": {
4493
- "$ref": "#/components/schemas/sourceFile"
4494
- },
4495
- "nullable": true
4496
- },
4497
- "additionalSources": {
4498
- "type": "array",
4499
- "items": {
4500
- "$ref": "#/components/schemas/externalSourceRef"
4501
- },
4502
- "nullable": true
4503
- }
4504
- },
4505
- "nullable": true
4506
- },
4507
- "tenderStatsResponse": {
4508
- "type": "object",
4509
- "properties": {
4510
- "byStatus": {
4511
- "type": "object",
4512
- "additionalProperties": {
4513
- "type": "integer",
4514
- "format": "int32"
4515
- }
4516
- },
4517
- "byStage": {
4518
- "type": "object",
4519
- "additionalProperties": {
4520
- "type": "integer",
4521
- "format": "int32"
4522
- }
4523
- },
4524
- "byHealth": {
4525
- "type": "object",
4526
- "additionalProperties": {
4527
- "type": "integer",
4528
- "format": "int32"
4529
- }
4530
- },
4531
- "total": {
4532
- "type": "integer",
4533
- "format": "int32"
4534
- },
4535
- "windowDays": {
4536
- "type": "integer",
4537
- "format": "int32"
4538
- },
4539
- "tendersInWindow": {
4540
- "type": "integer",
4541
- "format": "int32"
4542
- },
4543
- "consultantsMatched": {
4544
- "type": "integer",
4545
- "format": "int32"
4546
- },
4547
- "avgTimeToMatchHours": {
4548
- "type": "number",
4549
- "format": "double",
4550
- "nullable": true
4551
- }
4552
- }
4553
- },
4554
- "tenderStatus": {
4555
- "type": "object",
4556
- "properties": {
4557
- "stage": {
4558
- "type": "string",
4559
- "nullable": true
4560
- },
4561
- "state": {
4562
- "type": "string",
4563
- "nullable": true
4564
- },
4565
- "health": {
4566
- "type": "string",
4567
- "nullable": true
4568
- }
4569
- },
4570
- "nullable": true
4571
- },
4572
- "tenderTodo": {
4573
- "type": "object",
4574
- "properties": {
4575
- "id": {
4576
- "type": "string",
4577
- "nullable": true
4578
- },
4579
- "title": {
4580
- "type": "string",
4581
- "nullable": true
4582
- },
4583
- "description": {
4584
- "type": "string",
4585
- "nullable": true
4586
- },
4587
- "source": {
4588
- "type": "string",
4589
- "nullable": true
4590
- },
4591
- "category": {
4592
- "type": "string",
4593
- "nullable": true
4594
- },
4595
- "priority": {
4596
- "type": "string",
4597
- "nullable": true
4598
- },
4599
- "status": {
4600
- "type": "string",
4601
- "nullable": true
4602
- },
4603
- "assignedTo": {
4604
- "type": "string",
4605
- "nullable": true
4606
- },
4607
- "dueAt": {
4608
- "type": "string",
4609
- "format": "date-time",
4610
- "nullable": true
4611
- },
4612
- "completedAt": {
4613
- "type": "string",
4614
- "format": "date-time",
4615
- "nullable": true
4616
- }
4617
- }
4618
- },
4619
- "tenderView": {
4620
- "type": "object",
4621
- "properties": {
4622
- "id": {
4623
- "type": "string",
4624
- "nullable": true
4625
- },
4626
- "type": {
4627
- "type": "string",
4628
- "nullable": true
4629
- },
4630
- "slug": {
4631
- "type": "string",
4632
- "nullable": true
4633
- },
4634
- "source": {
4635
- "$ref": "#/components/schemas/tenderSource"
4636
- },
4637
- "info": {
4638
- "$ref": "#/components/schemas/tenderInfo"
4639
- },
4640
- "dates": {
4641
- "$ref": "#/components/schemas/tenderDates"
4642
- },
4643
- "status": {
4644
- "$ref": "#/components/schemas/tenderStatus"
4645
- },
4646
- "classification": {
4647
- "$ref": "#/components/schemas/tenderClassification"
4648
- },
4649
- "parser": {
4650
- "$ref": "#/components/schemas/tenderParser"
4651
- },
4652
- "todos": {
4653
- "type": "array",
4654
- "items": {
4655
- "$ref": "#/components/schemas/tenderTodo"
4656
- },
4657
- "nullable": true
4658
- },
4659
- "documents": {
4660
- "type": "array",
4661
- "items": {
4662
- "$ref": "#/components/schemas/tenderDocument"
4663
- },
4664
- "nullable": true
4665
- },
4666
- "businessIds": {
4667
- "type": "array",
4668
- "items": {
4669
- "type": "string"
4670
- },
4671
- "nullable": true
4672
- },
4673
- "consultantMatches": {
4674
- "type": "array",
4675
- "items": {
4676
- "$ref": "#/components/schemas/consultantMatch"
4677
- },
4678
- "nullable": true
4679
- },
4680
- "assignedConsultants": {
4681
- "type": "array",
4682
- "items": {
4683
- "$ref": "#/components/schemas/assignedConsultant"
4684
- },
4685
- "nullable": true
4686
- },
4687
- "cvProposal": {
4688
- "$ref": "#/components/schemas/tenderCvProposal"
4689
- },
4690
- "audit": {
4691
- "$ref": "#/components/schemas/tenderAudit"
4692
- },
4693
- "description": {
4694
- "type": "string",
4695
- "nullable": true
4696
- },
4697
- "summary": {
4698
- "type": "string",
4699
- "nullable": true
4700
- },
4701
- "timeline": {
4702
- "type": "array",
4703
- "items": {
4704
- "$ref": "#/components/schemas/timelineEvent"
4705
- },
4706
- "nullable": true
4707
- },
4708
- "blobContainer": {
4709
- "type": "string",
4710
- "nullable": true
4711
- },
4712
- "salesforce": {
4713
- "$ref": "#/components/schemas/tenderSalesforce"
4714
- }
4715
- }
4716
- },
4717
- "timelineEvent": {
4718
- "type": "object",
4719
- "properties": {
4720
- "id": {
4721
- "type": "string",
4722
- "nullable": true
4723
- },
4724
- "title": {
4725
- "type": "string",
4726
- "nullable": true
4727
- },
4728
- "description": {
4729
- "type": "string",
4730
- "nullable": true
4731
- },
4732
- "dueAt": {
4733
- "type": "string",
4734
- "format": "date-time",
4735
- "nullable": true
4736
- },
4737
- "category": {
4738
- "type": "string",
4739
- "nullable": true
4740
- },
4741
- "mandatory": {
4742
- "type": "boolean",
4743
- "nullable": true
4744
- },
4745
- "status": {
4746
- "type": "string",
4747
- "nullable": true
4748
- }
4749
- }
4750
- },
4751
- "updateSalesforceStageRequest": {
4752
- "type": "object",
4753
- "properties": {
4754
- "stageName": {
4755
- "type": "string"
4756
- }
4757
- }
4758
- },
4759
- "zombieReapResult": {
4760
- "type": "object",
4761
- "properties": {
4762
- "scanned": {
4763
- "type": "integer",
4764
- "format": "int32"
4765
- },
4766
- "reaped": {
4767
- "type": "integer",
4768
- "format": "int32"
4769
- },
4770
- "reapedJobIds": {
4771
- "type": "array",
4772
- "items": {
4773
- "type": "string"
4774
- }
4775
- }
4776
- }
4777
- }
4778
- },
4779
- "securitySchemes": {
4780
- "Implicit": {
4781
- "type": "oauth2",
4782
- "flows": {
4783
- "implicit": {
4784
- "authorizationUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize",
4785
- "tokenUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token",
4786
- "refreshUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token",
4787
- "scopes": {
4788
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default": "Default function scope"
4789
- }
4790
- }
4791
- }
4792
- }
4793
- }
4794
- }
4795
- }