@snokam/mcp-api 2.16.0 → 2.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/specs/production/sales.json +356 -166
- package/specs/test/sales.json +356 -166
package/specs/test/sales.json
CHANGED
|
@@ -447,6 +447,112 @@
|
|
|
447
447
|
]
|
|
448
448
|
}
|
|
449
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://d7f15838-af74-4048-88b3-503089de0064/.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://d7f15838-af74-4048-88b3-503089de0064/.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://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
551
|
+
]
|
|
552
|
+
}
|
|
553
|
+
]
|
|
554
|
+
}
|
|
555
|
+
},
|
|
450
556
|
"/v1.0/crawl/sources": {
|
|
451
557
|
"get": {
|
|
452
558
|
"tags": [
|
|
@@ -1436,45 +1542,6 @@
|
|
|
1436
1542
|
]
|
|
1437
1543
|
}
|
|
1438
1544
|
},
|
|
1439
|
-
"/v1.0/tenders/funnel": {
|
|
1440
|
-
"get": {
|
|
1441
|
-
"tags": [
|
|
1442
|
-
"Tenders"
|
|
1443
|
-
],
|
|
1444
|
-
"summary": "Pipeline funnel analytics: stage counts, conversion rates, cycle times",
|
|
1445
|
-
"operationId": "GetTenderFunnel",
|
|
1446
|
-
"parameters": [
|
|
1447
|
-
{
|
|
1448
|
-
"name": "windowDays",
|
|
1449
|
-
"in": "query",
|
|
1450
|
-
"description": "Rolling window in days (default 30, max 365)",
|
|
1451
|
-
"schema": {
|
|
1452
|
-
"type": "integer",
|
|
1453
|
-
"format": "int32"
|
|
1454
|
-
}
|
|
1455
|
-
}
|
|
1456
|
-
],
|
|
1457
|
-
"responses": {
|
|
1458
|
-
"200": {
|
|
1459
|
-
"description": "Payload of FunnelResponse",
|
|
1460
|
-
"content": {
|
|
1461
|
-
"application/json": {
|
|
1462
|
-
"schema": {
|
|
1463
|
-
"$ref": "#/components/schemas/funnelResponse"
|
|
1464
|
-
}
|
|
1465
|
-
}
|
|
1466
|
-
}
|
|
1467
|
-
}
|
|
1468
|
-
},
|
|
1469
|
-
"security": [
|
|
1470
|
-
{
|
|
1471
|
-
"Implicit": [
|
|
1472
|
-
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
1473
|
-
]
|
|
1474
|
-
}
|
|
1475
|
-
]
|
|
1476
|
-
}
|
|
1477
|
-
},
|
|
1478
1545
|
"/v1.0/realtime/negotiate": {
|
|
1479
1546
|
"post": {
|
|
1480
1547
|
"tags": [
|
|
@@ -1515,6 +1582,69 @@
|
|
|
1515
1582
|
]
|
|
1516
1583
|
}
|
|
1517
1584
|
},
|
|
1585
|
+
"/v1.0/stream": {
|
|
1586
|
+
"get": {
|
|
1587
|
+
"tags": [
|
|
1588
|
+
"Realtime"
|
|
1589
|
+
],
|
|
1590
|
+
"summary": "Unified SSE stream: tender/job/crawl/consultant/audit events on one connection",
|
|
1591
|
+
"operationId": "StreamAll",
|
|
1592
|
+
"parameters": [
|
|
1593
|
+
{
|
|
1594
|
+
"name": "channels",
|
|
1595
|
+
"in": "query",
|
|
1596
|
+
"description": "Comma-separated namespaces to include (tender,job,crawl,consultant,audit). Default: all.",
|
|
1597
|
+
"schema": {
|
|
1598
|
+
"type": "string"
|
|
1599
|
+
}
|
|
1600
|
+
}
|
|
1601
|
+
],
|
|
1602
|
+
"responses": {},
|
|
1603
|
+
"security": [
|
|
1604
|
+
{
|
|
1605
|
+
"Implicit": [
|
|
1606
|
+
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
1607
|
+
]
|
|
1608
|
+
}
|
|
1609
|
+
]
|
|
1610
|
+
}
|
|
1611
|
+
},
|
|
1612
|
+
"/v1.0/tenders/stream-redirect": {
|
|
1613
|
+
"get": {
|
|
1614
|
+
"tags": [
|
|
1615
|
+
"Realtime"
|
|
1616
|
+
],
|
|
1617
|
+
"summary": "Deprecated: redirects to /v1.0/stream?channels=tender,job",
|
|
1618
|
+
"operationId": "DeprecatedTenderStream",
|
|
1619
|
+
"responses": {},
|
|
1620
|
+
"deprecated": true,
|
|
1621
|
+
"security": [
|
|
1622
|
+
{
|
|
1623
|
+
"Implicit": [
|
|
1624
|
+
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
1625
|
+
]
|
|
1626
|
+
}
|
|
1627
|
+
]
|
|
1628
|
+
}
|
|
1629
|
+
},
|
|
1630
|
+
"/v1.0/crawl/stream-redirect": {
|
|
1631
|
+
"get": {
|
|
1632
|
+
"tags": [
|
|
1633
|
+
"Realtime"
|
|
1634
|
+
],
|
|
1635
|
+
"summary": "Deprecated: redirects to /v1.0/stream?channels=crawl,job",
|
|
1636
|
+
"operationId": "DeprecatedCrawlStream",
|
|
1637
|
+
"responses": {},
|
|
1638
|
+
"deprecated": true,
|
|
1639
|
+
"security": [
|
|
1640
|
+
{
|
|
1641
|
+
"Implicit": [
|
|
1642
|
+
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
1643
|
+
]
|
|
1644
|
+
}
|
|
1645
|
+
]
|
|
1646
|
+
}
|
|
1647
|
+
},
|
|
1518
1648
|
"/v1.0/salesforce/opportunities": {
|
|
1519
1649
|
"get": {
|
|
1520
1650
|
"tags": [
|
|
@@ -1723,31 +1853,23 @@
|
|
|
1723
1853
|
]
|
|
1724
1854
|
}
|
|
1725
1855
|
},
|
|
1726
|
-
"/v1.0/tenders
|
|
1856
|
+
"/v1.0/tenders": {
|
|
1727
1857
|
"get": {
|
|
1728
1858
|
"tags": [
|
|
1729
1859
|
"Tenders"
|
|
1730
1860
|
],
|
|
1731
|
-
"summary": "
|
|
1732
|
-
"operationId": "
|
|
1733
|
-
"parameters": [
|
|
1734
|
-
{
|
|
1735
|
-
"name": "windowDays",
|
|
1736
|
-
"in": "query",
|
|
1737
|
-
"description": "Rolling window for activity-based metrics (defaults to 30, max 365)",
|
|
1738
|
-
"schema": {
|
|
1739
|
-
"type": "integer",
|
|
1740
|
-
"format": "int32"
|
|
1741
|
-
}
|
|
1742
|
-
}
|
|
1743
|
-
],
|
|
1861
|
+
"summary": "List all tenders",
|
|
1862
|
+
"operationId": "ListTenders",
|
|
1744
1863
|
"responses": {
|
|
1745
1864
|
"200": {
|
|
1746
|
-
"description": "Payload of
|
|
1865
|
+
"description": "Payload of Array of Tender",
|
|
1747
1866
|
"content": {
|
|
1748
1867
|
"application/json": {
|
|
1749
1868
|
"schema": {
|
|
1750
|
-
"
|
|
1869
|
+
"type": "array",
|
|
1870
|
+
"items": {
|
|
1871
|
+
"$ref": "#/components/schemas/tender"
|
|
1872
|
+
}
|
|
1751
1873
|
}
|
|
1752
1874
|
}
|
|
1753
1875
|
}
|
|
@@ -1760,22 +1882,30 @@
|
|
|
1760
1882
|
]
|
|
1761
1883
|
}
|
|
1762
1884
|
]
|
|
1763
|
-
}
|
|
1764
|
-
|
|
1765
|
-
"/v1.0/consultants/stats": {
|
|
1766
|
-
"get": {
|
|
1885
|
+
},
|
|
1886
|
+
"post": {
|
|
1767
1887
|
"tags": [
|
|
1768
|
-
"
|
|
1888
|
+
"Tenders"
|
|
1769
1889
|
],
|
|
1770
|
-
"summary": "
|
|
1771
|
-
"operationId": "
|
|
1890
|
+
"summary": "Create a new tender",
|
|
1891
|
+
"operationId": "CreateTender",
|
|
1892
|
+
"requestBody": {
|
|
1893
|
+
"content": {
|
|
1894
|
+
"application/json": {
|
|
1895
|
+
"schema": {
|
|
1896
|
+
"$ref": "#/components/schemas/tender"
|
|
1897
|
+
}
|
|
1898
|
+
}
|
|
1899
|
+
},
|
|
1900
|
+
"required": true
|
|
1901
|
+
},
|
|
1772
1902
|
"responses": {
|
|
1773
|
-
"
|
|
1774
|
-
"description": "Payload of
|
|
1903
|
+
"201": {
|
|
1904
|
+
"description": "Payload of Tender",
|
|
1775
1905
|
"content": {
|
|
1776
1906
|
"application/json": {
|
|
1777
1907
|
"schema": {
|
|
1778
|
-
"$ref": "#/components/schemas/
|
|
1908
|
+
"$ref": "#/components/schemas/tender"
|
|
1779
1909
|
}
|
|
1780
1910
|
}
|
|
1781
1911
|
}
|
|
@@ -1790,89 +1920,36 @@
|
|
|
1790
1920
|
]
|
|
1791
1921
|
}
|
|
1792
1922
|
},
|
|
1793
|
-
"/v1.0/
|
|
1923
|
+
"/v1.0/tenders/{id}": {
|
|
1794
1924
|
"get": {
|
|
1795
1925
|
"tags": [
|
|
1796
|
-
"
|
|
1926
|
+
"Tenders"
|
|
1797
1927
|
],
|
|
1798
|
-
"summary": "
|
|
1799
|
-
"operationId": "
|
|
1928
|
+
"summary": "Get a tender by ID",
|
|
1929
|
+
"operationId": "GetTender",
|
|
1800
1930
|
"parameters": [
|
|
1801
1931
|
{
|
|
1802
|
-
"name": "
|
|
1803
|
-
"in": "
|
|
1804
|
-
"
|
|
1932
|
+
"name": "id",
|
|
1933
|
+
"in": "path",
|
|
1934
|
+
"required": true,
|
|
1805
1935
|
"schema": {
|
|
1806
1936
|
"type": "string"
|
|
1807
1937
|
}
|
|
1808
1938
|
}
|
|
1809
1939
|
],
|
|
1810
|
-
"responses": {},
|
|
1811
|
-
"security": [
|
|
1812
|
-
{
|
|
1813
|
-
"Implicit": [
|
|
1814
|
-
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
1815
|
-
]
|
|
1816
|
-
}
|
|
1817
|
-
]
|
|
1818
|
-
}
|
|
1819
|
-
},
|
|
1820
|
-
"/v1.0/tenders/stream-redirect": {
|
|
1821
|
-
"get": {
|
|
1822
|
-
"tags": [
|
|
1823
|
-
"Realtime"
|
|
1824
|
-
],
|
|
1825
|
-
"summary": "Deprecated: redirects to /v1.0/stream?channels=tender,job",
|
|
1826
|
-
"operationId": "DeprecatedTenderStream",
|
|
1827
|
-
"responses": {},
|
|
1828
|
-
"deprecated": true,
|
|
1829
|
-
"security": [
|
|
1830
|
-
{
|
|
1831
|
-
"Implicit": [
|
|
1832
|
-
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
1833
|
-
]
|
|
1834
|
-
}
|
|
1835
|
-
]
|
|
1836
|
-
}
|
|
1837
|
-
},
|
|
1838
|
-
"/v1.0/crawl/stream-redirect": {
|
|
1839
|
-
"get": {
|
|
1840
|
-
"tags": [
|
|
1841
|
-
"Realtime"
|
|
1842
|
-
],
|
|
1843
|
-
"summary": "Deprecated: redirects to /v1.0/stream?channels=crawl,job",
|
|
1844
|
-
"operationId": "DeprecatedCrawlStream",
|
|
1845
|
-
"responses": {},
|
|
1846
|
-
"deprecated": true,
|
|
1847
|
-
"security": [
|
|
1848
|
-
{
|
|
1849
|
-
"Implicit": [
|
|
1850
|
-
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
1851
|
-
]
|
|
1852
|
-
}
|
|
1853
|
-
]
|
|
1854
|
-
}
|
|
1855
|
-
},
|
|
1856
|
-
"/v1.0/tenders": {
|
|
1857
|
-
"get": {
|
|
1858
|
-
"tags": [
|
|
1859
|
-
"Tenders"
|
|
1860
|
-
],
|
|
1861
|
-
"summary": "List all tenders",
|
|
1862
|
-
"operationId": "ListTenders",
|
|
1863
1940
|
"responses": {
|
|
1864
1941
|
"200": {
|
|
1865
|
-
"description": "Payload of
|
|
1942
|
+
"description": "Payload of Tender",
|
|
1866
1943
|
"content": {
|
|
1867
1944
|
"application/json": {
|
|
1868
1945
|
"schema": {
|
|
1869
|
-
"
|
|
1870
|
-
"items": {
|
|
1871
|
-
"$ref": "#/components/schemas/tender"
|
|
1872
|
-
}
|
|
1946
|
+
"$ref": "#/components/schemas/tender"
|
|
1873
1947
|
}
|
|
1874
1948
|
}
|
|
1875
1949
|
}
|
|
1950
|
+
},
|
|
1951
|
+
"404": {
|
|
1952
|
+
"description": "No description"
|
|
1876
1953
|
}
|
|
1877
1954
|
},
|
|
1878
1955
|
"security": [
|
|
@@ -1883,12 +1960,22 @@
|
|
|
1883
1960
|
}
|
|
1884
1961
|
]
|
|
1885
1962
|
},
|
|
1886
|
-
"
|
|
1963
|
+
"put": {
|
|
1887
1964
|
"tags": [
|
|
1888
1965
|
"Tenders"
|
|
1889
1966
|
],
|
|
1890
|
-
"summary": "
|
|
1891
|
-
"operationId": "
|
|
1967
|
+
"summary": "Update a tender",
|
|
1968
|
+
"operationId": "UpdateTender",
|
|
1969
|
+
"parameters": [
|
|
1970
|
+
{
|
|
1971
|
+
"name": "id",
|
|
1972
|
+
"in": "path",
|
|
1973
|
+
"required": true,
|
|
1974
|
+
"schema": {
|
|
1975
|
+
"type": "string"
|
|
1976
|
+
}
|
|
1977
|
+
}
|
|
1978
|
+
],
|
|
1892
1979
|
"requestBody": {
|
|
1893
1980
|
"content": {
|
|
1894
1981
|
"application/json": {
|
|
@@ -1900,7 +1987,7 @@
|
|
|
1900
1987
|
"required": true
|
|
1901
1988
|
},
|
|
1902
1989
|
"responses": {
|
|
1903
|
-
"
|
|
1990
|
+
"200": {
|
|
1904
1991
|
"description": "Payload of Tender",
|
|
1905
1992
|
"content": {
|
|
1906
1993
|
"application/json": {
|
|
@@ -1909,6 +1996,41 @@
|
|
|
1909
1996
|
}
|
|
1910
1997
|
}
|
|
1911
1998
|
}
|
|
1999
|
+
},
|
|
2000
|
+
"404": {
|
|
2001
|
+
"description": "No description"
|
|
2002
|
+
}
|
|
2003
|
+
},
|
|
2004
|
+
"security": [
|
|
2005
|
+
{
|
|
2006
|
+
"Implicit": [
|
|
2007
|
+
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
2008
|
+
]
|
|
2009
|
+
}
|
|
2010
|
+
]
|
|
2011
|
+
},
|
|
2012
|
+
"delete": {
|
|
2013
|
+
"tags": [
|
|
2014
|
+
"Tenders"
|
|
2015
|
+
],
|
|
2016
|
+
"summary": "Delete a tender",
|
|
2017
|
+
"operationId": "DeleteTender",
|
|
2018
|
+
"parameters": [
|
|
2019
|
+
{
|
|
2020
|
+
"name": "id",
|
|
2021
|
+
"in": "path",
|
|
2022
|
+
"required": true,
|
|
2023
|
+
"schema": {
|
|
2024
|
+
"type": "string"
|
|
2025
|
+
}
|
|
2026
|
+
}
|
|
2027
|
+
],
|
|
2028
|
+
"responses": {
|
|
2029
|
+
"204": {
|
|
2030
|
+
"description": "No description"
|
|
2031
|
+
},
|
|
2032
|
+
"404": {
|
|
2033
|
+
"description": "No description"
|
|
1912
2034
|
}
|
|
1913
2035
|
},
|
|
1914
2036
|
"security": [
|
|
@@ -1920,13 +2042,13 @@
|
|
|
1920
2042
|
]
|
|
1921
2043
|
}
|
|
1922
2044
|
},
|
|
1923
|
-
"/v1.0/tenders/{id}": {
|
|
1924
|
-
"
|
|
2045
|
+
"/v1.0/tenders/{id}/reingest": {
|
|
2046
|
+
"post": {
|
|
1925
2047
|
"tags": [
|
|
1926
2048
|
"Tenders"
|
|
1927
2049
|
],
|
|
1928
|
-
"summary": "
|
|
1929
|
-
"operationId": "
|
|
2050
|
+
"summary": "Re-run the ingestion pipeline on an existing tender, re-parsing documents and refreshing AI match / summary / classification.",
|
|
2051
|
+
"operationId": "ReingestTender",
|
|
1930
2052
|
"parameters": [
|
|
1931
2053
|
{
|
|
1932
2054
|
"name": "id",
|
|
@@ -1939,11 +2061,11 @@
|
|
|
1939
2061
|
],
|
|
1940
2062
|
"responses": {
|
|
1941
2063
|
"200": {
|
|
1942
|
-
"description": "Payload of
|
|
2064
|
+
"description": "Payload of AgentJob",
|
|
1943
2065
|
"content": {
|
|
1944
2066
|
"application/json": {
|
|
1945
2067
|
"schema": {
|
|
1946
|
-
"$ref": "#/components/schemas/
|
|
2068
|
+
"$ref": "#/components/schemas/agentJob"
|
|
1947
2069
|
}
|
|
1948
2070
|
}
|
|
1949
2071
|
}
|
|
@@ -1959,13 +2081,15 @@
|
|
|
1959
2081
|
]
|
|
1960
2082
|
}
|
|
1961
2083
|
]
|
|
1962
|
-
}
|
|
1963
|
-
|
|
2084
|
+
}
|
|
2085
|
+
},
|
|
2086
|
+
"/v1.0/tenders/{id}/jobs/{jobId}/snapshot": {
|
|
2087
|
+
"get": {
|
|
1964
2088
|
"tags": [
|
|
1965
2089
|
"Tenders"
|
|
1966
2090
|
],
|
|
1967
|
-
"summary": "
|
|
1968
|
-
"operationId": "
|
|
2091
|
+
"summary": "Return the tender as it looked right after a given agent job ran (time-travel view).",
|
|
2092
|
+
"operationId": "GetTenderJobSnapshot",
|
|
1969
2093
|
"parameters": [
|
|
1970
2094
|
{
|
|
1971
2095
|
"name": "id",
|
|
@@ -1974,18 +2098,16 @@
|
|
|
1974
2098
|
"schema": {
|
|
1975
2099
|
"type": "string"
|
|
1976
2100
|
}
|
|
2101
|
+
},
|
|
2102
|
+
{
|
|
2103
|
+
"name": "jobId",
|
|
2104
|
+
"in": "path",
|
|
2105
|
+
"required": true,
|
|
2106
|
+
"schema": {
|
|
2107
|
+
"type": "string"
|
|
2108
|
+
}
|
|
1977
2109
|
}
|
|
1978
2110
|
],
|
|
1979
|
-
"requestBody": {
|
|
1980
|
-
"content": {
|
|
1981
|
-
"application/json": {
|
|
1982
|
-
"schema": {
|
|
1983
|
-
"$ref": "#/components/schemas/tender"
|
|
1984
|
-
}
|
|
1985
|
-
}
|
|
1986
|
-
},
|
|
1987
|
-
"required": true
|
|
1988
|
-
},
|
|
1989
2111
|
"responses": {
|
|
1990
2112
|
"200": {
|
|
1991
2113
|
"description": "Payload of Tender",
|
|
@@ -2008,13 +2130,15 @@
|
|
|
2008
2130
|
]
|
|
2009
2131
|
}
|
|
2010
2132
|
]
|
|
2011
|
-
}
|
|
2012
|
-
|
|
2133
|
+
}
|
|
2134
|
+
},
|
|
2135
|
+
"/v1.0/tenders/{id}/consultants": {
|
|
2136
|
+
"post": {
|
|
2013
2137
|
"tags": [
|
|
2014
2138
|
"Tenders"
|
|
2015
2139
|
],
|
|
2016
|
-
"summary": "
|
|
2017
|
-
"operationId": "
|
|
2140
|
+
"summary": "Assign a consultant to a tender. Idempotent: assigning the same email twice refreshes Name/Note but does not create duplicates.",
|
|
2141
|
+
"operationId": "AssignConsultant",
|
|
2018
2142
|
"parameters": [
|
|
2019
2143
|
{
|
|
2020
2144
|
"name": "id",
|
|
@@ -2025,9 +2149,26 @@
|
|
|
2025
2149
|
}
|
|
2026
2150
|
}
|
|
2027
2151
|
],
|
|
2152
|
+
"requestBody": {
|
|
2153
|
+
"content": {
|
|
2154
|
+
"application/json": {
|
|
2155
|
+
"schema": {
|
|
2156
|
+
"$ref": "#/components/schemas/assignedConsultant"
|
|
2157
|
+
}
|
|
2158
|
+
}
|
|
2159
|
+
},
|
|
2160
|
+
"required": true
|
|
2161
|
+
},
|
|
2028
2162
|
"responses": {
|
|
2029
|
-
"
|
|
2030
|
-
"description": "
|
|
2163
|
+
"200": {
|
|
2164
|
+
"description": "Payload of Tender",
|
|
2165
|
+
"content": {
|
|
2166
|
+
"application/json": {
|
|
2167
|
+
"schema": {
|
|
2168
|
+
"$ref": "#/components/schemas/tender"
|
|
2169
|
+
}
|
|
2170
|
+
}
|
|
2171
|
+
}
|
|
2031
2172
|
},
|
|
2032
2173
|
"404": {
|
|
2033
2174
|
"description": "No description"
|
|
@@ -2042,13 +2183,13 @@
|
|
|
2042
2183
|
]
|
|
2043
2184
|
}
|
|
2044
2185
|
},
|
|
2045
|
-
"/v1.0/tenders/{id}/
|
|
2046
|
-
"
|
|
2186
|
+
"/v1.0/tenders/{id}/consultants/{email}": {
|
|
2187
|
+
"delete": {
|
|
2047
2188
|
"tags": [
|
|
2048
2189
|
"Tenders"
|
|
2049
2190
|
],
|
|
2050
|
-
"summary": "
|
|
2051
|
-
"operationId": "
|
|
2191
|
+
"summary": "Remove a consultant assignment from a tender. No-op if the email isn't assigned.",
|
|
2192
|
+
"operationId": "UnassignConsultant",
|
|
2052
2193
|
"parameters": [
|
|
2053
2194
|
{
|
|
2054
2195
|
"name": "id",
|
|
@@ -2057,15 +2198,23 @@
|
|
|
2057
2198
|
"schema": {
|
|
2058
2199
|
"type": "string"
|
|
2059
2200
|
}
|
|
2201
|
+
},
|
|
2202
|
+
{
|
|
2203
|
+
"name": "email",
|
|
2204
|
+
"in": "path",
|
|
2205
|
+
"required": true,
|
|
2206
|
+
"schema": {
|
|
2207
|
+
"type": "string"
|
|
2208
|
+
}
|
|
2060
2209
|
}
|
|
2061
2210
|
],
|
|
2062
2211
|
"responses": {
|
|
2063
2212
|
"200": {
|
|
2064
|
-
"description": "Payload of
|
|
2213
|
+
"description": "Payload of Tender",
|
|
2065
2214
|
"content": {
|
|
2066
2215
|
"application/json": {
|
|
2067
2216
|
"schema": {
|
|
2068
|
-
"$ref": "#/components/schemas/
|
|
2217
|
+
"$ref": "#/components/schemas/tender"
|
|
2069
2218
|
}
|
|
2070
2219
|
}
|
|
2071
2220
|
}
|
|
@@ -2348,6 +2497,10 @@
|
|
|
2348
2497
|
"$ref": "#/components/schemas/agentJobLogEntry"
|
|
2349
2498
|
},
|
|
2350
2499
|
"nullable": true
|
|
2500
|
+
},
|
|
2501
|
+
"afterSnapshot": {
|
|
2502
|
+
"type": "string",
|
|
2503
|
+
"nullable": true
|
|
2351
2504
|
}
|
|
2352
2505
|
}
|
|
2353
2506
|
},
|
|
@@ -2376,6 +2529,32 @@
|
|
|
2376
2529
|
}
|
|
2377
2530
|
}
|
|
2378
2531
|
},
|
|
2532
|
+
"assignedConsultant": {
|
|
2533
|
+
"type": "object",
|
|
2534
|
+
"properties": {
|
|
2535
|
+
"email": {
|
|
2536
|
+
"type": "string",
|
|
2537
|
+
"nullable": true
|
|
2538
|
+
},
|
|
2539
|
+
"name": {
|
|
2540
|
+
"type": "string",
|
|
2541
|
+
"nullable": true
|
|
2542
|
+
},
|
|
2543
|
+
"assignedAt": {
|
|
2544
|
+
"type": "string",
|
|
2545
|
+
"format": "date-time",
|
|
2546
|
+
"nullable": true
|
|
2547
|
+
},
|
|
2548
|
+
"assignedBy": {
|
|
2549
|
+
"type": "string",
|
|
2550
|
+
"nullable": true
|
|
2551
|
+
},
|
|
2552
|
+
"note": {
|
|
2553
|
+
"type": "string",
|
|
2554
|
+
"nullable": true
|
|
2555
|
+
}
|
|
2556
|
+
}
|
|
2557
|
+
},
|
|
2379
2558
|
"auditEvent": {
|
|
2380
2559
|
"type": "object",
|
|
2381
2560
|
"properties": {
|
|
@@ -3266,6 +3445,10 @@
|
|
|
3266
3445
|
"Id": {
|
|
3267
3446
|
"type": "string",
|
|
3268
3447
|
"nullable": true
|
|
3448
|
+
},
|
|
3449
|
+
"Email": {
|
|
3450
|
+
"type": "string",
|
|
3451
|
+
"nullable": true
|
|
3269
3452
|
}
|
|
3270
3453
|
},
|
|
3271
3454
|
"nullable": true
|
|
@@ -3372,6 +3555,13 @@
|
|
|
3372
3555
|
},
|
|
3373
3556
|
"nullable": true
|
|
3374
3557
|
},
|
|
3558
|
+
"assignedConsultants": {
|
|
3559
|
+
"type": "array",
|
|
3560
|
+
"items": {
|
|
3561
|
+
"$ref": "#/components/schemas/assignedConsultant"
|
|
3562
|
+
},
|
|
3563
|
+
"nullable": true
|
|
3564
|
+
},
|
|
3375
3565
|
"audit": {
|
|
3376
3566
|
"$ref": "#/components/schemas/tenderAudit"
|
|
3377
3567
|
},
|