@snokam/mcp-api 2.15.0 → 2.16.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 +422 -0
- package/specs/test/sales.json +422 -0
package/package.json
CHANGED
|
@@ -1515,6 +1515,214 @@
|
|
|
1515
1515
|
]
|
|
1516
1516
|
}
|
|
1517
1517
|
},
|
|
1518
|
+
"/v1.0/salesforce/opportunities": {
|
|
1519
|
+
"get": {
|
|
1520
|
+
"tags": [
|
|
1521
|
+
"Salesforce"
|
|
1522
|
+
],
|
|
1523
|
+
"summary": "List Salesforce Opportunities (open by default).",
|
|
1524
|
+
"operationId": "ListSalesforceOpportunities",
|
|
1525
|
+
"parameters": [
|
|
1526
|
+
{
|
|
1527
|
+
"name": "includeClosed",
|
|
1528
|
+
"in": "query",
|
|
1529
|
+
"schema": {
|
|
1530
|
+
"type": "boolean"
|
|
1531
|
+
},
|
|
1532
|
+
"x-ms-summary": "Include closed opportunities (default false)."
|
|
1533
|
+
},
|
|
1534
|
+
{
|
|
1535
|
+
"name": "limit",
|
|
1536
|
+
"in": "query",
|
|
1537
|
+
"schema": {
|
|
1538
|
+
"type": "integer",
|
|
1539
|
+
"format": "int32"
|
|
1540
|
+
},
|
|
1541
|
+
"x-ms-summary": "Row cap, max 200 (default 100)."
|
|
1542
|
+
}
|
|
1543
|
+
],
|
|
1544
|
+
"responses": {
|
|
1545
|
+
"200": {
|
|
1546
|
+
"description": "Payload of Array of SalesforceOpportunity",
|
|
1547
|
+
"content": {
|
|
1548
|
+
"application/json": {
|
|
1549
|
+
"schema": {
|
|
1550
|
+
"type": "array",
|
|
1551
|
+
"items": {
|
|
1552
|
+
"$ref": "#/components/schemas/salesforceOpportunity"
|
|
1553
|
+
}
|
|
1554
|
+
}
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1558
|
+
},
|
|
1559
|
+
"security": [
|
|
1560
|
+
{
|
|
1561
|
+
"Implicit": [
|
|
1562
|
+
"api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
|
|
1563
|
+
]
|
|
1564
|
+
}
|
|
1565
|
+
]
|
|
1566
|
+
}
|
|
1567
|
+
},
|
|
1568
|
+
"/v1.0/salesforce/refresh": {
|
|
1569
|
+
"post": {
|
|
1570
|
+
"tags": [
|
|
1571
|
+
"Salesforce"
|
|
1572
|
+
],
|
|
1573
|
+
"summary": "Batch-refresh the cached Salesforce state on every linked Snøkam tender.",
|
|
1574
|
+
"operationId": "RefreshAllSalesforceLinks",
|
|
1575
|
+
"responses": {
|
|
1576
|
+
"200": {
|
|
1577
|
+
"description": "Payload of SalesforceRefreshResult",
|
|
1578
|
+
"content": {
|
|
1579
|
+
"application/json": {
|
|
1580
|
+
"schema": {
|
|
1581
|
+
"$ref": "#/components/schemas/salesforceRefreshResult"
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1584
|
+
}
|
|
1585
|
+
}
|
|
1586
|
+
},
|
|
1587
|
+
"security": [
|
|
1588
|
+
{
|
|
1589
|
+
"Implicit": [
|
|
1590
|
+
"api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
|
|
1591
|
+
]
|
|
1592
|
+
}
|
|
1593
|
+
]
|
|
1594
|
+
}
|
|
1595
|
+
},
|
|
1596
|
+
"/v1.0/salesforce/opportunities/{sfId}/import": {
|
|
1597
|
+
"post": {
|
|
1598
|
+
"tags": [
|
|
1599
|
+
"Salesforce"
|
|
1600
|
+
],
|
|
1601
|
+
"summary": "Create a Snøkam tender stub from an existing Salesforce Opportunity.",
|
|
1602
|
+
"operationId": "ImportSalesforceOpportunity",
|
|
1603
|
+
"parameters": [
|
|
1604
|
+
{
|
|
1605
|
+
"name": "sfId",
|
|
1606
|
+
"in": "path",
|
|
1607
|
+
"required": true,
|
|
1608
|
+
"schema": {
|
|
1609
|
+
"type": "string"
|
|
1610
|
+
},
|
|
1611
|
+
"x-ms-summary": "Salesforce Opportunity Id."
|
|
1612
|
+
}
|
|
1613
|
+
],
|
|
1614
|
+
"responses": {
|
|
1615
|
+
"200": {
|
|
1616
|
+
"description": "Payload of Tender",
|
|
1617
|
+
"content": {
|
|
1618
|
+
"application/json": {
|
|
1619
|
+
"schema": {
|
|
1620
|
+
"$ref": "#/components/schemas/tender"
|
|
1621
|
+
}
|
|
1622
|
+
}
|
|
1623
|
+
}
|
|
1624
|
+
},
|
|
1625
|
+
"404": {
|
|
1626
|
+
"description": "No description"
|
|
1627
|
+
},
|
|
1628
|
+
"409": {
|
|
1629
|
+
"description": "A tender is already linked to this Opportunity."
|
|
1630
|
+
}
|
|
1631
|
+
},
|
|
1632
|
+
"security": [
|
|
1633
|
+
{
|
|
1634
|
+
"Implicit": [
|
|
1635
|
+
"api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
|
|
1636
|
+
]
|
|
1637
|
+
}
|
|
1638
|
+
]
|
|
1639
|
+
}
|
|
1640
|
+
},
|
|
1641
|
+
"/v1.0/tenders/{id}/salesforce": {
|
|
1642
|
+
"post": {
|
|
1643
|
+
"tags": [
|
|
1644
|
+
"Salesforce"
|
|
1645
|
+
],
|
|
1646
|
+
"summary": "Create a Salesforce Opportunity from a Snøkam tender and cache the link.",
|
|
1647
|
+
"operationId": "PromoteTenderToSalesforce",
|
|
1648
|
+
"parameters": [
|
|
1649
|
+
{
|
|
1650
|
+
"name": "id",
|
|
1651
|
+
"in": "path",
|
|
1652
|
+
"required": true,
|
|
1653
|
+
"schema": {
|
|
1654
|
+
"type": "string"
|
|
1655
|
+
}
|
|
1656
|
+
}
|
|
1657
|
+
],
|
|
1658
|
+
"responses": {
|
|
1659
|
+
"200": {
|
|
1660
|
+
"description": "Payload of Tender",
|
|
1661
|
+
"content": {
|
|
1662
|
+
"application/json": {
|
|
1663
|
+
"schema": {
|
|
1664
|
+
"$ref": "#/components/schemas/tender"
|
|
1665
|
+
}
|
|
1666
|
+
}
|
|
1667
|
+
}
|
|
1668
|
+
},
|
|
1669
|
+
"404": {
|
|
1670
|
+
"description": "No description"
|
|
1671
|
+
},
|
|
1672
|
+
"409": {
|
|
1673
|
+
"description": "Tender is already linked to a Salesforce Opportunity."
|
|
1674
|
+
}
|
|
1675
|
+
},
|
|
1676
|
+
"security": [
|
|
1677
|
+
{
|
|
1678
|
+
"Implicit": [
|
|
1679
|
+
"api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
|
|
1680
|
+
]
|
|
1681
|
+
}
|
|
1682
|
+
]
|
|
1683
|
+
}
|
|
1684
|
+
},
|
|
1685
|
+
"/v1.0/tenders/{id}/salesforce/refresh": {
|
|
1686
|
+
"post": {
|
|
1687
|
+
"tags": [
|
|
1688
|
+
"Salesforce"
|
|
1689
|
+
],
|
|
1690
|
+
"summary": "Re-sync cached Salesforce Opportunity state (stage / closed / won) onto the tender.",
|
|
1691
|
+
"operationId": "RefreshTenderSalesforceLink",
|
|
1692
|
+
"parameters": [
|
|
1693
|
+
{
|
|
1694
|
+
"name": "id",
|
|
1695
|
+
"in": "path",
|
|
1696
|
+
"required": true,
|
|
1697
|
+
"schema": {
|
|
1698
|
+
"type": "string"
|
|
1699
|
+
}
|
|
1700
|
+
}
|
|
1701
|
+
],
|
|
1702
|
+
"responses": {
|
|
1703
|
+
"200": {
|
|
1704
|
+
"description": "Payload of Tender",
|
|
1705
|
+
"content": {
|
|
1706
|
+
"application/json": {
|
|
1707
|
+
"schema": {
|
|
1708
|
+
"$ref": "#/components/schemas/tender"
|
|
1709
|
+
}
|
|
1710
|
+
}
|
|
1711
|
+
}
|
|
1712
|
+
},
|
|
1713
|
+
"404": {
|
|
1714
|
+
"description": "No description"
|
|
1715
|
+
}
|
|
1716
|
+
},
|
|
1717
|
+
"security": [
|
|
1718
|
+
{
|
|
1719
|
+
"Implicit": [
|
|
1720
|
+
"api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
|
|
1721
|
+
]
|
|
1722
|
+
}
|
|
1723
|
+
]
|
|
1724
|
+
}
|
|
1725
|
+
},
|
|
1518
1726
|
"/v1.0/tenders/stats": {
|
|
1519
1727
|
"get": {
|
|
1520
1728
|
"tags": [
|
|
@@ -1834,6 +2042,97 @@
|
|
|
1834
2042
|
]
|
|
1835
2043
|
}
|
|
1836
2044
|
},
|
|
2045
|
+
"/v1.0/tenders/{id}/reingest": {
|
|
2046
|
+
"post": {
|
|
2047
|
+
"tags": [
|
|
2048
|
+
"Tenders"
|
|
2049
|
+
],
|
|
2050
|
+
"summary": "Re-run the ingestion pipeline on an existing tender, re-parsing documents and refreshing AI match / summary / classification.",
|
|
2051
|
+
"operationId": "ReingestTender",
|
|
2052
|
+
"parameters": [
|
|
2053
|
+
{
|
|
2054
|
+
"name": "id",
|
|
2055
|
+
"in": "path",
|
|
2056
|
+
"required": true,
|
|
2057
|
+
"schema": {
|
|
2058
|
+
"type": "string"
|
|
2059
|
+
}
|
|
2060
|
+
}
|
|
2061
|
+
],
|
|
2062
|
+
"responses": {
|
|
2063
|
+
"200": {
|
|
2064
|
+
"description": "Payload of AgentJob",
|
|
2065
|
+
"content": {
|
|
2066
|
+
"application/json": {
|
|
2067
|
+
"schema": {
|
|
2068
|
+
"$ref": "#/components/schemas/agentJob"
|
|
2069
|
+
}
|
|
2070
|
+
}
|
|
2071
|
+
}
|
|
2072
|
+
},
|
|
2073
|
+
"404": {
|
|
2074
|
+
"description": "No description"
|
|
2075
|
+
}
|
|
2076
|
+
},
|
|
2077
|
+
"security": [
|
|
2078
|
+
{
|
|
2079
|
+
"Implicit": [
|
|
2080
|
+
"api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
|
|
2081
|
+
]
|
|
2082
|
+
}
|
|
2083
|
+
]
|
|
2084
|
+
}
|
|
2085
|
+
},
|
|
2086
|
+
"/v1.0/tenders/{id}/jobs": {
|
|
2087
|
+
"get": {
|
|
2088
|
+
"tags": [
|
|
2089
|
+
"Tenders"
|
|
2090
|
+
],
|
|
2091
|
+
"summary": "Recent agent jobs (ingestion, CV matching, …) for a tender — newest first.",
|
|
2092
|
+
"operationId": "ListTenderJobs",
|
|
2093
|
+
"parameters": [
|
|
2094
|
+
{
|
|
2095
|
+
"name": "id",
|
|
2096
|
+
"in": "path",
|
|
2097
|
+
"required": true,
|
|
2098
|
+
"schema": {
|
|
2099
|
+
"type": "string"
|
|
2100
|
+
}
|
|
2101
|
+
},
|
|
2102
|
+
{
|
|
2103
|
+
"name": "limit",
|
|
2104
|
+
"in": "query",
|
|
2105
|
+
"schema": {
|
|
2106
|
+
"type": "integer",
|
|
2107
|
+
"format": "int32"
|
|
2108
|
+
},
|
|
2109
|
+
"x-ms-summary": "Max rows (default 10, capped at 100)."
|
|
2110
|
+
}
|
|
2111
|
+
],
|
|
2112
|
+
"responses": {
|
|
2113
|
+
"200": {
|
|
2114
|
+
"description": "Payload of Array of AgentJob",
|
|
2115
|
+
"content": {
|
|
2116
|
+
"application/json": {
|
|
2117
|
+
"schema": {
|
|
2118
|
+
"type": "array",
|
|
2119
|
+
"items": {
|
|
2120
|
+
"$ref": "#/components/schemas/agentJob"
|
|
2121
|
+
}
|
|
2122
|
+
}
|
|
2123
|
+
}
|
|
2124
|
+
}
|
|
2125
|
+
}
|
|
2126
|
+
},
|
|
2127
|
+
"security": [
|
|
2128
|
+
{
|
|
2129
|
+
"Implicit": [
|
|
2130
|
+
"api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
|
|
2131
|
+
]
|
|
2132
|
+
}
|
|
2133
|
+
]
|
|
2134
|
+
}
|
|
2135
|
+
},
|
|
1837
2136
|
"/v1.0/admin/tenders": {
|
|
1838
2137
|
"delete": {
|
|
1839
2138
|
"tags": [
|
|
@@ -2895,6 +3194,95 @@
|
|
|
2895
3194
|
},
|
|
2896
3195
|
"nullable": true
|
|
2897
3196
|
},
|
|
3197
|
+
"salesforceAttributes": {
|
|
3198
|
+
"type": "object",
|
|
3199
|
+
"properties": {
|
|
3200
|
+
"type": {
|
|
3201
|
+
"type": "string",
|
|
3202
|
+
"nullable": true
|
|
3203
|
+
},
|
|
3204
|
+
"url": {
|
|
3205
|
+
"type": "string",
|
|
3206
|
+
"nullable": true
|
|
3207
|
+
}
|
|
3208
|
+
},
|
|
3209
|
+
"nullable": true
|
|
3210
|
+
},
|
|
3211
|
+
"salesforceOpportunity": {
|
|
3212
|
+
"type": "object",
|
|
3213
|
+
"properties": {
|
|
3214
|
+
"attributes": {
|
|
3215
|
+
"$ref": "#/components/schemas/salesforceAttributes"
|
|
3216
|
+
},
|
|
3217
|
+
"Id": {
|
|
3218
|
+
"type": "string",
|
|
3219
|
+
"nullable": true
|
|
3220
|
+
},
|
|
3221
|
+
"Name": {
|
|
3222
|
+
"type": "string",
|
|
3223
|
+
"nullable": true
|
|
3224
|
+
},
|
|
3225
|
+
"StageName": {
|
|
3226
|
+
"type": "string",
|
|
3227
|
+
"nullable": true
|
|
3228
|
+
},
|
|
3229
|
+
"CloseDate": {
|
|
3230
|
+
"type": "string",
|
|
3231
|
+
"format": "date-time",
|
|
3232
|
+
"nullable": true
|
|
3233
|
+
},
|
|
3234
|
+
"IsClosed": {
|
|
3235
|
+
"type": "boolean",
|
|
3236
|
+
"nullable": true
|
|
3237
|
+
},
|
|
3238
|
+
"IsWon": {
|
|
3239
|
+
"type": "boolean",
|
|
3240
|
+
"nullable": true
|
|
3241
|
+
},
|
|
3242
|
+
"Amount": {
|
|
3243
|
+
"type": "number",
|
|
3244
|
+
"format": "double",
|
|
3245
|
+
"nullable": true
|
|
3246
|
+
},
|
|
3247
|
+
"Account": {
|
|
3248
|
+
"$ref": "#/components/schemas/salesforceReference"
|
|
3249
|
+
},
|
|
3250
|
+
"Owner": {
|
|
3251
|
+
"$ref": "#/components/schemas/salesforceReference"
|
|
3252
|
+
},
|
|
3253
|
+
"Snokam_Tender_Id__c": {
|
|
3254
|
+
"type": "string",
|
|
3255
|
+
"nullable": true
|
|
3256
|
+
}
|
|
3257
|
+
}
|
|
3258
|
+
},
|
|
3259
|
+
"salesforceReference": {
|
|
3260
|
+
"type": "object",
|
|
3261
|
+
"properties": {
|
|
3262
|
+
"Name": {
|
|
3263
|
+
"type": "string",
|
|
3264
|
+
"nullable": true
|
|
3265
|
+
},
|
|
3266
|
+
"Id": {
|
|
3267
|
+
"type": "string",
|
|
3268
|
+
"nullable": true
|
|
3269
|
+
}
|
|
3270
|
+
},
|
|
3271
|
+
"nullable": true
|
|
3272
|
+
},
|
|
3273
|
+
"salesforceRefreshResult": {
|
|
3274
|
+
"type": "object",
|
|
3275
|
+
"properties": {
|
|
3276
|
+
"checked": {
|
|
3277
|
+
"type": "integer",
|
|
3278
|
+
"format": "int32"
|
|
3279
|
+
},
|
|
3280
|
+
"updated": {
|
|
3281
|
+
"type": "integer",
|
|
3282
|
+
"format": "int32"
|
|
3283
|
+
}
|
|
3284
|
+
}
|
|
3285
|
+
},
|
|
2898
3286
|
"sourceFile": {
|
|
2899
3287
|
"type": "object",
|
|
2900
3288
|
"properties": {
|
|
@@ -3005,6 +3393,9 @@
|
|
|
3005
3393
|
"blobContainer": {
|
|
3006
3394
|
"type": "string",
|
|
3007
3395
|
"nullable": true
|
|
3396
|
+
},
|
|
3397
|
+
"salesforce": {
|
|
3398
|
+
"$ref": "#/components/schemas/tenderSalesforce"
|
|
3008
3399
|
}
|
|
3009
3400
|
}
|
|
3010
3401
|
},
|
|
@@ -3263,6 +3654,37 @@
|
|
|
3263
3654
|
},
|
|
3264
3655
|
"nullable": true
|
|
3265
3656
|
},
|
|
3657
|
+
"tenderSalesforce": {
|
|
3658
|
+
"type": "object",
|
|
3659
|
+
"properties": {
|
|
3660
|
+
"opportunityId": {
|
|
3661
|
+
"type": "string",
|
|
3662
|
+
"nullable": true
|
|
3663
|
+
},
|
|
3664
|
+
"stageName": {
|
|
3665
|
+
"type": "string",
|
|
3666
|
+
"nullable": true
|
|
3667
|
+
},
|
|
3668
|
+
"isClosed": {
|
|
3669
|
+
"type": "boolean",
|
|
3670
|
+
"nullable": true
|
|
3671
|
+
},
|
|
3672
|
+
"isWon": {
|
|
3673
|
+
"type": "boolean",
|
|
3674
|
+
"nullable": true
|
|
3675
|
+
},
|
|
3676
|
+
"url": {
|
|
3677
|
+
"type": "string",
|
|
3678
|
+
"nullable": true
|
|
3679
|
+
},
|
|
3680
|
+
"lastSyncedAt": {
|
|
3681
|
+
"type": "string",
|
|
3682
|
+
"format": "date-time",
|
|
3683
|
+
"nullable": true
|
|
3684
|
+
}
|
|
3685
|
+
},
|
|
3686
|
+
"nullable": true
|
|
3687
|
+
},
|
|
3266
3688
|
"tenderSource": {
|
|
3267
3689
|
"type": "object",
|
|
3268
3690
|
"properties": {
|
package/specs/test/sales.json
CHANGED
|
@@ -1515,6 +1515,214 @@
|
|
|
1515
1515
|
]
|
|
1516
1516
|
}
|
|
1517
1517
|
},
|
|
1518
|
+
"/v1.0/salesforce/opportunities": {
|
|
1519
|
+
"get": {
|
|
1520
|
+
"tags": [
|
|
1521
|
+
"Salesforce"
|
|
1522
|
+
],
|
|
1523
|
+
"summary": "List Salesforce Opportunities (open by default).",
|
|
1524
|
+
"operationId": "ListSalesforceOpportunities",
|
|
1525
|
+
"parameters": [
|
|
1526
|
+
{
|
|
1527
|
+
"name": "includeClosed",
|
|
1528
|
+
"in": "query",
|
|
1529
|
+
"schema": {
|
|
1530
|
+
"type": "boolean"
|
|
1531
|
+
},
|
|
1532
|
+
"x-ms-summary": "Include closed opportunities (default false)."
|
|
1533
|
+
},
|
|
1534
|
+
{
|
|
1535
|
+
"name": "limit",
|
|
1536
|
+
"in": "query",
|
|
1537
|
+
"schema": {
|
|
1538
|
+
"type": "integer",
|
|
1539
|
+
"format": "int32"
|
|
1540
|
+
},
|
|
1541
|
+
"x-ms-summary": "Row cap, max 200 (default 100)."
|
|
1542
|
+
}
|
|
1543
|
+
],
|
|
1544
|
+
"responses": {
|
|
1545
|
+
"200": {
|
|
1546
|
+
"description": "Payload of Array of SalesforceOpportunity",
|
|
1547
|
+
"content": {
|
|
1548
|
+
"application/json": {
|
|
1549
|
+
"schema": {
|
|
1550
|
+
"type": "array",
|
|
1551
|
+
"items": {
|
|
1552
|
+
"$ref": "#/components/schemas/salesforceOpportunity"
|
|
1553
|
+
}
|
|
1554
|
+
}
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1558
|
+
},
|
|
1559
|
+
"security": [
|
|
1560
|
+
{
|
|
1561
|
+
"Implicit": [
|
|
1562
|
+
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
1563
|
+
]
|
|
1564
|
+
}
|
|
1565
|
+
]
|
|
1566
|
+
}
|
|
1567
|
+
},
|
|
1568
|
+
"/v1.0/salesforce/refresh": {
|
|
1569
|
+
"post": {
|
|
1570
|
+
"tags": [
|
|
1571
|
+
"Salesforce"
|
|
1572
|
+
],
|
|
1573
|
+
"summary": "Batch-refresh the cached Salesforce state on every linked Snøkam tender.",
|
|
1574
|
+
"operationId": "RefreshAllSalesforceLinks",
|
|
1575
|
+
"responses": {
|
|
1576
|
+
"200": {
|
|
1577
|
+
"description": "Payload of SalesforceRefreshResult",
|
|
1578
|
+
"content": {
|
|
1579
|
+
"application/json": {
|
|
1580
|
+
"schema": {
|
|
1581
|
+
"$ref": "#/components/schemas/salesforceRefreshResult"
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1584
|
+
}
|
|
1585
|
+
}
|
|
1586
|
+
},
|
|
1587
|
+
"security": [
|
|
1588
|
+
{
|
|
1589
|
+
"Implicit": [
|
|
1590
|
+
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
1591
|
+
]
|
|
1592
|
+
}
|
|
1593
|
+
]
|
|
1594
|
+
}
|
|
1595
|
+
},
|
|
1596
|
+
"/v1.0/salesforce/opportunities/{sfId}/import": {
|
|
1597
|
+
"post": {
|
|
1598
|
+
"tags": [
|
|
1599
|
+
"Salesforce"
|
|
1600
|
+
],
|
|
1601
|
+
"summary": "Create a Snøkam tender stub from an existing Salesforce Opportunity.",
|
|
1602
|
+
"operationId": "ImportSalesforceOpportunity",
|
|
1603
|
+
"parameters": [
|
|
1604
|
+
{
|
|
1605
|
+
"name": "sfId",
|
|
1606
|
+
"in": "path",
|
|
1607
|
+
"required": true,
|
|
1608
|
+
"schema": {
|
|
1609
|
+
"type": "string"
|
|
1610
|
+
},
|
|
1611
|
+
"x-ms-summary": "Salesforce Opportunity Id."
|
|
1612
|
+
}
|
|
1613
|
+
],
|
|
1614
|
+
"responses": {
|
|
1615
|
+
"200": {
|
|
1616
|
+
"description": "Payload of Tender",
|
|
1617
|
+
"content": {
|
|
1618
|
+
"application/json": {
|
|
1619
|
+
"schema": {
|
|
1620
|
+
"$ref": "#/components/schemas/tender"
|
|
1621
|
+
}
|
|
1622
|
+
}
|
|
1623
|
+
}
|
|
1624
|
+
},
|
|
1625
|
+
"404": {
|
|
1626
|
+
"description": "No description"
|
|
1627
|
+
},
|
|
1628
|
+
"409": {
|
|
1629
|
+
"description": "A tender is already linked to this Opportunity."
|
|
1630
|
+
}
|
|
1631
|
+
},
|
|
1632
|
+
"security": [
|
|
1633
|
+
{
|
|
1634
|
+
"Implicit": [
|
|
1635
|
+
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
1636
|
+
]
|
|
1637
|
+
}
|
|
1638
|
+
]
|
|
1639
|
+
}
|
|
1640
|
+
},
|
|
1641
|
+
"/v1.0/tenders/{id}/salesforce": {
|
|
1642
|
+
"post": {
|
|
1643
|
+
"tags": [
|
|
1644
|
+
"Salesforce"
|
|
1645
|
+
],
|
|
1646
|
+
"summary": "Create a Salesforce Opportunity from a Snøkam tender and cache the link.",
|
|
1647
|
+
"operationId": "PromoteTenderToSalesforce",
|
|
1648
|
+
"parameters": [
|
|
1649
|
+
{
|
|
1650
|
+
"name": "id",
|
|
1651
|
+
"in": "path",
|
|
1652
|
+
"required": true,
|
|
1653
|
+
"schema": {
|
|
1654
|
+
"type": "string"
|
|
1655
|
+
}
|
|
1656
|
+
}
|
|
1657
|
+
],
|
|
1658
|
+
"responses": {
|
|
1659
|
+
"200": {
|
|
1660
|
+
"description": "Payload of Tender",
|
|
1661
|
+
"content": {
|
|
1662
|
+
"application/json": {
|
|
1663
|
+
"schema": {
|
|
1664
|
+
"$ref": "#/components/schemas/tender"
|
|
1665
|
+
}
|
|
1666
|
+
}
|
|
1667
|
+
}
|
|
1668
|
+
},
|
|
1669
|
+
"404": {
|
|
1670
|
+
"description": "No description"
|
|
1671
|
+
},
|
|
1672
|
+
"409": {
|
|
1673
|
+
"description": "Tender is already linked to a Salesforce Opportunity."
|
|
1674
|
+
}
|
|
1675
|
+
},
|
|
1676
|
+
"security": [
|
|
1677
|
+
{
|
|
1678
|
+
"Implicit": [
|
|
1679
|
+
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
1680
|
+
]
|
|
1681
|
+
}
|
|
1682
|
+
]
|
|
1683
|
+
}
|
|
1684
|
+
},
|
|
1685
|
+
"/v1.0/tenders/{id}/salesforce/refresh": {
|
|
1686
|
+
"post": {
|
|
1687
|
+
"tags": [
|
|
1688
|
+
"Salesforce"
|
|
1689
|
+
],
|
|
1690
|
+
"summary": "Re-sync cached Salesforce Opportunity state (stage / closed / won) onto the tender.",
|
|
1691
|
+
"operationId": "RefreshTenderSalesforceLink",
|
|
1692
|
+
"parameters": [
|
|
1693
|
+
{
|
|
1694
|
+
"name": "id",
|
|
1695
|
+
"in": "path",
|
|
1696
|
+
"required": true,
|
|
1697
|
+
"schema": {
|
|
1698
|
+
"type": "string"
|
|
1699
|
+
}
|
|
1700
|
+
}
|
|
1701
|
+
],
|
|
1702
|
+
"responses": {
|
|
1703
|
+
"200": {
|
|
1704
|
+
"description": "Payload of Tender",
|
|
1705
|
+
"content": {
|
|
1706
|
+
"application/json": {
|
|
1707
|
+
"schema": {
|
|
1708
|
+
"$ref": "#/components/schemas/tender"
|
|
1709
|
+
}
|
|
1710
|
+
}
|
|
1711
|
+
}
|
|
1712
|
+
},
|
|
1713
|
+
"404": {
|
|
1714
|
+
"description": "No description"
|
|
1715
|
+
}
|
|
1716
|
+
},
|
|
1717
|
+
"security": [
|
|
1718
|
+
{
|
|
1719
|
+
"Implicit": [
|
|
1720
|
+
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
1721
|
+
]
|
|
1722
|
+
}
|
|
1723
|
+
]
|
|
1724
|
+
}
|
|
1725
|
+
},
|
|
1518
1726
|
"/v1.0/tenders/stats": {
|
|
1519
1727
|
"get": {
|
|
1520
1728
|
"tags": [
|
|
@@ -1834,6 +2042,97 @@
|
|
|
1834
2042
|
]
|
|
1835
2043
|
}
|
|
1836
2044
|
},
|
|
2045
|
+
"/v1.0/tenders/{id}/reingest": {
|
|
2046
|
+
"post": {
|
|
2047
|
+
"tags": [
|
|
2048
|
+
"Tenders"
|
|
2049
|
+
],
|
|
2050
|
+
"summary": "Re-run the ingestion pipeline on an existing tender, re-parsing documents and refreshing AI match / summary / classification.",
|
|
2051
|
+
"operationId": "ReingestTender",
|
|
2052
|
+
"parameters": [
|
|
2053
|
+
{
|
|
2054
|
+
"name": "id",
|
|
2055
|
+
"in": "path",
|
|
2056
|
+
"required": true,
|
|
2057
|
+
"schema": {
|
|
2058
|
+
"type": "string"
|
|
2059
|
+
}
|
|
2060
|
+
}
|
|
2061
|
+
],
|
|
2062
|
+
"responses": {
|
|
2063
|
+
"200": {
|
|
2064
|
+
"description": "Payload of AgentJob",
|
|
2065
|
+
"content": {
|
|
2066
|
+
"application/json": {
|
|
2067
|
+
"schema": {
|
|
2068
|
+
"$ref": "#/components/schemas/agentJob"
|
|
2069
|
+
}
|
|
2070
|
+
}
|
|
2071
|
+
}
|
|
2072
|
+
},
|
|
2073
|
+
"404": {
|
|
2074
|
+
"description": "No description"
|
|
2075
|
+
}
|
|
2076
|
+
},
|
|
2077
|
+
"security": [
|
|
2078
|
+
{
|
|
2079
|
+
"Implicit": [
|
|
2080
|
+
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
2081
|
+
]
|
|
2082
|
+
}
|
|
2083
|
+
]
|
|
2084
|
+
}
|
|
2085
|
+
},
|
|
2086
|
+
"/v1.0/tenders/{id}/jobs": {
|
|
2087
|
+
"get": {
|
|
2088
|
+
"tags": [
|
|
2089
|
+
"Tenders"
|
|
2090
|
+
],
|
|
2091
|
+
"summary": "Recent agent jobs (ingestion, CV matching, …) for a tender — newest first.",
|
|
2092
|
+
"operationId": "ListTenderJobs",
|
|
2093
|
+
"parameters": [
|
|
2094
|
+
{
|
|
2095
|
+
"name": "id",
|
|
2096
|
+
"in": "path",
|
|
2097
|
+
"required": true,
|
|
2098
|
+
"schema": {
|
|
2099
|
+
"type": "string"
|
|
2100
|
+
}
|
|
2101
|
+
},
|
|
2102
|
+
{
|
|
2103
|
+
"name": "limit",
|
|
2104
|
+
"in": "query",
|
|
2105
|
+
"schema": {
|
|
2106
|
+
"type": "integer",
|
|
2107
|
+
"format": "int32"
|
|
2108
|
+
},
|
|
2109
|
+
"x-ms-summary": "Max rows (default 10, capped at 100)."
|
|
2110
|
+
}
|
|
2111
|
+
],
|
|
2112
|
+
"responses": {
|
|
2113
|
+
"200": {
|
|
2114
|
+
"description": "Payload of Array of AgentJob",
|
|
2115
|
+
"content": {
|
|
2116
|
+
"application/json": {
|
|
2117
|
+
"schema": {
|
|
2118
|
+
"type": "array",
|
|
2119
|
+
"items": {
|
|
2120
|
+
"$ref": "#/components/schemas/agentJob"
|
|
2121
|
+
}
|
|
2122
|
+
}
|
|
2123
|
+
}
|
|
2124
|
+
}
|
|
2125
|
+
}
|
|
2126
|
+
},
|
|
2127
|
+
"security": [
|
|
2128
|
+
{
|
|
2129
|
+
"Implicit": [
|
|
2130
|
+
"api://d7f15838-af74-4048-88b3-503089de0064/.default"
|
|
2131
|
+
]
|
|
2132
|
+
}
|
|
2133
|
+
]
|
|
2134
|
+
}
|
|
2135
|
+
},
|
|
1837
2136
|
"/v1.0/admin/tenders": {
|
|
1838
2137
|
"delete": {
|
|
1839
2138
|
"tags": [
|
|
@@ -2895,6 +3194,95 @@
|
|
|
2895
3194
|
},
|
|
2896
3195
|
"nullable": true
|
|
2897
3196
|
},
|
|
3197
|
+
"salesforceAttributes": {
|
|
3198
|
+
"type": "object",
|
|
3199
|
+
"properties": {
|
|
3200
|
+
"type": {
|
|
3201
|
+
"type": "string",
|
|
3202
|
+
"nullable": true
|
|
3203
|
+
},
|
|
3204
|
+
"url": {
|
|
3205
|
+
"type": "string",
|
|
3206
|
+
"nullable": true
|
|
3207
|
+
}
|
|
3208
|
+
},
|
|
3209
|
+
"nullable": true
|
|
3210
|
+
},
|
|
3211
|
+
"salesforceOpportunity": {
|
|
3212
|
+
"type": "object",
|
|
3213
|
+
"properties": {
|
|
3214
|
+
"attributes": {
|
|
3215
|
+
"$ref": "#/components/schemas/salesforceAttributes"
|
|
3216
|
+
},
|
|
3217
|
+
"Id": {
|
|
3218
|
+
"type": "string",
|
|
3219
|
+
"nullable": true
|
|
3220
|
+
},
|
|
3221
|
+
"Name": {
|
|
3222
|
+
"type": "string",
|
|
3223
|
+
"nullable": true
|
|
3224
|
+
},
|
|
3225
|
+
"StageName": {
|
|
3226
|
+
"type": "string",
|
|
3227
|
+
"nullable": true
|
|
3228
|
+
},
|
|
3229
|
+
"CloseDate": {
|
|
3230
|
+
"type": "string",
|
|
3231
|
+
"format": "date-time",
|
|
3232
|
+
"nullable": true
|
|
3233
|
+
},
|
|
3234
|
+
"IsClosed": {
|
|
3235
|
+
"type": "boolean",
|
|
3236
|
+
"nullable": true
|
|
3237
|
+
},
|
|
3238
|
+
"IsWon": {
|
|
3239
|
+
"type": "boolean",
|
|
3240
|
+
"nullable": true
|
|
3241
|
+
},
|
|
3242
|
+
"Amount": {
|
|
3243
|
+
"type": "number",
|
|
3244
|
+
"format": "double",
|
|
3245
|
+
"nullable": true
|
|
3246
|
+
},
|
|
3247
|
+
"Account": {
|
|
3248
|
+
"$ref": "#/components/schemas/salesforceReference"
|
|
3249
|
+
},
|
|
3250
|
+
"Owner": {
|
|
3251
|
+
"$ref": "#/components/schemas/salesforceReference"
|
|
3252
|
+
},
|
|
3253
|
+
"Snokam_Tender_Id__c": {
|
|
3254
|
+
"type": "string",
|
|
3255
|
+
"nullable": true
|
|
3256
|
+
}
|
|
3257
|
+
}
|
|
3258
|
+
},
|
|
3259
|
+
"salesforceReference": {
|
|
3260
|
+
"type": "object",
|
|
3261
|
+
"properties": {
|
|
3262
|
+
"Name": {
|
|
3263
|
+
"type": "string",
|
|
3264
|
+
"nullable": true
|
|
3265
|
+
},
|
|
3266
|
+
"Id": {
|
|
3267
|
+
"type": "string",
|
|
3268
|
+
"nullable": true
|
|
3269
|
+
}
|
|
3270
|
+
},
|
|
3271
|
+
"nullable": true
|
|
3272
|
+
},
|
|
3273
|
+
"salesforceRefreshResult": {
|
|
3274
|
+
"type": "object",
|
|
3275
|
+
"properties": {
|
|
3276
|
+
"checked": {
|
|
3277
|
+
"type": "integer",
|
|
3278
|
+
"format": "int32"
|
|
3279
|
+
},
|
|
3280
|
+
"updated": {
|
|
3281
|
+
"type": "integer",
|
|
3282
|
+
"format": "int32"
|
|
3283
|
+
}
|
|
3284
|
+
}
|
|
3285
|
+
},
|
|
2898
3286
|
"sourceFile": {
|
|
2899
3287
|
"type": "object",
|
|
2900
3288
|
"properties": {
|
|
@@ -3005,6 +3393,9 @@
|
|
|
3005
3393
|
"blobContainer": {
|
|
3006
3394
|
"type": "string",
|
|
3007
3395
|
"nullable": true
|
|
3396
|
+
},
|
|
3397
|
+
"salesforce": {
|
|
3398
|
+
"$ref": "#/components/schemas/tenderSalesforce"
|
|
3008
3399
|
}
|
|
3009
3400
|
}
|
|
3010
3401
|
},
|
|
@@ -3263,6 +3654,37 @@
|
|
|
3263
3654
|
},
|
|
3264
3655
|
"nullable": true
|
|
3265
3656
|
},
|
|
3657
|
+
"tenderSalesforce": {
|
|
3658
|
+
"type": "object",
|
|
3659
|
+
"properties": {
|
|
3660
|
+
"opportunityId": {
|
|
3661
|
+
"type": "string",
|
|
3662
|
+
"nullable": true
|
|
3663
|
+
},
|
|
3664
|
+
"stageName": {
|
|
3665
|
+
"type": "string",
|
|
3666
|
+
"nullable": true
|
|
3667
|
+
},
|
|
3668
|
+
"isClosed": {
|
|
3669
|
+
"type": "boolean",
|
|
3670
|
+
"nullable": true
|
|
3671
|
+
},
|
|
3672
|
+
"isWon": {
|
|
3673
|
+
"type": "boolean",
|
|
3674
|
+
"nullable": true
|
|
3675
|
+
},
|
|
3676
|
+
"url": {
|
|
3677
|
+
"type": "string",
|
|
3678
|
+
"nullable": true
|
|
3679
|
+
},
|
|
3680
|
+
"lastSyncedAt": {
|
|
3681
|
+
"type": "string",
|
|
3682
|
+
"format": "date-time",
|
|
3683
|
+
"nullable": true
|
|
3684
|
+
}
|
|
3685
|
+
},
|
|
3686
|
+
"nullable": true
|
|
3687
|
+
},
|
|
3266
3688
|
"tenderSource": {
|
|
3267
3689
|
"type": "object",
|
|
3268
3690
|
"properties": {
|