@epilot/cli 0.1.24 → 0.1.25
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/README.md +3 -1
- package/definitions/app.json +390 -14
- package/definitions/calendar.json +675 -0
- package/definitions/customer-portal.json +271 -12
- package/definitions/notes.json +175 -130
- package/definitions/pricing.json +5 -1
- package/dist/bin/epilot.js +7 -6
- package/dist/calendar-IHVASAEY.js +56 -0
- package/dist/{chunk-U5JW65I3.js → chunk-SGI6WZ57.js} +14 -3
- package/dist/{completion-76TTN5FM.js → completion-W6JFZKZI.js} +1 -1
- package/dist/{upgrade-3SGNJUWL.js → upgrade-EZO5QXKC.js} +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ npm install -g @epilot/cli
|
|
|
29
29
|
|
|
30
30
|
<!-- usage-help -->
|
|
31
31
|
```
|
|
32
|
-
epilot v0.1.
|
|
32
|
+
epilot v0.1.25 — CLI for epilot APIs
|
|
33
33
|
|
|
34
34
|
USAGE
|
|
35
35
|
epilot <api> <operationId> [params...] [flags]
|
|
@@ -70,6 +70,7 @@ APIs
|
|
|
70
70
|
automation Automation API
|
|
71
71
|
billing Billing API
|
|
72
72
|
blueprint-manifest Blueprint Manifest API
|
|
73
|
+
calendar Calendar API
|
|
73
74
|
configuration-hub Configuration Hub API
|
|
74
75
|
consent Consent API
|
|
75
76
|
customer-portal Portal API
|
|
@@ -325,6 +326,7 @@ Full documentation with sample calls and responses for all APIs:
|
|
|
325
326
|
| Automation API | `epilot automation` | [docs](./docs/automation.md) |
|
|
326
327
|
| Billing API | `epilot billing` | [docs](./docs/billing.md) |
|
|
327
328
|
| Blueprint Manifest API | `epilot blueprint-manifest` | [docs](./docs/blueprint-manifest.md) |
|
|
329
|
+
| Calendar API | `epilot calendar` | [docs](./docs/calendar.md) |
|
|
328
330
|
| Configuration Hub API | `epilot configuration-hub` | [docs](./docs/configuration-hub.md) |
|
|
329
331
|
| Consent API | `epilot consent` | [docs](./docs/consent.md) |
|
|
330
332
|
| Portal API | `epilot customer-portal` | [docs](./docs/customer-portal.md) |
|
package/definitions/app.json
CHANGED
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
{
|
|
18
18
|
"name": "App Analytics",
|
|
19
19
|
"description": "Analytics for installed apps"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "App Proxy",
|
|
23
|
+
"description": "Forward requests to external APIs via registered proxy targets"
|
|
20
24
|
}
|
|
21
25
|
],
|
|
22
26
|
"servers": [
|
|
@@ -1468,6 +1472,100 @@
|
|
|
1468
1472
|
}
|
|
1469
1473
|
}
|
|
1470
1474
|
}
|
|
1475
|
+
},
|
|
1476
|
+
"/v1/public/app/{appId}/proxy/{proxyName}/{path}": {
|
|
1477
|
+
"parameters": [
|
|
1478
|
+
{
|
|
1479
|
+
"name": "appId",
|
|
1480
|
+
"in": "path",
|
|
1481
|
+
"required": true,
|
|
1482
|
+
"schema": {
|
|
1483
|
+
"type": "string"
|
|
1484
|
+
},
|
|
1485
|
+
"description": "ID of the installed app"
|
|
1486
|
+
},
|
|
1487
|
+
{
|
|
1488
|
+
"name": "proxyName",
|
|
1489
|
+
"in": "path",
|
|
1490
|
+
"required": true,
|
|
1491
|
+
"schema": {
|
|
1492
|
+
"type": "string"
|
|
1493
|
+
},
|
|
1494
|
+
"description": "Name of the proxy target as defined in the app manifest"
|
|
1495
|
+
},
|
|
1496
|
+
{
|
|
1497
|
+
"name": "path",
|
|
1498
|
+
"in": "path",
|
|
1499
|
+
"required": true,
|
|
1500
|
+
"schema": {
|
|
1501
|
+
"type": "string"
|
|
1502
|
+
},
|
|
1503
|
+
"description": "Path to forward to the proxy target"
|
|
1504
|
+
}
|
|
1505
|
+
],
|
|
1506
|
+
"get": {
|
|
1507
|
+
"summary": "publicProxyGet",
|
|
1508
|
+
"operationId": "publicProxyGet",
|
|
1509
|
+
"description": "Forward a GET request to a registered proxy target from a public-facing component (e.g. journey blocks)",
|
|
1510
|
+
"tags": [
|
|
1511
|
+
"App Proxy"
|
|
1512
|
+
],
|
|
1513
|
+
"security": [
|
|
1514
|
+
{
|
|
1515
|
+
"EpilotAuth": []
|
|
1516
|
+
}
|
|
1517
|
+
],
|
|
1518
|
+
"responses": {
|
|
1519
|
+
"200": {
|
|
1520
|
+
"description": "Proxied response from the target API"
|
|
1521
|
+
},
|
|
1522
|
+
"403": {
|
|
1523
|
+
"description": "Forbidden - app not installed or no public component uses this proxy"
|
|
1524
|
+
},
|
|
1525
|
+
"404": {
|
|
1526
|
+
"description": "Proxy target not found"
|
|
1527
|
+
},
|
|
1528
|
+
"502": {
|
|
1529
|
+
"description": "Bad gateway - proxy target unreachable or error"
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
},
|
|
1533
|
+
"post": {
|
|
1534
|
+
"summary": "publicProxyPost",
|
|
1535
|
+
"operationId": "publicProxyPost",
|
|
1536
|
+
"description": "Forward a POST request to a registered proxy target from a public-facing component (e.g. journey blocks)",
|
|
1537
|
+
"tags": [
|
|
1538
|
+
"App Proxy"
|
|
1539
|
+
],
|
|
1540
|
+
"security": [
|
|
1541
|
+
{
|
|
1542
|
+
"EpilotAuth": []
|
|
1543
|
+
}
|
|
1544
|
+
],
|
|
1545
|
+
"requestBody": {
|
|
1546
|
+
"content": {
|
|
1547
|
+
"application/json": {
|
|
1548
|
+
"schema": {
|
|
1549
|
+
"type": "object"
|
|
1550
|
+
}
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1553
|
+
},
|
|
1554
|
+
"responses": {
|
|
1555
|
+
"200": {
|
|
1556
|
+
"description": "Proxied response from the target API"
|
|
1557
|
+
},
|
|
1558
|
+
"403": {
|
|
1559
|
+
"description": "Forbidden - app not installed or no public component uses this proxy"
|
|
1560
|
+
},
|
|
1561
|
+
"404": {
|
|
1562
|
+
"description": "Proxy target not found"
|
|
1563
|
+
},
|
|
1564
|
+
"502": {
|
|
1565
|
+
"description": "Bad gateway - proxy target unreachable or error"
|
|
1566
|
+
}
|
|
1567
|
+
}
|
|
1568
|
+
}
|
|
1471
1569
|
}
|
|
1472
1570
|
},
|
|
1473
1571
|
"components": {
|
|
@@ -1832,7 +1930,8 @@
|
|
|
1832
1930
|
"ERP_INFORM_TOOLKIT",
|
|
1833
1931
|
"CUSTOM_CAPABILITY",
|
|
1834
1932
|
"EXTERNAL_PRODUCT_CATALOG",
|
|
1835
|
-
"CUSTOM_PAGE"
|
|
1933
|
+
"CUSTOM_PAGE",
|
|
1934
|
+
"API_PROXY"
|
|
1836
1935
|
],
|
|
1837
1936
|
"description": "Type of app component"
|
|
1838
1937
|
},
|
|
@@ -1944,7 +2043,8 @@
|
|
|
1944
2043
|
"ERP_INFORM_TOOLKIT": "#/components/schemas/ErpInformToolkitComponent",
|
|
1945
2044
|
"CUSTOM_CAPABILITY": "#/components/schemas/CustomCapabilityComponent",
|
|
1946
2045
|
"EXTERNAL_PRODUCT_CATALOG": "#/components/schemas/ExternalProductCatalogComponent",
|
|
1947
|
-
"CUSTOM_PAGE": "#/components/schemas/CustomPageComponent"
|
|
2046
|
+
"CUSTOM_PAGE": "#/components/schemas/CustomPageComponent",
|
|
2047
|
+
"API_PROXY": "#/components/schemas/ApiProxyComponent"
|
|
1948
2048
|
}
|
|
1949
2049
|
},
|
|
1950
2050
|
"oneOf": [
|
|
@@ -1971,11 +2071,32 @@
|
|
|
1971
2071
|
},
|
|
1972
2072
|
{
|
|
1973
2073
|
"$ref": "#/components/schemas/CustomPageComponent"
|
|
2074
|
+
},
|
|
2075
|
+
{
|
|
2076
|
+
"$ref": "#/components/schemas/ApiProxyComponent"
|
|
1974
2077
|
}
|
|
1975
2078
|
]
|
|
1976
2079
|
}
|
|
1977
2080
|
]
|
|
1978
2081
|
},
|
|
2082
|
+
"ApiProxyComponent": {
|
|
2083
|
+
"type": "object",
|
|
2084
|
+
"required": [
|
|
2085
|
+
"component_type",
|
|
2086
|
+
"configuration"
|
|
2087
|
+
],
|
|
2088
|
+
"properties": {
|
|
2089
|
+
"component_type": {
|
|
2090
|
+
"type": "string",
|
|
2091
|
+
"enum": [
|
|
2092
|
+
"API_PROXY"
|
|
2093
|
+
]
|
|
2094
|
+
},
|
|
2095
|
+
"configuration": {
|
|
2096
|
+
"$ref": "#/components/schemas/ApiProxyConfig"
|
|
2097
|
+
}
|
|
2098
|
+
}
|
|
2099
|
+
},
|
|
1979
2100
|
"CustomCapabilityComponent": {
|
|
1980
2101
|
"type": "object",
|
|
1981
2102
|
"required": [
|
|
@@ -2488,8 +2609,10 @@
|
|
|
2488
2609
|
"contractIdentification": "#/components/schemas/PortalExtensionHookContractIdentification",
|
|
2489
2610
|
"priceDataRetrieval": "#/components/schemas/PortalExtensionHookPriceDataRetrieval",
|
|
2490
2611
|
"consumptionDataRetrieval": "#/components/schemas/PortalExtensionHookConsumptionDataRetrieval",
|
|
2612
|
+
"dataExport": "#/components/schemas/PortalExtensionHookDataExport",
|
|
2491
2613
|
"costDataRetrieval": "#/components/schemas/PortalExtensionHookCostDataRetrieval",
|
|
2492
|
-
"meterReadingPlausibilityCheck": "#/components/schemas/PortalExtensionHookMeterReadingPlausibilityCheck"
|
|
2614
|
+
"meterReadingPlausibilityCheck": "#/components/schemas/PortalExtensionHookMeterReadingPlausibilityCheck",
|
|
2615
|
+
"visualizationMetadata": "#/components/schemas/PortalExtensionHookVisualizationMetadata"
|
|
2493
2616
|
}
|
|
2494
2617
|
},
|
|
2495
2618
|
"oneOf": [
|
|
@@ -2505,11 +2628,17 @@
|
|
|
2505
2628
|
{
|
|
2506
2629
|
"$ref": "#/components/schemas/PortalExtensionHookConsumptionDataRetrieval"
|
|
2507
2630
|
},
|
|
2631
|
+
{
|
|
2632
|
+
"$ref": "#/components/schemas/PortalExtensionHookDataExport"
|
|
2633
|
+
},
|
|
2508
2634
|
{
|
|
2509
2635
|
"$ref": "#/components/schemas/PortalExtensionHookCostDataRetrieval"
|
|
2510
2636
|
},
|
|
2511
2637
|
{
|
|
2512
2638
|
"$ref": "#/components/schemas/PortalExtensionHookMeterReadingPlausibilityCheck"
|
|
2639
|
+
},
|
|
2640
|
+
{
|
|
2641
|
+
"$ref": "#/components/schemas/PortalExtensionHookVisualizationMetadata"
|
|
2513
2642
|
}
|
|
2514
2643
|
]
|
|
2515
2644
|
}
|
|
@@ -2594,7 +2723,8 @@
|
|
|
2594
2723
|
},
|
|
2595
2724
|
"use_static_ips": {
|
|
2596
2725
|
"type": "boolean",
|
|
2597
|
-
"
|
|
2726
|
+
"deprecated": true,
|
|
2727
|
+
"description": "Deprecated. Prefer `secure_proxy` instead.\nIf true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.\n",
|
|
2598
2728
|
"default": false
|
|
2599
2729
|
},
|
|
2600
2730
|
"secure_proxy": {
|
|
@@ -2707,7 +2837,8 @@
|
|
|
2707
2837
|
},
|
|
2708
2838
|
"use_static_ips": {
|
|
2709
2839
|
"type": "boolean",
|
|
2710
|
-
"
|
|
2840
|
+
"deprecated": true,
|
|
2841
|
+
"description": "Deprecated. Prefer `secure_proxy` instead.\nIf true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.\n",
|
|
2711
2842
|
"default": false
|
|
2712
2843
|
},
|
|
2713
2844
|
"secure_proxy": {
|
|
@@ -2818,7 +2949,8 @@
|
|
|
2818
2949
|
},
|
|
2819
2950
|
"use_static_ips": {
|
|
2820
2951
|
"type": "boolean",
|
|
2821
|
-
"
|
|
2952
|
+
"deprecated": true,
|
|
2953
|
+
"description": "Deprecated. Prefer `secure_proxy` instead.\nIf true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.\n",
|
|
2822
2954
|
"default": false
|
|
2823
2955
|
},
|
|
2824
2956
|
"secure_proxy": {
|
|
@@ -2853,7 +2985,8 @@
|
|
|
2853
2985
|
},
|
|
2854
2986
|
"intervals": {
|
|
2855
2987
|
"type": "array",
|
|
2856
|
-
"
|
|
2988
|
+
"deprecated": true,
|
|
2989
|
+
"description": "Deprecated. Prefer declaring a sibling `visualizationMetadata` hook on the same extension and returning `intervals` from its response — that way the supported intervals can vary per meter/contract.\nIntervals supported by the API. If omitted, it is assumed that all intervals are supported.\n",
|
|
2857
2990
|
"items": {
|
|
2858
2991
|
"type": "string",
|
|
2859
2992
|
"enum": [
|
|
@@ -2918,7 +3051,8 @@
|
|
|
2918
3051
|
},
|
|
2919
3052
|
"use_static_ips": {
|
|
2920
3053
|
"type": "boolean",
|
|
2921
|
-
"
|
|
3054
|
+
"deprecated": true,
|
|
3055
|
+
"description": "Deprecated. Prefer `secure_proxy` instead.\nIf true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.\n",
|
|
2922
3056
|
"default": false
|
|
2923
3057
|
},
|
|
2924
3058
|
"secure_proxy": {
|
|
@@ -2952,7 +3086,8 @@
|
|
|
2952
3086
|
},
|
|
2953
3087
|
"intervals": {
|
|
2954
3088
|
"type": "array",
|
|
2955
|
-
"
|
|
3089
|
+
"deprecated": true,
|
|
3090
|
+
"description": "Deprecated. Prefer declaring a sibling `visualizationMetadata` hook on the same extension and returning `intervals` from its response — that way the supported intervals can vary per meter/contract.\nIntervals supported by the API. If omitted, it is assumed that all intervals are supported.\n",
|
|
2956
3091
|
"items": {
|
|
2957
3092
|
"type": "string",
|
|
2958
3093
|
"enum": [
|
|
@@ -3017,7 +3152,179 @@
|
|
|
3017
3152
|
},
|
|
3018
3153
|
"use_static_ips": {
|
|
3019
3154
|
"type": "boolean",
|
|
3020
|
-
"
|
|
3155
|
+
"deprecated": true,
|
|
3156
|
+
"description": "Deprecated. Prefer `secure_proxy` instead.\nIf true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.\n",
|
|
3157
|
+
"default": false
|
|
3158
|
+
},
|
|
3159
|
+
"secure_proxy": {
|
|
3160
|
+
"$ref": "#/components/schemas/PortalExtensionSecureProxy"
|
|
3161
|
+
}
|
|
3162
|
+
},
|
|
3163
|
+
"required": [
|
|
3164
|
+
"id",
|
|
3165
|
+
"type",
|
|
3166
|
+
"call"
|
|
3167
|
+
],
|
|
3168
|
+
"additionalProperties": false
|
|
3169
|
+
},
|
|
3170
|
+
"PortalExtensionHookDataExport": {
|
|
3171
|
+
"description": "Generic data export hook. When configured on blocks that support it, the portal delegates the export action (e.g. CSV/Excel/PDF download) to the configured external source instead of generating the file itself. Can be used by any block that supports export — consumption charts, dynamic tariff charts, etc. The expected response to the call is:\n - 200 with a JSON body describing the exported file (download_url, optional filename, content_type, expires_at)\n",
|
|
3172
|
+
"type": "object",
|
|
3173
|
+
"properties": {
|
|
3174
|
+
"id": {
|
|
3175
|
+
"type": "string",
|
|
3176
|
+
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
3177
|
+
"description": "Identifier of the hook. Should not change between updates."
|
|
3178
|
+
},
|
|
3179
|
+
"name": {
|
|
3180
|
+
"$ref": "#/components/schemas/TranslatedString"
|
|
3181
|
+
},
|
|
3182
|
+
"type": {
|
|
3183
|
+
"type": "string",
|
|
3184
|
+
"enum": [
|
|
3185
|
+
"dataExport"
|
|
3186
|
+
]
|
|
3187
|
+
},
|
|
3188
|
+
"block_types": {
|
|
3189
|
+
"type": "array",
|
|
3190
|
+
"description": "Optional list of portal block types this hook supports. If omitted,\nthe hook is usable on any export-capable block. Allowed values match\nthe block type identifiers used by the portal builder\n(e.g. `consumption_visualization`, `dynamic_tariff`).\n",
|
|
3191
|
+
"items": {
|
|
3192
|
+
"type": "string"
|
|
3193
|
+
}
|
|
3194
|
+
},
|
|
3195
|
+
"auth": {
|
|
3196
|
+
"$ref": "#/components/schemas/PortalExtensionAuthBlock"
|
|
3197
|
+
},
|
|
3198
|
+
"call": {
|
|
3199
|
+
"type": "object",
|
|
3200
|
+
"properties": {
|
|
3201
|
+
"method": {
|
|
3202
|
+
"type": "string",
|
|
3203
|
+
"description": "HTTP method to use for the call",
|
|
3204
|
+
"default": "GET"
|
|
3205
|
+
},
|
|
3206
|
+
"url": {
|
|
3207
|
+
"type": "string",
|
|
3208
|
+
"description": "URL to call. Supports variable interpolation."
|
|
3209
|
+
},
|
|
3210
|
+
"params": {
|
|
3211
|
+
"type": "object",
|
|
3212
|
+
"description": "Parameters to append to the URL. Supports variable interpolation.",
|
|
3213
|
+
"additionalProperties": {
|
|
3214
|
+
"type": "string"
|
|
3215
|
+
},
|
|
3216
|
+
"default": {}
|
|
3217
|
+
},
|
|
3218
|
+
"headers": {
|
|
3219
|
+
"type": "object",
|
|
3220
|
+
"description": "Headers to use. Supports variable interpolation.",
|
|
3221
|
+
"additionalProperties": {
|
|
3222
|
+
"type": "string"
|
|
3223
|
+
},
|
|
3224
|
+
"default": {}
|
|
3225
|
+
},
|
|
3226
|
+
"body": {
|
|
3227
|
+
"type": "object",
|
|
3228
|
+
"description": "Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.",
|
|
3229
|
+
"additionalProperties": true
|
|
3230
|
+
}
|
|
3231
|
+
},
|
|
3232
|
+
"required": [
|
|
3233
|
+
"url"
|
|
3234
|
+
],
|
|
3235
|
+
"additionalProperties": false
|
|
3236
|
+
},
|
|
3237
|
+
"use_static_ips": {
|
|
3238
|
+
"type": "boolean",
|
|
3239
|
+
"deprecated": true,
|
|
3240
|
+
"description": "Deprecated. Prefer `secure_proxy` instead.\nIf true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.\n",
|
|
3241
|
+
"default": false
|
|
3242
|
+
},
|
|
3243
|
+
"secure_proxy": {
|
|
3244
|
+
"$ref": "#/components/schemas/PortalExtensionSecureProxy"
|
|
3245
|
+
}
|
|
3246
|
+
},
|
|
3247
|
+
"required": [
|
|
3248
|
+
"id",
|
|
3249
|
+
"type",
|
|
3250
|
+
"call"
|
|
3251
|
+
],
|
|
3252
|
+
"additionalProperties": false
|
|
3253
|
+
},
|
|
3254
|
+
"PortalExtensionHookVisualizationMetadata": {
|
|
3255
|
+
"description": "Hook that returns runtime metadata describing how a visualization (consumption / price / cost chart) should be rendered for a given portal context (meter, contract, etc). It is invoked by the portal before fetching data, with the same context the data hook would receive, so that the discovery shape can vary per meter/contract. The expected response to the call is:\n - 200 with a JSON body of shape:\n {\n \"type_options\": [{ \"id\": \"ht\", \"label\": { \"en\": \"High tariff\" }, \"aggregation_group\": \"consumption\", \"unit\": \"kWh\" }, ...],\n \"intervals\": [\"PT15M\", \"PT1H\", \"P1D\", \"P1M\"],\n \"data_range\": { \"from\": \"2024-01-01T00:00:00Z\", \"to\": \"2026-05-01T00:00:00Z\" }\n }\n All fields are optional; the consumer falls back to its defaults for whatever the hook does not return.\nThe portal looks up this hook implicitly per extension (one `visualizationMetadata` hook per extension) — there is no need for a data-retrieval hook to reference it explicitly.\n",
|
|
3256
|
+
"type": "object",
|
|
3257
|
+
"properties": {
|
|
3258
|
+
"id": {
|
|
3259
|
+
"type": "string",
|
|
3260
|
+
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
3261
|
+
"description": "Identifier of the hook. Should not change between updates."
|
|
3262
|
+
},
|
|
3263
|
+
"name": {
|
|
3264
|
+
"$ref": "#/components/schemas/TranslatedString"
|
|
3265
|
+
},
|
|
3266
|
+
"type": {
|
|
3267
|
+
"type": "string",
|
|
3268
|
+
"enum": [
|
|
3269
|
+
"visualizationMetadata"
|
|
3270
|
+
]
|
|
3271
|
+
},
|
|
3272
|
+
"auth": {
|
|
3273
|
+
"$ref": "#/components/schemas/PortalExtensionAuthBlock"
|
|
3274
|
+
},
|
|
3275
|
+
"call": {
|
|
3276
|
+
"type": "object",
|
|
3277
|
+
"properties": {
|
|
3278
|
+
"method": {
|
|
3279
|
+
"type": "string",
|
|
3280
|
+
"description": "HTTP method to use for the call",
|
|
3281
|
+
"default": "GET"
|
|
3282
|
+
},
|
|
3283
|
+
"url": {
|
|
3284
|
+
"type": "string",
|
|
3285
|
+
"description": "URL to call. Supports variable interpolation."
|
|
3286
|
+
},
|
|
3287
|
+
"params": {
|
|
3288
|
+
"type": "object",
|
|
3289
|
+
"description": "Parameters to append to the URL. Supports variable interpolation.",
|
|
3290
|
+
"additionalProperties": {
|
|
3291
|
+
"type": "string"
|
|
3292
|
+
},
|
|
3293
|
+
"default": {}
|
|
3294
|
+
},
|
|
3295
|
+
"headers": {
|
|
3296
|
+
"type": "object",
|
|
3297
|
+
"description": "Headers to use. Supports variable interpolation.",
|
|
3298
|
+
"additionalProperties": {
|
|
3299
|
+
"type": "string"
|
|
3300
|
+
},
|
|
3301
|
+
"default": {}
|
|
3302
|
+
},
|
|
3303
|
+
"body": {
|
|
3304
|
+
"type": "object",
|
|
3305
|
+
"description": "Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.",
|
|
3306
|
+
"additionalProperties": true
|
|
3307
|
+
}
|
|
3308
|
+
},
|
|
3309
|
+
"required": [
|
|
3310
|
+
"url"
|
|
3311
|
+
],
|
|
3312
|
+
"additionalProperties": false
|
|
3313
|
+
},
|
|
3314
|
+
"resolved": {
|
|
3315
|
+
"type": "object",
|
|
3316
|
+
"properties": {
|
|
3317
|
+
"dataPath": {
|
|
3318
|
+
"type": "string",
|
|
3319
|
+
"description": "Optional path to the metadata object in the response. If omitted, the metadata is assumed to be on the top level."
|
|
3320
|
+
}
|
|
3321
|
+
},
|
|
3322
|
+
"additionalProperties": false
|
|
3323
|
+
},
|
|
3324
|
+
"use_static_ips": {
|
|
3325
|
+
"type": "boolean",
|
|
3326
|
+
"deprecated": true,
|
|
3327
|
+
"description": "Deprecated. Prefer `secure_proxy` instead.\nIf true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.\n",
|
|
3021
3328
|
"default": false
|
|
3022
3329
|
},
|
|
3023
3330
|
"secure_proxy": {
|
|
@@ -3051,7 +3358,8 @@
|
|
|
3051
3358
|
},
|
|
3052
3359
|
"intervals": {
|
|
3053
3360
|
"type": "array",
|
|
3054
|
-
"
|
|
3361
|
+
"deprecated": true,
|
|
3362
|
+
"description": "Deprecated. Prefer declaring a sibling `visualizationMetadata` hook on the same extension and returning `intervals` from its response — that way the supported intervals can vary per meter/contract.\nIntervals supported by the API. If omitted, it is assumed that all intervals are supported.\n",
|
|
3055
3363
|
"items": {
|
|
3056
3364
|
"type": "string",
|
|
3057
3365
|
"enum": [
|
|
@@ -3116,7 +3424,8 @@
|
|
|
3116
3424
|
},
|
|
3117
3425
|
"use_static_ips": {
|
|
3118
3426
|
"type": "boolean",
|
|
3119
|
-
"
|
|
3427
|
+
"deprecated": true,
|
|
3428
|
+
"description": "Deprecated. Prefer `secure_proxy` instead.\nIf true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.\n",
|
|
3120
3429
|
"default": false
|
|
3121
3430
|
},
|
|
3122
3431
|
"secure_proxy": {
|
|
@@ -3430,7 +3739,8 @@
|
|
|
3430
3739
|
"enum": [
|
|
3431
3740
|
"text",
|
|
3432
3741
|
"boolean",
|
|
3433
|
-
"enum"
|
|
3742
|
+
"enum",
|
|
3743
|
+
"block_reference"
|
|
3434
3744
|
]
|
|
3435
3745
|
},
|
|
3436
3746
|
"required": {
|
|
@@ -3467,7 +3777,8 @@
|
|
|
3467
3777
|
"mapping": {
|
|
3468
3778
|
"text": "#/components/schemas/TextArg",
|
|
3469
3779
|
"boolean": "#/components/schemas/BooleanArg",
|
|
3470
|
-
"enum": "#/components/schemas/EnumArg"
|
|
3780
|
+
"enum": "#/components/schemas/EnumArg",
|
|
3781
|
+
"block_reference": "#/components/schemas/BlockReferenceArg"
|
|
3471
3782
|
}
|
|
3472
3783
|
},
|
|
3473
3784
|
"oneOf": [
|
|
@@ -3479,6 +3790,9 @@
|
|
|
3479
3790
|
},
|
|
3480
3791
|
{
|
|
3481
3792
|
"$ref": "#/components/schemas/EnumArg"
|
|
3793
|
+
},
|
|
3794
|
+
{
|
|
3795
|
+
"$ref": "#/components/schemas/BlockReferenceArg"
|
|
3482
3796
|
}
|
|
3483
3797
|
]
|
|
3484
3798
|
}
|
|
@@ -3506,6 +3820,25 @@
|
|
|
3506
3820
|
}
|
|
3507
3821
|
}
|
|
3508
3822
|
},
|
|
3823
|
+
"BlockReferenceArg": {
|
|
3824
|
+
"type": "object",
|
|
3825
|
+
"description": "References another journey block by its ID. The configuring user picks\na block from the journey via a dropdown in the journey-builder; the\nchosen block's ID is stored as the arg value (a string). The bundle can\nthen call `subscribe(blockId, cb)` / `getValue(blockId)` against that ID.\n",
|
|
3826
|
+
"properties": {
|
|
3827
|
+
"type": {
|
|
3828
|
+
"type": "string",
|
|
3829
|
+
"enum": [
|
|
3830
|
+
"block_reference"
|
|
3831
|
+
]
|
|
3832
|
+
},
|
|
3833
|
+
"allowed_types": {
|
|
3834
|
+
"type": "array",
|
|
3835
|
+
"description": "Restrict the picker to blocks of these journey block types\n(e.g. [\"availability-check\", \"address\"]). Omit to allow any type.\n",
|
|
3836
|
+
"items": {
|
|
3837
|
+
"type": "string"
|
|
3838
|
+
}
|
|
3839
|
+
}
|
|
3840
|
+
}
|
|
3841
|
+
},
|
|
3509
3842
|
"EnumArg": {
|
|
3510
3843
|
"type": "object",
|
|
3511
3844
|
"required": [
|
|
@@ -3876,6 +4209,49 @@
|
|
|
3876
4209
|
}
|
|
3877
4210
|
}
|
|
3878
4211
|
},
|
|
4212
|
+
"ApiProxyConfig": {
|
|
4213
|
+
"type": "object",
|
|
4214
|
+
"description": "Configuration for an API proxy component",
|
|
4215
|
+
"required": [
|
|
4216
|
+
"name",
|
|
4217
|
+
"target",
|
|
4218
|
+
"auth_type"
|
|
4219
|
+
],
|
|
4220
|
+
"properties": {
|
|
4221
|
+
"name": {
|
|
4222
|
+
"type": "string",
|
|
4223
|
+
"description": "Human-friendly proxy name used in SDK calls",
|
|
4224
|
+
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
4225
|
+
"maxLength": 64
|
|
4226
|
+
},
|
|
4227
|
+
"target": {
|
|
4228
|
+
"type": "string",
|
|
4229
|
+
"format": "uri",
|
|
4230
|
+
"description": "Base URL of the target API. Must be HTTPS.",
|
|
4231
|
+
"pattern": "^https://"
|
|
4232
|
+
},
|
|
4233
|
+
"auth_type": {
|
|
4234
|
+
"type": "string",
|
|
4235
|
+
"enum": [
|
|
4236
|
+
"header",
|
|
4237
|
+
"bearer",
|
|
4238
|
+
"oauth2",
|
|
4239
|
+
"none"
|
|
4240
|
+
],
|
|
4241
|
+
"description": "Authentication strategy"
|
|
4242
|
+
},
|
|
4243
|
+
"auth_header": {
|
|
4244
|
+
"type": "string",
|
|
4245
|
+
"description": "Header name for 'header' auth type"
|
|
4246
|
+
},
|
|
4247
|
+
"token_url": {
|
|
4248
|
+
"type": "string",
|
|
4249
|
+
"format": "uri",
|
|
4250
|
+
"description": "OAuth2 token endpoint URL",
|
|
4251
|
+
"pattern": "^https://"
|
|
4252
|
+
}
|
|
4253
|
+
}
|
|
4254
|
+
},
|
|
3879
4255
|
"Grants": {
|
|
3880
4256
|
"type": "array",
|
|
3881
4257
|
"description": "Required grants for the app in order to call APIs for the installing tenant",
|